From 0961a61e907eee774f045e328d50345a5ea63edc Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 5 Jun 2024 14:46:01 -0400 Subject: [PATCH 01/41] [driver] - reformat some things and add ni factory in main --- driver/main.cpp | 18 +++++------------- driver/ni/ni.cpp | 12 +----------- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/driver/main.cpp b/driver/main.cpp index 7cb9340ff2..fe032f9c18 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -54,8 +54,7 @@ int main(int argc, char *argv[]) { auto cfg_json = driver::readConfig(config_path); if (cfg_json.empty()) - LOG(INFO) << "[main] no configuration found at " << config_path << - ". We'll just use the default configuration."; + LOG(INFO) << "[main] no configuration found at " << config_path << ". We'll just use the default configuration."; else { LOG(INFO) << "[main] loaded configuration from " << config_path; } @@ -65,8 +64,7 @@ int main(int argc, char *argv[]) { return 1; } LOG(INFO) << "[main] configuration parsed successfully"; - LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << - cfg.client_config.port; + LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << cfg.client_config.port; auto client = std::make_shared(cfg.client_config); @@ -77,23 +75,17 @@ int main(int argc, char *argv[]) { auto [rack, rack_err] = retrieveDriverRack(cfg, breaker, client); breaker.stop(); if (rack_err) { - LOG(FATAL) << - "[main] failed to retrieve meta-data - can't proceed without it. Exiting." - << rack_err; + LOG(FATAL) << "[main] failed to retrieve meta-data - can't proceed without it. Exiting." << rack_err; return 1; } std::unique_ptr opc_factory = std::make_unique(); std::unique_ptr meminfo_factory = std::make_unique< meminfo::Factory>(); - // std::unique_ptr ni_factory = std::make_unique(); - - // std::vector > factories = { - // std::move(opc_factory), std::move(meminfo_factory), std::move(ni_factory) - // }; + std::unique_ptr ni_factory = std::make_unique(); std::vector > factories = { - std::move(opc_factory), std::move(meminfo_factory) + std::move(opc_factory), std::move(meminfo_factory), std::move(ni_factory) }; std::unique_ptr factory = std::make_unique( diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 755b4fdf3a..8e6ec9ad1d 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -96,30 +96,22 @@ ni::Source::Source( } void ni::Source::parseConfig(config::Parser &parser){ - - LOG(INFO) << "[NI Source] Parsing Configuration for task " << this->reader_config.task_name; // Get Acquisition Rate and Stream Rates this->reader_config.sample_rate = parser.required("sample_rate"); this->reader_config.stream_rate = parser.required("stream_rate"); this->reader_config.device_key = parser.required("device"); this->reader_config.timing_source = "none"; // parser.required("timing_source"); TODO: uncomment this when ui provides timing source - LOG(INFO) << "[NI Source] retrieving device " << this->reader_config.task_name; auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->reader_config.device_key); - LOG(INFO) << "[NI Source] device retrieved " << this->reader_config.task_name; - if (err != freighter::NIL) { LOG(ERROR) << "[NI Reader] failed to retrieve device " << this->reader_config.device_name; this->ok_state = false; return; } - LOG(INFO) << "[NI Source] saving location " << this->reader_config.task_name; - this->reader_config.device_name = dev.location; - LOG(INFO) << "[NI Source] location " << dev.location; this->parseChannels(parser); assert(parser.ok()); } @@ -146,7 +138,7 @@ int ni::Source::init(){ } LOG(INFO) << "[NI Reader] successfully parsed configuration for " << this->reader_config.task_name; - this->getIndexKeys(); // get index keys for the task + this->getIndexKeys(); LOG(INFO) << "[NI Reader] index keys retrieved " << this->reader_config.task_name; @@ -192,7 +184,6 @@ freighter::Error ni::Source::start(){ if(this->running.exchange(true)){ return freighter::NIL; } - if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))){ LOG(ERROR) << "[NI Reader] failed while starting reader for task " << this->reader_config.task_name << " requires reconfigure"; this->clearTask(); @@ -209,7 +200,6 @@ freighter::Error ni::Source::stop(){ return freighter::NIL; } this->sample_thread.join(); - if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))){ LOG(ERROR) << "[NI Reader] failed while stopping reader for task " << this->reader_config.task_name; return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); From 0d2df26b03d9dbfa9e61db879ad0eed79977ac48 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 5 Jun 2024 17:28:16 -0400 Subject: [PATCH 02/41] [driver] - refactor analog scaling code and build main --- driver/ni/BUILD.bazel | 1 + driver/ni/analog_read.cpp | 245 ++++++++++---------------------------- driver/ni/ni.cpp | 14 ++- driver/ni/ni.h | 91 +------------- driver/ni/scale.h | 210 ++++++++++++++++++++++++++++++++ 5 files changed, 288 insertions(+), 273 deletions(-) create mode 100644 driver/ni/scale.h diff --git a/driver/ni/BUILD.bazel b/driver/ni/BUILD.bazel index 9faf99963f..6b6272c4d2 100644 --- a/driver/ni/BUILD.bazel +++ b/driver/ni/BUILD.bazel @@ -55,6 +55,7 @@ cc_library( ], hdrs = [ "ni.h", + "scale.h", "error.h", "//driver/task", "//driver/pipeline", diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index eef5f734b0..dcdee513e4 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -34,8 +34,10 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // now parse the channels parser.iter("channels", [&](config::Parser &channel_builder){ - ni::ChannelConfig config; + LOG(INFO) << channel_builder.get_json().dump(4); + + ni::ChannelConfig config; // analog channel names are formatted: /ai config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); @@ -52,111 +54,14 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ : DAQmx_Val_Cfg_Default; // check for custom scale - this->parseCustomScale(channel_builder, config); + auto scale_parser = parser.child("custom_scale"); + config.scale_config = ScaleConfig(scale_parser); this->reader_config.channels.push_back(config); }); } -void ni::AnalogReadSource::parseCustomScale(config::Parser & parser, ni::ChannelConfig & config){ - json j = parser.get_json(); - if(j.contains("scale")){ - config.custom_scale = true; - auto scale_parser = parser.child("scale"); - config.scale_type = scale_parser.required("variant"); - - // get the scaled and prescaled units - auto prescaled_units = scale_parser.required("prescaled_units"); - auto scaled_units = scale_parser.required("scaled_units"); - - // now handle the different variants - // Scale custom_scale; - if(config.scale_type == "LinScale"){ - - auto slope = scale_parser.required("slope"); - auto offset = scale_parser.required("offset"); - config.scale->linear = {slope, offset, prescaled_units, scaled_units}; - - } else if(config.scale_type == "MapScale"){ - - auto prescaled_min = scale_parser.required("prescaled_min"); - auto prescaled_max = scale_parser.required("prescaled_max"); - auto scaled_min = scale_parser.required("scaled_min"); - auto scaled_max = scale_parser.required("scaled_max"); - config.scale->map = {prescaled_min, prescaled_max, scaled_min, scaled_max, prescaled_units, scaled_units}; - - } else if(config.scale_type == "PolyScale"){ - // get forward coeffs (prescale -> scale) - json j = scale_parser.get_json(); - if(!j.contains("forward_coeffs")){ - return; - } - std::vector forward_coeffs_vec = j["forward_coeffs"]; - if(scale_parser.ok()){ - auto min_x = scale_parser.required("min_x"); - auto max_x = scale_parser.required("max_x"); - uint32_t num_forward_coeffs = scale_parser.required("num_coeffs"); - auto poly_order = scale_parser.required("poly_order"); - int32_t num_points = scale_parser.required("num_points"); - - float64* forward_coeffs = new double[num_forward_coeffs]; - float64* reverse_coeffs = new double[num_forward_coeffs]; // TODO: reverse coeffs can be less than forward_coeffs depending on the order of the function (only equal if order is) - ParseFloats(forward_coeffs_vec, forward_coeffs); - - - // get reverse coeffs (scale -> prescale) - ni::NiDAQmxInterface::CalculateReversePolyCoeff(forward_coeffs, num_forward_coeffs, min_x, max_x, num_points, -1, reverse_coeffs); // FIXME: reversePoly order should be user inputted? - config.scale->polynomial = {forward_coeffs, reverse_coeffs, num_forward_coeffs, min_x, max_x, num_points, poly_order, prescaled_units, scaled_units}; - } - - } else if(config.scale_type == "TableScale"){ - json j = scale_parser.get_json(); - if(!j.contains("prescaled") || !j.contains("scaled")){ - return; - } - std::vector prescaled_vec = j["prescaled"]; - std::vector scaled_vec = j["scaled"]; - uint32_t num_points = scale_parser.required("num_points"); - if(scale_parser.ok()){ - uint32_t num_points = prescaled_vec.size(); - float64* prescaled_arr = new double[num_points]; - float64* scaled_arr = new double[num_points]; - ParseFloats(prescaled_vec, prescaled_arr); - ParseFloats(scaled_vec, scaled_arr); - config.scale->table = {prescaled_arr, scaled_arr, num_points, prescaled_units, scaled_units}; - } - } else{ //invalid scale type return error - json err; - err["errors"] = nlohmann::json::array(); - err["errors"].push_back({ - {"path", "scale->variant"}, - {"message", "Invalid scale type"} - }); - LOG(ERROR) << "[NI Reader] failed to parse custom scale configuration for " << this->reader_config.task_name; - this->ctx->setState({.task = this->reader_config.task_key, - .variant = "error", - .details = err}); - this->ok_state = false; - return; - } - - if(!scale_parser.ok()){ - LOG(ERROR) << "[NI Reader] failed to parse custom scale configuration for " << this->reader_config.task_name; - this->ctx->setState({.task = this->reader_config.task_key, - .variant = "error", - .details = scale_parser.error_json()}); - this->ok_state = false; - return; - } - - } else { - config.custom_scale = false; - } -} - - - int ni::AnalogReadSource::configureTiming(){ if(this->reader_config.timing_source == "none"){ LOG(INFO) << "[NI Reader] configuring timing for task " << this->reader_config.task_name; @@ -186,22 +91,6 @@ int ni::AnalogReadSource::configureTiming(){ this->numSamplesPerChannel = std::floor(this->reader_config.sample_rate / this->reader_config.stream_rate); this->bufferSize = this->numAIChannels * this->numSamplesPerChannel; return 0; - // }r -} - - -void ni::AnalogReadSource::deleteScales(){ - for(auto &channel : this->reader_config.channels){ - if(channel.custom_scale){ - if(channel.scale_type == "polyScale"){ - delete[] channel.scale->polynomial.forward_coeffs; - delete[] channel.scale->polynomial.reverse_coeffs; - } else if(channel.scale_type == "tableScale"){ - delete[] channel.scale->table.prescaled; - delete[] channel.scale->table.scaled; - } - } - } } void ni::AnalogReadSource::acquireData(){ @@ -266,78 +155,72 @@ std::pair ni::AnalogReadSource::read(){ int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ - if(!channel.custom_scale){ + if(channel.scale_config.type == "none"){ return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan(this->task_handle, channel.name.c_str(), "", channel.terminal_config, channel.min_val, channel.max_val, DAQmx_Val_Volts, NULL)); } else{ - // name scale - channel.scale_name = channel.name + "_scale"; - // create scale - if(channel.scale_type == "LinScale"){ - + channel.scale_config.name = channel.name + "_scale"; + if(channel.scale_config.type == "LinScale"){ + LOG(INFO) << "[NI Reader] Creating Linear Scale for channel " << channel.name; this->checkNIError( ni::NiDAQmxInterface::CreateLinScale( - channel.scale_name.c_str(), - channel.scale->linear.slope, - channel.scale->linear.offset, - ni::UNITS_MAP.at(channel.scale->linear.prescaled_units), - channel.scale->linear.scaled_units.c_str() - )); - - } else if(channel.scale_type == "MapScale"){ - - this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( - channel.scale_name.c_str(), - channel.scale->map.prescaled_min, - channel.scale->map.prescaled_max, - channel.scale->map.scaled_min, - channel.scale->map.scaled_max, - ni::UNITS_MAP.at(channel.scale->map.prescaled_units), - channel.scale->map.scaled_units.c_str() + channel.scale_config.name.c_str(), + channel.scale_config.scale.linear.slope, + channel.scale_config.scale.linear.offset, + ni::UNITS_MAP.at(channel.scale_config.prescaled_units), + channel.scale_config.scaled_units.c_str() )); - } else if(channel.scale_type == "PolyScale"){ - - // create forward and reverse coeffs inputs - float64 forward_coeffs_in[1000]; - float64 reverse_coeffs_in[1000]; - for(int i = 0; i < channel.scale->polynomial.num_coeffs; i++){ - forward_coeffs_in[i] = channel.scale->polynomial.forward_coeffs[i]; - reverse_coeffs_in[i] = channel.scale->polynomial.reverse_coeffs[i]; - } - - this->checkNIError(ni::NiDAQmxInterface::CreatePolynomialScale( - channel.scale_name.c_str(), - forward_coeffs_in, - channel.scale->polynomial.num_coeffs, - reverse_coeffs_in, - channel.scale->polynomial.num_coeffs, - ni::UNITS_MAP.at(channel.scale->polynomial.prescaled_units), - channel.scale->polynomial.scaled_units.c_str() + } //else if(channel.scale_type == "MapScale"){ + // this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( + // channel.scale_name.c_str(), + // channel.scale->map.prescaled_min, + // channel.scale->map.prescaled_max, + // channel.scale->map.scaled_min, + // channel.scale->map.scaled_max, + // ni::UNITS_MAP.at(channel.scale->map.prescaled_units), + // channel.scale->map.scaled_units.c_str() + // )); + + // } else if(channel.scale_type == "PolyScale"){ + // // create forward and reverse coeffs inputs + // float64 forward_coeffs_in[1000]; + // float64 reverse_coeffs_in[1000]; + // for(int i = 0; i < channel.scale->polynomial.num_coeffs; i++){ + // forward_coeffs_in[i] = channel.scale->polynomial.forward_coeffs[i]; + // reverse_coeffs_in[i] = channel.scale->polynomial.reverse_coeffs[i]; + // } + // this->checkNIError(ni::NiDAQmxInterface::CreatePolynomialScale( + // channel.scale_name.c_str(), + // forward_coeffs_in, + // channel.scale->polynomial.num_coeffs, + // reverse_coeffs_in, + // channel.scale->polynomial.num_coeffs, + // ni::UNITS_MAP.at(channel.scale->polynomial.prescaled_units), + // channel.scale->polynomial.scaled_units.c_str() - )); - - } else if(channel.scale_type == "TableScale"){ - // create prescaled and scaled inputs - float64 prescaled[1000]; - float64 scaled[1000]; - for(int i = 0; i < channel.scale->table.num_points; i++){ - prescaled[i] = channel.scale->table.prescaled[i]; - scaled[i] = channel.scale->table.scaled[i]; - } - this->checkNIError(ni::NiDAQmxInterface::CreateTableScale( - channel.scale_name.c_str(), - prescaled, - channel.scale->table.num_points, - scaled, - channel.scale->table.num_points, - ni::UNITS_MAP.at(channel.scale->table.prescaled_units), - channel.scale->table.scaled_units.c_str() - )); - } + // )); + + // } else if(channel.scale_type == "TableScale"){ + // // create prescaled and scaled inputs + // float64 prescaled[1000]; + // float64 scaled[1000]; + // for(int i = 0; i < channel.scale->table.num_points; i++){ + // prescaled[i] = channel.scale->table.prescaled[i]; + // scaled[i] = channel.scale->table.scaled[i]; + // } + // this->checkNIError(ni::NiDAQmxInterface::CreateTableScale( + // channel.scale_name.c_str(), + // prescaled, + // channel.scale->table.num_points, + // scaled, + // channel.scale->table.num_points, + // ni::UNITS_MAP.at(channel.scale->table.prescaled_units), + // channel.scale->table.scaled_units.c_str() + // )); + // } // create channel - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan(this->task_handle, channel.name.c_str(), "", channel.terminal_config, channel.min_val, channel.max_val, DAQmx_Val_Volts, channel.scale_name.c_str())); + return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan(this->task_handle, channel.name.c_str(), "", channel.terminal_config, channel.min_val, channel.max_val, DAQmx_Val_Volts, channel.scale_config.name.c_str())); } - return -1; } int ni::AnalogReadSource::createChannels(){ @@ -358,9 +241,7 @@ int ni::AnalogReadSource::createChannels(){ return 0; } -ni::AnalogReadSource::~AnalogReadSource(){ - this->deleteScales(); -} + diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 8e6ec9ad1d..9acfea8d8f 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -6,11 +6,12 @@ // As of the Change Date specified in that file, in accordance with the Business Source // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. +#pragma once #include "driver/ni/ni.h" +#include "driver/ni/scale.h" #include -#pragma once const std::map ni::UNITS_MAP = { @@ -95,6 +96,7 @@ ni::Source::Source( const synnax::Task task): task_handle(task_handle), ctx(ctx), task(task){ } +// TODO return error status for thsi function void ni::Source::parseConfig(config::Parser &parser){ // Get Acquisition Rate and Stream Rates this->reader_config.sample_rate = parser.required("sample_rate"); @@ -113,7 +115,15 @@ void ni::Source::parseConfig(config::Parser &parser){ this->reader_config.device_name = dev.location; this->parseChannels(parser); - assert(parser.ok()); + if (!parser.ok() || !this->ok()){ + // Log error + LOG(ERROR) << "[NI Reader] failed to parse configuration for " << this->reader_config.task_name; + this->ctx->setState({.task = task.key, + .variant = "error", + .details = parser.error_json()}); + this->ok_state = false; + LOG(ERROR) << parser.error_json(); + } } int ni::Source::init(){ diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 1448ed07cb..51ac4110b7 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -34,70 +34,19 @@ #include "driver/ni/error.h" #include #include "ts_queue.h" - +#include "driver/ni/scale.h" // #include "driver/modules/module.h" namespace ni{ - extern const std::map UNITS_MAP; - typedef struct LinearScale{ - float64 slope; - float64 offset; - std::string prescaled_units; - std::string scaled_units; - } LinearScale; - - typedef struct MapScale{ - float64 prescaled_min; - float64 prescaled_max; - float64 scaled_min; - float64 scaled_max; - std::string prescaled_units; - std::string scaled_units; - } MapScale; - - typedef struct PolynomialScale{ - float64* forward_coeffs; - float64* reverse_coeffs; - uint32_t num_coeffs; - float64 min_x; - float64 max_x; - int32 num_points; - int32 poly_order; - std::string prescaled_units; - std::string scaled_units; - } PolynomialScale; - - typedef struct tableScale{ - float64* prescaled; - float64* scaled; - uint32_t num_points; - std::string prescaled_units; - std::string scaled_units; - } TableScale; - - typedef union Scale{ - LinearScale linear; - MapScale map; - PolynomialScale polynomial; - TableScale table; - // Destructor - ~Scale() {} - } Scale; - typedef struct ChannelConfig{ uint32_t channel_key; - std::string name; std::string channel_type; int terminal_config; float min_val; float max_val; - - bool custom_scale; - Scale* scale; - std::string scale_type; - std::string scale_name; + ScaleConfig scale_config; } ChannelConfig; typedef struct ReaderConfig{ @@ -183,19 +132,12 @@ namespace ni{ const synnax::Task task ) : Source(task_handle, ctx, task){} - ~AnalogReadSource(); - std::pair read() override; void acquireData() override; int configureTiming() override; int createChannels() override; void parseChannels(config::Parser &parser) override; - - void parseCustomScale(config::Parser & parser, ChannelConfig & config); - void deleteScales(); int createChannel(ChannelConfig &channel); - - // NI related resources uint64_t numAIChannels = 0; }; @@ -441,32 +383,3 @@ namespace ni{ } - - -/* - -using json = nlohmann::json; -namespace daq -{ - class DaqReader : public pipeline::Source //TODD: change to daqReader - { - public: - virtual std::pair read() = 0; - virtual freighter::Error start() = 0; - virtual freighter::Error stop() = 0; - virtual bool ok() = 0; - }; - - class DaqWriter: public pipeline::Sink{ - public: - virtual freighter::Error write(synnax::Frame frame) = 0; - virtual freighter::Error start() = 0; - virtual freighter::Error stop() = 0; - // virtual bool ok() = 0; - }; - - -} - - -*/ \ No newline at end of file diff --git a/driver/ni/scale.h b/driver/ni/scale.h new file mode 100644 index 0000000000..493fd66c15 --- /dev/null +++ b/driver/ni/scale.h @@ -0,0 +1,210 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +#pragma once + +#include +#include +#include +#include +#include + +#include "nidaqmx_api.h" +#include "daqmx.h" +#include "nisyscfg.h" +#include "driver/config/config.h" +#include "nlohmann/json.hpp" +#include "glog/logging.h" +#include "driver/ni/ni.h" + +namespace ni{ + extern const std::map UNITS_MAP; + typedef struct LinearScale{ + float64 slope; + float64 offset; + + LinearScale() = default; + + + LinearScale(config::Parser & parser) + : slope(parser.required("slope")), + offset(parser.required("offset")){} + + } LinearScale; + + typedef struct MapScale{ + float64 prescaled_min; + float64 prescaled_max; + float64 scaled_min; + float64 scaled_max; + + MapScale() = default; + + MapScale(config::Parser & parser) + : prescaled_min(parser.required("prescaled_min")), + prescaled_max(parser.required("prescaled_max")), + scaled_min(parser.required("scaled_min")), + scaled_max(parser.required("scaled_max")){} + + + } MapScale; + + typedef struct PolynomialScale{ + float64* forward_coeffs; + float64* reverse_coeffs; + uint32_t num_coeffs; + float64 min_x; + float64 max_x; + int32 num_points; + int32 poly_order; + + PolynomialScale() = default; + + PolynomialScale(config::Parser & parser) + : num_coeffs(parser.required("num_coeffs")), + min_x(parser.required("min_x")), + max_x(parser.required("max_x")), + num_points(parser.required("num_points")), + poly_order(parser.required("poly_order")){ + //get json from parser + json j = parser.get_json(); + // get forward coeffs (prescale -> scale conversions) + if(!j.contains("forward_coeffs")){ + return; // TODO: log error + } + std::vector forward_coeffs_vec = j["forward_coeffs"]; + forward_coeffs = new double[num_coeffs]; + // std::memcpy(forward_coeffs, other.forward_coeffs, num_coeffs * sizeof(double)); do this instead? + for(int i = 0; i < forward_coeffs_vec.size(); i++){ + forward_coeffs[i] = forward_coeffs_vec[i]; + } + // get reverse coeffs (scale -> prescale conversions) + reverse_coeffs = new double[num_coeffs]; // TODO: reverse coeffs might be smaller than forward_coeffs + ni::NiDAQmxInterface::CalculateReversePolyCoeff(forward_coeffs, num_coeffs, min_x, max_x, num_points, -1, reverse_coeffs); // FIXME: reversePoly order should be user inputted? + } + + ~PolynomialScale(){ + delete[] forward_coeffs; + delete[] reverse_coeffs; + } + + } PolynomialScale; + + typedef struct TableScale{ + float64* prescaled; + float64* scaled; + uint32_t num_points; + + TableScale() = default; + + TableScale(config::Parser & parser) + : num_points(parser.required("num_points")){ + //get json from parser + json j = parser.get_json(); + if(!j.contains("prescaled") || !j.contains("scaled")){ + return; // TODO: log error + } + std::vector prescaled_vec = j["prescaled"]; + std::vector scaled_vec = j["scaled"]; + prescaled = new double[num_points]; + scaled = new double[num_points]; + for(int i = 0; i < prescaled_vec.size(); i++){ + prescaled[i] = prescaled_vec[i]; + scaled[i] = scaled_vec[i]; + } + } + ~TableScale(){ + delete[] prescaled; + delete[] scaled; + } + } TableScale; + + typedef union Scale{ + LinearScale linear; + MapScale map; + PolynomialScale polynomial; + TableScale table; + // Destructor + Scale() {} + ~Scale() {} + } Scale; + + typedef struct ScaleConfig{ + std::string name; + std::string type; + std::string prescaled_units; + std::string scaled_units; + config::Parser parser; + Scale scale; + + ScaleConfig() = default; + + ScaleConfig(config::Parser & parser) + : type(parser.required("type")), + prescaled_units(parser.required("prescaled_units")), + scaled_units(parser.optional("scaled_units", "units not specified")), + parser(parser){ + if(type == "linear"){ + scale.linear = LinearScale(parser); + } else if(type == "map"){ + scale.map = MapScale(parser); + } else if(type == "polynomial"){ + scale.polynomial = PolynomialScale(parser); + } else if(type == "table"){ + scale.table = TableScale(parser); + } else{ + LOG(ERROR) << "failed to parse custom scale configuration for"; + } + } + + // copy constructor + ScaleConfig(const ScaleConfig & other) + : name(other.name), + type(other.type), + prescaled_units(other.prescaled_units), + scaled_units(other.scaled_units), + parser(other.parser){ + if(type == "linear"){ + scale.linear = LinearScale(parser); + } else if(type == "map"){ + scale.map = MapScale(parser); + } else if(type == "polynomial"){ + scale.polynomial = PolynomialScale(parser); + } else if(type == "table"){ + scale.table = TableScale(parser); + } + } + + // copy assignment operator + ScaleConfig & operator=(const ScaleConfig & other){ + if(this == &other) return *this; + + name = other.name; + type = other.type; + prescaled_units = other.prescaled_units; + scaled_units = other.scaled_units; + parser = other.parser; + if(type == "linear"){ + scale.linear = LinearScale(parser); + } else if(type == "map"){ + scale.map = MapScale(parser); + } else if(type == "polynomial"){ + scale.polynomial = PolynomialScale(parser); + } else if(type == "table"){ + scale.table = TableScale(parser); + } + return *this; + } + + // move constructor + ScaleConfig(ScaleConfig && other) = delete; + } ScaleConfig; +}; + +//TODO: do parser checks all over here \ No newline at end of file From 30a7ba9d5b6fea0bdfa59fef7b594f6e4790a423 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 5 Jun 2024 18:16:52 -0400 Subject: [PATCH 03/41] [driver] - fix some parsing typos --- driver/ni/analog_read.cpp | 2 +- driver/ni/scale.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index dcdee513e4..b2dff9fd95 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -54,7 +54,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ : DAQmx_Val_Cfg_Default; // check for custom scale - auto scale_parser = parser.child("custom_scale"); + auto scale_parser = channel_builder.child("custom_scale"); config.scale_config = ScaleConfig(scale_parser); this->reader_config.channels.push_back(config); }); diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 493fd66c15..8133467233 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -147,8 +147,8 @@ namespace ni{ ScaleConfig(config::Parser & parser) : type(parser.required("type")), - prescaled_units(parser.required("prescaled_units")), - scaled_units(parser.optional("scaled_units", "units not specified")), + prescaled_units(parser.optional("pre_scaled_units", "")), + scaled_units(parser.optional("scaled_units", "")), parser(parser){ if(type == "linear"){ scale.linear = LinearScale(parser); From e6fe6c3477bb7208d5a4ee31e7d59c4e8ef21a0d Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 10:34:28 -0400 Subject: [PATCH 04/41] [driver] - ni: linear scaling functionality verified --- driver/ni/analog_read.cpp | 43 ++++++++++++++++++++++++++++++++------- driver/ni/scale.h | 2 +- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index b2dff9fd95..e3b14ff472 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -56,6 +56,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // check for custom scale auto scale_parser = channel_builder.child("custom_scale"); config.scale_config = ScaleConfig(scale_parser); + this->reader_config.channels.push_back(config); }); } @@ -155,22 +156,51 @@ std::pair ni::AnalogReadSource::read(){ int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ + LOG(INFO) << "[NI Reader] Creating channel " << channel.name; if(channel.scale_config.type == "none"){ - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan(this->task_handle, channel.name.c_str(), "", channel.terminal_config, channel.min_val, channel.max_val, DAQmx_Val_Volts, NULL)); + return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, + channel.name.c_str(), + "", + channel.terminal_config, + channel.min_val, + channel.max_val, + DAQmx_Val_Volts, + NULL + )); } else{ - channel.scale_config.name = channel.name + "_scale"; - if(channel.scale_config.type == "LinScale"){ + // const char *const customScaleName="Acq Wheatstone Bridge Samples Scale"; + channel.scale_config.name = std::to_string(channel.channel_key) + "_scale"; + if(channel.scale_config.type == "linear"){ LOG(INFO) << "[NI Reader] Creating Linear Scale for channel " << channel.name; - this->checkNIError( + + if(this->checkNIError( ni::NiDAQmxInterface::CreateLinScale( channel.scale_config.name.c_str(), channel.scale_config.scale.linear.slope, channel.scale_config.scale.linear.offset, ni::UNITS_MAP.at(channel.scale_config.prescaled_units), channel.scale_config.scaled_units.c_str() - )); + ))){ + LOG(ERROR) << "[NI Reader] failed while creating linear scale for channel " << channel.name; + return -1; + } - } //else if(channel.scale_type == "MapScale"){ + LOG(INFO) << "[NI Reader] Created Linear Scale for channel " << channel.name; + } + LOG(INFO) << "[NI Reader] Creating Channel with custom scale: " << channel.scale_config.name; + + return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, channel.name.c_str(), + "", + channel.terminal_config, + channel.min_val, + channel.max_val, + DAQmx_Val_FromCustomScale, + channel.scale_config.name.c_str() + )); + + //else if(channel.scale_type == "MapScale"){ // this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( // channel.scale_name.c_str(), // channel.scale->map.prescaled_min, @@ -219,7 +249,6 @@ int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ // )); // } // create channel - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan(this->task_handle, channel.name.c_str(), "", channel.terminal_config, channel.min_val, channel.max_val, DAQmx_Val_Volts, channel.scale_config.name.c_str())); } } diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 8133467233..c27e693bbb 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -34,7 +34,7 @@ namespace ni{ LinearScale(config::Parser & parser) : slope(parser.required("slope")), - offset(parser.required("offset")){} + offset(parser.required("y_intercept")){} } LinearScale; From f3fa073fe602385e3f77007f7adf565f3f8c4ea2 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 10:59:59 -0400 Subject: [PATCH 05/41] [driver] - ni: refactor error logging to code dedup --- driver/ni/analog_read.cpp | 3 ++- driver/ni/ni.cpp | 52 +++++++++++++++++---------------------- driver/ni/ni.h | 1 + 3 files changed, 25 insertions(+), 31 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index e3b14ff472..0f778e8e1d 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -99,6 +99,7 @@ void ni::AnalogReadSource::acquireData(){ DataPacket data_packet; data_packet.data = new double[this->bufferSize]; data_packet.t0 = (uint64_t) ((synnax::TimeStamp::now()).value); + LOG(INFO) << "[NI Reader] Reading analog data for task " << this->reader_config.task_name; if (this->checkNIError(ni::NiDAQmxInterface::ReadAnalogF64( this->task_handle, this->numSamplesPerChannel, @@ -108,7 +109,7 @@ void ni::AnalogReadSource::acquireData(){ this->bufferSize, &data_packet.samplesReadPerChannel, NULL))){ - LOG(ERROR) << "[NI Reader] failed while reading analog data for task " << this->reader_config.task_name; + this->logError("failed while reading analog data for task " + this->reader_config.task_name); } data_packet.tf = (uint64_t)((synnax::TimeStamp::now()).value); data_queue.enqueue(data_packet); diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 9acfea8d8f..97c91e324b 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -60,9 +60,7 @@ void ni::Source::getIndexKeys(){ auto [channel_info, err] = this->ctx->client->channels.retrieve(channel.channel_key); // TODO handle error with breaker if (err != freighter::NIL){ - // Log error - LOG(ERROR) << "[NI Reader] failed to retrieve channel " << channel.channel_key; - this->ok_state = false; + this->logError("failed to retrieve channel " + channel.channel_key); return; } else{ index_keys.insert(channel_info.index); @@ -75,8 +73,7 @@ void ni::Source::getIndexKeys(){ LOG(INFO) << "constructing index channel configs"; auto [channel_info, err] = this->ctx->client->channels.retrieve(index_key); if (err != freighter::NIL){ - LOG(ERROR) << "[NI Reader] failed to retrieve channel " << index_key; - this->ok_state = false; + this->logError("failed to retrieve channel " + index_key); return; } else{ ni::ChannelConfig index_channel; @@ -108,26 +105,23 @@ void ni::Source::parseConfig(config::Parser &parser){ auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->reader_config.device_key); if (err != freighter::NIL) { - LOG(ERROR) << "[NI Reader] failed to retrieve device " << this->reader_config.device_name; - this->ok_state = false; + this->logError("failed to retrieve device " + this->reader_config.device_name); return; } this->reader_config.device_name = dev.location; this->parseChannels(parser); if (!parser.ok() || !this->ok()){ - // Log error - LOG(ERROR) << "[NI Reader] failed to parse configuration for " << this->reader_config.task_name; + this->logError("failed to parse channels for " + this->reader_config.task_name + " Parser Error: " + parser.error_json().dump()); this->ctx->setState({.task = task.key, .variant = "error", .details = parser.error_json()}); - this->ok_state = false; - LOG(ERROR) << parser.error_json(); } } int ni::Source::init(){ LOG(INFO) << "[NI Source] init " << this->task.name; + // Create parser auto config_parser = config::Parser(this->task.config); this->reader_config.task_name = this->task.name; @@ -139,20 +133,16 @@ int ni::Source::init(){ if (!config_parser.ok() || !this->ok()){ // Log error - LOG(ERROR) << "[NI Reader] failed to parse configuration for " << this->reader_config.task_name; + this->logError("failed to parse configuration for " + this->reader_config.task_name + " Parser Error: " + config_parser.error_json().dump()); this->ctx->setState({.task = task.key, .variant = "error", .details = config_parser.error_json()}); - this->ok_state = false; return -1; } + LOG(INFO) << "[NI Reader] successfully parsed configuration for " << this->reader_config.task_name; this->getIndexKeys(); - - - LOG(INFO) << "[NI Reader] index keys retrieved " << this->reader_config.task_name; - // Create breaker auto breaker_config = breaker::Config{ .name = task.name, @@ -168,21 +158,17 @@ int ni::Source::init(){ // Configure buffer size and read resources if(this->reader_config.sample_rate < this->reader_config.stream_rate){ + this->logError("[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); this->err_info["error type"] = "Configuration Error"; this->err_info["error details"] = "Stream rate is greater than sample rate"; - this->ctx->setState({.task = this->reader_config.task_key, .variant = "error", .details = err_info}); - LOG(ERROR) << "[NI Reader] stream rate is greater than sample rate " << this->reader_config.task_name; - this->ok_state = false; return -1; } - if (this->configureTiming()){ - LOG(ERROR) << "[NI Reader] Failed while configuring timing for NI hardware for task " << this->reader_config.task_name; - this->ok_state = false; - } + if (this->configureTiming()) this->logError("[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); + LOG(INFO) << "[NI Reader] successfully configured NI hardware for task " << this->reader_config.task_name; return 0; @@ -191,11 +177,14 @@ int ni::Source::init(){ freighter::Error ni::Source::start(){ + LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; if(this->running.exchange(true)){ + LOG(ERROR) << "[NI Reader] failed while starting reader for task " << this->reader_config.task_name << " requires reconfigure"; return freighter::NIL; } if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))){ LOG(ERROR) << "[NI Reader] failed while starting reader for task " << this->reader_config.task_name << " requires reconfigure"; + this->logError("failed while starting reader for task " + this->reader_config.task_name + " requires reconfigure"); this->clearTask(); return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); }else{ @@ -211,7 +200,7 @@ freighter::Error ni::Source::stop(){ } this->sample_thread.join(); if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))){ - LOG(ERROR) << "[NI Reader] failed while stopping reader for task " << this->reader_config.task_name; + this->logError("failed while stopping reader for task " + this->reader_config.task_name); return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); } LOG(INFO) << "[NI Reader] successfully stopped reader for task " << this->reader_config.task_name; @@ -223,9 +212,8 @@ freighter::Error ni::Source::stop(){ void ni::Source::clearTask(){ if (this->checkNIError(ni::NiDAQmxInterface::ClearTask(this->task_handle))){ - LOG(ERROR) << "[NI Reader] failed while clearing reader for task " << this->reader_config.task_name; + this->logError("failed while clearing reader for task " + this->reader_config.task_name); } - LOG(INFO) << "[NI Reader] cleared reader for task " << this->reader_config.task_name; } @@ -246,9 +234,7 @@ int ni::Source::checkNIError(int32 error){ .variant = "error", .details = err_info}); - LOG(ERROR) << "[NI Reader] Vendor Error: " << this->err_info["error details"]; - this->ok_state = false; - + this->logError("Vendor Error: " + this->err_info["error details"]); return -1; } return 0; @@ -266,4 +252,10 @@ std::vector ni::Source::getChannelKeys(){ keys.push_back(channel.channel_key); } return keys; +} + +void ni::Source::logError(std::string err_msg){ + LOG(ERROR) << "[NI Reader] " << err_msg; + this->ok_state = false; + return; } \ No newline at end of file diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 51ac4110b7..26e6390cdd 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -82,6 +82,7 @@ namespace ni{ ~Source(); void clearTask(); int checkNIError(int32 error); + void logError(std::string err_msg); std::vector getChannelKeys(); virtual void parseConfig(config::Parser & parser); From 2361e2dda02cb34dd47475c0ff3b6111cddc8bef Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 12:07:07 -0400 Subject: [PATCH 06/41] [driver] -ni : move scale init to scale struct responsibility --- driver/ni/analog_read.cpp | 97 ++++++--------------------------------- driver/ni/error.h | 39 ++++++++-------- driver/ni/ni.cpp | 21 ++------- driver/ni/ni.h | 2 +- driver/ni/scale.h | 81 ++++++++++++++++++++++++++++++-- 5 files changed, 116 insertions(+), 124 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 0f778e8e1d..286568867b 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -45,8 +45,8 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ config.min_val = channel_builder.required("min_val"); config.max_val = channel_builder.required("max_val"); - auto terminal_config = channel_builder.required("terminal_config"); + auto terminal_config = channel_builder.required("terminal_config"); config.terminal_config = (terminal_config == "PseudoDiff") ? DAQmx_Val_PseudoDiff : (terminal_config == "Diff") ? DAQmx_Val_Diff : (terminal_config == "NRSE") ? DAQmx_Val_NRSE @@ -54,8 +54,9 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ : DAQmx_Val_Cfg_Default; // check for custom scale + std::string scale_name = std::to_string(config.channel_key) + "_scale"; auto scale_parser = channel_builder.child("custom_scale"); - config.scale_config = ScaleConfig(scale_parser); + config.scale_config = ScaleConfig(scale_parser, scale_name); this->reader_config.channels.push_back(config); }); @@ -77,7 +78,6 @@ int ni::AnalogReadSource::configureTiming(){ return -1; } } else{ - LOG(INFO) << "[NI Reader] configuring special timing for task " << this->reader_config.task_name; if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, this->reader_config.timing_source.c_str(), this->reader_config.sample_rate, @@ -99,7 +99,6 @@ void ni::AnalogReadSource::acquireData(){ DataPacket data_packet; data_packet.data = new double[this->bufferSize]; data_packet.t0 = (uint64_t) ((synnax::TimeStamp::now()).value); - LOG(INFO) << "[NI Reader] Reading analog data for task " << this->reader_config.task_name; if (this->checkNIError(ni::NiDAQmxInterface::ReadAnalogF64( this->task_handle, this->numSamplesPerChannel, @@ -157,7 +156,6 @@ std::pair ni::AnalogReadSource::read(){ int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ - LOG(INFO) << "[NI Reader] Creating channel " << channel.name; if(channel.scale_config.type == "none"){ return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( this->task_handle, @@ -170,89 +168,20 @@ int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ NULL )); } else{ - // const char *const customScaleName="Acq Wheatstone Bridge Samples Scale"; - channel.scale_config.name = std::to_string(channel.channel_key) + "_scale"; - if(channel.scale_config.type == "linear"){ - LOG(INFO) << "[NI Reader] Creating Linear Scale for channel " << channel.name; - - if(this->checkNIError( - ni::NiDAQmxInterface::CreateLinScale( - channel.scale_config.name.c_str(), - channel.scale_config.scale.linear.slope, - channel.scale_config.scale.linear.offset, - ni::UNITS_MAP.at(channel.scale_config.prescaled_units), - channel.scale_config.scaled_units.c_str() - ))){ - LOG(ERROR) << "[NI Reader] failed while creating linear scale for channel " << channel.name; - return -1; - } - - LOG(INFO) << "[NI Reader] Created Linear Scale for channel " << channel.name; - } - LOG(INFO) << "[NI Reader] Creating Channel with custom scale: " << channel.scale_config.name; - + this->checkNIError(channel.scale_config.createNIScale()); return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, channel.name.c_str(), - "", - channel.terminal_config, - channel.min_val, - channel.max_val, - DAQmx_Val_FromCustomScale, - channel.scale_config.name.c_str() - )); - - //else if(channel.scale_type == "MapScale"){ - // this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( - // channel.scale_name.c_str(), - // channel.scale->map.prescaled_min, - // channel.scale->map.prescaled_max, - // channel.scale->map.scaled_min, - // channel.scale->map.scaled_max, - // ni::UNITS_MAP.at(channel.scale->map.prescaled_units), - // channel.scale->map.scaled_units.c_str() - // )); - - // } else if(channel.scale_type == "PolyScale"){ - // // create forward and reverse coeffs inputs - // float64 forward_coeffs_in[1000]; - // float64 reverse_coeffs_in[1000]; - // for(int i = 0; i < channel.scale->polynomial.num_coeffs; i++){ - // forward_coeffs_in[i] = channel.scale->polynomial.forward_coeffs[i]; - // reverse_coeffs_in[i] = channel.scale->polynomial.reverse_coeffs[i]; - // } - // this->checkNIError(ni::NiDAQmxInterface::CreatePolynomialScale( - // channel.scale_name.c_str(), - // forward_coeffs_in, - // channel.scale->polynomial.num_coeffs, - // reverse_coeffs_in, - // channel.scale->polynomial.num_coeffs, - // ni::UNITS_MAP.at(channel.scale->polynomial.prescaled_units), - // channel.scale->polynomial.scaled_units.c_str() - - // )); - - // } else if(channel.scale_type == "TableScale"){ - // // create prescaled and scaled inputs - // float64 prescaled[1000]; - // float64 scaled[1000]; - // for(int i = 0; i < channel.scale->table.num_points; i++){ - // prescaled[i] = channel.scale->table.prescaled[i]; - // scaled[i] = channel.scale->table.scaled[i]; - // } - // this->checkNIError(ni::NiDAQmxInterface::CreateTableScale( - // channel.scale_name.c_str(), - // prescaled, - // channel.scale->table.num_points, - // scaled, - // channel.scale->table.num_points, - // ni::UNITS_MAP.at(channel.scale->table.prescaled_units), - // channel.scale->table.scaled_units.c_str() - // )); - // } - // create channel + this->task_handle, channel.name.c_str(), + "", + channel.terminal_config, + channel.min_val, + channel.max_val, + DAQmx_Val_FromCustomScale, + channel.scale_config.name.c_str() + )); } } + int ni::AnalogReadSource::createChannels(){ int err = 0; auto channels = this->reader_config.channels; diff --git a/driver/ni/error.h b/driver/ni/error.h index d8df84511d..a1baa3ef3e 100644 --- a/driver/ni/error.h +++ b/driver/ni/error.h @@ -25,7 +25,8 @@ namespace ni{ enum class ActionRequired { Warning, - ImmediateAction + ImmediateAction, + Stall }; // Struct to hold error information @@ -53,27 +54,27 @@ namespace ni{ {-209873, {Category::Other, ActionRequired::ImmediateAction, "Specified operation cannot be performed because it is not supported in a debug session."}}, {-209872, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because it is not permitted in monitor mode.Make sure the debug session is in control mode before requesting this operation."}}, {-209871, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed because your device contains multiple banks, and the property has different values for different banks. Get this property one bank at a time by changing the active device name to specify each individual bank."}}, - {-209870, {Category::Other, ActionRequired::Warning, "Timing source creation has failed because another timing source has already been registered for this task."}}, - {-209869, {Category::Hardware, ActionRequired::Warning, "Requested value is not a supported value for this hardware revision. However, it may be supported on later revisions. Visit ni.com/info, and enter the info code \"fielddaqfilter\" for additional information."}}, - {-209868, {Category::Other, ActionRequired::Warning, "To set the sensor power supply voltage level, you must specify the sensor power configuration."}}, - {-209867, {Category::Other, ActionRequired::Warning, "To enable the sensor power supply, you must specify the sensor power voltage level."}}, + {-209870, {Category::Other, ActionRequired::ImmediateAction, "Timing source creation has failed because another timing source has already been registered for this task."}}, + {-209869, {Category::Hardware, ActionRequired::ImmediateAction, "Requested value is not a supported value for this hardware revision. However, it may be supported on later revisions. Visit ni.com/info, and enter the info code \"fielddaqfilter\" for additional information."}}, + {-209868, {Category::Other, ActionRequired::ImmediateAction, "To set the sensor power supply voltage level, you must specify the sensor power configuration."}}, + {-209867, {Category::Other, ActionRequired::ImmediateAction, "To enable the sensor power supply, you must specify the sensor power voltage level."}}, {-209866, {Category::Hardware, ActionRequired::Warning, "The hardware cannot acquire data from the configured scanlist. Please enter the info code that follows at ni.com/info for additional information."}}, - {-209865, {Category::Other, ActionRequired::Warning, "All internal routes have been reserved. If you are using time-based synchronization, please refer to info code \"TimeTriggerLimits\" at ni.com/info for additional information."}}, + {-209865, {Category::Other, ActionRequired::ImmediateAction, "All internal routes have been reserved. If you are using time-based synchronization, please refer to info code \"TimeTriggerLimits\" at ni.com/info for additional information."}}, {-209864, {Category::Other, ActionRequired::Warning, "The requested Reset Delay cannot be set based on your task configuration. If you are using C Series modules from different chassis in the same task, it is possible that the sample rate and module types cannot be synchronized effectively."}}, - {-209863, {Category::Other, ActionRequired::Warning, "Exceeded total number of time triggers available. Try disabling time triggers that are enabled on one or more DAQ tasks in your system. If no more time triggers can be disabled, try disabling other features that require internal routing resources. Please refer to info code \"TimeTriggerLimits\" at ni.com/info for more information."}}, - {-209862, {Category::Other, ActionRequired::Warning, "Exceeded total number of timestamps available. Try disabling timestamps that are user-defined or enabled by default on one or more DAQ tasks in your system."}}, - {-209861, {Category::Hardware, ActionRequired::Warning, "One or more devices in your task are not running the IEEE 802.1AS or IEEE 1588 synchronization protocol. Use the NI-Sync LabVIEW API to enable 802.1AS or 1588. Refer to the NI-Sync help or LabVIEW examples for more information."}}, - {-209860, {Category::Hardware, ActionRequired::Warning, "One or more devices could not be added to your task because they have existing coherency requirements that conflict with the new requirements of your current task. Stop the task(s) that use devices in this task and try running it again."}}, - {-209859, {Category::Hardware, ActionRequired::Warning, "The devices in your task must be synchronized to one another using the IEEE 802.1AS or IEEE 1588 synchronization protocol. Connect the devices, either directly or via an 802.1AS or 1588-capable switch."}}, + {-209863, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of time triggers available. Try disabling time triggers that are enabled on one or more DAQ tasks in your system. If no more time triggers can be disabled, try disabling other features that require internal routing resources. Please refer to info code \"TimeTriggerLimits\" at ni.com/info for more information."}}, + {-209862, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of timestamps available. Try disabling timestamps that are user-defined or enabled by default on one or more DAQ tasks in your system."}}, + {-209861, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices in your task are not running the IEEE 802.1AS or IEEE 1588 synchronization protocol. Use the NI-Sync LabVIEW API to enable 802.1AS or 1588. Refer to the NI-Sync help or LabVIEW examples for more information."}}, + {-209860, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices could not be added to your task because they have existing coherency requirements that conflict with the new requirements of your current task. Stop the task(s) that use devices in this task and try running it again."}}, + {-209859, {Category::Hardware, ActionRequired::ImmediateAction, "The devices in your task must be synchronized to one another using the IEEE 802.1AS or IEEE 1588 synchronization protocol. Connect the devices, either directly or via an 802.1AS or 1588-capable switch."}}, {-209858, {Category::Other, ActionRequired::ImmediateAction, "FieldDAQ bank name specified is invalid. FieldDAQ bank names are of the form -Bank. For example, FieldDAQ1-Bank1."}}, - {-209857, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that do not support the DAQmx hardware-timed single-point sample mode."}}, - {-209856, {Category::Other, ActionRequired::Warning, "Bank type in the source storage does not match the bank type in the destination."}}, - {-209855, {Category::Hardware, ActionRequired::Warning, "FieldDAQ device does not support the specified number of banks. The bank number specified may be too large. Change the bank number to be a valid bank number."}}, + {-209857, {Category::Hardware, ActionRequired::ImmediateAction, "Task contains physical channels on one or more devices that do not support the DAQmx hardware-timed single-point sample mode."}}, + {-209856, {Category::Other, ActionRequired::ImmediateAction, "Bank type in the source storage does not match the bank type in the destination."}}, + {-209855, {Category::Hardware, ActionRequired::ImmediateAction, "FieldDAQ device does not support the specified number of banks. The bank number specified may be too large. Change the bank number to be a valid bank number."}}, {-209854, {Category::Other, ActionRequired::ImmediateAction, "The simulated FieldDAQ bank is not supported on this simulated FieldDAQ."}}, - {-209853, {Category::Other, ActionRequired::Warning, "The IsSimulated flags for FieldDAQ and banks must match. Change the IsSimulated flags in the import file so that they match."}}, - {-209852, {Category::Hardware, ActionRequired::Warning, "The specified device is no longer supported within the NI-DAQmx API."}}, - {-209851, {Category::Other, ActionRequired::Warning, "The requested Sample Timing Engine does not support Use Only Onboard Memory."}}, - {-209850, {Category::Other, ActionRequired::Warning, "Task name specified conflicts with an existing task name in another project."}}, + {-209853, {Category::Other, ActionRequired::ImmediateAction, "The IsSimulated flags for FieldDAQ and banks must match. Change the IsSimulated flags in the import file so that they match."}}, + {-209852, {Category::Hardware, ActionRequired::ImmediateAction, "The specified device is no longer supported within the NI-DAQmx API."}}, + {-209851, {Category::Other, ActionRequired::ImmediateAction, "The requested Sample Timing Engine does not support Use Only Onboard Memory."}}, + {-209850, {Category::Other, ActionRequired::ImmediateAction, "Task name specified conflicts with an existing task name in another project."}}, {-209849, {Category::Other, ActionRequired::Warning, "A time Arm Start Trigger and time Start Trigger are configured. Ensure the Arm Start Trigger comes first."}}, {-209848, {Category::Hardware, ActionRequired::Warning, "The time trigger cannot be configured because your device has lost synchronization lock to the grand master."}}, {-209847, {Category::Configuration, ActionRequired::ImmediateAction, "Specified value is not supported for this property. Supported values are -1 (infinite window) or non-negative numbers up to 15.768000e9."}}, @@ -88,7 +89,7 @@ namespace ni{ {-209838, {Category::Configuration, ActionRequired::Warning, "Synchronization lock was lost during operation. If the occasional loss of synchronization is acceptable, change the Synchronization Unlock Behavior property to ignore sync loss. Otherwise, go to ni.com for more information about sync loss management."}}, {-209837, {Category::Other, ActionRequired::Warning, "The timescales for time start trigger and time sync pulse must be the same."}}, {-209836, {Category::Hardware, ActionRequired::Warning, "The devices in your task cannot be synchronized. This may be because there are no available synchronization mechanisms between the devices."}}, - {-209835, {Category::Configuration, ActionRequired::Warning, "The specified property requires all associated channels to use the same range as specified by the Maximum and Minimum properties. Try setting the same Maximum and Minimum Values on each channel or change the conflicting property."}}, + {-209835, {Category::Configuration, ActionRequired::ImmediateAction, "The specified property requires all associated channels to use the same range as specified by the Maximum and Minimum properties. Try setting the same Maximum and Minimum Values on each channel or change the conflicting property."}}, {-209834, {Category::Configuration, ActionRequired::Warning, "Sample rate exceeds the maximum sample rate for the number of channels and property values specified. Reduce the sample rate or number of channels. Changing the specified property values may also increase the maximum possible sample rate."}}, {-209833, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Wait for Valid Timestamp is not supported by one or more devices in this task."}}, {-209832, {Category::Other, ActionRequired::Warning, "Specified Trigger Window has elapsed without a trigger being detected."}}, diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 97c91e324b..6ddd55c49b 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -56,7 +56,6 @@ void ni::Source::getIndexKeys(){ std::set index_keys; //iterate through channels in reader config for (auto &channel : this->reader_config.channels){ - LOG(INFO) << "constructing index channel configs"; auto [channel_info, err] = this->ctx->client->channels.retrieve(channel.channel_key); // TODO handle error with breaker if (err != freighter::NIL){ @@ -70,7 +69,6 @@ void ni::Source::getIndexKeys(){ // now iterate through the set and add all the index channels as configs for (auto it = index_keys.begin(); it != index_keys.end(); ++it){ auto index_key = *it; - LOG(INFO) << "constructing index channel configs"; auto [channel_info, err] = this->ctx->client->channels.retrieve(index_key); if (err != freighter::NIL){ this->logError("failed to retrieve channel " + index_key); @@ -81,7 +79,7 @@ void ni::Source::getIndexKeys(){ index_channel.channel_type = "index"; index_channel.name = channel_info.name; this->reader_config.channels.push_back(index_channel); - LOG(INFO) << "[NI Reader] index channel " << index_channel.channel_key << " and name: " << index_channel.name <<" added to task " << this->reader_config.task_name; + // LOG(INFO) << "[NI Reader] index channel " << index_channel.channel_key << " and name: " << index_channel.name <<" added to task " << this->reader_config.task_name; } } } @@ -120,8 +118,6 @@ void ni::Source::parseConfig(config::Parser &parser){ } int ni::Source::init(){ - LOG(INFO) << "[NI Source] init " << this->task.name; - // Create parser auto config_parser = config::Parser(this->task.config); this->reader_config.task_name = this->task.name; @@ -139,9 +135,6 @@ int ni::Source::init(){ .details = config_parser.error_json()}); return -1; } - - LOG(INFO) << "[NI Reader] successfully parsed configuration for " << this->reader_config.task_name; - this->getIndexKeys(); // Create breaker auto breaker_config = breaker::Config{ @@ -177,25 +170,21 @@ int ni::Source::init(){ freighter::Error ni::Source::start(){ - LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; - if(this->running.exchange(true)){ - LOG(ERROR) << "[NI Reader] failed while starting reader for task " << this->reader_config.task_name << " requires reconfigure"; + if(this->running.exchange(true) || !this->ok()){ return freighter::NIL; } if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))){ - LOG(ERROR) << "[NI Reader] failed while starting reader for task " << this->reader_config.task_name << " requires reconfigure"; this->logError("failed while starting reader for task " + this->reader_config.task_name + " requires reconfigure"); this->clearTask(); return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); }else{ this->sample_thread = std::thread(&ni::Source::acquireData, this); - LOG(INFO) << "[NI Reader] successfully started reader for task " << this->reader_config.task_name; } return freighter::NIL; } freighter::Error ni::Source::stop(){ - if(!this->running.exchange(false)){ + if(!this->running.exchange(false) || !this->ok()){ return freighter::NIL; } this->sample_thread.join(); @@ -203,7 +192,6 @@ freighter::Error ni::Source::stop(){ this->logError("failed while stopping reader for task " + this->reader_config.task_name); return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); } - LOG(INFO) << "[NI Reader] successfully stopped reader for task " << this->reader_config.task_name; data_queue.reset(); return freighter::NIL; @@ -234,13 +222,12 @@ int ni::Source::checkNIError(int32 error){ .variant = "error", .details = err_info}); - this->logError("Vendor Error: " + this->err_info["error details"]); + this->logError("Vendor Error: " + this->err_info["error details"].dump()); return -1; } return 0; } - bool ni::Source::ok(){ return this->ok_state; } diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 26e6390cdd..0090e9f274 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -144,7 +144,7 @@ namespace ni{ }; - /////////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////////// // DigitalReadSource // /////////////////////////////////////////////////////////////////////////////////// class DigitalReadSource : public Source{ diff --git a/driver/ni/scale.h b/driver/ni/scale.h index c27e693bbb..63f3a9a97d 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -145,8 +145,9 @@ namespace ni{ ScaleConfig() = default; - ScaleConfig(config::Parser & parser) - : type(parser.required("type")), + ScaleConfig(config::Parser & parser, std::string &name) + : name(name), + type(parser.required("type")), prescaled_units(parser.optional("pre_scaled_units", "")), scaled_units(parser.optional("scaled_units", "")), parser(parser){ @@ -204,7 +205,81 @@ namespace ni{ // move constructor ScaleConfig(ScaleConfig && other) = delete; + + // create NI Scale + int32 createNIScale(){ + if(type == "linear"){ + return ni::NiDAQmxInterface::CreateLinScale( + name.c_str(), + scale.linear.slope, + scale.linear.offset, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); + } else if(type == "map"){ + return 0; + } else if(type == "polynomial"){ + return 0; + } else if(type == "table"){ + return 0; + } else{ + LOG(ERROR) << "failed to create custom scale for " << name; + return -1; + } + } + + } ScaleConfig; }; -//TODO: do parser checks all over here \ No newline at end of file +//TODO: do parser checks all over here + + //else if(channel.scale_type == "MapScale"){ + // this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( + // channel.scale_name.c_str(), + // channel.scale->map.prescaled_min, + // channel.scale->map.prescaled_max, + // channel.scale->map.scaled_min, + // channel.scale->map.scaled_max, + // ni::UNITS_MAP.at(channel.scale->map.prescaled_units), + // channel.scale->map.scaled_units.c_str() + // )); + + // } else if(channel.scale_type == "PolyScale"){ + // // create forward and reverse coeffs inputs + // float64 forward_coeffs_in[1000]; + // float64 reverse_coeffs_in[1000]; + // for(int i = 0; i < channel.scale->polynomial.num_coeffs; i++){ + // forward_coeffs_in[i] = channel.scale->polynomial.forward_coeffs[i]; + // reverse_coeffs_in[i] = channel.scale->polynomial.reverse_coeffs[i]; + // } + // this->checkNIError(ni::NiDAQmxInterface::CreatePolynomialScale( + // channel.scale_name.c_str(), + // forward_coeffs_in, + // channel.scale->polynomial.num_coeffs, + // reverse_coeffs_in, + // channel.scale->polynomial.num_coeffs, + // ni::UNITS_MAP.at(channel.scale->polynomial.prescaled_units), + // channel.scale->polynomial.scaled_units.c_str() + + // )); + + // } else if(channel.scale_type == "TableScale"){ + // // create prescaled and scaled inputs + // float64 prescaled[1000]; + // float64 scaled[1000]; + // for(int i = 0; i < channel.scale->table.num_points; i++){ + // prescaled[i] = channel.scale->table.prescaled[i]; + // scaled[i] = channel.scale->table.scaled[i]; + // } + // this->checkNIError(ni::NiDAQmxInterface::CreateTableScale( + // channel.scale_name.c_str(), + // prescaled, + // channel.scale->table.num_points, + // scaled, + // channel.scale->table.num_points, + // ni::UNITS_MAP.at(channel.scale->table.prescaled_units), + // channel.scale->table.scaled_units.c_str() + // )); + // } + // create channel \ No newline at end of file From d819d710f8eed1fd76f55cf81580fe0f4872c687 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 12:11:55 -0400 Subject: [PATCH 07/41] [driver] - ni map scale functionality verified --- driver/ni/scale.h | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 63f3a9a97d..1e7cf824c5 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -47,8 +47,8 @@ namespace ni{ MapScale() = default; MapScale(config::Parser & parser) - : prescaled_min(parser.required("prescaled_min")), - prescaled_max(parser.required("prescaled_max")), + : prescaled_min(parser.required("pre_scaled_min")), + prescaled_max(parser.required("pre_scaled_max")), scaled_min(parser.required("scaled_min")), scaled_max(parser.required("scaled_max")){} @@ -217,7 +217,15 @@ namespace ni{ scaled_units.c_str() ); } else if(type == "map"){ - return 0; + return ni::NiDAQmxInterface::CreateMapScale( + name.c_str(), + scale.map.prescaled_min, + scale.map.prescaled_max, + scale.map.scaled_min, + scale.map.scaled_max, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); } else if(type == "polynomial"){ return 0; } else if(type == "table"){ @@ -234,16 +242,6 @@ namespace ni{ //TODO: do parser checks all over here - //else if(channel.scale_type == "MapScale"){ - // this->checkNIError(ni::NiDAQmxInterface::CreateMapScale( - // channel.scale_name.c_str(), - // channel.scale->map.prescaled_min, - // channel.scale->map.prescaled_max, - // channel.scale->map.scaled_min, - // channel.scale->map.scaled_max, - // ni::UNITS_MAP.at(channel.scale->map.prescaled_units), - // channel.scale->map.scaled_units.c_str() - // )); // } else if(channel.scale_type == "PolyScale"){ // // create forward and reverse coeffs inputs From aa86916f1314d08af916162b336dbda214234b5d Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 12:33:15 -0400 Subject: [PATCH 08/41] [driver] add in calls for the other scale creates --- driver/ni/scale.h | 79 ++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 1e7cf824c5..e43258a028 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -209,6 +209,7 @@ namespace ni{ // create NI Scale int32 createNIScale(){ if(type == "linear"){ + return ni::NiDAQmxInterface::CreateLinScale( name.c_str(), scale.linear.slope, @@ -217,6 +218,7 @@ namespace ni{ scaled_units.c_str() ); } else if(type == "map"){ + return ni::NiDAQmxInterface::CreateMapScale( name.c_str(), scale.map.prescaled_min, @@ -227,8 +229,41 @@ namespace ni{ scaled_units.c_str() ); } else if(type == "polynomial"){ - return 0; + + float64 forward_coeffs_in[1000]; + float64 reverse_coeffs_in[1000]; + for(int i = 0; i < scale.polynomial.num_coeffs; i++){ + forward_coeffs_in[i] = scale.polynomial.forward_coeffs[i]; + reverse_coeffs_in[i] = scale.polynomial.reverse_coeffs[i]; + } + return ni::NiDAQmxInterface::CreatePolynomialScale( + name.c_str(), + forward_coeffs_in, + scale.polynomial.num_coeffs, + reverse_coeffs_in, + scale.polynomial.num_coeffs, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); } else if(type == "table"){ + float64 prescaled_in[10000]; + float64 scaled_in[10000]; + + for(int i = 0; i < scale.table.num_points; i++){ + prescaled_in[i] = scale.table.prescaled[i]; + scaled_in[i] = scale.table.scaled[i]; + } + + return ni::NiDAQmxInterface::CreateTableScale( + name.c_str(), + prescaled_in, + scale.table.num_points, + scaled_in, + scale.table.num_points, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); + return 0; } else{ LOG(ERROR) << "failed to create custom scale for " << name; @@ -240,44 +275,4 @@ namespace ni{ } ScaleConfig; }; -//TODO: do parser checks all over here - - - // } else if(channel.scale_type == "PolyScale"){ - // // create forward and reverse coeffs inputs - // float64 forward_coeffs_in[1000]; - // float64 reverse_coeffs_in[1000]; - // for(int i = 0; i < channel.scale->polynomial.num_coeffs; i++){ - // forward_coeffs_in[i] = channel.scale->polynomial.forward_coeffs[i]; - // reverse_coeffs_in[i] = channel.scale->polynomial.reverse_coeffs[i]; - // } - // this->checkNIError(ni::NiDAQmxInterface::CreatePolynomialScale( - // channel.scale_name.c_str(), - // forward_coeffs_in, - // channel.scale->polynomial.num_coeffs, - // reverse_coeffs_in, - // channel.scale->polynomial.num_coeffs, - // ni::UNITS_MAP.at(channel.scale->polynomial.prescaled_units), - // channel.scale->polynomial.scaled_units.c_str() - - // )); - - // } else if(channel.scale_type == "TableScale"){ - // // create prescaled and scaled inputs - // float64 prescaled[1000]; - // float64 scaled[1000]; - // for(int i = 0; i < channel.scale->table.num_points; i++){ - // prescaled[i] = channel.scale->table.prescaled[i]; - // scaled[i] = channel.scale->table.scaled[i]; - // } - // this->checkNIError(ni::NiDAQmxInterface::CreateTableScale( - // channel.scale_name.c_str(), - // prescaled, - // channel.scale->table.num_points, - // scaled, - // channel.scale->table.num_points, - // ni::UNITS_MAP.at(channel.scale->table.prescaled_units), - // channel.scale->table.scaled_units.c_str() - // )); - // } - // create channel \ No newline at end of file +//TODO: do parser checks all over here \ No newline at end of file From 5207c08f478b264d9bd33b1cf421d49370894b35 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 12:53:35 -0400 Subject: [PATCH 09/41] [driver] added parser checks to all ni scale consturctors --- driver/ni/analog_read.cpp | 5 +++++ driver/ni/scale.h | 41 +++++++++++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 286568867b..068c1b0e6c 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -57,6 +57,11 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ std::string scale_name = std::to_string(config.channel_key) + "_scale"; auto scale_parser = channel_builder.child("custom_scale"); config.scale_config = ScaleConfig(scale_parser, scale_name); + if(!scale_parser.ok()){ + LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; + this->ok_state = false; + return; + } this->reader_config.channels.push_back(config); }); diff --git a/driver/ni/scale.h b/driver/ni/scale.h index e43258a028..2f0bb98039 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -34,7 +34,9 @@ namespace ni{ LinearScale(config::Parser & parser) : slope(parser.required("slope")), - offset(parser.required("y_intercept")){} + offset(parser.required("y_intercept")){ + if(!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom linear configuration"; + } } LinearScale; @@ -50,7 +52,9 @@ namespace ni{ : prescaled_min(parser.required("pre_scaled_min")), prescaled_max(parser.required("pre_scaled_max")), scaled_min(parser.required("scaled_min")), - scaled_max(parser.required("scaled_max")){} + scaled_max(parser.required("scaled_max")){ + if(!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom map configuration"; + } } MapScale; @@ -72,6 +76,14 @@ namespace ni{ max_x(parser.required("max_x")), num_points(parser.required("num_points")), poly_order(parser.required("poly_order")){ + + if(!parser.ok()){ + LOG(ERROR) << "[ni.analog] failed to parse custom polynomial scale configuration"; + forward_coeffs = nullptr; + reverse_coeffs = nullptr; + return; + } + //get json from parser json j = parser.get_json(); // get forward coeffs (prescale -> scale conversions) @@ -90,8 +102,10 @@ namespace ni{ } ~PolynomialScale(){ - delete[] forward_coeffs; - delete[] reverse_coeffs; + if(forward_coeffs != nullptr && reverse_coeffs != nullptr){ + delete[] forward_coeffs; + delete[] reverse_coeffs; + } } } PolynomialScale; @@ -105,6 +119,13 @@ namespace ni{ TableScale(config::Parser & parser) : num_points(parser.required("num_points")){ + if(!parser.ok()){ + LOG(ERROR) << "[ni.analog] failed to parse custom table configuration"; + prescaled = nullptr; + scaled = nullptr; + return; + } + //get json from parser json j = parser.get_json(); if(!j.contains("prescaled") || !j.contains("scaled")){ @@ -112,16 +133,20 @@ namespace ni{ } std::vector prescaled_vec = j["prescaled"]; std::vector scaled_vec = j["scaled"]; + prescaled = new double[num_points]; scaled = new double[num_points]; + for(int i = 0; i < prescaled_vec.size(); i++){ prescaled[i] = prescaled_vec[i]; scaled[i] = scaled_vec[i]; } } ~TableScale(){ - delete[] prescaled; - delete[] scaled; + if(prescaled != nullptr && scaled != nullptr){ + delete[] prescaled; + delete[] scaled; + } } } TableScale; @@ -151,6 +176,10 @@ namespace ni{ prescaled_units(parser.optional("pre_scaled_units", "")), scaled_units(parser.optional("scaled_units", "")), parser(parser){ + if(!parser.ok()){ + LOG(ERROR) << "[ni.analog] failed to parse custom scale configuration for " << name; + return; + } if(type == "linear"){ scale.linear = LinearScale(parser); } else if(type == "map"){ From c9a3d4f0dc75c95e9debe6fa5ad003451b1aecf2 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 13:06:39 -0400 Subject: [PATCH 10/41] [driver] add somoe comments to analog read --- driver/ni/analog_read.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 068c1b0e6c..71532590c4 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -23,12 +23,6 @@ using json = nlohmann::json; -void ParseFloats(std::vector vec, double* arr){ - for(int i = 0; i < vec.size(); i++){ - arr[i] = vec[i]; - } -} - void ni::AnalogReadSource::parseChannels(config::Parser &parser){ LOG(INFO) << "[NI Reader] Parsing Channels for task " << this->reader_config.task_name; // now parse the channels @@ -71,7 +65,6 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ int ni::AnalogReadSource::configureTiming(){ if(this->reader_config.timing_source == "none"){ - LOG(INFO) << "[NI Reader] configuring timing for task " << this->reader_config.task_name; if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, "", this->reader_config.sample_rate, @@ -94,6 +87,9 @@ int ni::AnalogReadSource::configureTiming(){ return -1; } } + // we read data in chunks of numSamplesPerChannel such that we can send frames of data of size numSamplesPerChannel at the stream rate + // e.g. if we have 4 channels and we want to stream at 100Hz at a 1000hz sample rate + // make a make a call to read 10 samples at 100hz this->numSamplesPerChannel = std::floor(this->reader_config.sample_rate / this->reader_config.stream_rate); this->bufferSize = this->numAIChannels * this->numSamplesPerChannel; return 0; From 7529c4879b866e5b64c0f96c444bbafc21ed0aa3 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 17:00:56 -0400 Subject: [PATCH 11/41] [driver] refactored analog_read tests and build and pass --- driver/ni/BUILD.bazel | 5 +- driver/ni/analog_read.cpp | 1 + driver/ni/analog_read_test.cpp | 236 +++++++++++++++++++++++++++++++++ driver/ni/ni.cpp | 37 ++++-- driver/ni/reader_test.cpp | 1 - driver/ni/scale.h | 80 +++++------ 6 files changed, 301 insertions(+), 59 deletions(-) create mode 100644 driver/ni/analog_read_test.cpp diff --git a/driver/ni/BUILD.bazel b/driver/ni/BUILD.bazel index 6b6272c4d2..f51814f8a2 100644 --- a/driver/ni/BUILD.bazel +++ b/driver/ni/BUILD.bazel @@ -93,13 +93,12 @@ cc_library( cc_test( - name = "reader_test", + name = "analog_read_test", srcs = [ - "reader_test.cpp", + "analog_read_test.cpp", ], copts = ["/std:c++20"], deps = [ - # "daqmx", "ni", "//driver/testutil", "@com_google_googletest//:gtest_main", diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 71532590c4..222d58929f 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -92,6 +92,7 @@ int ni::AnalogReadSource::configureTiming(){ // make a make a call to read 10 samples at 100hz this->numSamplesPerChannel = std::floor(this->reader_config.sample_rate / this->reader_config.stream_rate); this->bufferSize = this->numAIChannels * this->numSamplesPerChannel; + LOG(INFO) << "[NI Reader] Configured timing for task " << this->reader_config.task_name; return 0; } diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp new file mode 100644 index 0000000000..56c734364b --- /dev/null +++ b/driver/ni/analog_read_test.cpp @@ -0,0 +1,236 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +// +// Created by Synnax on 1/29/2024. +// + +#include +#include "glog/logging.h" + +#include "client/cpp/synnax.h" +#include "driver/ni/ni.h" +#include +#include "nlohmann/json.hpp" +#include "driver/testutil/testutil.h" +#include + + + using json = nlohmann::json; + +TEST(ReaderTests, test_read_one_analog_channel){ + LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "none"} + }; + + /////////////////////////////////////////////// setup synnax test infrustructure + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + uint32_t ai_count = 0; + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + ASSERT_NEAR(s[j], ai_count, 1); + } + ai_count++; + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + std::cout << std::endl; + reader.stop(); +} + +TEST(ReaderTests, test_read_multiple_analog_channel){ + LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "none"} + }; + + /////////////////////////////////////////////// setup synnax test infrustructure + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + auto [data1, dErr2] = client->channels.create( // analog input channel + "ai2", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr2) << dErr.message(); + auto [data2, dErr3] = client->channels.create( // analog input channel + "ai3", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr3) << dErr.message(); + auto [data3, dErr4] = client->channels.create( // analog input channel + "ai4", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr4) << dErr.message(); + + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a2", data1.key, 1, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a3", data2.key, 2, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a4", data3.key, 3, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + + auto [frame, err] = reader.read(); + + //iterate through each series and print the data + for(int i = 0; i < 30; i++ ) { // test for 50 read cycles + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + //iterate through each series and print the data + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + ASSERT_NEAR(s[j], 0, 10); // can be any value of a sine wave from -10 to 10 + } + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + std::cout << std::endl; + } + reader.stop(); +} diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 6ddd55c49b..a256ff6e16 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -53,6 +53,7 @@ const std::map ni::UNITS_MAP = { void ni::Source::getIndexKeys(){ + LOG(INFO) << "[NI Reader] acquiring index channels for task " << this->reader_config.task_name; std::set index_keys; //iterate through channels in reader config for (auto &channel : this->reader_config.channels){ @@ -66,6 +67,8 @@ void ni::Source::getIndexKeys(){ } } + LOG(INFO) << "[NI Reader] acquiring index channels for task 2 " << this->reader_config.task_name; + // now iterate through the set and add all the index channels as configs for (auto it = index_keys.begin(); it != index_keys.end(); ++it){ auto index_key = *it; @@ -100,14 +103,18 @@ void ni::Source::parseConfig(config::Parser &parser){ this->reader_config.timing_source = "none"; // parser.required("timing_source"); TODO: uncomment this when ui provides timing source - auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->reader_config.device_key); - - if (err != freighter::NIL) { - this->logError("failed to retrieve device " + this->reader_config.device_name); - return; + if(parser.optional("test", false)){ + this->reader_config.device_name = parser.required("device_location"); + } else{ + auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->reader_config.device_key); + if (err != freighter::NIL) { + this->logError("failed to retrieve device " + this->reader_config.device_name); + return; + } + this->reader_config.device_name = dev.location; } + - this->reader_config.device_name = dev.location; this->parseChannels(parser); if (!parser.ok() || !this->ok()){ this->logError("failed to parse channels for " + this->reader_config.task_name + " Parser Error: " + parser.error_json().dump()); @@ -135,7 +142,10 @@ int ni::Source::init(){ .details = config_parser.error_json()}); return -1; } + + LOG(INFO) << "[NI Reader] parsed config for " << this->reader_config.task_name; this->getIndexKeys(); + LOG(INFO) << "[NI Reader] index channels acquired for " << this->reader_config.task_name; // Create breaker auto breaker_config = breaker::Config{ .name = task.name, @@ -151,7 +161,7 @@ int ni::Source::init(){ // Configure buffer size and read resources if(this->reader_config.sample_rate < this->reader_config.stream_rate){ - this->logError("[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); + this->logError("Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); this->err_info["error type"] = "Configuration Error"; this->err_info["error details"] = "Stream rate is greater than sample rate"; this->ctx->setState({.task = this->reader_config.task_key, @@ -159,7 +169,8 @@ int ni::Source::init(){ .details = err_info}); return -1; } - + + LOG(INFO) << "[NI Reader] configuring timing for NI hardware for task " << this->reader_config.task_name; if (this->configureTiming()) this->logError("[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); @@ -170,6 +181,7 @@ int ni::Source::init(){ freighter::Error ni::Source::start(){ + LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; if(this->running.exchange(true) || !this->ok()){ return freighter::NIL; } @@ -184,6 +196,7 @@ freighter::Error ni::Source::start(){ } freighter::Error ni::Source::stop(){ + LOG(INFO) << "[NI Reader] stopping reader for task " << this->reader_config.task_name; if(!this->running.exchange(false) || !this->ok()){ return freighter::NIL; } @@ -193,6 +206,7 @@ freighter::Error ni::Source::stop(){ return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); } data_queue.reset(); + LOG(INFO) << "[NI Reader] stopped reader for task " << this->reader_config.task_name; return freighter::NIL; } @@ -211,9 +225,9 @@ ni::Source::~Source(){ int ni::Source::checkNIError(int32 error){ if (error < 0){ - char errBuff[2048] = {'\0'}; + char errBuff[4096] = {'\0'}; - ni::NiDAQmxInterface::GetExtendedErrorInfo(errBuff, 2048); + ni::NiDAQmxInterface::GetExtendedErrorInfo(errBuff, 4096); this->err_info["error type"] = "Vendor Error"; this->err_info["error details"] = errBuff; @@ -222,7 +236,8 @@ int ni::Source::checkNIError(int32 error){ .variant = "error", .details = err_info}); - this->logError("Vendor Error: " + this->err_info["error details"].dump()); + LOG(ERROR) << "[NI Reader] Vendor error: " << this->err_info["error details"]; + this->ok_state = false; return -1; } return 0; diff --git a/driver/ni/reader_test.cpp b/driver/ni/reader_test.cpp index 64f991f8a2..08064489ce 100644 --- a/driver/ni/reader_test.cpp +++ b/driver/ni/reader_test.cpp @@ -27,7 +27,6 @@ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Functional Tests // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - TEST(ReaderTests, test_read_one_digital_channel){ LOG(INFO) << "test_read_one_digital_channel: "; //<< std::endl; diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 2f0bb98039..5110cd8398 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -90,7 +90,7 @@ namespace ni{ if(!j.contains("forward_coeffs")){ return; // TODO: log error } - std::vector forward_coeffs_vec = j["forward_coeffs"]; + std::vector forward_coeffs_vec = j["forward_coeffs"].get>(); forward_coeffs = new double[num_coeffs]; // std::memcpy(forward_coeffs, other.forward_coeffs, num_coeffs * sizeof(double)); do this instead? for(int i = 0; i < forward_coeffs_vec.size(); i++){ @@ -131,8 +131,8 @@ namespace ni{ if(!j.contains("prescaled") || !j.contains("scaled")){ return; // TODO: log error } - std::vector prescaled_vec = j["prescaled"]; - std::vector scaled_vec = j["scaled"]; + std::vector prescaled_vec = j["prescaled"].get>(); + std::vector scaled_vec = j["scaled"].get>(); prescaled = new double[num_points]; scaled = new double[num_points]; @@ -188,9 +188,7 @@ namespace ni{ scale.polynomial = PolynomialScale(parser); } else if(type == "table"){ scale.table = TableScale(parser); - } else{ - LOG(ERROR) << "failed to parse custom scale configuration for"; - } + } } // copy constructor @@ -240,23 +238,23 @@ namespace ni{ if(type == "linear"){ return ni::NiDAQmxInterface::CreateLinScale( - name.c_str(), - scale.linear.slope, - scale.linear.offset, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() - ); + name.c_str(), + scale.linear.slope, + scale.linear.offset, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); } else if(type == "map"){ return ni::NiDAQmxInterface::CreateMapScale( - name.c_str(), - scale.map.prescaled_min, - scale.map.prescaled_max, - scale.map.scaled_min, - scale.map.scaled_max, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() - ); + name.c_str(), + scale.map.prescaled_min, + scale.map.prescaled_max, + scale.map.scaled_min, + scale.map.scaled_max, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); } else if(type == "polynomial"){ float64 forward_coeffs_in[1000]; @@ -266,14 +264,14 @@ namespace ni{ reverse_coeffs_in[i] = scale.polynomial.reverse_coeffs[i]; } return ni::NiDAQmxInterface::CreatePolynomialScale( - name.c_str(), - forward_coeffs_in, - scale.polynomial.num_coeffs, - reverse_coeffs_in, - scale.polynomial.num_coeffs, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() - ); + name.c_str(), + forward_coeffs_in, + scale.polynomial.num_coeffs, + reverse_coeffs_in, + scale.polynomial.num_coeffs, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); } else if(type == "table"){ float64 prescaled_in[10000]; float64 scaled_in[10000]; @@ -284,23 +282,17 @@ namespace ni{ } return ni::NiDAQmxInterface::CreateTableScale( - name.c_str(), - prescaled_in, - scale.table.num_points, - scaled_in, - scale.table.num_points, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() - ); - - return 0; - } else{ - LOG(ERROR) << "failed to create custom scale for " << name; - return -1; - } + name.c_str(), + prescaled_in, + scale.table.num_points, + scaled_in, + scale.table.num_points, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() + ); + } + return 0; } - - } ScaleConfig; }; From cef9756007e0078078e08e9e3e116233508bf6b4 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 6 Jun 2024 17:07:58 -0400 Subject: [PATCH 12/41] [driver] updated test helper functions for analog read test --- driver/testutil/testutil.cpp | 14 +++++++++----- driver/testutil/testutil.h | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/driver/testutil/testutil.cpp b/driver/testutil/testutil.cpp index 63e5efc85b..6b680f1daf 100644 --- a/driver/testutil/testutil.cpp +++ b/driver/testutil/testutil.cpp @@ -82,16 +82,21 @@ json add_AI_channel_JSON(json &config, int port, std::float_t min_val, std::float_t max_val, - std::string terminal_config){ + std::string terminal_config, + json scale_config ){ // first construct the json object for the channel json channel; channel["name"] = name; - channel["channel_type"] = "analogVoltageInput"; + channel["type"] = "ai_voltage"; channel["port"] = port; - channel["channel_key"] = key; + channel["channel"] = key; channel["min_val"] = min_val; channel["max_val"] = max_val; channel["terminal_config"] = terminal_config; + channel["units"] = "Volts"; + channel["enabled"] = true; + channel["key"] = "key"; + channel["custom_scale"] = scale_config; // now add json to the channels vector // check if the channels array exists @@ -101,8 +106,7 @@ json add_AI_channel_JSON(json &config, config["channels"].push_back(channel); return channel; - } - +} json add_DO_channel_JSON(json &config, diff --git a/driver/testutil/testutil.h b/driver/testutil/testutil.h index 2832916df1..dce5057875 100644 --- a/driver/testutil/testutil.h +++ b/driver/testutil/testutil.h @@ -66,4 +66,5 @@ json add_AI_channel_JSON(json &config, int port, std::float_t min_val, std::float_t max_val, - std::string terminal_config); \ No newline at end of file + std::string terminal_config, + json scale_config); \ No newline at end of file From a8eb210962df85f3c7b94569bfd3734d51e45b2b Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 7 Jun 2024 10:31:29 -0400 Subject: [PATCH 13/41] [driver] - update ni digital_read tests --- driver/ni/BUILD.bazel | 12 ++ driver/ni/analog_read_test.cpp | 5 +- driver/ni/digital_read_test.cpp | 223 ++++++++++++++++++++++++++++++++ 3 files changed, 237 insertions(+), 3 deletions(-) create mode 100644 driver/ni/digital_read_test.cpp diff --git a/driver/ni/BUILD.bazel b/driver/ni/BUILD.bazel index f51814f8a2..46ee4e830d 100644 --- a/driver/ni/BUILD.bazel +++ b/driver/ni/BUILD.bazel @@ -105,6 +105,18 @@ cc_test( ], ) +cc_test( + name = "digital_read_test", + srcs = [ + "digital_read_test.cpp", + ], + copts = ["/std:c++20"], + deps = [ + "ni", + "//driver/testutil", + "@com_google_googletest//:gtest_main", + ], +) cc_test( diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp index 56c734364b..62e5137356 100644 --- a/driver/ni/analog_read_test.cpp +++ b/driver/ni/analog_read_test.cpp @@ -21,8 +21,7 @@ #include "driver/testutil/testutil.h" #include - - using json = nlohmann::json; +using json = nlohmann::json; TEST(ReaderTests, test_read_one_analog_channel){ LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; @@ -40,7 +39,6 @@ TEST(ReaderTests, test_read_one_analog_channel){ {"type", "none"} }; - /////////////////////////////////////////////// setup synnax test infrustructure // create synnax client auto client_config = synnax::Config{ "localhost", @@ -112,6 +110,7 @@ TEST(ReaderTests, test_read_one_analog_channel){ } } } + std::cout << std::endl; reader.stop(); } diff --git a/driver/ni/digital_read_test.cpp b/driver/ni/digital_read_test.cpp new file mode 100644 index 0000000000..f3e1338b4e --- /dev/null +++ b/driver/ni/digital_read_test.cpp @@ -0,0 +1,223 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +// +// Created by Synnax on 1/29/2024. +//v +#include +#include "glog/logging.h" + +#include "client/cpp/synnax.h" +#include "driver/ni/ni.h" +#include +#include "nlohmann/json.hpp" +#include "driver/testutil/testutil.h" +#include + + +TEST(read_tests, one_digital_channel){ + LOG(INFO) << "test_read_one_digital_channel: "; //<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_location", "PXI1Slot2_2"}, + {"type", "digital_read"} + {"test", true}, + {"device", ""} + }; + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "d1", + synnax::UINT8, + time.key, + false + ); + + add_DI_channel_JSON(config, "d1", data.key, 0, 0); + + + // Synnax infrustructure + auto task = synnax::Task( + "my_task", // task name + "ni_digital_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::DigitalReadSource( taskHandle, + mockCtx, + task); + + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::UINT8){ + auto s = frame.series->at(i).uint8(); + for (int j = 0; j < s.size(); j++){ + std::cout << (uint32_t)s[j] << ", "; + ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + } + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); + } + } + } + + std::cout << std::endl; + reader.stop() +} + + + +TEST(read_tests, multiple_digital_channels){ + LOG(INFO) << "test_read_multiple_digital_channel: "; //<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 1000}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_location", "PXI1Slot2_2"}, + {"type", "digital_read"}, + {"test", true}, + {"device", ""} + }; + + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data1, dErr1] = client->channels.create( // analog input channel + "d1", + synnax::UINT8, + time.key, + false + ); + ASSERT_FALSE(dErr1) << tErr.message(); + auto [data2, dErr2] = client->channels.create( // analog input channel + "d2", + synnax::UINT8, + time.key, + false + ); + ASSERT_FALSE(dErr2) << tErr.message(); + auto [data3, dErr3] = client->channels.create( // analog input channel + "d3", + synnax::UINT8, + time.key, + false + ); + ASSERT_FALSE(dErr3) << tErr.message(); + auto [data4, dErr4] = client->channels.create( // analog input channel + "d4", + synnax::UINT8, + time.key, + false + ); + add_index_channel_JSON(config, "idx", 1); + add_DI_channel_JSON(config, "d1", data1.key, 0, 0); + add_DI_channel_JSON(config, "d2", data2.key, 0, 1); + add_DI_channel_JSON(config, "d3", data3.key, 0, 2); + add_DI_channel_JSON(config, "d4", data4.key, 0, 3); + + + + auto task = synnax::Task( + "my_task", + "ni_digital_read", + to_string(config) + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni:DigitalReadSource( taskHandle, + mockCtx, + task); + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + + for(int i = 0; i < 15; i++ ) { // test for 50 read cycles + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::UINT8){ + auto s = frame.series->at(i).uint8(); + for (int j = 0; j < s.size(); j++){ + std::cout << (uint32_t)s[j] << ", "; + ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + } + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); + } + } + } + std::cout << std::endl; + } + reader.stop(); +} \ No newline at end of file From dd9ddea7a5230443e863459522a1bee970aa3660 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 8 Jun 2024 14:51:49 -0400 Subject: [PATCH 14/41] update scaling tests --- driver/ni/analog_read_test.cpp | 446 ++++++++++++++++++++++++++++++++- driver/ni/scale.h | 19 +- 2 files changed, 457 insertions(+), 8 deletions(-) diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp index 62e5137356..9ea475fd67 100644 --- a/driver/ni/analog_read_test.cpp +++ b/driver/ni/analog_read_test.cpp @@ -23,7 +23,10 @@ using json = nlohmann::json; -TEST(ReaderTests, test_read_one_analog_channel){ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Basic Tests // +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +TEST(read_tests, one_analog_channel){ LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; // Create NI readerconfig @@ -110,12 +113,12 @@ TEST(ReaderTests, test_read_one_analog_channel){ } } } - + std::cout << std::endl; reader.stop(); } -TEST(ReaderTests, test_read_multiple_analog_channel){ +TEST(read_tests, multiple_analog_channels){ LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; // Create NI readerconfig @@ -123,7 +126,7 @@ TEST(ReaderTests, test_read_multiple_analog_channel){ {"sample_rate", 100}, {"stream_rate", 20}, {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, + {"type", "ni_analog_read"}, //TODO: change to analog_read {"test", true}, {"device", ""} }; @@ -233,3 +236,438 @@ TEST(ReaderTests, test_read_multiple_analog_channel){ } reader.stop(); } + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Scaling Tests // +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +TEST(read_tests, analog_linear_scaling){ + LOG(INFO) << "analog_linear_scaling: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "linear"}, + {'pre_scaled_units', "Volts"}, + {'scaled_units', "Volts"}, + {"slope", 1.0}, + {"offset", 0.0} + }; + + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + uint32_t ai_count = 0; + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + ASSERT_NEAR(s[j], ai_count, 1); + } + ai_count++; + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + + std::cout << std::endl; + reader.stop(); +} + +TEST(read_tests, analog_map_scaling){ + LOG(INFO) << "analog_map_scaling: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "map"}, + {"pre_scaled_units", "Volts"}, + {"scaled_units", "Volts"}, + {"prescaled_min", 0.0}, + {"prescaled_max", 10.0}, + {"scaled_min", 0.0}, + {"scaled_max", 10.0} + }; + + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + uint32_t ai_count = 0; + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + ASSERT_NEAR(s[j], ai_count, 1); + } + ai_count++; + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + + std::cout << std::endl; + reader.stop(); +} + + +TEST(read_tests, analog_table_scaling){ + LOG(INFO) << "analog_table_scaling: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "table"}, + {"pre_scaled_units", "Volts"}, + {"scaled_units", "Volts"}, + {"num_points", 11} + {"prescaled_vals", {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}}, + {"scaled_vals", {0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0}} + }; + + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + uint32_t ai_count = 0; + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + ASSERT_NEAR(s[j], ai_count, 1); + } + ai_count++; + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + + std::cout << std::endl; + reader.stop(); +} + + + +TEST(read_tests, analog_polynomial_scaling){ + LOG(INFO) << "analog_table_scaling: "<< std::endl; + + // Create NI readerconfig + auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} + }; + json scale_config = json{ + {"type", "polynomial"}, + {"pre_scaled_units", "Volts"}, + {"scaled_units", "Volts"}, + {"order", 2}, + {"coeffs", {1.0, 3.0, 4.0}} + {"min_x", 0.0}, + {"max_x", 10.0} + }; + + // create synnax client + auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; + auto client = std::make_shared(client_config); + + // create all the necessary channels in the synnax client + auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true + ); + ASSERT_FALSE(tErr) << tErr.message(); + auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false + ); + ASSERT_FALSE(dErr) << dErr.message(); + + add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + + // create synnax task + auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config + ); + + auto mockCtx = std::make_shared(client); + + std::this_thread::sleep_for(std::chrono::milliseconds(300)); + // Now construct NI reader + TaskHandle taskHandle; + ni::NiDAQmxInterface::CreateTask("",&taskHandle); + + auto reader = ni::AnalogReadSource( taskHandle, + mockCtx, + task); // analog reader + if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; + reader.start(); + std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + auto [frame, err] = reader.read(); + std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + //iterate through each series and print the data + uint32_t ai_count = 0; + for(int i = 0; i < frame.series->size(); i++){ + std::cout << "\n\n Series " << i << ": \n"; + // check series type before casting + if (frame.series->at(i).data_type == synnax::FLOAT32){ + auto s = frame.series->at(i).float32(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); + ASSERT_NEAR(s[j], ai_count, 1); + } + ai_count++; + } + else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ + auto s = frame.series->at(i).uint64(); + for (int j = 0; j < s.size(); j++){ + std::cout << s[j] << ", "; + } + } + } + + std::cout << std::endl; + reader.stop(); +} + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Channnel Tests // +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Error Handling // +////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// TODO: +// driver errors + // - invalid channel + // - invalid scale (analog) + // linear + // - missing slope or offset or both + // - invalid slope & offset or both (i.e. isnt comptaible with specified max and min) + // map + // - missing attributes + // - prescaled_min >= prescaled_max || scaled_min >= scaled_max + // - invalid prescaled_min, prescaled_max, scaled_min, scaled_max + // polynomial + // table + // - min >= max val (analog) + // - invalid terminal config (analog) + // - invalid port (digital and analog) + // - invalid line (analog) + // - invalid device + // - stream rate > sample rate +// vendor/hardware errors + + + + + +// TODO: + + diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 5110cd8398..dbe6416b24 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -74,7 +74,7 @@ namespace ni{ : num_coeffs(parser.required("num_coeffs")), min_x(parser.required("min_x")), max_x(parser.required("max_x")), - num_points(parser.required("num_points")), + num_points(parser.optional("num_reverse_coeffs", 0)), poly_order(parser.required("poly_order")){ if(!parser.ok()){ @@ -84,13 +84,15 @@ namespace ni{ return; } + //TODO: handle if there is reverse coeffs of different size than forward coeffs + //get json from parser json j = parser.get_json(); // get forward coeffs (prescale -> scale conversions) - if(!j.contains("forward_coeffs")){ + if(!j.contains("coeffs")){ return; // TODO: log error } - std::vector forward_coeffs_vec = j["forward_coeffs"].get>(); + std::vector forward_coeffs_vec = j["coeffs"].get>(); forward_coeffs = new double[num_coeffs]; // std::memcpy(forward_coeffs, other.forward_coeffs, num_coeffs * sizeof(double)); do this instead? for(int i = 0; i < forward_coeffs_vec.size(); i++){ @@ -98,7 +100,15 @@ namespace ni{ } // get reverse coeffs (scale -> prescale conversions) reverse_coeffs = new double[num_coeffs]; // TODO: reverse coeffs might be smaller than forward_coeffs - ni::NiDAQmxInterface::CalculateReversePolyCoeff(forward_coeffs, num_coeffs, min_x, max_x, num_points, -1, reverse_coeffs); // FIXME: reversePoly order should be user inputted? + ni::NiDAQmxInterface::CalculateReversePolyCoeff( + forward_coeffs, + num_coeffs, + min_x, + max_x, + num_coeffs, + -1, + reverse_coeffs + ); // FIXME: reversePoly order should be user inputted? } ~PolynomialScale(){ @@ -170,6 +180,7 @@ namespace ni{ ScaleConfig() = default; + // Constructor ScaleConfig(config::Parser & parser, std::string &name) : name(name), type(parser.required("type")), From b94e782c00a238855e2ca8161be9f8d9758c416a Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 8 Jun 2024 17:05:07 -0400 Subject: [PATCH 15/41] [driver] all scaling types verified --- driver/ni/analog_read.cpp | 1 + driver/ni/analog_read_test.cpp | 59 +++++++++++++--------------------- driver/ni/scale.h | 7 ++-- 3 files changed, 28 insertions(+), 39 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 222d58929f..6fe5e23dec 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -50,6 +50,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // check for custom scale std::string scale_name = std::to_string(config.channel_key) + "_scale"; auto scale_parser = channel_builder.child("custom_scale"); + LOG(INFO) << "[NI Reader] Parsing custom scale for channel " << config.name; config.scale_config = ScaleConfig(scale_parser, scale_name); if(!scale_parser.ok()){ LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp index 9ea475fd67..bc73368d5e 100644 --- a/driver/ni/analog_read_test.cpp +++ b/driver/ni/analog_read_test.cpp @@ -254,10 +254,10 @@ TEST(read_tests, analog_linear_scaling){ }; json scale_config = json{ {"type", "linear"}, - {'pre_scaled_units', "Volts"}, - {'scaled_units', "Volts"}, - {"slope", 1.0}, - {"offset", 0.0} + {"pre_scaled_units", "Volts"}, + {"scaled_units", "Volts"}, + {"slope", 0.5}, + {"y_intercept", 5} }; // create synnax client @@ -284,7 +284,7 @@ TEST(read_tests, analog_linear_scaling){ ); ASSERT_FALSE(dErr) << dErr.message(); - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a1", data.key, 0, 0, 10.0, "Default", scale_config); // create synnax task @@ -311,7 +311,6 @@ TEST(read_tests, analog_linear_scaling){ std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; //iterate through each series and print the data - uint32_t ai_count = 0; for(int i = 0; i < frame.series->size(); i++){ std::cout << "\n\n Series " << i << ": \n"; // check series type before casting @@ -319,10 +318,8 @@ TEST(read_tests, analog_linear_scaling){ auto s = frame.series->at(i).float32(); for (int j = 0; j < s.size(); j++){ std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); + ASSERT_NEAR(s[j], 5, 1); } - ai_count++; } else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ auto s = frame.series->at(i).uint64(); @@ -331,7 +328,7 @@ TEST(read_tests, analog_linear_scaling){ } } } - + std::cout << std::endl; reader.stop(); } @@ -352,10 +349,10 @@ TEST(read_tests, analog_map_scaling){ {"type", "map"}, {"pre_scaled_units", "Volts"}, {"scaled_units", "Volts"}, - {"prescaled_min", 0.0}, - {"prescaled_max", 10.0}, - {"scaled_min", 0.0}, - {"scaled_max", 10.0} + {"pre_scaled_min", 0.0}, + {"pre_scaled_max", 10.0}, + {"scaled_min", 0}, + {"scaled_max", 100.0} }; // create synnax client @@ -382,7 +379,7 @@ TEST(read_tests, analog_map_scaling){ ); ASSERT_FALSE(dErr) << dErr.message(); - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a1", data.key, 0, 0, 100, "Default", scale_config); // create synnax task @@ -409,7 +406,6 @@ TEST(read_tests, analog_map_scaling){ std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; //iterate through each series and print the data - uint32_t ai_count = 0; for(int i = 0; i < frame.series->size(); i++){ std::cout << "\n\n Series " << i << ": \n"; // check series type before casting @@ -417,10 +413,8 @@ TEST(read_tests, analog_map_scaling){ auto s = frame.series->at(i).float32(); for (int j = 0; j < s.size(); j++){ std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); + ASSERT_NEAR(s[j], 50, 5); } - ai_count++; } else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ auto s = frame.series->at(i).uint64(); @@ -451,9 +445,9 @@ TEST(read_tests, analog_table_scaling){ {"type", "table"}, {"pre_scaled_units", "Volts"}, {"scaled_units", "Volts"}, - {"num_points", 11} - {"prescaled_vals", {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}}, - {"scaled_vals", {0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0}} + {"num_points", 11}, + {"pre_scaled_vals", {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}}, + {"scaled_vals", {0.0, 50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0}} }; // create synnax client @@ -480,7 +474,7 @@ TEST(read_tests, analog_table_scaling){ ); ASSERT_FALSE(dErr) << dErr.message(); - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a1", data.key, 0, 0, 500.0, "Default", scale_config); // create synnax task @@ -507,7 +501,6 @@ TEST(read_tests, analog_table_scaling){ std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; //iterate through each series and print the data - uint32_t ai_count = 0; for(int i = 0; i < frame.series->size(); i++){ std::cout << "\n\n Series " << i << ": \n"; // check series type before casting @@ -515,10 +508,8 @@ TEST(read_tests, analog_table_scaling){ auto s = frame.series->at(i).float32(); for (int j = 0; j < s.size(); j++){ std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); + ASSERT_NEAR(s[j], 250, 20); } - ai_count++; } else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ auto s = frame.series->at(i).uint64(); @@ -532,8 +523,6 @@ TEST(read_tests, analog_table_scaling){ reader.stop(); } - - TEST(read_tests, analog_polynomial_scaling){ LOG(INFO) << "analog_table_scaling: "<< std::endl; @@ -550,8 +539,9 @@ TEST(read_tests, analog_polynomial_scaling){ {"type", "polynomial"}, {"pre_scaled_units", "Volts"}, {"scaled_units", "Volts"}, - {"order", 2}, - {"coeffs", {1.0, 3.0, 4.0}} + {"poly_order", 2}, + {"coeffs", {300.0, 300.0, 43.0}}, + {"num_coeffs", 3}, {"min_x", 0.0}, {"max_x", 10.0} }; @@ -580,7 +570,7 @@ TEST(read_tests, analog_polynomial_scaling){ ); ASSERT_FALSE(dErr) << dErr.message(); - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + add_AI_channel_JSON(config, "a1", data.key, 0, 0, 10.0, "Default", scale_config); // create synnax task @@ -607,7 +597,6 @@ TEST(read_tests, analog_polynomial_scaling){ std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; //iterate through each series and print the data - uint32_t ai_count = 0; for(int i = 0; i < frame.series->size(); i++){ std::cout << "\n\n Series " << i << ": \n"; // check series type before casting @@ -615,10 +604,8 @@ TEST(read_tests, analog_polynomial_scaling){ auto s = frame.series->at(i).float32(); for (int j = 0; j < s.size(); j++){ std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); + ASSERT_NEAR(s[j], 117, 2); } - ai_count++; } else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ auto s = frame.series->at(i).uint64(); diff --git a/driver/ni/scale.h b/driver/ni/scale.h index dbe6416b24..494f75fd3a 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -138,11 +138,12 @@ namespace ni{ //get json from parser json j = parser.get_json(); - if(!j.contains("prescaled") || !j.contains("scaled")){ + if(!j.contains("pre_scaled_vals") || !j.contains("scaled_vals")){ + LOG(ERROR) << "[ni.analog] failed to parse custom table configuration: missing pre_scaled_vals or scaled_vals"; return; // TODO: log error } - std::vector prescaled_vec = j["prescaled"].get>(); - std::vector scaled_vec = j["scaled"].get>(); + std::vector prescaled_vec = j["pre_scaled_vals"].get>(); + std::vector scaled_vec = j["scaled_vals"].get>(); prescaled = new double[num_points]; scaled = new double[num_points]; From 322b01dc5c4412a0171488b66672984b7dc8bd98 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Tue, 11 Jun 2024 16:22:00 -0400 Subject: [PATCH 16/41] checkpoint --- driver/ni/ni.cpp | 15 +++++++++++++++ driver/ni/task.cpp | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index a256ff6e16..493a5ee067 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -192,6 +192,14 @@ freighter::Error ni::Source::start(){ }else{ this->sample_thread = std::thread(&ni::Source::acquireData, this); } + ctx->setState({ + .task = task.key, + .variant = "success", + .details = { + {"running", true} + } + }); + return freighter::NIL; } @@ -207,6 +215,13 @@ freighter::Error ni::Source::stop(){ } data_queue.reset(); LOG(INFO) << "[NI Reader] stopped reader for task " << this->reader_config.task_name; + ctx->setState({ + .task = task.key, + .variant = "success", + .details = { + {"running", false} + } + }); return freighter::NIL; } diff --git a/driver/ni/task.cpp b/driver/ni/task.cpp index bff929b0b5..44ccde0b34 100644 --- a/driver/ni/task.cpp +++ b/driver/ni/task.cpp @@ -196,13 +196,6 @@ void ni::ReaderTask::stop(){ return; } daq_read_pipe.stop(); - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); LOG(INFO) << "[NI Task] successfully stopped task " << this->task.name; } @@ -212,13 +205,6 @@ void ni::ReaderTask::start(){ return; } daq_read_pipe.start(); - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", true} - } - }); LOG(INFO) << "[NI Task] successfully started task " << this->task.name; } From 27f30bbabca5d98ef65da25d801a9caf5d91c4ad Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Tue, 11 Jun 2024 16:23:53 -0400 Subject: [PATCH 17/41] merge conflicts --- driver/ni/analog_read_test.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp index 9ea475fd67..0b19a3dba7 100644 --- a/driver/ni/analog_read_test.cpp +++ b/driver/ni/analog_read_test.cpp @@ -644,7 +644,7 @@ TEST(read_tests, analog_polynomial_scaling){ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TODO: -// driver errors +// driver errors // - invalid channel // - invalid scale (analog) // linear @@ -662,12 +662,9 @@ TEST(read_tests, analog_polynomial_scaling){ // - invalid line (analog) // - invalid device // - stream rate > sample rate -// vendor/hardware errors - - - - - -// TODO: - +// vendor/hardware errors +// double start +// double stop +// read function failed state +// write function failed From 2ff5fff76a13aa4ee5893d8d4fb60d78e5e68309 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 12 Jun 2024 11:57:28 -0400 Subject: [PATCH 18/41] specify c++ versions for heartbeat and driver --- driver/BUILD.bazel | 1 + driver/heartbeat/BUILD.bazel | 1 + 2 files changed, 2 insertions(+) diff --git a/driver/BUILD.bazel b/driver/BUILD.bazel index 6d5c176208..a882a04236 100644 --- a/driver/BUILD.bazel +++ b/driver/BUILD.bazel @@ -48,6 +48,7 @@ cc_binary( srcs = ["main.cpp"], copts = select({ "@platforms//os:windows": ["/std:c++20"], + "@platforms//os:linux": ["-std=c++20"], "//conditions:default": [], }), linkopts = select({ diff --git a/driver/heartbeat/BUILD.bazel b/driver/heartbeat/BUILD.bazel index 7aaa0bdd0e..5cae17d5bf 100644 --- a/driver/heartbeat/BUILD.bazel +++ b/driver/heartbeat/BUILD.bazel @@ -26,6 +26,7 @@ cc_test( ], copts = select({ "@platforms//os:windows": ["/std:c++20"], + "@platforms//os:linux": ["-std=c++20"], "//conditions:default": [], }), visibility = ["//visibility:public"], From befd8b52b972a95bce9c0ac21f8b1a10e8407f6a Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 12 Jun 2024 12:14:24 -0400 Subject: [PATCH 19/41] specify c++ versions for heartbeat and driver --- driver/ni/ni.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 9e2a6e19f7..2642efdea0 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -203,7 +203,7 @@ freighter::Error ni::Source::stop(){ this->sample_thread.join(); if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))){ this->logError("failed while stopping reader for task " + this->reader_config.task_name); - return freighter::Error(driver::TYPE_CRITICAL_HARDWARE_ERROR); + return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } data_queue.reset(); LOG(INFO) << "[NI Reader] stopped reader for task " << this->reader_config.task_name; From 9b485f7936c9e9d982de437c7d0877773b4bf233 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 12 Jun 2024 12:52:22 -0400 Subject: [PATCH 20/41] fix warnings and absolute typo --- client/cpp/telem/control.h | 3 ++- driver/ni/digital_write.cpp | 5 ++--- driver/ni/ni.cpp | 16 ++++++++-------- driver/ni/scanner.cpp | 10 +++++++++- driver/opc/reader.h | 2 +- driver/opc/util.cpp | 2 +- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/client/cpp/telem/control.h b/client/cpp/telem/control.h index 52142c938f..e9de21750b 100644 --- a/client/cpp/telem/control.h +++ b/client/cpp/telem/control.h @@ -19,7 +19,8 @@ namespace synnax { typedef std::uint8_t Authority; -const Authority ABSOLUTE = 255; +// Do not fix this typo as it conflicts with an existing symbol, causing build to break. +const Authority ABSOLUTTE = 255; struct ControlSubject { std::string name; diff --git a/driver/ni/digital_write.cpp b/driver/ni/digital_write.cpp index b35e3cce88..def2aef253 100644 --- a/driver/ni/digital_write.cpp +++ b/driver/ni/digital_write.cpp @@ -193,7 +193,6 @@ freighter::Error ni::DigitalWriteSink::stop(){ } freighter::Error ni::DigitalWriteSink::write(synnax::Frame frame){ - char errBuff[2048] = {'\0'}; int32 samplesWritten = 0; formatData(std::move(frame)); @@ -303,7 +302,7 @@ ni::StateSource::StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive std::pair ni::StateSource::read(){ std::unique_lock lock(this->state_mutex); waiting_reader.wait_for(lock, state_period); - return std::make_pair(std::move(this->getDriveState()), freighter::NIL); + return std::make_pair(this->getDriveState(), freighter::NIL); } freighter::Error ni::StateSource::start(){ @@ -323,7 +322,7 @@ synnax::Frame ni::StateSource::getDriveState(){ drive_state_frame.add(state.first, synnax::Series(std::vector{state.second})); } - return std::move(drive_state_frame); + return drive_state_frame; } void ni::StateSource::updateState(std::queue &modified_state_keys, std::queue &modified_state_values){ diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 2642efdea0..333915047d 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -6,14 +6,10 @@ // As of the Change Date specified in that file, in accordance with the Business Source // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -#pragma once - #include "driver/ni/ni.h" #include "driver/ni/scale.h" #include - - const std::map ni::UNITS_MAP = { {"Volts", DAQmx_Val_Volts}, {"Amps", DAQmx_Val_Amps}, @@ -60,7 +56,7 @@ void ni::Source::getIndexKeys(){ auto [channel_info, err] = this->ctx->client->channels.retrieve(channel.channel_key); // TODO handle error with breaker if (err != freighter::NIL){ - this->logError("failed to retrieve channel " + channel.channel_key); + this->logError("failed to retrieve channel " + std::to_string(channel.channel_key)); return; } else{ index_keys.insert(channel_info.index); @@ -74,7 +70,7 @@ void ni::Source::getIndexKeys(){ auto index_key = *it; auto [channel_info, err] = this->ctx->client->channels.retrieve(index_key); if (err != freighter::NIL){ - this->logError("failed to retrieve channel " + index_key); + this->logError("failed to retrieve channel " + std::to_string(index_key)); return; } else{ ni::ChannelConfig index_channel; @@ -156,8 +152,12 @@ int ni::Source::init(){ this->breaker = breaker::Breaker(breaker_config); - int err = 0; - err = this->createChannels(); + int err = this->createChannels(); + + if(err){ + this->logError("failed to create channels for " + this->reader_config.task_name); + return -1; + } // Configure buffer size and read resources if(this->reader_config.sample_rate < this->reader_config.stream_rate){ diff --git a/driver/ni/scanner.cpp b/driver/ni/scanner.cpp index d1214d3f9d..5f687c3950 100644 --- a/driver/ni/scanner.cpp +++ b/driver/ni/scanner.cpp @@ -19,7 +19,9 @@ ni::Scanner::Scanner(const std::shared_ptr &ctx, - const synnax::Task &task) : ctx(ctx), task(task){ + const synnax::Task &task) + : task(task), + ctx(ctx){ // initialize syscfg session for the scanner (TODO: Error Handling for status) NISysCfgStatus status = NISysCfg_OK; status = ni::NiSysCfgInterface::InitializeSession( @@ -32,6 +34,12 @@ ni::Scanner::Scanner(const std::shared_ptr &ctx, NULL, // expert handle &this->session // session handle ); + + if (status != NISysCfg_OK){ + this->ok_state = false; + LOG(ERROR) << "[ni.scanner] failed to initialize scanner for task " << this->task.name; + return; + } // create a filter to only identify NI devices rather than chassis and devices which are connected (which includes simulated devices) diff --git a/driver/opc/reader.h b/driver/opc/reader.h index bfaf45595b..6b0e9ec18d 100644 --- a/driver/opc/reader.h +++ b/driver/opc/reader.h @@ -75,7 +75,7 @@ class Reader final : public task::Task { ): ctx(ctx), task(std::move(task)), cfg(std::move(cfg)), - breaker(breaker::Breaker(breaker)), + breaker(breaker::Breaker(breaker_config)), pipe(pipeline::Acquisition( ctx->client, std::move(writer_config), diff --git a/driver/opc/util.cpp b/driver/opc/util.cpp index ae8955a0a6..0c15130c62 100644 --- a/driver/opc/util.cpp +++ b/driver/opc/util.cpp @@ -246,7 +246,7 @@ void fetchEndpointDiagnosticInfo( else if (security_mode == UA_MESSAGESECURITYMODE_SIGNANDENCRYPT) LOG(INFO) << "[opc.scanner] \t security: signed and encrypted"; - const UA_DataType *tokenType = client_config->userIdentityToken.content.decoded.type; + // const UA_DataType *tokenType = client_config->userIdentityToken.content.decoded.type; for (size_t j = 0; j < ep.userIdentityTokensSize; j++) { UA_UserTokenPolicy policy = ep.userIdentityTokens[j]; From c322ad5d9c54e7a28a1d56e3d0f7c5bd8c866242 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Wed, 12 Jun 2024 15:54:07 -0400 Subject: [PATCH 21/41] refactor source and sink based on new driver elements --- driver/ni/digital_write.cpp | 18 ++++++-- driver/ni/ni.cpp | 38 ++++++++-------- driver/ni/ni.h | 6 ++- driver/ni/task.cpp | 86 ++++++++++++------------------------- 4 files changed, 68 insertions(+), 80 deletions(-) diff --git a/driver/ni/digital_write.cpp b/driver/ni/digital_write.cpp index def2aef253..6b192a3a49 100644 --- a/driver/ni/digital_write.cpp +++ b/driver/ni/digital_write.cpp @@ -58,7 +58,7 @@ ni::DigitalWriteSink::DigitalWriteSink( if (!config_parser.ok()){ // Log error LOG(ERROR) << "[NI Writer] failed to parse configuration for " << this->writer_config.task_name; - this->ctx->setState({.task = task.key, + this->ctx->setState({.task = this->writer_config.task_key, .variant = "error", .details = config_parser.error_json()}); this->ok_state = false; @@ -175,7 +175,13 @@ freighter::Error ni::DigitalWriteSink::start(){ return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } LOG(INFO) << "[NI Writer] successfully started writer for task " << this->writer_config.task_name; - + ctx->setState({ + .task = this->writer_config.task_key, + .variant = "success", + .details = { + {"running", true} + } + }); return freighter::NIL; } @@ -189,6 +195,13 @@ freighter::Error ni::DigitalWriteSink::stop(){ return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } LOG(INFO) << "[NI Writer] successfully stopped writer for task " << this->writer_config.task_name; + ctx->setState({ + .task = this->writer_config.task_key, + .variant = "success", + .details = { + {"running", false} + } + }); return freighter::NIL; } @@ -286,7 +299,6 @@ std::vector ni::DigitalWriteSink::getStateChannelKeys(){ /////////////////////////////////////////////////////////////////////////////////// // StateSource // /////////////////////////////////////////////////////////////////////////////////// - ni::StateSource::StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, std::vector &drive_state_channel_keys) : state_rate(state_rate){ // start the periodic thread diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 333915047d..b75913933f 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -98,7 +98,6 @@ void ni::Source::parseConfig(config::Parser &parser){ this->reader_config.device_key = parser.required("device"); this->reader_config.timing_source = "none"; // parser.required("timing_source"); TODO: uncomment this when ui provides timing source - if(parser.optional("test", false)){ this->reader_config.device_name = parser.required("device_location"); } else{ @@ -109,15 +108,7 @@ void ni::Source::parseConfig(config::Parser &parser){ } this->reader_config.device_name = dev.location; } - - this->parseChannels(parser); - if (!parser.ok() || !this->ok()){ - this->logError("failed to parse channels for " + this->reader_config.task_name + " Parser Error: " + parser.error_json().dump()); - this->ctx->setState({.task = task.key, - .variant = "error", - .details = parser.error_json()}); - } } int ni::Source::init(){ @@ -126,11 +117,12 @@ int ni::Source::init(){ this->reader_config.task_name = this->task.name; this->reader_config.task_key = this->task.key; - // Parse configuration and make sure it is valid this->parseConfig(config_parser); - if (!config_parser.ok() || !this->ok()){ + if (!config_parser.ok()){ + json error_json = config_parser.error_json(); + error_json["running"] = false; // Log error this->logError("failed to parse configuration for " + this->reader_config.task_name + " Parser Error: " + config_parser.error_json().dump()); this->ctx->setState({.task = task.key, @@ -138,10 +130,7 @@ int ni::Source::init(){ .details = config_parser.error_json()}); return -1; } - - LOG(INFO) << "[NI Reader] parsed config for " << this->reader_config.task_name; this->getIndexKeys(); - LOG(INFO) << "[NI Reader] index channels acquired for " << this->reader_config.task_name; // Create breaker auto breaker_config = breaker::Config{ .name = task.name, @@ -151,9 +140,7 @@ int ni::Source::init(){ }; this->breaker = breaker::Breaker(breaker_config); - int err = this->createChannels(); - if(err){ this->logError("failed to create channels for " + this->reader_config.task_name); return -1; @@ -164,6 +151,7 @@ int ni::Source::init(){ this->logError("Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); this->err_info["error type"] = "Configuration Error"; this->err_info["error details"] = "Stream rate is greater than sample rate"; + this->err_info["running"] = false; this->ctx->setState({.task = this->reader_config.task_key, .variant = "error", .details = err_info}); @@ -192,6 +180,13 @@ freighter::Error ni::Source::start(){ }else{ this->sample_thread = std::thread(&ni::Source::acquireData, this); } + ctx->setState({ + .task = task.key, + .variant = "success", + .details = { + {"running", true} + } + }); return freighter::NIL; } @@ -207,8 +202,14 @@ freighter::Error ni::Source::stop(){ } data_queue.reset(); LOG(INFO) << "[NI Reader] stopped reader for task " << this->reader_config.task_name; + ctx->setState({ + .task = task.key, + .variant = "success", + .details = { + {"running", false} + } + }); return freighter::NIL; - } @@ -230,7 +231,8 @@ int ni::Source::checkNIError(int32 error){ ni::NiDAQmxInterface::GetExtendedErrorInfo(errBuff, 4096); this->err_info["error type"] = "Vendor Error"; - this->err_info["error details"] = errBuff; + this->err_info["message"] = errBuff; + this->err_info["running"] = false; this->ctx->setState({.task = this->reader_config.task_key, .variant = "error", diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 0090e9f274..1932f8964d 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -312,6 +312,7 @@ namespace ni{ explicit ReaderTask( const std::shared_ptr &ctx, synnax::Task task, std::shared_ptr source, + std::shared_ptr ni_source, synnax::WriterConfig writer_config, const breaker::Config breaker_config); @@ -329,6 +330,7 @@ namespace ni{ synnax::Task task; pipeline::Acquisition daq_read_pipe; // source is a daqreader bool ok_state = true; + std::shared_ptr source; }; /////////////////////////////////////////////////////////////////////////////////// @@ -338,7 +340,8 @@ namespace ni{ public: explicit WriterTask( const std::shared_ptr &ctx, synnax::Task task, - std::unique_ptr sink, + std::shared_ptr sink, + std::shared_ptr ni_sink, std::shared_ptr writer_state_source, synnax::WriterConfig writer_config, synnax::StreamerConfig streamer_config, @@ -363,6 +366,7 @@ namespace ni{ pipeline::Control cmd_write_pipe; pipeline::Acquisition state_write_pipe; bool ok_state = true; + std::shared_ptr sink; }; diff --git a/driver/ni/task.cpp b/driver/ni/task.cpp index 7eb7a49088..14f94a8442 100644 --- a/driver/ni/task.cpp +++ b/driver/ni/task.cpp @@ -106,11 +106,13 @@ ni::ScannerTask::~ScannerTask(){ ni::ReaderTask::ReaderTask( const std::shared_ptr &ctx, synnax::Task task, std::shared_ptr source, + std::shared_ptr ni_source, synnax::WriterConfig writer_config, const breaker::Config breaker_config ) : ctx(ctx), task(task), - daq_read_pipe(pipeline::Acquisition(ctx->client, writer_config, source, breaker_config)){ + daq_read_pipe(pipeline::Acquisition(ctx->client, writer_config, source, breaker_config)), + source(ni_source) { } @@ -136,22 +138,17 @@ std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr daq_reader; std::vector channel_keys; - if(task.type == "ni_digital_read"){ - LOG(INFO) << "[NI Task] configuring digital reader task " << task.name; - auto digital_reader = std::make_unique(task_handle, ctx, task); - digital_reader->init(); - channel_keys = digital_reader->getChannelKeys(); - daq_reader = std::move(digital_reader); + std::shared_ptr source; + std::shared_ptr ni_source; + if(task.type != "ni_analog_read"){ + ni_source = std::make_shared(task_handle, ctx, task); } else{ - LOG(INFO) << "[NI Task] configuring analog reader task " << task.name; - auto analog_reader = std::make_unique(task_handle, ctx, task); - analog_reader->init(); - channel_keys = analog_reader->getChannelKeys(); - daq_reader = std::move(analog_reader); - } - + ni_source = std::make_shared(task_handle, ctx, task); + } + source = ni_source; + ni_source->init(); + channel_keys = ni_source->getChannelKeys(); // TODO: do a check that the daq reader was constructed successfully // construct writer config @@ -172,7 +169,8 @@ std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr ( ctx, task, - std::move(daq_reader), + source, + ni_source, writer_config, breaker_config); } @@ -183,7 +181,7 @@ void ni::ReaderTask::exec(task::Command &cmd) { this->start(); } else if (cmd.type == "stop") { LOG(INFO) << "[NI Task] stopped reader task " << this->task.name; - this->stop(); + this->stop(); } else { LOG(ERROR) << "unknown command type: " << cmd.type; } @@ -195,14 +193,8 @@ void ni::ReaderTask::stop(){ LOG(INFO) << "[NI Task] did not stop " << this->task.name << " running: " << this->running << " ok: " << this->ok(); return; } - daq_read_pipe.stop(); - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); + this->daq_read_pipe.stop(); + this->source->stop(); LOG(INFO) << "[NI Task] successfully stopped task " << this->task.name; } @@ -211,14 +203,8 @@ void ni::ReaderTask::start(){ LOG(INFO) << "[NI Task] did not start " << this->task.name << " as it is not running or in error state"; return; } - daq_read_pipe.start(); - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", true} - } - }); + this->source->start(); + this->daq_read_pipe.start(); LOG(INFO) << "[NI Task] successfully started task " << this->task.name; } @@ -232,7 +218,8 @@ bool ni::ReaderTask::ok() { /////////////////////////////////////////////////////////////////////////////////// ni::WriterTask::WriterTask( const std::shared_ptr &ctx, synnax::Task task, - std::unique_ptr sink, + std::shared_ptr sink, + std::shared_ptr ni_sink, std::shared_ptr state_source, synnax::WriterConfig writer_config, synnax::StreamerConfig streamer_config, @@ -240,7 +227,8 @@ ni::WriterTask::WriterTask( const std::shared_ptr &ctx, ) : ctx(ctx), task(task), cmd_write_pipe(pipeline::Control(ctx->client, streamer_config, std::move(sink), breaker_config)), - state_write_pipe(pipeline::Acquisition(ctx->client, writer_config, state_source, breaker_config)){ + state_write_pipe(pipeline::Acquisition(ctx->client, writer_config, state_source, breaker_config)), + sink(ni_sink){ } @@ -254,15 +242,13 @@ std::unique_ptr ni::WriterTask::configure(const std::shared_ptr (task_handle, ctx, task); + + auto daq_writer = std::make_shared(task_handle, ctx, task); if (!daq_writer->ok()) { LOG(ERROR) << "[NI Writer] failed to construct reader for" << task.name; return nullptr; @@ -299,7 +285,8 @@ std::unique_ptr ni::WriterTask::configure(const std::shared_ptr ( ctx, task, - std::move(daq_writer), + daq_writer, + daq_writer, state_writer, writer_config, streamer_config, @@ -321,17 +308,9 @@ void ni::WriterTask::start(){ if(this->running.exchange(true) || !this->ok()){ return; } + sink->start(); this->cmd_write_pipe.start(); this->state_write_pipe.start(); - - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", true} - } - }); - LOG(INFO) << "[NI Task] successfully started task " << this->task.name; } @@ -342,15 +321,6 @@ void ni::WriterTask::stop(){ } this->state_write_pipe.stop(); this->cmd_write_pipe.stop(); - - ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); - LOG(INFO) << "[NI Task] successfully stopped task " << this->task.name; } From fdb527d4825698e057b96497da4bb05f62aa4ace Mon Sep 17 00:00:00 2001 From: Emiliano Bonilla <56323762+emilbon99@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:25:33 -0700 Subject: [PATCH 22/41] [client/py] - implemented additional elements in NI console workflow --- client/ts/src/channel/client.ts | 31 +- client/ts/src/framer/client.spec.ts | 6 + client/ts/src/ontology/group/external.ts | 1 + client/ts/src/ontology/group/payload.ts | 4 +- client/ts/src/ontology/group/writer.ts | 4 +- console/src/fs/LoadFileContents.tsx | 61 +- console/src/hardware/ni/device/Configure.tsx | 53 +- console/src/hardware/ni/device/buildGroups.ts | 65 +- console/src/hardware/ni/task/ChannelForms.tsx | 120 +- .../hardware/ni/task/ConfigureAnalogRead.tsx | 2 +- console/src/hardware/ni/task/types.ts | 2 + console/src/hardware/opc/device/Configure.tsx | 6 +- pluto/.vscode/settings.json | 6 +- pluto/src/divider/Divider.css | 4 +- pluto/src/form/Form.tsx | 27 +- pluto/src/state/state.ts | 20 +- pluto/src/tree/core.ts | 4 +- pnpm-lock.yaml | 14884 ++++++++-------- synnax/pkg/api/api.go | 11 +- synnax/pkg/api/channel.go | 15 + synnax/pkg/api/grpc/grpc.go | 1 + synnax/pkg/api/http/http.go | 1 + synnax/pkg/distribution/channel/service.go | 4 + x/ts/src/binary/encoder.spec.ts | 124 +- x/ts/src/binary/encoder.ts | 92 +- x/ts/src/compare/compare.spec.ts | 49 + x/ts/src/compare/compare.ts | 29 +- 27 files changed, 7619 insertions(+), 8007 deletions(-) create mode 100644 x/ts/src/compare/compare.spec.ts diff --git a/client/ts/src/channel/client.ts b/client/ts/src/channel/client.ts index 372fe45ee2..3238f632df 100644 --- a/client/ts/src/channel/client.ts +++ b/client/ts/src/channel/client.ts @@ -7,7 +7,7 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -import { type UnaryClient } from "@synnaxlabs/freighter"; +import { sendRequired, type UnaryClient } from "@synnaxlabs/freighter"; import { type AsyncTermSearcher } from "@synnaxlabs/x/search"; import { type CrudeDensity, @@ -19,6 +19,7 @@ import { type TypedArray, } from "@synnaxlabs/x/telem"; import { toArray } from "@synnaxlabs/x/toArray"; +import { z } from "zod"; import { type Key, @@ -39,6 +40,8 @@ import { import { type Writer } from "@/channel/writer"; import { ValidationError } from "@/errors"; import { type framer } from "@/framer"; +import { ontology } from "@/ontology"; +import { group } from "@/ontology/group"; import { checkForMultipleOrNoResults } from "@/util/retrieve"; interface CreateOptions { @@ -150,6 +153,13 @@ export class Channel { }); } + /*** + * @returns the ontology ID of the channel + */ + get ontologyID(): ontology.ID { + return new ontology.ID({ type: "channel", key: this.key.toString() }); + } + /** * Reads telemetry from the channel between the two timestamps. * @@ -172,6 +182,14 @@ export class Channel { } } +const RETRIEVE_GROUP_ENDPOINT = "/channel/retrieve-group"; + +const retrieveGroupReqZ = z.object({}); + +const retrieveGroupResZ = z.object({ + group: group.groupZ, +}); + /** * The core client class for executing channel operations against a Synnax * cluster. This class should not be instantiated directly, and instead should be used @@ -382,4 +400,15 @@ export class Client implements AsyncTermSearcher { const { frameClient } = this; return payloads.map((p) => new Channel({ ...p, frameClient })); } + + async retrieveGroup(): Promise { + const res = await sendRequired( + this.client, + RETRIEVE_GROUP_ENDPOINT, + {}, + retrieveGroupReqZ, + retrieveGroupResZ, + ); + return new group.Group(res.group.name, res.group.key); + } } diff --git a/client/ts/src/framer/client.spec.ts b/client/ts/src/framer/client.spec.ts index cc3d8f19c3..5c7cfb9aa2 100644 --- a/client/ts/src/framer/client.spec.ts +++ b/client/ts/src/framer/client.spec.ts @@ -60,4 +60,10 @@ describe("Client", () => { await client.write(start, data.key, 1); }); }); + describe("retrieveGroup", () => { + it("should correctly retrieve the main channel group", async () => { + const group = await client.channels.retrieveGroup(); + expect(group.name).toEqual("Channels"); + }); + }); }); diff --git a/client/ts/src/ontology/group/external.ts b/client/ts/src/ontology/group/external.ts index 67a953bf00..15d2a1d15d 100644 --- a/client/ts/src/ontology/group/external.ts +++ b/client/ts/src/ontology/group/external.ts @@ -9,3 +9,4 @@ export * from "@/ontology/group/client"; export * from "@/ontology/group/group"; +export * from "@/ontology/group/payload"; diff --git a/client/ts/src/ontology/group/payload.ts b/client/ts/src/ontology/group/payload.ts index 825ccf5c58..91fc861a8d 100644 --- a/client/ts/src/ontology/group/payload.ts +++ b/client/ts/src/ontology/group/payload.ts @@ -17,12 +17,12 @@ export type Keys = Key[]; export type Names = Name[]; export type Params = Key | Name | Keys | Names; -export const payloadZ = z.object({ +export const groupZ = z.object({ key: keyZ, name: z.string(), }); -export type Payload = z.infer; +export type Payload = z.infer; export type ParamAnalysisResult = | { diff --git a/client/ts/src/ontology/group/writer.ts b/client/ts/src/ontology/group/writer.ts index de59d53872..6a2414a52d 100644 --- a/client/ts/src/ontology/group/writer.ts +++ b/client/ts/src/ontology/group/writer.ts @@ -10,11 +10,11 @@ import { type UnaryClient } from "@synnaxlabs/freighter"; import { z } from "zod"; -import { type Payload, payloadZ } from "@/ontology/group/payload"; +import { type Payload, groupZ } from "@/ontology/group/payload"; import { type ID, idZ } from "@/ontology/payload"; const resZ = z.object({ - group: payloadZ, + group: groupZ, }); const createReqZ = z.object({ diff --git a/console/src/fs/LoadFileContents.tsx b/console/src/fs/LoadFileContents.tsx index 7cee42b2c3..b5e896e94a 100644 --- a/console/src/fs/LoadFileContents.tsx +++ b/console/src/fs/LoadFileContents.tsx @@ -8,19 +8,22 @@ // included in the file licenses/APL.txt. import { Icon } from "@synnaxlabs/media"; -import { Align, Button, Input, Text } from "@synnaxlabs/pluto"; +import { Align, Button, Input, state } from "@synnaxlabs/pluto"; +import { binary } from "@synnaxlabs/x"; import { open } from "@tauri-apps/plugin-dialog"; -import { ReactElement } from "react"; +import { readFile } from "@tauri-apps/plugin-fs"; +import { ReactElement, useEffect, useState } from "react"; +import { z } from "zod"; -export interface LoadFileContentsProps +export interface InputFilePathProps extends Input.Control, Omit {} -export const LoadFileContents = ({ +export const InputFilePath = ({ value, onChange, ...props -}: LoadFileContentsProps): ReactElement => { +}: InputFilePathProps): ReactElement => { const path = value; const handleClick = () => { void (async () => { @@ -29,26 +32,62 @@ export const LoadFileContents = ({ onChange(path.path); })(); }; - return ( - + ) } size="medium" > {path == null ? "No file selected" : path} - - + + Select file ); }; + +export interface InputFileContentsProps

+ extends Omit { + onChange: (value: z.output

, path: string) => void; + initialPath?: string; + schema?: P; + decoder?: binary.EncoderDecoder; +} + +export const InputFileContents =

({ + onChange, + decoder = binary.TEXT_ECD, + initialPath, + schema, + ...props +}: InputFileContentsProps

): ReactElement => { + const [path, setPath] = useState(""); + useEffect(() => { + if (initialPath == null || initialPath === path) return; + handleChange(initialPath); + }, [initialPath]); + const handleChange = (path: string) => { + void (async () => { + const contents = await readFile(path); + if (contents == null) return; + onChange(decoder.decode

(contents, schema), path); + setPath(path); + })(); + }; + return ; +}; diff --git a/console/src/hardware/ni/device/Configure.tsx b/console/src/hardware/ni/device/Configure.tsx index 690ead902d..bfe5451c0c 100644 --- a/console/src/hardware/ni/device/Configure.tsx +++ b/console/src/hardware/ni/device/Configure.tsx @@ -16,7 +16,7 @@ import { useMutation, useQuery } from "@tanstack/react-query"; import { type ReactElement, useState } from "react"; import { CSS } from "@/css"; -import { buildPhysicalDevicePlan } from "@/hardware/ni/device/buildGroups"; +import { buildPhysicalDevicePlan as buildGroups } from "@/hardware/ni/device/buildGroups"; import { Confirm } from "@/hardware/ni/device/Confirm"; import { CreateChannels } from "@/hardware/ni/device/CreateChannels"; import { enrich } from "@/hardware/ni/device/enrich/enrich"; @@ -63,7 +63,10 @@ const STEPS: Steps.Step[] = [ }, ]; -export const Configure = ({ layoutKey }: Layout.RendererProps): ReactElement => { +export const Configure = ({ + layoutKey, + onClose, +}: Layout.RendererProps): ReactElement => { const client = Synnax.use(); const { data, isPending } = useQuery({ queryKey: [layoutKey, client?.key], @@ -73,14 +76,17 @@ export const Configure = ({ layoutKey }: Layout.RendererProps): ReactElement => }, }); if (isPending || data == null) return

Loading...
; - return ; + return ; }; -interface ConfigureInternalProps { +interface ConfigureInternalProps extends Pick { device: device.Device; } -const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => { +const ConfigureInternal = ({ + device, + onClose, +}: ConfigureInternalProps): ReactElement => { const [step, setStep] = useState("properties"); const methods = Form.use({ @@ -88,8 +94,9 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => schema: configurationZ, }); - const handleNext = (): void => { - void (async () => { + const handleNext = useMutation({ + mutationKey: [step], + mutationFn: async () => { if (step === "properties") { const ok = methods.validate("properties"); if (!ok) return; @@ -98,7 +105,7 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => const enriched = enrich( methods.get({ path: "properties" }).value, ); - const groups = buildPhysicalDevicePlan( + const groups = buildGroups( enriched, methods.get({ path: "properties.identifier" }).value, ); @@ -109,9 +116,9 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => const ok = methods.validate("groups"); if (!ok) return; setStep("confirm"); - } - })(); - }; + } else onClose(); + }, + }); const client = Synnax.use(); @@ -121,8 +128,17 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => mutationKey: [client?.key], mutationFn: async () => { if (client == null) return; + const channelsGroup = await client.channels.retrieveGroup(); + const deviceOtgGroup = await client.ontology.groups.create( + channelsGroup.ontologyID, + device.name, + ); const groups = methods.get({ path: "groups" }).value; for (const group of groups) { + const otgGroup = await client.ontology.groups.create( + deviceOtgGroup.ontologyID, + group.name, + ); const rawIdx = group.channels.find((c) => c.isIndex); setProgress(`Creating index for ${group.name}`); if (rawIdx == null) return; @@ -131,17 +147,24 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => isIndex: true, dataType: rawIdx.dataType, }); + const rawDataChannels = group.channels.filter( (c) => !c.isIndex && c.synnaxChannel == null, ); setProgress(`Creating data channels for ${group.name}`); - await client.channels.create( + const created = await client.channels.create( rawDataChannels.map((c) => ({ name: c.name, dataType: c.dataType, index: idx.key, })), ); + await client.ontology.moveChildren( + channelsGroup.ontologyID, + otgGroup.ontologyID, + idx.ontologyID, + ...created.map((c) => c.ontologyID), + ); } }, }); @@ -164,7 +187,7 @@ const ConfigureInternal = ({ device }: ConfigureInternalProps): ReactElement => Cancel handleNext.mutate()} disabled={confirm.isPending || (confirm.isIdle && step === "confirm")} > {confirm.isSuccess ? "Done" : "Next"} @@ -182,7 +205,7 @@ export type LayoutType = typeof CONFIGURE_LAYOUT_TYPE; export const createConfigureLayout = (device: string, initial: Omit, "type">) => (): Layout.State => { - const { name = "Configure Hardware", location = "window", ...rest } = initial; + const { name = "Configure NI Device", location = "window", ...rest } = initial; return { key: initial.key ?? device, type: CONFIGURE_LAYOUT_TYPE, @@ -191,7 +214,7 @@ export const createConfigureLayout = window: { navTop: true, size: { height: 900, width: 1200 }, - resizable: false, + resizable: true, }, location, ...rest, diff --git a/console/src/hardware/ni/device/buildGroups.ts b/console/src/hardware/ni/device/buildGroups.ts index 903dc03ec3..6d07d44a26 100644 --- a/console/src/hardware/ni/device/buildGroups.ts +++ b/console/src/hardware/ni/device/buildGroups.ts @@ -96,39 +96,39 @@ const buildAnalogOutputGroups = ( }, ); - const ackGroupTime: ChannelConfig = { + const stateGroupTime: ChannelConfig = { key: nanoid(), dataType: "timestamp", role: "index", - name: `${identifierLower}_ao_ack_time`, + name: `${identifierLower}_ao_state_time`, isIndex: true, line: -1, port: -1, }; - const ackGroupData: ChannelConfig[] = Array.from( + const stateGroupData: ChannelConfig[] = Array.from( { length: info.analogOutput.portCount }, (_, i) => ({ key: nanoid(), - role: "analogOutputAck", + role: "analogOutputState", dataType: "float32", - name: `${identifierLower}_ao_ack_${i + 1}`, + name: `${identifierLower}_ao_state_${i + 1}`, isIndex: false, line: -1, port: i + 1, }), ); - const ackGroup: GroupConfig = { - name: `Analog Output Ack`, + const stateGroup: GroupConfig = { + name: `Analog Output State`, key: nanoid(), - channelPrefix: `${identifierLower}_ao_ack_`, + channelPrefix: `${identifierLower}_ao_state_`, channelSuffix: "", - role: "analogOutputAck", - channels: [ackGroupTime, ...ackGroupData], + role: "analogOutputState", + channels: [stateGroupTime, ...stateGroupData], }; - return [...commandGroups, ackGroup]; + return [...commandGroups, stateGroup]; }; const buildDigitalInputOutputGroups = ( @@ -136,11 +136,11 @@ const buildDigitalInputOutputGroups = ( identifier: string, ): GroupConfig[] => { const commandGroups: GroupConfig[] = []; - const ackGroup: GroupConfig = { + const stateGroup: GroupConfig = { name: "Digital Inputs", role: "digitalInput", key: nanoid(), - channelPrefix: `${identifier.toLowerCase()}__di_`, + channelPrefix: `${identifier.toLowerCase()}_di_`, channelSuffix: "", channels: [ { @@ -158,7 +158,8 @@ const buildDigitalInputOutputGroups = ( const port = i + 1; for (let j = 0; j < lineCount; j++) { const line = j + 1; - const prefix = `${identifier.toLowerCase()}_do_`; + const portLine = `${port}_${line}`; + const prefix = `${identifier.toLowerCase()}_`; commandGroups.push({ key: nanoid(), name: `Digital Output ${port}/${line}`, @@ -170,7 +171,7 @@ const buildDigitalInputOutputGroups = ( key: nanoid(), dataType: "uint8", role: "digitalOutputCommand", - name: `${prefix}cmd_${port}_${line}`, + name: `${prefix}do_${portLine}_cmd`, isIndex: false, line, port, @@ -179,25 +180,25 @@ const buildDigitalInputOutputGroups = ( key: nanoid(), dataType: "timestamp", role: "index", - name: `${prefix}cmd_time_${port}_${line}`, + name: `${prefix}cmd_${portLine}_time`, isIndex: true, line: -1, port: -1, }, ], }); - ackGroup.channels.push({ + stateGroup.channels.push({ key: nanoid(), dataType: "uint8", role: "digitalInput", - name: `${prefix}di_${port}_${line}`, + name: `${prefix}di_${portLine}`, isIndex: false, line, port, }); } }); - return [...commandGroups, ackGroup]; + return [...commandGroups, stateGroup]; }; const buildDigitalInputGroups = ( @@ -247,17 +248,17 @@ const buildDigitalOutputGroups = ( identifier: string, ): GroupConfig[] => { const commandGroups: GroupConfig[] = []; - const ackGroup: GroupConfig = { - name: "Digital Output Acknowledgements", + const stateGroup: GroupConfig = { + name: "Digital Output State", key: nanoid(), - channelPrefix: `${identifier.toLowerCase()}_do_ack`, - role: "digitalOutputAck", + channelPrefix: `${identifier.toLowerCase()}_do_state`, + role: "digitalOutputState", channelSuffix: "", channels: [ { key: nanoid(), dataType: "timestamp", - name: `${identifier.toLowerCase()}_do_ack_time`, + name: `${identifier.toLowerCase()}_do_state_time`, role: "index", isIndex: true, line: 0, @@ -265,11 +266,11 @@ const buildDigitalOutputGroups = ( }, ], }; - info.digitalInputOutput.lineCounts.forEach((lineCount, i) => { + info.digitalOutput.lineCounts.forEach((lineCount, i) => { const port = i + 1; for (let j = 0; j < lineCount; j++) { const line = j + 1; - const prefix = `${identifier.toLowerCase()}_do_`; + const prefix = `${identifier.toLowerCase()}_do_${port}_${line}`; commandGroups.push({ key: nanoid(), name: `Digital Output ${port}/${line}`, @@ -280,7 +281,7 @@ const buildDigitalOutputGroups = ( { key: nanoid(), dataType: "uint8", - name: `${prefix}cmd_${port}_${line}`, + name: `${prefix}cmd`, isIndex: false, role: "digitalOutputCommand", line, @@ -289,7 +290,7 @@ const buildDigitalOutputGroups = ( { key: nanoid(), dataType: "timestamp", - name: `${prefix}cmd_time_${port}_${line}`, + name: `${prefix}cmd_time`, role: "index", isIndex: true, line: 0, @@ -297,18 +298,18 @@ const buildDigitalOutputGroups = ( }, ], }); - ackGroup.channels.push({ + stateGroup.channels.push({ key: nanoid(), dataType: "bool", - name: `${prefix}_ack_${port}_${line}`, - role: "digitalOutputAck", + name: `${prefix}do_state`, + role: "digitalOutputState", isIndex: false, line, port, }); } }); - return [...commandGroups, ackGroup]; + return [...commandGroups, stateGroup]; }; export const buildPhysicalDevicePlan = ( diff --git a/console/src/hardware/ni/task/ChannelForms.tsx b/console/src/hardware/ni/task/ChannelForms.tsx index 14abac9fde..1e03ec25d1 100644 --- a/console/src/hardware/ni/task/ChannelForms.tsx +++ b/console/src/hardware/ni/task/ChannelForms.tsx @@ -7,10 +7,21 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -import { Align, Channel, Form, List } from "@synnaxlabs/pluto"; -import { deep } from "@synnaxlabs/x"; -import { FC, ReactElement } from "react"; +import { + Align, + Channel, + Divider, + Form, + Input, + List, + Select, + state, +} from "@synnaxlabs/pluto"; +import { binary, deep } from "@synnaxlabs/x"; +import { FC, ReactElement, useRef } from "react"; +import { z } from "zod"; +import { FS } from "@/fs"; import { AccelerationUnits, AccelSensitivityUnits, @@ -637,7 +648,96 @@ export const SCALE_FORMS: Record> = { ); }, - table: () => <>, + table: ({ prefix }) => { + const [rawCol, setRawCol] = state.usePersisted("Raw", `${prefix}.rawCol`); + const [scaledCol, setScaledCol] = state.usePersisted( + "Scaled", + `${prefix}.scaledCol`, + ); + const [colOptions, setColOptions] = state.usePersisted[]>( + [], + `${prefix}.colOptions`, + ); + const [path, setPath] = state.usePersisted("", `${prefix}.path`); + const tableSchema = z.record(z.array(z.unknown())); + const preScaledField = Form.useField({ path: `${prefix}.preScaledVals` }); + const scaledField = Form.useField({ path: `${prefix}.scaledVals` }); + const currValueRef = useRef>({}); + + const updateValue = () => { + const value = currValueRef.current; + const preScaledValues = value[rawCol] as number[] | undefined; + const scaledValues = value[scaledCol] as number[] | undefined; + const hasScaled = scaledValues != null; + const hasPreScaled = preScaledValues != null; + if (hasScaled && hasPreScaled) { + if (preScaledValues!.length !== scaledValues!.length) + preScaledField.setStatus({ + variant: "error", + message: `Pre-scaled ${preScaledValues!.length} values and scaled ${scaledValues!.length} values must be the same length`, + }); + } + if (hasPreScaled) preScaledField.onChange(preScaledValues); + if (hasScaled) scaledField.onChange(scaledValues); + }; + + const handleFileContentsChange = ( + value: z.output, + path: string, + ) => { + setPath(path); + currValueRef.current = value; + const keys = Object.keys(value).filter( + (key) => + Array.isArray(value[key]) && value[key].every((v) => isFinite(Number(v))), + ); + setColOptions(keys.map((key) => ({ key, name: key }))); + if (keys.length > 0) setRawCol(keys[0]); + if (keys.length > 1) setScaledCol(keys[1]); + updateValue(); + }; + + const handleRawColChange = (value: string) => { + setRawCol(value); + updateValue(); + }; + + const handleScaledColChange = (value: string) => { + setScaledCol(value); + updateValue(); + }; + + return ( + <> + + + + initialPath={path} + onChange={handleFileContentsChange} + decoder={binary.CSV_ECD} + /> + + + + + + + + + + + ); + }, none: () => <>, }; @@ -647,7 +747,7 @@ export const SelectCustomScaleTypeField = Form.buildButtonSelectField< >({ fieldKey: "type", fieldProps: { - label: "Custom Scale Type", + label: "Custom Scaling", onChange: (value, { get, set, path }) => { const prevType = get({ path }).value; if (prevType === value) return; @@ -694,7 +794,7 @@ export const CustomScaleForm = ({ prefix }: FormProps): ReactElement => { return ( <> - ; + ); }; @@ -1854,10 +1954,14 @@ export const ANALOG_INPUT_FORMS: Record> = { ai_voltage: ({ prefix }) => { return ( <> - - + + + + + + ); diff --git a/console/src/hardware/ni/task/ConfigureAnalogRead.tsx b/console/src/hardware/ni/task/ConfigureAnalogRead.tsx index 68fc104baa..7f65db7069 100644 --- a/console/src/hardware/ni/task/ConfigureAnalogRead.tsx +++ b/console/src/hardware/ni/task/ConfigureAnalogRead.tsx @@ -61,7 +61,7 @@ export const configureAnalogReadLayout: Layout.State = { windowKey: ANALOG_READ_TYPE, location: "window", window: { - resizable: false, + resizable: true, size: { width: 1200, height: 900 }, navTop: true, }, diff --git a/console/src/hardware/ni/task/types.ts b/console/src/hardware/ni/task/types.ts index 99d992b79c..3888c5e795 100644 --- a/console/src/hardware/ni/task/types.ts +++ b/console/src/hardware/ni/task/types.ts @@ -143,6 +143,8 @@ export const tableScaleZ = z.object({ preScaledUnits: unitsZ, }); +export type TableScale = z.infer; + export const ZERO_TABLE_SCALE: z.infer = { type: "table", preScaledVals: [], diff --git a/console/src/hardware/opc/device/Configure.tsx b/console/src/hardware/opc/device/Configure.tsx index 80456db480..7eae3b08df 100644 --- a/console/src/hardware/opc/device/Configure.tsx +++ b/console/src/hardware/opc/device/Configure.tsx @@ -355,20 +355,20 @@ const Connect = ({ testConnection }: ConnectProps): ReactElement => { path="connection.client_certificate" label="Client Certificate" > - {(p) => } + {(p) => } path="connection.client_private_key" label="Client Private Key" > - {(p) => } + {(p) => } path="connection.server_certificate" label="Server Certificate" grow > - {(p) => } + {(p) => } )} diff --git a/pluto/.vscode/settings.json b/pluto/.vscode/settings.json index 6e6ad0e044..1a0c1a112a 100644 --- a/pluto/.vscode/settings.json +++ b/pluto/.vscode/settings.json @@ -1,3 +1,7 @@ { - "vitest.disableWorkspaceWarning": true + "vitest.disableWorkspaceWarning": true, + "cSpell.words": [ + "caseconv", + "zodutil" + ] } \ No newline at end of file diff --git a/pluto/src/divider/Divider.css b/pluto/src/divider/Divider.css index e6fc821984..a920bc4959 100644 --- a/pluto/src/divider/Divider.css +++ b/pluto/src/divider/Divider.css @@ -17,7 +17,7 @@ border-top: var(--pluto-border); &.pluto-divider--padded { - margin: 0.5rem 0; + padding: 1rem 0; } } @@ -26,7 +26,7 @@ border-right: var(--pluto-border); &.pluto-divider--padded { - margin: 0 0.5rem; + padding: 0 1rem; } } } diff --git a/pluto/src/form/Form.tsx b/pluto/src/form/Form.tsx index 8d75b55334..d06a14ce10 100644 --- a/pluto/src/form/Form.tsx +++ b/pluto/src/form/Form.tsx @@ -51,6 +51,7 @@ export interface UseNullableFieldProps export interface UseFieldReturn extends FieldState { onChange: (value: O) => void; + setStatus: (status: status.CrudeSpec) => void; status: status.CrudeSpec; } @@ -76,7 +77,7 @@ export const useField = (({ defaultValue, }: UseFieldProps): UseFieldReturn | null => { const ctx = useContext(); - const { get, bind, set } = ctx; + const { get, bind, set, setStatus } = ctx; const optional = defaultValue != null || (propsOptional ?? false); const [state, setState] = useState | null>(get({ path, optional })); @@ -100,7 +101,12 @@ export const useField = (({ return null; } - return { onChange: handleChange, ...state }; + const handleSetStatus = useCallback( + (status: status.CrudeSpec) => setStatus(path, status), + [path, setStatus], + ); + + return { onChange: handleChange, setStatus: handleSetStatus, ...state }; }) as UseField; export type UseFieldValue = (( @@ -469,6 +475,7 @@ export interface ContextValue { validate: (path?: string) => boolean; validateAsync: (path?: string) => Promise; has: (path: string) => boolean; + setStatus: (path: string, status: status.CrudeSpec) => void; } export const Context = createContext({ @@ -484,6 +491,7 @@ export const Context = createContext({ validateAsync: () => Promise.resolve(false), value: () => ({}), has: () => false, + setStatus: () => {}, }); export const useContext = ( @@ -661,10 +669,9 @@ export const use = ({ } listeners.get(path)?.forEach((l) => l(get({ path }))); parentListeners.forEach((lis, lisPath) => { - if (deep.pathsMatch(path, lisPath)) { - const v = get({ path: lisPath }); - lis.forEach((l) => l(v)); - } + if (!deep.pathsMatch(path, lisPath)) return; + const v = get({ path: lisPath }); + lis.forEach((l) => l(v)); }); onChangeRef.current?.(ref.current.state); }, []); @@ -674,6 +681,13 @@ export const use = ({ return deep.has(state, path); }, []); + const setStatus = useCallback((path: string, status: status.CrudeSpec): void => { + const { listeners } = ref.current; + ref.current.status.set(path, status); + const fs = get({ path }); + listeners.get(path)?.forEach((l) => l(fs)); + }, []); + useEffect(() => { if (!sync) return; const { listeners } = ref.current; @@ -694,6 +708,7 @@ export const use = ({ validateAsync, value: () => ref.current.state, has, + setStatus, }), [bind, set, get, validate], ); diff --git a/pluto/src/state/state.ts b/pluto/src/state/state.ts index 278fe037d6..c9fbc4b28f 100644 --- a/pluto/src/state/state.ts +++ b/pluto/src/state/state.ts @@ -8,7 +8,7 @@ // included in the file licenses/APL.txt. import { type Primitive, type UnknownRecord } from "@synnaxlabs/x"; -import { useState } from "react"; +import { useId, useState } from "react"; export type State = Primitive | UnknownRecord; export type SetFunc = (prev: PS) => S; @@ -67,3 +67,21 @@ export const usePurePassthrough = ({ if (value != null && onChange != null) return [value, onChange]; return [internal, setInternal]; }; + +export const usePersisted = ( + initial: Initial, + key: string, +): UseReturn => { + const [internal, setInternal] = useState(() => { + const stored = localStorage.getItem(key); + if (stored == null) return executeInitialSetter(initial); + return JSON.parse(stored); + }); + return [ + internal, + (value) => { + setInternal(value); + localStorage.setItem(key, JSON.stringify(value)); + }, + ]; +}; diff --git a/pluto/src/tree/core.ts b/pluto/src/tree/core.ts index 085422d562..1e25a68ec0 100644 --- a/pluto/src/tree/core.ts +++ b/pluto/src/tree/core.ts @@ -7,7 +7,7 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -import { toArray } from "@synnaxlabs/x"; +import { compare, toArray } from "@synnaxlabs/x"; import { type ReactElement } from "react"; import { type Haul } from "@/haul"; @@ -49,7 +49,7 @@ export interface FlattenProps { export const sortAndSplice = (nodes: Node[], sort: boolean): Node[] => { if (sort) { - nodes.sort((a, b) => a.name.localeCompare(b.name)); + nodes.sort((a, b) => compare.stringsWithNumbers(a.name, b.name)); } let found = false; for (let i = 0; i < nodes.length; i++) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04b5c5f3d6..74bcf338f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -44,22 +44,22 @@ importers: version: 1.8.0 '@opentelemetry/context-zone': specifier: ^1.23.0 - version: 1.24.1(@opentelemetry/api@1.8.0) + version: 1.23.0(@opentelemetry/api@1.8.0) '@opentelemetry/instrumentation-document-load': specifier: ^0.37.0 version: 0.37.0(@opentelemetry/api@1.8.0) '@opentelemetry/sdk-trace-web': specifier: ^1.23.0 - version: 1.24.1(@opentelemetry/api@1.8.0) + version: 1.23.0(@opentelemetry/api@1.8.0) '@synnaxlabs/x': specifier: workspace:* version: link:../../x/ts '@uptrace/node': specifier: ^1.19.0 - version: 1.20.0(@opentelemetry/api-logs@0.51.1) + version: 1.19.0(@opentelemetry/api-logs@0.52.0) '@uptrace/web': specifier: ^1.19.0 - version: 1.20.0 + version: 1.19.0 devDependencies: '@synnaxlabs/tsconfig': specifier: workspace:* @@ -69,7 +69,7 @@ importers: version: link:../../configs/vite '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) eslint-config-synnaxlabs: specifier: workspace:* version: link:../../configs/eslint @@ -78,10 +78,10 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(jsdom@24.0.0) client/ts: dependencies: @@ -96,7 +96,7 @@ importers: version: 0.5.0 nanoid: specifier: ^3.0.0 - version: 3.3.7 + version: 3.0.0 zod: specifier: 3.23.8 version: 3.23.8 @@ -109,13 +109,13 @@ importers: version: link:../../configs/vite '@types/node': specifier: ^20.12.7 - version: 20.13.0 + version: 20.12.7 '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) eslint: specifier: ^9.0.0 - version: 9.4.0 + version: 9.0.0 eslint-config-synnaxlabs: specifier: workspace:* version: link:../../configs/eslint @@ -124,10 +124,10 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(@types/node@20.12.7) configs/eslint: dependencies: @@ -143,31 +143,31 @@ importers: version: 9.4.0 eslint: specifier: ^9.0.0 - version: 9.4.0 + version: 9.0.0 eslint-plugin-react: specifier: ^7.34.2 - version: 7.34.2(eslint@9.4.0) + version: 7.34.2(eslint@9.0.0) eslint-plugin-simple-import-sort: specifier: ^12.1.0 - version: 12.1.0(eslint@9.4.0) + version: 12.1.0(eslint@9.0.0) globals: specifier: ^15.3.0 version: 15.3.0 typescript-eslint: specifier: ^7.11.0 - version: 7.11.0(eslint@9.4.0)(typescript@5.4.5) + version: 7.11.0(eslint@9.0.0)(typescript@5.4.5) configs/stylelint: dependencies: stylelint: specifier: ^16.4.0 - version: 16.6.1(typescript@5.4.5) + version: 16.4.0 stylelint-config-prettier: specifier: ^9.0.5 - version: 9.0.5(stylelint@16.6.1(typescript@5.4.5)) + version: 9.0.5(stylelint@16.4.0) stylelint-config-standard: specifier: ^35.0.0 - version: 35.0.0(stylelint@16.6.1(typescript@5.4.5)) + version: 35.0.0(stylelint@16.4.0) configs/ts: dependencies: @@ -185,13 +185,13 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vite-plugin-dts: specifier: 3.8.2 - version: 3.8.2(@types/node@20.13.0)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)) + version: 3.8.2(typescript@5.4.5)(vite@5.2.11) vite-tsconfig-paths: specifier: 4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) console: dependencies: @@ -200,7 +200,7 @@ importers: version: 5.0.18 '@reduxjs/toolkit': specifier: ^2.2.3 - version: 2.2.5(react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0)(react@18.2.0) '@synnaxlabs/client': specifier: workspace:* version: link:../client/ts @@ -218,10 +218,10 @@ importers: version: link:../x/ts '@tanstack/react-query': specifier: ^5.32.0 - version: 5.40.0(react@18.3.1) + version: 5.32.0(react@18.2.0) '@tauri-apps/api': specifier: ^2.0.0-beta.11 - version: 2.0.0-beta.13 + version: 2.0.0-beta.11 '@tauri-apps/plugin-deep-link': specifier: 2.0.0-beta.4 version: 2.0.0-beta.4 @@ -242,25 +242,25 @@ importers: version: 2.0.0-beta.3 nanoid: specifier: ^3.0.0 - version: 3.3.7 + version: 3.0.0 proxy-memoize: specifier: 1.2.0 version: 1.2.0 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) react-error-boundary: specifier: ^4.0.13 - version: 4.0.13(react@18.3.1) + version: 4.0.13(react@18.2.0) react-icons: specifier: ^5.1.0 - version: 5.2.1(react@18.3.1) + version: 5.1.0(react@18.2.0) react-redux: specifier: ^9.1.0 - version: 9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + version: 9.1.0(@types/react@18.2.79)(react@18.2.0)(redux@5.0.1) uuid: specifier: ^9.0.1 version: 9.0.1 @@ -276,16 +276,16 @@ importers: version: 2.0.0-beta.17 '@types/react': specifier: ^18.2.79 - version: 18.3.3 + version: 18.2.79 '@types/react-dom': specifier: ^18.2.25 - version: 18.3.0 + version: 18.2.25 '@types/uuid': specifier: ^9.0.8 version: 9.0.8 '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.3.0(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.0(vite@5.2.11) eslint-config-synnaxlabs: specifier: workspace:* version: link:../configs/eslint @@ -297,22 +297,22 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vite-tsconfig-paths: specifier: 4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) docs/site: dependencies: '@astrojs/mdx': specifier: ^2.3.1 - version: 2.3.1(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) + version: 2.3.1(astro@4.6.3) '@astrojs/react': specifier: ^3.3.0 - version: 3.4.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@20.13.0)) + version: 3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.11) '@astrojs/vercel': specifier: ^7.5.3 - version: 7.6.0(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))(react@18.3.1) + version: 7.5.3(astro@4.6.3)(react@18.2.0) '@synnaxlabs/client': specifier: workspace:* version: link:../../client/ts @@ -330,10 +330,10 @@ importers: version: 2019.7.3 astro: specifier: ^4.6.3 - version: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) + version: 4.6.3(typescript@5.4.5) astro-embed: specifier: ^0.7.1 - version: 0.7.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) + version: 0.7.1(astro@4.6.3) astro-seo: specifier: ^0.8.3 version: 0.8.3(prettier@3.2.5)(typescript@5.4.5) @@ -348,23 +348,23 @@ importers: version: 3.0.3 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) shiki: specifier: ^1.3.0 - version: 1.6.1 + version: 1.3.0 devDependencies: '@synnaxlabs/tsconfig': specifier: workspace:* version: link:../../configs/ts '@types/react': specifier: ^18.2.79 - version: 18.3.3 + version: 18.2.79 '@types/react-dom': specifier: ^18.2.25 - version: 18.3.0 + version: 18.2.25 algoliasearch: specifier: ^4.23.3 version: 4.23.3 @@ -385,7 +385,7 @@ importers: dependencies: '@reduxjs/toolkit': specifier: ^2.2.3 - version: 2.2.5(react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0)(react@18.2.0) '@synnaxlabs/x': specifier: workspace:* version: link:../x/ts @@ -398,16 +398,16 @@ importers: version: link:../configs/vite '@tauri-apps/api': specifier: ^2.0.0-beta.11 - version: 2.0.0-beta.13 + version: 2.0.0-beta.11 '@types/react': specifier: ^18.2.78 - version: 18.3.3 + version: 18.2.79 '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) electron: specifier: ^30.0.6 - version: 30.0.9 + version: 30.0.6 eslint-config-synnaxlabs: specifier: workspace:* version: link:../configs/eslint @@ -416,62 +416,62 @@ importers: version: 1.2.0 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) react-redux: specifier: ^9.1.0 - version: 9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + version: 9.1.0(@types/react@18.2.79)(react@18.2.0)(redux@5.0.1) typescript: specifier: ^5.4.5 version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(jsdom@24.0.0) drift/examples/tauri: dependencies: '@reduxjs/toolkit': specifier: ^2.2.3 - version: 2.2.5(react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0)(react@18.2.0) '@synnaxlabs/drift': specifier: workspace:* version: link:../.. '@tauri-apps/api': specifier: ^2.0.0-beta.11 - version: 2.0.0-beta.13 + version: 2.0.0-beta.11 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) devDependencies: '@tauri-apps/cli': specifier: ^1.5.11 - version: 1.5.14 + version: 1.5.11 '@types/react': specifier: ^18.2.79 - version: 18.3.3 + version: 18.2.79 '@types/react-dom': specifier: ^18.2.25 - version: 18.3.0 + version: 18.2.25 '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.3.0(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.0(vite@5.2.11) typescript: specifier: ^5.4.5 version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vite-tsconfig-paths: specifier: 4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) freighter/ts: dependencies: @@ -499,10 +499,10 @@ importers: version: link:../../configs/vite '@types/node': specifier: ^20.12.7 - version: 20.13.0 + version: 20.12.7 '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) eslint-config-synnaxlabs: specifier: workspace:* version: link:../../configs/eslint @@ -511,16 +511,16 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(@types/node@20.12.7) pluto: dependencies: '@fontsource-variable/inter': specifier: ^5.0.17 - version: 5.0.18 + version: 5.0.17 '@synnaxlabs/alamos': specifier: workspace:* version: link:../alamos/ts @@ -535,7 +535,7 @@ importers: version: link:../x/ts '@tanstack/react-virtual': specifier: 3.0.0-beta.54 - version: 3.0.0-beta.54(react@18.3.1) + version: 3.0.0-beta.54(react@18.2.0) async-mutex: specifier: ^0.5.0 version: 0.5.0 @@ -550,25 +550,25 @@ importers: version: 7.0.0 mathjs: specifier: ^12.4.1 - version: 12.4.3 + version: 12.4.1 nanoid: specifier: ^3.0.0 - version: 3.3.7 + version: 3.0.0 proxy-memoize: specifier: 1.2.0 version: 1.2.0 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-color: specifier: ^2.19.3 - version: 2.19.3(react@18.3.1) + version: 2.19.3(react@18.2.0) react-query: specifier: ^3.39.3 - version: 3.39.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.39.3(react-dom@18.2.0)(react@18.2.0) reactflow: specifier: ^11.11.2 - version: 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) zod: specifier: 3.23.8 version: 3.23.8 @@ -584,7 +584,7 @@ importers: version: link:../configs/vite '@testing-library/react': specifier: ^15.0.2 - version: 15.0.7(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.0.2(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.1.0) @@ -596,31 +596,31 @@ importers: version: 2019.7.3 '@types/react': specifier: ^18.2.78 - version: 18.3.3 + version: 18.2.79 '@types/react-color': specifier: ^3.0.12 version: 3.0.12 '@types/react-dom': specifier: ^18.2.25 - version: 18.3.0 + version: 18.2.25 '@types/webgl2': specifier: ^0.0.11 version: 0.0.11 '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.3.0(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.0(vite@5.2.11) '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) eslint-config-synnaxlabs: specifier: workspace:* version: link:../configs/eslint jsdom: specifier: ^24.0.0 - version: 24.1.0 + version: 24.0.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) stylelint-config-synnaxlabs: specifier: workspace:* version: link:../configs/stylelint @@ -629,10 +629,10 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(jsdom@24.0.0) x/media: dependencies: @@ -641,19 +641,19 @@ importers: version: link:../ts '@types/react': specifier: ^18.2.79 - version: 18.3.3 + version: 18.2.79 clsx: specifier: ^2.1.1 version: 2.1.1 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) react-icons: specifier: ^4.12.0 - version: 4.12.0(react@18.3.1) + version: 4.12.0(react@18.2.0) devDependencies: '@synnaxlabs/tsconfig': specifier: workspace:* @@ -663,19 +663,19 @@ importers: version: link:../../configs/vite '@types/node': specifier: ^20.12.7 - version: 20.13.0 + version: 20.12.7 '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.3.0(vite@5.2.11(@types/node@20.13.0)) + version: 4.3.0(vite@5.2.11) eslint-config-synnaxlabs: specifier: workspace:* version: link:../../configs/eslint vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(@types/node@20.12.7) x/ts: dependencies: @@ -684,7 +684,7 @@ importers: version: 4.2.0 nanoid: specifier: ^3.0.0 - version: 3.3.7 + version: 3.0.0 zod: specifier: 3.23.8 version: 3.23.8 @@ -697,10 +697,10 @@ importers: version: link:../../configs/vite '@types/node': specifier: ^20.12.7 - version: 20.13.0 + version: 20.12.7 '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0)) + version: 1.5.0(vitest@1.5.0) eslint-config-synnaxlabs: specifier: workspace:* version: link:../../configs/eslint @@ -709,1383 +709,3017 @@ importers: version: 5.4.5 vite: specifier: 5.2.11 - version: 5.2.11(@types/node@20.13.0) + version: 5.2.11(@types/node@20.12.7) vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + version: 1.5.0(@types/node@20.12.7) packages: - '@algolia/cache-browser-local-storage@4.23.3': + /@algolia/cache-browser-local-storage@4.23.3: resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} + dependencies: + '@algolia/cache-common': 4.23.3 + dev: true - '@algolia/cache-common@4.23.3': + /@algolia/cache-common@4.23.3: resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} + dev: true - '@algolia/cache-in-memory@4.23.3': + /@algolia/cache-in-memory@4.23.3: resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} + dependencies: + '@algolia/cache-common': 4.23.3 + dev: true - '@algolia/client-account@4.23.3': + /@algolia/client-account@4.23.3: resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/client-analytics@4.23.3': + /@algolia/client-analytics@4.23.3: resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/client-common@4.23.3': + /@algolia/client-common@4.23.3: resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} + dependencies: + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/client-personalization@4.23.3': + /@algolia/client-personalization@4.23.3: resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/client-search@4.23.3': + /@algolia/client-search@4.23.3: resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} + dependencies: + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/logger-common@4.23.3': + /@algolia/logger-common@4.23.3: resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} + dev: true - '@algolia/logger-console@4.23.3': + /@algolia/logger-console@4.23.3: resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} + dependencies: + '@algolia/logger-common': 4.23.3 + dev: true - '@algolia/recommend@4.23.3': + /@algolia/recommend@4.23.3: resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} + dependencies: + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 + dev: true - '@algolia/requester-browser-xhr@4.23.3': + /@algolia/requester-browser-xhr@4.23.3: resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} + dependencies: + '@algolia/requester-common': 4.23.3 + dev: true - '@algolia/requester-common@4.23.3': + /@algolia/requester-common@4.23.3: resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} + dev: true - '@algolia/requester-node-http@4.23.3': + /@algolia/requester-node-http@4.23.3: resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} + dependencies: + '@algolia/requester-common': 4.23.3 + dev: true - '@algolia/transporter@4.23.3': + /@algolia/transporter@4.23.3: resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} + dependencies: + '@algolia/cache-common': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + dev: true - '@ampproject/remapping@2.3.0': + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@astro-community/astro-embed-integration@0.7.1': + /@astro-community/astro-embed-integration@0.7.1(astro@4.6.3): resolution: {integrity: sha512-uPpVx/CluktB3nOnCTUB7tQ3jms2acYWTe/JgX5tFqTjjtiL686+FcjOaQ/Ej+FNErdg+36Y66WTeIxlYw4pvQ==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta + dependencies: + '@astro-community/astro-embed-link-preview': 0.2.0 + '@astro-community/astro-embed-twitter': 0.5.4(astro@4.6.3) + '@astro-community/astro-embed-vimeo': 0.3.7(astro@4.6.3) + '@astro-community/astro-embed-youtube': 0.5.2(astro@4.6.3) + '@types/unist': 2.0.10 + astro: 4.6.3(typescript@5.4.5) + astro-auto-import: 0.4.2(astro@4.6.3) + unist-util-select: 4.0.3 + dev: false - '@astro-community/astro-embed-link-preview@0.2.0': + /@astro-community/astro-embed-link-preview@0.1.0: + resolution: {integrity: sha512-anRmnQV7fgONVI1EO1YmBKSBGWTWlekquvipBXdcqotfrsBFZVAqTGstbaFWkiVK+rKpRU1NIBJB0OmE1noh+w==} + dependencies: + '@astro-community/astro-embed-utils': 0.1.2 + dev: false + + /@astro-community/astro-embed-link-preview@0.2.0: resolution: {integrity: sha512-yXWQv9nlI7IAQxJo/mpa93ZY4G4WwN7JjiTkKZKAce3ZQQyI1qZb6+x5gVRIhkMlyHlroVKelZHFk/NVcHDZkA==} + dependencies: + '@astro-community/astro-embed-utils': 0.1.2 + dev: false - '@astro-community/astro-embed-twitter@0.5.4': + /@astro-community/astro-embed-twitter@0.5.4(astro@4.6.3): resolution: {integrity: sha512-wQyros0Uh4L8fDOCZ9+UYMoq4u+YiJZEvjnL6ZP0KL6dcsyfma/XC2/Q2DBL5SBBiIkkFcFHmzDBIPl4HsENXw==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta + dependencies: + '@astro-community/astro-embed-utils': 0.1.2 + astro: 4.6.3(typescript@5.4.5) + dev: false - '@astro-community/astro-embed-utils@0.1.2': + /@astro-community/astro-embed-utils@0.1.2: resolution: {integrity: sha512-BO5k8pDfbrTXcAvMlBak+K3p8IFcsGimdLPmiRz7HIMBuy9hI6R9PEuVhJs00sCp/rkkkZbwiw3IL8ncFfxRFw==} + dependencies: + linkedom: 0.14.26 + dev: false - '@astro-community/astro-embed-vimeo@0.3.7': + /@astro-community/astro-embed-vimeo@0.3.7(astro@4.6.3): resolution: {integrity: sha512-0Y08IOudqSLC/RKiYZagaG/uvfblSt7of+hrIcRky7u+KZK3VrTbZ/Np+nIq81jXLGJQPXN8TNGsOUsY0mw9lw==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta + dependencies: + '@astro-community/astro-embed-utils': 0.1.2 + astro: 4.6.3(typescript@5.4.5) + dev: false - '@astro-community/astro-embed-youtube@0.5.2': + /@astro-community/astro-embed-youtube@0.5.2(astro@4.6.3): resolution: {integrity: sha512-cckWcq7mFCmI6uPpIlRolSafSQRYZBOaxIc8DaCUh8+JQAtPF7O4EdpRpZBUcvbARrWEEyHJCWrt0XOGppMniw==} peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta + dependencies: + astro: 4.6.3(typescript@5.4.5) + lite-youtube-embed: 0.3.2 + dev: false - '@astrojs/check@0.5.10': + /@astrojs/check@0.5.10(prettier@3.2.5)(typescript@5.4.5): resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} hasBin: true peerDependencies: - typescript: ^5.4.5 + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.10.0(prettier@3.2.5)(typescript@5.4.5) + chokidar: 3.6.0 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.4.5 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false - '@astrojs/compiler@2.8.0': + /@astrojs/compiler@2.8.0: resolution: {integrity: sha512-yrpD1WRGqsJwANaDIdtHo+YVjvIOFAjC83lu5qENIgrafwZcJgSXDuwVMXOgok4tFzpeKLsFQ6c3FoUdloLWBQ==} + dev: false - '@astrojs/internal-helpers@0.4.0': + /@astrojs/internal-helpers@0.4.0: resolution: {integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==} + dev: false - '@astrojs/language-server@2.10.0': + /@astrojs/language-server@2.10.0(prettier@3.2.5)(typescript@5.4.5): resolution: {integrity: sha512-crHXpqYfA5qWioiuZnZFpTsNItgBlF1f0S9MzDYS7/pfCALkHNJ7K3w9U/j0uMKymsT4hC7BfMaX0DYlfdSzHg==} hasBin: true peerDependencies: - prettier: 3.2.5 + prettier: ^3.0.0 prettier-plugin-astro: '>=0.11.0' peerDependenciesMeta: prettier: optional: true prettier-plugin-astro: optional: true + dependencies: + '@astrojs/compiler': 2.8.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.2.5(typescript@5.4.5) + '@volar/language-core': 2.2.5 + '@volar/language-server': 2.2.5 + '@volar/language-service': 2.2.5 + '@volar/typescript': 2.2.5 + fast-glob: 3.3.2 + prettier: 3.2.5 + volar-service-css: 0.0.45(@volar/language-service@2.2.5) + volar-service-emmet: 0.0.45(@volar/language-service@2.2.5) + volar-service-html: 0.0.45(@volar/language-service@2.2.5) + volar-service-prettier: 0.0.45(@volar/language-service@2.2.5)(prettier@3.2.5) + volar-service-typescript: 0.0.45(@volar/language-service@2.2.5) + volar-service-typescript-twoslash-queries: 0.0.45(@volar/language-service@2.2.5) + vscode-html-languageservice: 5.2.0 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false - '@astrojs/markdown-remark@5.1.0': + /@astrojs/markdown-remark@5.1.0: resolution: {integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==} + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.1 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.0 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + remark-smartypants: 2.1.0 + shiki: 1.3.0 + unified: 11.0.4 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/mdx@2.3.1': + /@astrojs/mdx@2.3.1(astro@4.6.3): resolution: {integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: astro: ^4.0.0 + dependencies: + '@astrojs/markdown-remark': 5.1.0 + '@mdx-js/mdx': 3.0.1 + acorn: 8.11.3 + astro: 4.6.3(typescript@5.4.5) + es-module-lexer: 1.5.3 + estree-util-visit: 2.0.0 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.1 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 2.1.0 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/prism@3.1.0': + /@astrojs/prism@3.1.0: resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + prismjs: 1.29.0 + dev: false - '@astrojs/react@3.4.0': - resolution: {integrity: sha512-5MpU+1WVqirEIoEmF1r6HkxqjOWEMjni/qCzPX/oaSyumOZNdCGfDN9GoGJhgSxiZOVfob+MNy46H4d3AgrYpQ==} + /@astrojs/react@3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.11): + resolution: {integrity: sha512-IKHizDgYPTl9TTKcEB+PwmqHqYgCwD3jqd9hGBRITYiMmeiHVMRr2zNNXSmOOv0uWL3/EwsISsrUnjwuxIVZUA==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 '@types/react-dom': ^17.0.17 || ^18.0.6 - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + dependencies: + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + '@vitejs/plugin-react': 4.3.0(vite@5.2.11) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.3 + transitivePeerDependencies: + - supports-color + - vite + dev: false - '@astrojs/telemetry@3.1.0': + /@astrojs/telemetry@3.1.0: resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + ci-info: 4.0.0 + debug: 4.3.5 + dlv: 1.1.3 + dset: 3.1.3 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/vercel@7.6.0': - resolution: {integrity: sha512-LLOpXWYwTlYgZJCC+ulCpSUnUzOzLrlna2T0WCkhkH1UeavBY5NI0Agpq3rcQd012I7Vr2io+ZKUgKGW+EFvhg==} + /@astrojs/vercel@7.5.3(astro@4.6.3)(react@18.2.0): + resolution: {integrity: sha512-rIqcoGoW+SJv+rOjMjMq5ICdBZP+zbuenXyNhTa6UIUZldm4pZLLImuBDvTxB/A3JvJZRoTwZtsEgORXav1bbg==} peerDependencies: astro: ^4.2.0 + dependencies: + '@astrojs/internal-helpers': 0.4.0 + '@vercel/analytics': 1.3.1(react@18.2.0) + '@vercel/edge': 1.1.1 + '@vercel/nft': 0.26.5 + astro: 4.6.3(typescript@5.4.5) + esbuild: 0.19.12 + fast-glob: 3.3.2 + set-cookie-parser: 2.6.0 + web-vitals: 3.5.2 + transitivePeerDependencies: + - encoding + - next + - react + - supports-color + dev: false - '@babel/code-frame@7.24.6': - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - '@babel/compat-data@7.24.6': - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} + /@babel/compat-data@7.24.7: + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.6': - resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} + /@babel/core@7.24.7: + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/generator@7.24.6': - resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + /@babel/generator@7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.24.6': - resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} + /@babel/helper-annotate-as-pure@7.24.7: + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + dev: false - '@babel/helper-compilation-targets@7.24.6': - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + /@babel/helper-compilation-targets@7.24.7: + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.1 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/helper-environment-visitor@7.24.6': - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 - '@babel/helper-function-name@7.24.6': - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/helper-hoist-variables@7.24.6': - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 - '@babel/helper-module-imports@7.24.6': - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.24.6': - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-plugin-utils@7.24.6': - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} + /@babel/helper-plugin-utils@7.24.7: + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.6': - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - '@babel/helper-split-export-declaration@7.24.6': - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 - '@babel/helper-string-parser@7.24.6': - resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + /@babel/helper-string-parser@7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.6': - resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.6': - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + /@babel/helper-validator-option@7.24.7: + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.6': - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + /@babel/helpers@7.24.7: + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/highlight@7.24.6': - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 - '@babel/parser@7.24.6': - resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + /@babel/parser@7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.24.7 - '@babel/plugin-syntax-jsx@7.24.6': - resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + dev: false - '@babel/plugin-transform-react-jsx-self@7.24.6': - resolution: {integrity: sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==} + /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-source@7.24.6': - resolution: {integrity: sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==} + /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx@7.24.6': - resolution: {integrity: sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==} + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false - '@babel/runtime@7.24.6': - resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 - '@babel/template@7.24.6': - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - '@babel/traverse@7.24.6': - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} + /@babel/traverse@7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color - '@babel/types@7.24.6': - resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + /@babel/types@7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 - '@bcoe/v8-coverage@0.2.3': + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@csstools/css-parser-algorithms@2.6.3': + /@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1): resolution: {integrity: sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-tokenizer': ^2.3.1 + dependencies: + '@csstools/css-tokenizer': 2.3.1 + dev: false - '@csstools/css-tokenizer@2.3.1': + /@csstools/css-tokenizer@2.3.1: resolution: {integrity: sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==} engines: {node: ^14 || ^16 || >=18} + dev: false - '@csstools/media-query-list-parser@2.1.11': + /@csstools/media-query-list-parser@2.1.11(@csstools/css-parser-algorithms@2.6.3)(@csstools/css-tokenizer@2.3.1): resolution: {integrity: sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-parser-algorithms': ^2.6.3 '@csstools/css-tokenizer': ^2.3.1 + dependencies: + '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) + '@csstools/css-tokenizer': 2.3.1 + dev: false - '@csstools/selector-specificity@3.1.1': + /@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0): resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.1.0 + dev: false - '@dual-bundle/import-meta-resolve@4.1.0': + /@dual-bundle/import-meta-resolve@4.1.0: resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + dev: false - '@electron/get@2.0.3': + /@electron/get@2.0.3: resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} engines: {node: '>=12'} + dependencies: + debug: 4.3.5 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true - '@emmetio/abbreviation@2.3.3': + /@emmetio/abbreviation@2.3.3: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/css-abbreviation@2.1.8': + /@emmetio/css-abbreviation@2.1.8: resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/css-parser@0.4.0': + /@emmetio/css-parser@0.4.0: resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + dev: false - '@emmetio/html-matcher@1.3.0': + /@emmetio/html-matcher@1.3.0: resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/scanner@1.0.4': + /@emmetio/scanner@1.0.4: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: false - '@emmetio/stream-reader-utils@0.1.0': + /@emmetio/stream-reader-utils@0.1.0: resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + dev: false - '@emmetio/stream-reader@2.2.0': + /@emmetio/stream-reader@2.2.0: resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + dev: false - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] + requiresBuild: true + dev: false + optional: true - '@esbuild/aix-ppc64@0.21.4': - resolution: {integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] + requiresBuild: true + optional: true - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] + requiresBuild: true + dev: false + optional: true - '@esbuild/android-arm64@0.21.4': - resolution: {integrity: sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==} + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] + requiresBuild: true + optional: true - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] + requiresBuild: true + dev: false + optional: true - '@esbuild/android-arm@0.21.4': - resolution: {integrity: sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==} + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] + requiresBuild: true + optional: true - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] + requiresBuild: true + dev: false + optional: true - '@esbuild/android-x64@0.21.4': - resolution: {integrity: sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==} + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] + requiresBuild: true + optional: true - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: false + optional: true - '@esbuild/darwin-arm64@0.21.4': - resolution: {integrity: sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==} + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + requiresBuild: true + optional: true - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: false + optional: true - '@esbuild/darwin-x64@0.21.4': - resolution: {integrity: sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==} + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + requiresBuild: true + optional: true - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + requiresBuild: true + dev: false + optional: true - '@esbuild/freebsd-arm64@0.21.4': - resolution: {integrity: sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==} + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + requiresBuild: true + optional: true - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + requiresBuild: true + dev: false + optional: true - '@esbuild/freebsd-x64@0.21.4': - resolution: {integrity: sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==} + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + requiresBuild: true + optional: true - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-arm64@0.21.4': - resolution: {integrity: sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==} + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-arm@0.21.4': - resolution: {integrity: sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==} + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-ia32@0.21.4': - resolution: {integrity: sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==} + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-loong64@0.21.4': - resolution: {integrity: sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==} + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-mips64el@0.21.4': - resolution: {integrity: sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==} + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-ppc64@0.21.4': - resolution: {integrity: sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==} + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-riscv64@0.21.4': - resolution: {integrity: sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==} + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-s390x@0.21.4': - resolution: {integrity: sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==} + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + requiresBuild: true + optional: true - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] + requiresBuild: true + dev: false + optional: true - '@esbuild/linux-x64@0.21.4': - resolution: {integrity: sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==} + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] + requiresBuild: true + optional: true - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + requiresBuild: true + dev: false + optional: true - '@esbuild/netbsd-x64@0.21.4': - resolution: {integrity: sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==} + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + requiresBuild: true + optional: true - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + requiresBuild: true + dev: false + optional: true - '@esbuild/openbsd-x64@0.21.4': - resolution: {integrity: sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==} + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + requiresBuild: true + optional: true - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + requiresBuild: true + dev: false + optional: true - '@esbuild/sunos-x64@0.21.4': - resolution: {integrity: sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + requiresBuild: true + optional: true - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: false + optional: true - '@esbuild/win32-arm64@0.21.4': - resolution: {integrity: sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + requiresBuild: true + optional: true - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: false + optional: true - '@esbuild/win32-ia32@0.21.4': - resolution: {integrity: sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + requiresBuild: true + optional: true - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] + requiresBuild: true + dev: false + optional: true - '@esbuild/win32-x64@0.21.4': - resolution: {integrity: sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==} + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] + requiresBuild: true + optional: true - '@eslint-community/eslint-utils@4.4.0': + /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^9.0.0 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 9.0.0 + eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + /@eslint-community/regexpp@4.10.1: + resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/compat@1.0.3': + /@eslint/compat@1.0.3: resolution: {integrity: sha512-9RaroPQaU2+SDcWav1YfuipwqnHccoiXZdUsicRQsQ/vH2wkEmRVcj344GapG/FnCeZRtqj0n6PshI+s9xkkAQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true - '@eslint/config-array@0.15.1': - resolution: {integrity: sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.1.0': + /@eslint/eslintrc@3.1.0: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true - '@eslint/js@9.4.0': - resolution: {integrity: sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==} + /@eslint/js@9.0.0: + resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true - '@eslint/object-schema@2.1.3': - resolution: {integrity: sha512-HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==} + /@eslint/js@9.4.0: + resolution: {integrity: sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true - '@fontsource-variable/inter@5.0.18': - resolution: {integrity: sha512-rJzSrtJ3b7djiGFvRuTe6stDfbYJGhdQSfn2SI2WfXviee7Er0yKAHE5u7FU7OWVQQQ1x3+cxdmx9NdiAkcrcA==} + /@fontsource-variable/inter@5.0.17: + resolution: {integrity: sha512-sa80nNnqF8kzhBvqusWiL9vlPMVpdmOwMmDBup46Jggsr1VBqo+YuzwB36Ls+X6uHJtb8Yv3ALBHL/zGmT862A==} + dev: false - '@fontsource/inter@5.0.18': + /@fontsource/inter@5.0.18: resolution: {integrity: sha512-YCsoYPTcs713sI7tLtxaPrIhXAXvEetGg5Ry02ivA8qUOb3fQHojbK/X9HLD5OOKvFUNR2Ynkwb1kR1hVKQHpw==} + dev: false - '@grpc/grpc-js@1.10.8': - resolution: {integrity: sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==} + /@grpc/grpc-js@1.10.9: + resolution: {integrity: sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==} engines: {node: '>=12.10.0'} + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + dev: false - '@grpc/proto-loader@0.7.13': + /@grpc/proto-loader@0.7.13: resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} engines: {node: '>=6'} hasBin: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.3.2 + yargs: 17.7.2 + dev: false - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.0': - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} - engines: {node: '>=18.18'} - - '@icons/material@0.2.4': - resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} - peerDependencies: - react: ^18.2.0 - - '@img/sharp-darwin-arm64@0.33.4': - resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.33.4': - resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] + /@hapi/b64@5.0.0: + resolution: {integrity: sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] + /@hapi/boom@9.1.4: + resolution: {integrity: sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] + /@hapi/bourne@2.1.0: + resolution: {integrity: sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==} + dev: false - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] + /@hapi/cryptiles@5.1.0: + resolution: {integrity: sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==} + engines: {node: '>=12.0.0'} + dependencies: + '@hapi/boom': 9.1.4 + dev: false - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: false - '@img/sharp-linux-arm64@0.33.4': - resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] + /@hapi/iron@6.0.0: + resolution: {integrity: sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==} + dependencies: + '@hapi/b64': 5.0.0 + '@hapi/boom': 9.1.4 + '@hapi/bourne': 2.1.0 + '@hapi/cryptiles': 5.1.0 + '@hapi/hoek': 9.3.0 + dev: false - '@img/sharp-linux-arm@0.33.4': - resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] + /@hapi/podium@4.1.3: + resolution: {integrity: sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/teamwork': 5.1.1 + '@hapi/validate': 1.1.3 + dev: false - '@img/sharp-linux-s390x@0.33.4': - resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} - engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] + /@hapi/teamwork@5.1.1: + resolution: {integrity: sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==} + engines: {node: '>=12.0.0'} + dev: false - '@img/sharp-linux-x64@0.33.4': - resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false - '@img/sharp-linuxmusl-arm64@0.33.4': - resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] + /@hapi/validate@1.1.3: + resolution: {integrity: sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + dev: false - '@img/sharp-linuxmusl-x64@0.33.4': - resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] + /@humanwhocodes/config-array@0.12.3: + resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true - '@img/sharp-wasm32@0.33.4': - resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [wasm32] + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true - '@img/sharp-win32-ia32@0.33.4': - resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [ia32] - os: [win32] + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + dev: true - '@img/sharp-win32-x64@0.33.4': - resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [win32] + /@icons/material@0.2.4(react@18.2.0): + resolution: {integrity: sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false - '@istanbuljs/schema@0.1.3': + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': + /@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462: resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false - '@jridgewell/gen-mapping@0.3.5': + /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.2': + /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': + /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 - '@js-sdsl/ordered-map@4.4.2': + /@js-sdsl/ordered-map@4.4.2: resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + dev: false - '@juggle/resize-observer@3.4.0': + /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} + dev: true - '@mapbox/node-pre-gyp@1.0.11': + /@mapbox/node-pre-gyp@1.0.11: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.6.11 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.2 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: false - '@mdx-js/mdx@3.0.1': + /@mdx-js/mdx@3.0.1: resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + source-map: 0.7.4 + unified: 11.0.4 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false - '@microsoft/api-extractor-model@7.28.13': + /@microsoft/api-extractor-model@7.28.13: resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2 + transitivePeerDependencies: + - '@types/node' + dev: false - '@microsoft/api-extractor@7.43.0': + /@microsoft/api-extractor@7.43.0: resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.13 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2 + '@rushstack/rig-package': 0.5.2 + '@rushstack/terminal': 0.10.0 + '@rushstack/ts-command-line': 4.19.1 + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.5 + transitivePeerDependencies: + - '@types/node' + dev: false - '@microsoft/tsdoc-config@0.16.2': + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: false - '@microsoft/tsdoc@0.14.2': + /@microsoft/tsdoc@0.14.2: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + dev: false - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + /@opentelemetry/api-logs@0.46.0: + resolution: {integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==} + engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.8.0 + dev: false + + /@opentelemetry/api-logs@0.48.0: + resolution: {integrity: sha512-1/aMiU4Eqo3Zzpfwu51uXssp5pzvHFObk8S9pKAiXb1ne8pvg1qxBQitYL1XUiAMEXFzgjaidYG2V6624DRhhw==} + engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.8.0 + dev: false - '@opentelemetry/api-logs@0.50.0': + /@opentelemetry/api-logs@0.50.0: resolution: {integrity: sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA==} engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.8.0 + dev: false - '@opentelemetry/api-logs@0.51.1': - resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==} + /@opentelemetry/api-logs@0.52.0: + resolution: {integrity: sha512-HxjD7xH9iAE4OyhNaaSec65i1H6QZYBWSwWkowFfsc5YAcDvJG30/J1sRKXEQqdmUcKTXEAnA66UciqZha/4+Q==} engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.8.0 + dev: false + + /@opentelemetry/api@1.7.0: + resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} + engines: {node: '>=8.0.0'} + dev: false - '@opentelemetry/api@1.8.0': + /@opentelemetry/api@1.8.0: resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} engines: {node: '>=8.0.0'} + dev: false - '@opentelemetry/auto-instrumentations-node@0.46.1': - resolution: {integrity: sha512-s0CwmY9KYtPawOhV5YO2Gf62uVOQRNvT6Or8IZ0S4gr/kPVNhoMehTsQvqBwSWQfoFrkmW3KKOHiKJEp4dVGXg==} + /@opentelemetry/auto-instrumentations-node@0.40.3(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-MgBCzpFU4FBQEsXPgt5driYzxErf2JGntQ8Amtc94sqrnvq+FKdEBa6vxOpZlPM+c4Xr6tPpAT1ecTBV8U87hw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.4.1 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-amqplib': 0.33.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-aws-lambda': 0.37.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-aws-sdk': 0.37.2(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-bunyan': 0.34.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-cassandra-driver': 0.34.2(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-connect': 0.32.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-cucumber': 0.2.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-dataloader': 0.5.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-dns': 0.32.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-express': 0.34.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-fastify': 0.32.6(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-fs': 0.8.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-generic-pool': 0.32.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-graphql': 0.36.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-grpc': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-hapi': 0.33.3(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-http': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-ioredis': 0.36.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-knex': 0.32.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-koa': 0.36.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.33.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-memcached': 0.32.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mongodb': 0.38.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mongoose': 0.34.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mysql': 0.34.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mysql2': 0.34.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-nestjs-core': 0.33.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-net': 0.32.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-pg': 0.37.2(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-pino': 0.34.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-redis': 0.35.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-redis-4': 0.35.6(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-restify': 0.34.3(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-router': 0.33.4(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-socket.io': 0.35.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-tedious': 0.6.5(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-winston': 0.33.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-alibaba-cloud': 0.28.10(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-aws': 1.5.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-container': 0.3.11(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-gcp': 0.29.10(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-node': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - encoding + - supports-color + dev: false - '@opentelemetry/context-async-hooks@1.24.1': - resolution: {integrity: sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ==} + /@opentelemetry/context-async-hooks@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.9.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + + /@opentelemetry/context-async-hooks@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-t0iulGPiMjG/NrSjinPQoIf8ST/o9V0dGOJthfrFporJlNdlKIQPfC7lkrV+5s2dyBThfmSbJlp/4hO1eOcDXA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false - '@opentelemetry/context-zone-peer-dep@1.24.1': - resolution: {integrity: sha512-s67becvBZFFjSLKSiy8ia2m7htsC4gsk8J/X0368FzBYseb/26daYr4ewx6tKcAsmZqJA7402cTQirv175x5BA==} + /@opentelemetry/context-zone-peer-dep@1.23.0(@opentelemetry/api@1.8.0)(zone.js@0.14.7): + resolution: {integrity: sha512-3ia5w2y3CGHIhMSggttliGbeRBWclIyMMXdfRCcit1NHg1ocieA9qYxyUEetbOvPrQpoti3O3k+5eyQUv7r8nw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' zone.js: ^0.10.2 || ^0.11.0 || ^0.13.0 || ^0.14.0 + dependencies: + '@opentelemetry/api': 1.8.0 + zone.js: 0.14.7 + dev: false + + /@opentelemetry/context-zone@1.23.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-7piNTrpH+gZNMDDOHIJXCSwp0Xslh3R96HWH5HwXw+4PykR4+jVoXvd6jziQxudX9rFAfu2B64A10DHs4ZWrfA==} + engines: {node: '>=14'} + dependencies: + '@opentelemetry/context-zone-peer-dep': 1.23.0(@opentelemetry/api@1.8.0)(zone.js@0.14.7) + zone.js: 0.14.7 + transitivePeerDependencies: + - '@opentelemetry/api' + dev: false + + /@opentelemetry/core@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false - '@opentelemetry/context-zone@1.24.1': - resolution: {integrity: sha512-pt5KLJws1m+rHTeEA6uootoyiuZlCt7j90dmdjXnqx4JZH6sFWqWB5IW1gOukDY7Ym3cNKjtoh3/uK0KuSRBfg==} + /@opentelemetry/core@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-KP+OIweb3wYoP7qTYL/j5IpOlu52uxBv5M4+QhSmmUfLyTgu1OIS71msK3chFo1D6Y61BIH3wMiMYRCxJCQctA==} engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/semantic-conventions': 1.21.0 + dev: false - '@opentelemetry/core@1.24.1': - resolution: {integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==} + /@opentelemetry/core@1.23.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/semantic-conventions': 1.23.0 + dev: false + + /@opentelemetry/core@1.25.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-n0B3s8rrqGrasTgNkXLKXzN0fXo+6IYP7M5b7AMsrZM33f/y6DS6kJ0Btd7SespASWq8bgL3taLo0oe0vB52IQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false + + /@opentelemetry/core@1.25.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-n0B3s8rrqGrasTgNkXLKXzN0fXo+6IYP7M5b7AMsrZM33f/y6DS6kJ0Btd7SespASWq8bgL3taLo0oe0vB52IQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false - '@opentelemetry/exporter-logs-otlp-http@0.51.1': - resolution: {integrity: sha512-cd6GZ9IqCrmvOJwi1HjRR7o9ihF7xhZTekgxUsoyTsPF+SjKMsLF9ur6HeBYkYhk+YjZ1ken3XUMH47oUTvu8Q==} + /@opentelemetry/exporter-logs-otlp-http@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Glxl0ZmyHqykGjcv5T4HMvw4fQVZoiCV0oMolPgXBBnuTuOHS/dEdoGX6hNp4Xqw55YALM/CJocHwkRqBQnPgw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.48.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.48.0(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/exporter-metrics-otlp-http@0.51.1': - resolution: {integrity: sha512-oFXvif9iksHUxrzG3P8ohMLt7xSrl+oDMqxD/3XXndU761RFAKSbRDpfrQs25U5D+A2aMV3qk+4kfUWdJhZ77g==} + /@opentelemetry/exporter-metrics-otlp-http@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-lZ0gah/WjPpUBVR2Qml8GHraLznsXEpmIS897vdL2IXCxJzGev7sCb9IwAiq89+MgHkuGUWhTWFB2frKrqX1sA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/exporter-trace-otlp-grpc@0.51.1': - resolution: {integrity: sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ==} + /@opentelemetry/exporter-trace-otlp-grpc@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.10.9 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-grpc@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+qRQXUbdRW6aNRT5yWOG3G6My1VxxKeqgUyLkkdIjkT20lvymjiN2RpBfGMtAf/oqnuRknf9snFl9VSIO2gniw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.10.9 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-http@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/exporter-trace-otlp-http@0.51.1': - resolution: {integrity: sha512-n+LhLPsX07URh+HhV2SHVSvz1t4G/l/CE5BjpmhAPqeTceFac1VpyQkavWEJbvnK5bUEXijWt4LxAxFpt2fXyw==} + /@opentelemetry/exporter-trace-otlp-http@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-QEZKbfWqXrbKVpr2PHd4KyKI0XVOhUYC+p2RPV8s+2K5QzZBE3+F9WlxxrXDfkrvGmpQAZytBoHQQYA3AGOtpw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/exporter-trace-otlp-proto@0.51.1': - resolution: {integrity: sha512-SE9f0/6V6EeXC9i+WA4WFjS1EYgaBCpAnI5+lxWvZ7iO7EU1IvHvZhP6Kojr0nLldo83gqg6G7OWFqsID3uF+w==} + /@opentelemetry/exporter-trace-otlp-proto@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-proto-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-proto@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-hVXr/8DYlAKAzQYMsCf3ZsGweS6NTK3IHIEqmLokJZYcvJQBEEazeAdISfrL/utWnapg1Qnpw8u+W6SpxNzmTw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-proto-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-zipkin@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false - '@opentelemetry/exporter-zipkin@1.24.1': - resolution: {integrity: sha512-+Rl/VFmu2n6eaRMnVbyfZx1DqR/1KNyWebYuHyQBZaEAVIn/ZLgmofRpXN1X2nhJ4BNaptQUNxAstCYYz6dKoQ==} + /@opentelemetry/exporter-zipkin@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-J0ejrOx52s1PqvjNalIHvY/4v9ZxR2r7XS7WZbwK3qpVYZlGVq5V1+iCNweqsKnb/miUt/4TFvJBc9f5Q/kGcA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.21.0 + dev: false - '@opentelemetry/id-generator-aws-xray@1.2.2': + /@opentelemetry/id-generator-aws-xray@1.2.2(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-IKTqub5m/yI9+Cn4LJS+GbQrG7Ode9OWAmfJENmCMFTR5J2qGM7VOFaNpQFMICr7Wo8SUtgoJNbTxaQZ9AdMMA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/instrumentation-amqplib@0.37.0': - resolution: {integrity: sha512-XjOHeAOreh0XX4jlzTTUWWqu1dIGvMWM8yvd43JJdRMAmTZisezjKsxLjMEMIvF0PzQdoXwh9DiS9nYE4/QmpA==} + /@opentelemetry/instrumentation-amqplib@0.33.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-WQ/XPzNLOHL3fpsmgoQUkiKCkJ09hvPN8wGrGzzOHMiJ5/3LqvfvxsJ4Rcd6aWkA4il3hEfpl+V0VF0t/DP65A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-aws-lambda@0.41.1': - resolution: {integrity: sha512-/BLG+0DQr2tCILFGJKJH2Fg6eyjhqOlVflYpNddUEXnzyQ/PAhTdgirkqbICFgeSW2XYcEY9zXpuRldrVNw9cA==} + /@opentelemetry/instrumentation-aws-lambda@0.37.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-/wdZwUalIWAbxeycvmE+25c1xCMhe5EUuj8bN0MWWN3L8N2SYvfv6DmiRgwrTIPXRgIyFugh2udNiF4MezZN4Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-aws-xray': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/aws-lambda': 8.10.122 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-aws-sdk@0.41.0': - resolution: {integrity: sha512-7+8WMY0LQeqv6KIObXK+Py44qNFLeCU0ZLLxSZtXEbZ2wJlQISP1St65jRto0NV7isnZoyuOxb2+ZpypPPNv7Q==} + /@opentelemetry/instrumentation-aws-sdk@0.37.2(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-eFHHOk0P9EFQ9Ho+2w7KH9R8cH7hut0/ePSsrk0nAM6Tiq2lBPeHn8ialCWESAA9jSjy+iuDelwmqAEXEe+jrg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagation-utils': 0.30.10(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-bunyan@0.38.0': - resolution: {integrity: sha512-ThNcgTE22W7PKzTzz5qfGxb5Gf7rA3EORousYo2nJWHHcF6gqiMNv2+GXY3MdpjLBr8IgCfhtvbQdD6rlIPUpA==} + /@opentelemetry/instrumentation-bunyan@0.34.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+eshbCFr2dkUYO2jCpbYGFC5hs94UCOsQRK1XqNOjeiNvQRtqvKYqk8ARwJBYBX+aW4J02jOliAHQUh/d7gYPg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@types/bunyan': 1.8.9 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-cassandra-driver@0.38.0': - resolution: {integrity: sha512-ML4Vw0it2uIpETfX6skuSIGLHF9D3TUKOfdfrk9lnrzzWSzg2aS6pl3UeepkQX4wXHdzlxVRB0USrUqsmxMd5Q==} + /@opentelemetry/instrumentation-cassandra-driver@0.34.2(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-wuzq7QQ9o7PJnzseblNfBcURtM+9AwO6e1m644QYtAb/6YRR6qg6gAmAipVeQu01H5BuHBFC/92svaAkdIV2WQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-connect@0.36.1': - resolution: {integrity: sha512-xI5Q/CMmzBmHshPnzzjD19ptFaYO/rQWzokpNio4QixZYWhJsa35QgRvN9FhPkwgtuJIbt/CWWAufJ3egJNHEA==} + /@opentelemetry/instrumentation-connect@0.32.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-oUGph9idncdnHlQMwdIs6m6mii7Kdp9PpHkM9roOZy71h+2vvf6+cVn45bs2unBbE2Vxho2i/049QQbaYKDYlw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/connect': 3.4.36 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-cucumber@0.6.0': - resolution: {integrity: sha512-90eAF2JPSbPAsOuGfYyctYaoYXqy4Clbxt0j/uUgg6dto4oqwUw3AvTyHQEztLGxeXwEzC1EQigDtVPg5ZexYA==} + /@opentelemetry/instrumentation-cucumber@0.2.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-ydF0DpmE0D6wccAbxx1F+6kokzcSSRy3X78Bvgok/3fHUSSshGLErqNiQL1HV44OIcV6392P3tu/jtXtUq3UDQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-dataloader@0.9.0': - resolution: {integrity: sha512-fiyCOAw+tlbneok1x7P5UseoGW5nS60CWWx7NXzYW+WOexpSmDQQW7olttGa8fqE6/sVCoi1l+QdfVoETZi/NQ==} + /@opentelemetry/instrumentation-dataloader@0.5.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-l1qQvvygxZJw+S+4hgYgzvT4GArqBrar42wzB5LVsOy04+gmbDw/4y7IqxZYepFyXKuBownGS8pR4huRL/Tj/A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-dns@0.36.1': - resolution: {integrity: sha512-NWRbQ7q0E3co/CNTWLZZvUzZoKhB1iTitY282IM8HDTXkA6VRssCfOcvaHw5ezOh23TJbAeYxmmpVj4hFvDPYQ==} + /@opentelemetry/instrumentation-dns@0.32.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-fHJqrbezpZSipo4O9nF9yGq6R8oyr1W2gSlyk1foJNXBaqdCODTlzIa7BP50vGtLBN/m+qO8pMOWCJmYSBX35g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-document-load@0.37.0': + /@opentelemetry/instrumentation-document-load@0.37.0(@opentelemetry/api@1.8.0): resolution: {integrity: sha512-tmxx8k2gjUwbAEhnvxACEeYTHRwkrcvU3ABkmoH5NKtd5aWSiY6Pni2hCtccLqj0Hk4/jwv51+lLiA6moji6ZQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.25.0(@opentelemetry/api@1.8.0) + '@opentelemetry/instrumentation': 0.50.0(@opentelemetry/api@1.8.0) + '@opentelemetry/sdk-trace-base': 1.25.0(@opentelemetry/api@1.8.0) + '@opentelemetry/sdk-trace-web': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-express@0.39.0': - resolution: {integrity: sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A==} + /@opentelemetry/instrumentation-express@0.34.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pQBQxXpkH6imvzwCdPcw2FKjB1cphoRpmWTiGi6vtBdKXCP0hpne613ycpwhGG7C17S+mbarVmukbJKR4rmh6Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-fastify@0.36.1': - resolution: {integrity: sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA==} + /@opentelemetry/instrumentation-fastify@0.32.6(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-UkBu8rAqeVC034jsRMiEAmYhFQ03pvmE/MnoPKE9gAbgVtPILdekHYqAKM0MdqnEjW7pO45t4wWsbtIcN0eiBw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-fs@0.12.0': - resolution: {integrity: sha512-Waf+2hekJRxIwq1PmivxOWLdMOtYbY22hKr34gEtfbv2CArSv8FBJH4BmQxB9o5ZcwkdKu589qs009dbuSfNmQ==} + /@opentelemetry/instrumentation-fs@0.8.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-g99963nK8TuisUM3KH+ee5hOCHdCHSKiAdmy0RMdiKT7ITh3rXUct7fghQibViQA7FVPkdwM9+uRKkigJSFS9w==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-generic-pool@0.36.0': - resolution: {integrity: sha512-CExAEqJvK8jYxrhN8cl6EaGg57EGJi+qsSKouLC5lndXi68gZLOKbZIMZg4pF0kNfp/D4BFaGmA6Ap7d5WoPTw==} + /@opentelemetry/instrumentation-generic-pool@0.32.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-MNFloXa3SDg/rHh397JnWADr7iYQ6HHRwT7ZId5Vt0L1Xx+Qp3XSIILsXk5qTXVUIytEIVgn8iMT+kZILHzSqg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-graphql@0.40.0': - resolution: {integrity: sha512-LVRdEHWACWOczv2imD+mhUrLMxsEjPPi32vIZJT57zygR5aUiA4em8X3aiGOCycgbMWkIu8xOSGSxdx3JmzN+w==} + /@opentelemetry/instrumentation-graphql@0.36.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-EOvaS+d2909TOJJjNTsb0vHaLg8WdTLoQS8bRKdy3lMgdd7I4OL9/LSC7dp4M8CvJKz9B464Ix9PnARvhMkNOw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-grpc@0.51.1': - resolution: {integrity: sha512-coRTugFL7De/VNH/1NqPlxnfik87jS+jBXsny+Y/lMhXIA3x8t71IyL9ihuewkD+lNtIxIz6Y7Sq6kPuOqz5dQ==} + /@opentelemetry/instrumentation-grpc@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-KemIpB4jmywQv/+MbVoUIMVp3vr+rzra37TYbN7kTsbrn213YlzdXVamf6nq/yChI6q+9JlUnCdSZf86D6NO6g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-hapi@0.38.0': - resolution: {integrity: sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg==} + /@opentelemetry/instrumentation-hapi@0.33.3(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-l14u1TFPXMUjfHqnrHtzuMyLq6V8BikwhYJO/hIgkbaPCxS38TloCtDLJvcs8S8AZlcQfkUqE/NFgXYETZRo+Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/hapi__hapi': 20.0.13 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-http@0.51.1': - resolution: {integrity: sha512-6b3nZnFFEz/3xZ6w8bVxctPUWIPWiXuPQ725530JgxnN1cvYFd8CJ75PrHZNjynmzSSnqBkN3ef4R9N+RpMh8Q==} + /@opentelemetry/instrumentation-http@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-t5cxgqfV9AcxVP00/OL1ggkOSZM57VXDpvlWaOidYyyfLKcUJ9e2fGbNwoVsGFboRDeH0iFo7gLA3EEvX13wCA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-ioredis@0.40.0': - resolution: {integrity: sha512-Jv/fH7KhpWe4KBirsiqeUJIYrsdR2iu2l4nWhfOlRvaZ+zYIiLEzTQR6QhBbyRoAbU4OuYJzjWusOmmpGBnwng==} + /@opentelemetry/instrumentation-ioredis@0.36.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-xxab7n4TD5igCFR5N0j5PJFYVeOXm54ZtCARVS32xavwGyGf+Sb6VtuVCLdl0re4JENCg18FO97Dyb1ql2EBUA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/ioredis4': /@types/ioredis@4.28.10 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-knex@0.36.1': - resolution: {integrity: sha512-6bEuiI+yMf3D0+ZWZE2AKmXhIhBvZ0brdO/0A8lUqeqeS+sS4fTcjA1F2CclsCNxYWEgcs8o3QyQqPceBeVRlg==} + /@opentelemetry/instrumentation-knex@0.32.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-vqxK1wqhktQnBA7nGr6nqfhV5irSXK9v0R29hqlyTr/cB/86Hn3Z98zH58QvHo131FcE+d70QdiXu3P9S5vq4g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-koa@0.40.0': - resolution: {integrity: sha512-dJc3H/bKMcgUYcQpLF+1IbmUKus0e5Fnn/+ru/3voIRHwMADT3rFSUcGLWSczkg68BCgz0vFWGDTvPtcWIFr7A==} + /@opentelemetry/instrumentation-koa@0.36.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Qt6IF0mo3FZZ+x4NQhv/pViDtPSw/h/QYDvyIqMCuqUibqta619WLUCwAcanKnZWvzMuYh6lT0TnZ8ktjXo6jQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/koa': 2.13.9 + '@types/koa__router': 12.0.3 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-lru-memoizer@0.37.0': - resolution: {integrity: sha512-dHLrn55qVWsHJQYdForPWPUWDk2HZ2jjzkT+WoQSqpYT1j4HxfoiLfBTF+I3EbEYFAJnDRmRAUfA6nU5GPdCLQ==} + /@opentelemetry/instrumentation-lru-memoizer@0.33.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-vbm9QPEYD3FZNGSa+7xQ7uOkgbJtskIwp1KnsCpmdBBiulhBaqqgeNLFo7gd8UxMrI2Vu3LTlZil2D0dVt8g/A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-memcached@0.36.0': - resolution: {integrity: sha512-5efkT8ZfN8il5z+yfKYFGm2YR3mhlhaJoGfNOAylKE/6tUH3WDTTWaP7nrURtWGc+fuvDktcEch18Se8qsGS7w==} + /@opentelemetry/instrumentation-memcached@0.32.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-1MS9LfgZruAsWOHVDTI+/Wy9mFFivUlpGUwYC4D+ho1I4NUyE33XHwL1BKcjMupkuRnE0JmbhdBfTG9Ai1vFkw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/memcached': 2.2.10 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-mongodb@0.43.0': - resolution: {integrity: sha512-bMKej7Y76QVUD3l55Q9YqizXybHUzF3pujsBFjqbZrRn2WYqtsDtTUlbCK7fvXNPwFInqZ2KhnTqd0gwo8MzaQ==} + /@opentelemetry/instrumentation-mongodb@0.38.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-X6YjE8dOCf8lG8FGmoAvczZq7LtgYaRzZcLGthZSUJQ2rfp1JJRlJixc+COvhrn1HJj5ab+AsSdUQgTpfQgEHQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-mongoose@0.38.1': - resolution: {integrity: sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow==} + /@opentelemetry/instrumentation-mongoose@0.34.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-/wGNK7qR/QXpcidXntKsnfACHETp8G/f2o/k8FPvJ2lukvdM9r7cHLys8QwkJkTN8Kt3qG1VIwarGKYtE/zOSw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-mysql2@0.38.1': - resolution: {integrity: sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg==} + /@opentelemetry/instrumentation-mysql2@0.34.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Ai3+cJ83b11kLypIVEPLHuYCiIQjf828hHJPpllr78EhmHiq4S1yTW34aP3BzCBY+5Adr5PS5Nnv7NLBI/YfaQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-mysql@0.38.1': - resolution: {integrity: sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw==} + /@opentelemetry/instrumentation-mysql@0.34.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-cE8z1uJTeLcMj+R31t1pLkLqt3ryGMl1HApxsqqf8YCSHetrkVwGZOcyQ3phfgGSaNlC4/pdf3CQqfjhXbLWlA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/mysql': 2.15.22 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-nestjs-core@0.37.1': - resolution: {integrity: sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg==} + /@opentelemetry/instrumentation-nestjs-core@0.33.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-AynD6TesE0bZg9UzS4ZLG//6TmU8GkRrjubhxs7jYZ3JRAlJAq1In0zSwM082JOIs7wr286nhs1FmqK91cG1cg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-net@0.36.0': - resolution: {integrity: sha512-rZlbSgwAJys8lpug+xIeAdO98ypYMAPVqrHqc4AHuUl5S4MULHEcjGLMZLoE/guEGO4xAQ5XUezpRFGM1SAnsg==} + /@opentelemetry/instrumentation-net@0.32.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-omBLTXyJeCtBy1MzVi+IzUcpXiup90k0z3AGhNKbzro4RhpsdMpN9O+3zZCXCIHMuyifhy7z8w99wmvvFO/FCQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-pg@0.41.0': - resolution: {integrity: sha512-BSlhpivzBD77meQNZY9fS4aKgydA8AJBzv2dqvxXFy/Hq64b7HURgw/ztbmwFeYwdF5raZZUifiiNSMLpOJoSA==} + /@opentelemetry/instrumentation-pg@0.37.2(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-MAiKqdtGItYjvD6rOCyGS27CdMaDnh2JuImIHXhrPjq/sb2JlBNm6m1e4BH4uik1VfcKt/I3pI3UkydSWIscCg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.7.0) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-pino@0.39.0': - resolution: {integrity: sha512-uA17F2iP77o3NculB63QD2zv3jkJ093Gfb0GxHLEqTIqpYs1ToJ53ybWwjJwqFByxk7GrliaxaxVtWC23PKzBg==} + /@opentelemetry/instrumentation-pino@0.34.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-auYDSeFhkPFXayT/060mQRL7O88Bt5NKcV0qOfquNa9J5/qs5dlJYdTOraxPrjiGPM3tHaAJ+AvAhR0CPYgZew==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-redis-4@0.39.0': - resolution: {integrity: sha512-Zpfqfi83KeKgVQ0C2083GZPon3ZPYQ5E59v9FAbhubtOoUb9Rh7n111YD8FPW3sgx6JKp1odXmBmfQhWCaTOpQ==} + /@opentelemetry/instrumentation-redis-4@0.35.6(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-OVSUJZAuy6OX18X2TKPdPlpwM5t4FooJU9QXiUxezhdMvfIAu00Agchw+gRbszkM7nvQ9dkXFOZO3nTmJNcLcA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-redis@0.39.1': - resolution: {integrity: sha512-HUjTerD84jRJnSyDrRPqn6xQ7K91o9qLflRPZqzRvq0GRj5PMfc6TJ/z3q/ayWy/2Kzffhrp7HCIVp0u0TkgUg==} + /@opentelemetry/instrumentation-redis@0.35.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-UPYUncDlLqDPtyU11UhyZOUxAyPQS6yQGT0b96KjpqMhmuRb3b0WxzZh3SoIaAyprL5f9fxyeV2HfSulR0aWFQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-restify@0.38.0': - resolution: {integrity: sha512-VYK47Z9GBaZX5MQLL7kZDdzQDdyUtHRD4J/GSr6kdwmIpdpUQXLsV3EnboeB8P+BlpucF57FyJKE8yWTOEMfnA==} + /@opentelemetry/instrumentation-restify@0.34.3(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-nUqf4RTcQyc/YTWMT0e/ZqvuQqhRH04MOoSwaH6ocmyrEhKdPDq9AbvSMerQ/AxNC9yju/PytgzFFWH45hh3KA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-router@0.37.0': - resolution: {integrity: sha512-+OPcm7C9I5oPqnpStE+1WkdPWjRx0k5XKratxQmIDFZrmhRcqvMte3vrrzE/OBPg9iqh2tKrSe0y7+0sRfTJyQ==} + /@opentelemetry/instrumentation-router@0.33.4(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-4140BgILsL0H8tA0BBN2tjzajgjxlDqd4xPatk2i5q9ofy8wlB0BlDJ4m36U7G1z0v+a+LshQSNqPP2VHZ9ORw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-socket.io@0.39.0': - resolution: {integrity: sha512-4J2ehk5mJyDT6j2yJCOuPxAjit5QB1Fwzhx0LID5jjvhI9LxzZIGDNAPTTHyghSiaRDeNMzceXKkkEQJkg2MNw==} + /@opentelemetry/instrumentation-socket.io@0.35.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-ED1/Wco05H9fepKqX7n2kONq9EXxkBZTKS29nUH9vVL7wSIT8sBIDqpHz94CnQ8xuicaQQ7c5h9TVuhjtzV43Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-tedious@0.10.1': - resolution: {integrity: sha512-maSXMxgS0szU52khQzAROV4nWr+3M8mZajMQOc3/7tYjo+Q3HlWAowOuagPvp4pwROK4x6oDaFYlY+ZSj1qjYA==} + /@opentelemetry/instrumentation-tedious@0.6.5(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-jjdrDegLUodz9np0yKCAa7sLxlAGTsxM7wU7l1mQ2NM6PHAGv4X3eSFClUk3fOipLx4+r5jTLnlsgu7g9CW+Qw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-undici@0.2.0': - resolution: {integrity: sha512-RH9WdVRtpnyp8kvya2RYqKsJouPxvHl7jKPsIfrbL8u2QCKloAGi0uEqDHoOS15ZRYPQTDXZ7d8jSpUgSQmvpA==} + /@opentelemetry/instrumentation-winston@0.33.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-4tSORoAY9f+yzqNVGcGr/3GydPMfgSiKK1OESc+qBwVTz0bmz4cOrhCruCngGzoqDCmPYpwqwR/8j4wRKgcUpw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': ^1.7.0 + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation-winston@0.37.0': - resolution: {integrity: sha512-vOx55fxdNjo2XojJf8JN4jP7VVvQCh7UQzzQ2Q2FpGJpt8Z3EErKaY8xOBkOuJH0TtL/Q72rmIn9c+mRG46BxA==} + /@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.7.1 + require-in-the-middle: 7.3.0 + semver: 7.6.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation@0.50.0': - resolution: {integrity: sha512-bhGhbJiZKpuu7wTaSak4hyZcFPlnDeuSF/2vglze8B4w2LubcSbbOnkVTzTs5SXtzh4Xz8eRjaNnAm+u2GYufQ==} + /@opentelemetry/instrumentation@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-sjtZQB5PStIdCw5ovVTDGwnmQC+GGYArJNgIcydrDSqUTdYBnMrN9P4pwQZgS3vTGIp+TU1L8vMXGe51NVmIKQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.7.1 + require-in-the-middle: 7.3.0 + semver: 7.6.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/instrumentation@0.51.1': - resolution: {integrity: sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==} + /@opentelemetry/instrumentation@0.50.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-bhGhbJiZKpuu7wTaSak4hyZcFPlnDeuSF/2vglze8B4w2LubcSbbOnkVTzTs5SXtzh4Xz8eRjaNnAm+u2GYufQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/api-logs': 0.50.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.7.1 + require-in-the-middle: 7.3.0 + semver: 7.6.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false - '@opentelemetry/otlp-exporter-base@0.51.1': - resolution: {integrity: sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg==} + /@opentelemetry/otlp-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/otlp-grpc-exporter-base@0.51.1': - resolution: {integrity: sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA==} + /@opentelemetry/otlp-exporter-base@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-T4LJND+Ugl87GUONoyoQzuV9qCn4BFIPOnCH1biYqdGhc2JahjuLqVD9aefwLzGBW638iLAo88Lh68h2F1FLiA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/otlp-proto-exporter-base@0.51.1': - resolution: {integrity: sha512-gxxxwfk0inDMb5DLeuxQ3L8TtptxSiTNHE4nnAJH34IQXAVRhXSXW1rK8PmDKDngRPIZ6J7ncUCjjIn8b+AgqQ==} + /@opentelemetry/otlp-grpc-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.10.9 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + protobufjs: 7.3.2 + dev: false - '@opentelemetry/otlp-transformer@0.51.1': - resolution: {integrity: sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q==} + /@opentelemetry/otlp-grpc-exporter-base@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Vdp56RK9OU+Oeoy3YQC/UMOWglKQ9qvgGr49FgF4r8vk5DlcTUgVS0m3KG8pykmRPA+5ZKaDuqwPw5aTvWmHFw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.9.0' + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.10.9 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + protobufjs: 7.3.2 + dev: false - '@opentelemetry/propagation-utils@0.30.9': - resolution: {integrity: sha512-DP2Y91zyw2uNgKLbej6c3IIjyF27sKnRK/UY/6msMIVGPIbZgtH9L0JOioN5L5kYjEkH4CDvt921SjutN7hY4A==} + /@opentelemetry/otlp-proto-exporter-base@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.46.0(@opentelemetry/api@1.7.0) + protobufjs: 7.3.2 + dev: false - '@opentelemetry/propagator-aws-xray@1.24.1': - resolution: {integrity: sha512-RzwoLe6QzsYGcpmxxDbbbgSpe3ncxSM4dtFHXh/rCYGjyq0nZGXKvk26mJtWZ4kQ3nuiIoqSZueIuGmt/mvOTA==} + /@opentelemetry/otlp-proto-exporter-base@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-14GSTvPZPfrWsB54fYMGb8v+Uge5xGXyz0r2rf4SzcRnO2hXCPHEuL3yyL50emaKPAY+fj29Dm0bweawe8UA6A==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.9.0' + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + protobufjs: 7.3.2 + dev: false - '@opentelemetry/propagator-b3@1.24.1': - resolution: {integrity: sha512-nda97ZwhpZKyUJTXqQuKzNhPMUgMLunbbGWn8kroBwegn+nh6OhtyGkrVQsQLNdVKJl0KeB5z0ZgeWszrYhwFw==} + /@opentelemetry/otlp-transformer@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.9.0' + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/propagator-jaeger@1.24.1': - resolution: {integrity: sha512-7bRBJn3FG1l195A1m+xXRHvgzAOBsfmRi9uZ5Da18oTh7BLmNDiA8+kpk51FpTsU1PCikPVpRDNPhKVB6lyzZg==} + /@opentelemetry/otlp-transformer@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-yuoS4cUumaTK/hhxW3JUy3wl2U4keMo01cFDrUOmjloAdSSXvv1zyQ920IIH4lymp5Xd21Dj2/jq2LOro56TJg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.9.0' - - '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.48.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.48.0(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/resource-detector-alibaba-cloud@0.28.9': - resolution: {integrity: sha512-cTV2YFFkKAZUZgs5SMknIX4MmFb/0KQhrJuiz2dtJKnI1n7OanCgnMkuXzJ5+CbifRB57I2g3HnwcSPOx3zsKw==} + /@opentelemetry/propagation-utils@0.30.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-hhTW8pFp9PSyosYzzuUL9rdm7HF97w3OCyElufFHyUnYnKkCBbu8ne2LyF/KSdI/xZ81ubxWZs78hX4S7pLq5g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false - '@opentelemetry/resource-detector-aws@1.5.0': - resolution: {integrity: sha512-JNk/kSzzNQaiMo/F0b/bm8S3Qtr/m89BckN9B4U/cPHSqKLdxX03vgRBOqkXJ5KlAD8kc6K1Etcr8QfvGw6+uA==} + /@opentelemetry/propagator-aws-xray@1.25.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+honT9J/Xa6Mxk7AO/VlSUGaVSSQzqHr0wZDWrSunnc3eVbS5YTuv7UrcoHTED+AYziawTlx7ICeAX2VPc1M+w==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': ^1.0.0 + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/resource-detector-azure@0.2.7': - resolution: {integrity: sha512-+R3VnPaK6rc+kKfdvhgQlYDGXy0+JMAjPNDjcRQSeXY8pVOzHGCIrY+gT6gUrpjsw8w1EgNBVofr+qeNOr+o4A==} + /@opentelemetry/propagator-b3@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/propagator-b3@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-3ZTobj2VDIOzLsIvvYCdpw6tunxUVElPxDvog9lS49YX4hohHeD84A8u9Ns/6UYUcaN5GSoEf891lzhcBFiOLA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/propagator-jaeger@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/propagator-jaeger@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-8TQSwXjBmaDx7JkxRD7hdmBmRK2RGRgzHX1ArJfJhIc5trzlVweyorzqQrXOvqVEdEg+zxUMHkL5qbGH/HDTPA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/redis-common@0.36.2: + resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/resource-detector-alibaba-cloud@0.28.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TZv/1Y2QCL6sJ+X9SsPPBXe4786bc/Qsw0hQXFsNTbJzDTGGUmOAlSZ2qPiuqAd4ZheUYfD+QA20IvAjUz9Hhg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false + + /@opentelemetry/resource-detector-aws@1.5.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+IUh4gAwJf49vOJM6PIjmgOapRH5zr21ZpFnNU0QZmxRi52AXVhZN7A89pKW6GAQheWnVQLD7iUN87ieYt70tw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false - '@opentelemetry/resource-detector-container@0.3.9': - resolution: {integrity: sha512-kfJ78av51EKk09fn5cwe5UNt+G7UBLvPTmfK/nZzvmNs7enw/TGB8X0j0JUHb9487ypRGph6MBoeP1+qZh+w1A==} + /@opentelemetry/resource-detector-container@0.3.11(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-22ndMDakxX+nuhAYwqsciexV8/w26JozRUV0FN9kJiqSWtA1b5dCVtlp3J6JivG5t8kDN9UF5efatNnVbqRT9Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false - '@opentelemetry/resource-detector-gcp@0.29.9': - resolution: {integrity: sha512-rTUm0U0cF8f75JzeMpMLbQ4m1uLph+Q31DQKk8ekdDe6SZ1EPD4rM1JgRnbxZtsC2sE8ju87s5nEio77xPz7dQ==} + /@opentelemetry/resource-detector-gcp@0.29.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-rm2HKJ9lsdoVvrbmkr9dkOzg3Uk0FksXNxvNBgrCprM1XhMoJwThI5i0h/5sJypISUAJlEeJS6gn6nROj/NpkQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + gcp-metadata: 6.1.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /@opentelemetry/resources@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/resources@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-1Z86FUxPKL6zWVy2LdhueEGl9AHDJcx+bvHStxomruz6Whd02mE3lNUMjVJ+FGRoktx/xYQcxccYb03DiUP6Yw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.21.0 + dev: false - '@opentelemetry/resources@1.24.1': - resolution: {integrity: sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==} + /@opentelemetry/resources@1.23.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.23.0 + dev: false + + /@opentelemetry/resources@1.25.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-iHjydPMYJ+Li1auveJCq2rp5U2h6Mhq8BidiyE0jfVlDTFyR1ny8AfJHfmFzJ/RAM8vT8L7T21kcmGybxZC7lQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false + + /@opentelemetry/resources@1.25.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-iHjydPMYJ+Li1auveJCq2rp5U2h6Mhq8BidiyE0jfVlDTFyR1ny8AfJHfmFzJ/RAM8vT8L7T21kcmGybxZC7lQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.25.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false - '@opentelemetry/sdk-logs@0.51.1': - resolution: {integrity: sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==} + /@opentelemetry/sdk-logs@0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.9.0' + '@opentelemetry/api': '>=1.4.0 <1.8.0' '@opentelemetry/api-logs': '>=0.39.1' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/sdk-metrics@1.24.1': - resolution: {integrity: sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==} + /@opentelemetry/sdk-logs@0.48.0(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-lRcA5/qkSJuSh4ItWCddhdn/nNbVvnzM+cm9Fg1xpZUeTeozjJDBcHnmeKoOaWRnrGYBdz6UTY6bynZR9aBeAA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.9.0' + '@opentelemetry/api': '>=1.4.0 <1.8.0' + '@opentelemetry/api-logs': '>=0.39.1' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.48.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/sdk-node@0.51.1': - resolution: {integrity: sha512-GgmNF9C+6esr8PIJxCqHw84rEOkYm6XdFWZ2+Wyc3qaUt92ACoN7uSw5iKNvaUq62W0xii1wsGxwHzyENtPP8w==} + /@opentelemetry/sdk-logs@0.48.0(@opentelemetry/api-logs@0.52.0)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-lRcA5/qkSJuSh4ItWCddhdn/nNbVvnzM+cm9Fg1xpZUeTeozjJDBcHnmeKoOaWRnrGYBdz6UTY6bynZR9aBeAA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.9.0' + '@opentelemetry/api': '>=1.4.0 <1.8.0' + '@opentelemetry/api-logs': '>=0.39.1' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@opentelemetry/sdk-trace-base@1.24.1': - resolution: {integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==} + /@opentelemetry/sdk-metrics@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.9.0' + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + lodash.merge: 4.6.2 + dev: false + + /@opentelemetry/sdk-metrics@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-on1jTzIHc5DyWhRP+xpf+zrgrREXcHBH4EDAfaB5mIG7TWpKxNXooQ1JCylaPsswZUv4wGnVTinr4HrBdGARAQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + lodash.merge: 4.6.2 + dev: false + + /@opentelemetry/sdk-node@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.46.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-zipkin': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-node': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/sdk-node@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-3o3GS6t+VLGVFCV5bqfGOcWIgOdkR/UE6Qz7hHksP5PXrVBeYsPqts7cPma5YXweaI3r3h26mydg9PqQIcqksg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.48.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-zipkin': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.48.0(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-node': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.21.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/sdk-trace-base@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.19.0 + dev: false + + /@opentelemetry/sdk-trace-base@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-yrElGX5Fv0umzp8Nxpta/XqU71+jCAyaLk34GmBzNcrW43nqbrqvdPs4gj4MVy/HcTjr6hifCDCYA3rMkajxxA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.21.0 + dev: false - '@opentelemetry/sdk-trace-node@1.24.1': - resolution: {integrity: sha512-/FZX8uWaGIAwsDhqI8VvQ+qWtfMNlXjaFYGc+vmxgdRFppCSSIRwrPyIhJO1qx61okyYhoyxVEZAfoiNxrfJCg==} + /@opentelemetry/sdk-trace-base@1.23.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.23.0 + dev: false + + /@opentelemetry/sdk-trace-base@1.25.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-6+g2fiRQUG39guCsKVeY8ToeuUf3YUnPkN6DXRA1qDmFLprlLvZm9cS6+chgbW70cZJ406FTtSCDnJwxDC5sGQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.25.0(@opentelemetry/api@1.8.0) + '@opentelemetry/resources': 1.25.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.25.0 + dev: false + + /@opentelemetry/sdk-trace-node@1.19.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/context-async-hooks': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-b3': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-jaeger': 1.19.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.19.0(@opentelemetry/api@1.7.0) + semver: 7.6.2 + dev: false + + /@opentelemetry/sdk-trace-node@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-1pdm8jnqs+LuJ0Bvx6sNL28EhC8Rv7NYV8rnoXq3GIQo7uOHBDAFSj7makAfbakrla7ecO1FRfI8emnR4WvhYA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/context-async-hooks': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-b3': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-jaeger': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + semver: 7.6.2 + dev: false + + /@opentelemetry/sdk-trace-web@1.21.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-MxkmY/UNXkDiZj7JUu5T7wWt8Ai4NJEwSjGoQQ9YLvgLUIivvaIo9Mne+Q+KLOUG2v/uhivz3qzxbCODVa0c1A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.8.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.21.0 + dev: false - '@opentelemetry/sdk-trace-web@1.24.1': - resolution: {integrity: sha512-0w+aKRai9VREeo3VrtW+hcbrE2Fl/uKL7G+oXgRNf6pI9QLaEGuEzUTX+oxXVPBadzjOd+5dqCHYdX7UeVjzwA==} + /@opentelemetry/sdk-trace-web@1.23.0(@opentelemetry/api@1.8.0): + resolution: {integrity: sha512-tx9N3hIkd6k567BeujBnpXYdhu3ptYVk0ZkhdcjyQ3I8ZDJ+/JkVtaVNLAuf8hp1buTqNDmxSipALMxEmK2fnw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' + dependencies: + '@opentelemetry/api': 1.8.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/sdk-trace-base': 1.23.0(@opentelemetry/api@1.8.0) + '@opentelemetry/semantic-conventions': 1.23.0 + dev: false - '@opentelemetry/semantic-conventions@1.24.1': - resolution: {integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==} + /@opentelemetry/semantic-conventions@1.19.0: + resolution: {integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==} engines: {node: '>=14'} + dev: false - '@opentelemetry/sql-common@0.40.1': + /@opentelemetry/semantic-conventions@1.21.0: + resolution: {integrity: sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/semantic-conventions@1.23.0: + resolution: {integrity: sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/semantic-conventions@1.25.0: + resolution: {integrity: sha512-M+kkXKRAIAiAP6qYyesfrC5TOmDpDVtsxuGfPcqd9B/iBrac+E14jYwrgm0yZBUIbIP2OnqC3j+UgkXLm1vxUQ==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.1.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + dev: false - '@protobufjs/aspromise@1.1.2': + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false - '@protobufjs/base64@1.1.2': + /@protobufjs/base64@1.1.2: resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false - '@protobufjs/codegen@2.0.4': + /@protobufjs/codegen@2.0.4: resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false - '@protobufjs/eventemitter@1.1.0': + /@protobufjs/eventemitter@1.1.0: resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false - '@protobufjs/fetch@1.1.0': + /@protobufjs/fetch@1.1.0: resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false - '@protobufjs/float@1.0.2': + /@protobufjs/float@1.0.2: resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false - '@protobufjs/inquire@1.1.0': + /@protobufjs/inquire@1.1.0: resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false - '@protobufjs/path@1.1.2': + /@protobufjs/path@1.1.2: resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false - '@protobufjs/pool@1.1.0': + /@protobufjs/pool@1.1.0: resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false - '@protobufjs/utf8@1.1.0': + /@protobufjs/utf8@1.1.0: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false - '@reactflow/background@11.3.13': - resolution: {integrity: sha512-hkvpVEhgvfTDyCvdlitw4ioKCYLaaiRXnuEG+1QM3Np+7N1DiWF1XOv5I8AFyNoJL07yXEkbECUTsHvkBvcG5A==} + /@reactflow/background@11.3.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jBuWVb43JQy5h4WOS7G0PU8voGTEJNA+qDmx8/jyBtrjbasTesLNfQvboTGjnQYYiJco6mw5vrtQItAJDNoIqw==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + classcat: 5.0.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reactflow/controls@11.2.13': - resolution: {integrity: sha512-3xgEg6ALIVkAQCS4NiBjb7ad8Cb3D8CtA7Vvl4Hf5Ar2PIVs6FOaeft9s2iDZGtsWP35ECDYId1rIFVhQL8r+A==} + /@reactflow/controls@11.2.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-L9F3+avFRShoprdT+5oOijm5gVsz2rqWCXBzOAgD923L1XFGIspdiHLLf8IlPGsT+mfl0GxbptZhaEeEzl1e3g==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + classcat: 5.0.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reactflow/core@11.11.3': - resolution: {integrity: sha512-+adHdUa7fJSEM93fWfjQwyWXeI92a1eLKwWbIstoCakHpL8UjzwhEh6sn+mN2h/59MlVI7Ehr1iGTt3MsfcIFA==} + /@reactflow/core@11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+GfgyskweL1PsgRSguUwfrT2eDotlFgaKfDLm7x0brdzzPJY2qbCzVetaxedaiJmIli3817iYbILvE9qLKwbRA==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@types/d3': 7.4.3 + '@types/d3-drag': 3.0.7 + '@types/d3-selection': 3.0.10 + '@types/d3-zoom': 3.0.8 + classcat: 5.0.5 + d3-drag: 3.0.0 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reactflow/minimap@11.7.13': - resolution: {integrity: sha512-m2MvdiGSyOu44LEcERDEl1Aj6x//UQRWo3HEAejNU4HQTlJnYrSN8tgrYF8TxC1+c/9UdyzQY5VYgrTwW4QWdg==} + /@reactflow/minimap@11.7.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SRDU77c2PCF54PV/MQfkz7VOW46q7V1LZNOQlXAp7dkNyAOI6R+tb9qBUtUJOvILB+TCN6pRfD9fQ+2T99bW3Q==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@types/d3-selection': 3.0.10 + '@types/d3-zoom': 3.0.8 + classcat: 5.0.5 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reactflow/node-resizer@2.2.13': - resolution: {integrity: sha512-X7ceQ2s3jFLgbkg03n2RYr4hm3jTVrzkW2W/8ANv/SZfuVmF8XJxlERuD8Eka5voKqLda0ywIZGAbw9GoHLfUQ==} + /@reactflow/node-resizer@2.2.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6LHJGuI1zHyRrZHw5gGlVLIWnvVxid9WIqw8FMFSg+oF2DuS3pAPwSoZwypy7W22/gDNl9eD1Dcl/OtFtDFQ+w==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + classcat: 5.0.5 + d3-drag: 3.0.0 + d3-selection: 3.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reactflow/node-toolbar@1.3.13': - resolution: {integrity: sha512-aknvNICO10uWdthFSpgD6ctY/CTBeJUMV9co8T9Ilugr08Nb89IQ4uD0dPmr031ewMQxixtYIkw+sSDDzd2aaQ==} + /@reactflow/node-toolbar@1.3.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4kJRvNna/E3y2MZW9/80wTKwkhw4pLJiz3D5eQrD13XcmojSb1rArO9CiwyrI+rMvs5gn6NlCFB4iN1F+Q+lxQ==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + classcat: 5.0.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zustand: 4.5.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - immer + dev: false - '@reduxjs/toolkit@2.2.5': - resolution: {integrity: sha512-aeFA/s5NCG7NoJe/MhmwREJxRkDs0ZaSqt0MxhWUrwCf1UQXpwR87RROJEql0uAkLI6U7snBOYOcKw83ew3FPg==} + /@reduxjs/toolkit@2.2.3(react-redux@9.1.0)(react@18.2.0): + resolution: {integrity: sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==} peerDependencies: - react: ^18.2.0 - react-redux: ^9.1.0 + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 peerDependenciesMeta: react: optional: true react-redux: optional: true + dependencies: + immer: 10.1.1 + react: 18.2.0 + react-redux: 9.1.0(@types/react@18.2.79)(react@18.2.0)(redux@5.0.1) + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + dev: false - '@rollup/pluginutils@4.2.1': + /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: false - '@rollup/pluginutils@5.1.0': + /@rollup/pluginutils@5.1.0: resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2093,631 +3727,1166 @@ packages: peerDependenciesMeta: rollup: optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: false - '@rollup/rollup-android-arm-eabi@4.18.0': + /@rollup/rollup-android-arm-eabi@4.18.0: resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] + requiresBuild: true + optional: true - '@rollup/rollup-android-arm64@4.18.0': + /@rollup/rollup-android-arm64@4.18.0: resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} cpu: [arm64] os: [android] + requiresBuild: true + optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + /@rollup/rollup-darwin-arm64@4.18.0: resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} cpu: [arm64] os: [darwin] + requiresBuild: true + optional: true - '@rollup/rollup-darwin-x64@4.18.0': + /@rollup/rollup-darwin-x64@4.18.0: resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} cpu: [x64] os: [darwin] + requiresBuild: true + optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + /@rollup/rollup-linux-arm-musleabihf@4.18.0: resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + /@rollup/rollup-linux-arm64-gnu@4.18.0: resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + /@rollup/rollup-linux-arm64-musl@4.18.0: resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + /@rollup/rollup-linux-riscv64-gnu@4.18.0: resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + /@rollup/rollup-linux-s390x-gnu@4.18.0: resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + /@rollup/rollup-linux-x64-gnu@4.18.0: resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + /@rollup/rollup-linux-x64-musl@4.18.0: resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] + requiresBuild: true + optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + /@rollup/rollup-win32-arm64-msvc@4.18.0: resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} cpu: [arm64] os: [win32] + requiresBuild: true + optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + /@rollup/rollup-win32-ia32-msvc@4.18.0: resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} cpu: [ia32] os: [win32] + requiresBuild: true + optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + /@rollup/rollup-win32-x64-msvc@4.18.0: resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} cpu: [x64] os: [win32] + requiresBuild: true + optional: true - '@rushstack/node-core-library@4.0.2': + /@rushstack/node-core-library@4.0.2: resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true + dependencies: + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 + dev: false - '@rushstack/rig-package@0.5.2': + /@rushstack/rig-package@0.5.2: resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + dependencies: + resolve: 1.22.8 + strip-json-comments: 3.1.1 + dev: false - '@rushstack/terminal@0.10.0': + /@rushstack/terminal@0.10.0: resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true + dependencies: + '@rushstack/node-core-library': 4.0.2 + supports-color: 8.1.1 + dev: false - '@rushstack/ts-command-line@4.19.1': + /@rushstack/ts-command-line@4.19.1: resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + dependencies: + '@rushstack/terminal': 0.10.0 + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + dev: false + + /@shikijs/core@1.3.0: + resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + dev: false + + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false - '@shikijs/core@1.6.1': - resolution: {integrity: sha512-CqYyepN4SnBopaoXYwng4NO8riB5ask/LTCkhOFq+GNGtr2X+aKeD767eYdqYukeixEUvv4bXdyTYVaogj7KBw==} + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: false - '@sinclair/typebox@0.27.8': + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: false + + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@sindresorhus/is@4.6.0': + /@sindresorhus/is@4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} + dev: true - '@szmarczak/http-timer@4.0.6': + /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: true - '@tanstack/query-core@5.40.0': - resolution: {integrity: sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==} + /@tanstack/query-core@5.32.0: + resolution: {integrity: sha512-Z3flEgCat55DRXU5UMwYU1U+DgFZKA3iufyOKs+II7iRAo0uXkeU7PH5e6sOH1CGEag0IpKmZxlUFpCg6roSKw==} + dev: false - '@tanstack/react-query@5.40.0': - resolution: {integrity: sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==} + /@tanstack/react-query@5.32.0(react@18.2.0): + resolution: {integrity: sha512-+E3UudQtarnx9A6xhpgMZapyF+aJfNBGFMgI459FnduEZqT/9KhOWnMOneZahLRt52yzskSA0AuOyLkXHK0yBA==} peerDependencies: - react: ^18.2.0 + react: ^18.0.0 + dependencies: + '@tanstack/query-core': 5.32.0 + react: 18.2.0 + dev: false - '@tanstack/react-virtual@3.0.0-beta.54': + /@tanstack/react-virtual@3.0.0-beta.54(react@18.2.0): resolution: {integrity: sha512-D1mDMf4UPbrtHRZZriCly5bXTBMhylslm4dhcHqTtDJ6brQcgGmk8YD9JdWBGWfGSWPKoh2x1H3e7eh+hgPXtQ==} peerDependencies: - react: ^18.2.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@tanstack/virtual-core': 3.0.0-beta.54 + react: 18.2.0 + dev: false - '@tanstack/virtual-core@3.0.0-beta.54': + /@tanstack/virtual-core@3.0.0-beta.54: resolution: {integrity: sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g==} + dev: false - '@tauri-apps/api@2.0.0-beta.13': - resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==} + /@tauri-apps/api@2.0.0-beta.11: + resolution: {integrity: sha512-wJRY+fBUm3KpqZDHMIz5HRv+1vlnvRJ/dFxiyY3NlINTx2qXqDou5qWYcP1CuZXsd39InWVPV3FAZvno/kGCkA==} engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - '@tauri-apps/cli-darwin-arm64@1.5.14': - resolution: {integrity: sha512-lxoSOp3KKSqzHJa7iT32dukPGMlfsTuja1xXSgwR8o/fqzpYJY7FY/3ZxesP8HR66FcK+vtqa//HNqeOQ0mHkA==} + /@tauri-apps/cli-darwin-arm64@1.5.11: + resolution: {integrity: sha512-2NLSglDb5VfvTbMtmOKWyD+oaL/e8Z/ZZGovHtUFyUSFRabdXc6cZOlcD1BhFvYkHqm+TqGaz5qtPR5UbqDs8A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-darwin-arm64@2.0.0-beta.17': + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.17: resolution: {integrity: sha512-N69Udn+Kw7QqhOMOmlmuhG/0WPz7g5LNOGRAvDEaBJLUneu2o3iUAC1HIMDF/MffTiJClcCPmDtbcSkr6glf9w==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-darwin-x64@1.5.14': - resolution: {integrity: sha512-EXSwN1n5spfG8FoXuyc90ACtmDJXzaZ1gxyENaq9xEpQoo7j/Q1vb6qXxmr6azKr8zmqY4h08ZFbv3exh93xJg==} + /@tauri-apps/cli-darwin-x64@1.5.11: + resolution: {integrity: sha512-/RQllHiJRH2fJOCudtZlaUIjofkHzP3zZgxi71ZUm7Fy80smU5TDfwpwOvB0wSVh0g/ciDjMArCSTo0MRvL+ag==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-darwin-x64@2.0.0-beta.17': + /@tauri-apps/cli-darwin-x64@2.0.0-beta.17: resolution: {integrity: sha512-oHHibsdHkCsHUAFtLKXquSyGNBl9Yoa86zvoLUx3RosXzZsAFH50KxNIHgHiUVTmwBlYepe/fhY0BxQXDCnJ1Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@1.5.14': - resolution: {integrity: sha512-Yb8BH/KYR7Tl+de40sZPfrqbhcU3Jlu+UPIrnXt05sjn48xqIps74Xjz8zzVp0TuHxUp8FmIGtCVhQgsbrsvvg==} + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.11: + resolution: {integrity: sha512-IlBuBPKmMm+a5LLUEK6a21UGr9ZYd6zKuKLq6IGM4tVweQa8Sf2kP2Nqs74dMGIUrLmMs0vuqdURpykQg+z4NQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.17': + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.17: resolution: {integrity: sha512-nA5Y350e+v5sURMmbHeJ5V1FXiOkK6zd1GgtYmVzh+n64VYIgBaglDWdSliNXPsqbU1rr+f2a32igjfqgGaTxA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm64-gnu@1.5.14': - resolution: {integrity: sha512-QrKHP4gRaHiup478rPBZ+BmNd88yze9jMmheoNy9mN1K/aECRmTHO+tWhsxv5moFHZzRhO0QDWxxvTtiaPXaGg==} + /@tauri-apps/cli-linux-arm64-gnu@1.5.11: + resolution: {integrity: sha512-w+k1bNHCU/GbmXshtAhyTwqosThUDmCEFLU4Zkin1vl2fuAtQry2RN7thfcJFepblUGL/J7yh3Q/0+BCjtspKQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.17': + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.17: resolution: {integrity: sha512-HEvj0VNr8GiG2F+BCXaIBC2K2L2wWTyA+pLgc0BvD6cxJZdAnah/Wy3ctWQQBq7+gC2itkaCMdmbcby8EHbpaA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm64-musl@1.5.14': - resolution: {integrity: sha512-Hb1C1VMxmUcyGjW/K/INKF87zzzgLEVRmWZZnQd7M1P4uue4xPyIwUELSdX12Z2jREPgmLW4AXPD0m6wsNu7iw==} + /@tauri-apps/cli-linux-arm64-musl@1.5.11: + resolution: {integrity: sha512-PN6/dl+OfYQ/qrAy4HRAfksJ2AyWQYn2IA/2Wwpaa7SDRz2+hzwTQkvajuvy0sQ5L2WCG7ymFYRYMbpC6Hk9Pg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.17': + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.17: resolution: {integrity: sha512-/sJJRI0IEk6SaLpG89nxh+ivteoC07KNmQPBsp5VKEYeNYjsuLKmQ346bKj7o+a1nVAcpjPIJvoZ16ud+7YKzA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-x64-gnu@1.5.14': - resolution: {integrity: sha512-kD9v/UwPDuhIgq2TJj/s2/7rqk+vmExVV6xHPKI8vVbIvlNAOZqmx3fpxjej1241vhJ/piGd/m6q6YMWGsL0oQ==} + /@tauri-apps/cli-linux-x64-gnu@1.5.11: + resolution: {integrity: sha512-MTVXLi89Nj7Apcvjezw92m7ZqIDKT5SFKZtVPCg6RoLUBTzko/BQoXYIRWmdoz2pgkHDUHgO2OMJ8oKzzddXbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.17': + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.17: resolution: {integrity: sha512-VCSD1NUi6nm8e27nD8reKEMLOJK79FUJhRx+YNH1y4o6nlnNIR6H0FPP98+o6K91ps9YJXdMGDunF0IXsUQScA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-x64-musl@1.5.14': - resolution: {integrity: sha512-204Drgg9Zx0+THKndqASz4+iPCwqA3gQVF9C0CDIArNXrjPyJjVvW8VP5CHiZYaTNWxlz/ltyxluM6UFWbXNFw==} + /@tauri-apps/cli-linux-x64-musl@1.5.11: + resolution: {integrity: sha512-kwzAjqFpz7rvTs7WGZLy/a5nS5t15QKr3E9FG95MNF0exTl3d29YoAUAe1Mn0mOSrTJ9Z+vYYAcI/QdcsGBP+w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-linux-x64-musl@2.0.0-beta.17': + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.17: resolution: {integrity: sha512-dWS/KXnhAGgGoP/G2DFhuC8bemk/WiDpswfgF4/5tfjAHXnPeOMpNG+7YL2nREq30whBuqQKPgNfZNDREHACEw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-arm64-msvc@1.5.14': - resolution: {integrity: sha512-sqPSni2MnWNCm+8YZnLdWCclxfSHaYqKuPFSz8q7Tn1G1m/cA9gyPoC1G0esHftY7bu/ZM5lB4kM3I4U0KlLiA==} + /@tauri-apps/cli-win32-arm64-msvc@1.5.11: + resolution: {integrity: sha512-L+5NZ/rHrSUrMxjj6YpFYCXp6wHnq8c8SfDTBOX8dO8x+5283/vftb4vvuGIsLS4UwUFXFnLt3XQr44n84E67Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.17': + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.17: resolution: {integrity: sha512-msbKtlXh9aHg1ocYkiJLVMbHw5sokfXBVKY18EEaCtEJ8XjPrQse+hQGbsNbPxdTeNMQFHJ08YXY8eSekwYvMw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-ia32-msvc@1.5.14': - resolution: {integrity: sha512-8xN8W0zTs8oFsQmvYLxHFeqhzVI7oTaPK1xQMc5gbpFP45jN41c21aCXfjnvzT+h90EfCHUF9EWj2HTEJSb7Iw==} + /@tauri-apps/cli-win32-ia32-msvc@1.5.11: + resolution: {integrity: sha512-oVlD9IVewrY0lZzTdb71kNXkjdgMqFq+ohb67YsJb4Rf7o8A9DTlFds1XLCe3joqLMm4M+gvBKD7YnGIdxQ9vA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.17': + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.17: resolution: {integrity: sha512-kvyfLp7Uv0070AzpFshxB/3d260FOMbDPbOxIvcWH4MgotkRSDTfpACLksvT3ZEFtWx66d1mAeDcYt85mFPMvg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-x64-msvc@1.5.14': - resolution: {integrity: sha512-U0slee5tNM2PYECBpPHavLSwkT3szGMZ+qhcikQQbDan84bQdLn/kHWjyXOgLJs4KSve4+KxcrN+AVqj0VyHnw==} + /@tauri-apps/cli-win32-x64-msvc@1.5.11: + resolution: {integrity: sha512-1CexcqUFCis5ypUIMOKllxUBrna09McbftWENgvVXMfA+SP+yPDPAVb8fIvUcdTIwR/yHJwcIucmTB4anww4vg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.17': + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.17: resolution: {integrity: sha512-MsgHgWHKh0BPJtESmtr8nzwUGXa6XL+syQ79P6x11dAgXvAzzKqsUPNQVbWmQWBDXQo09AvUSQEnpz6lf2r94g==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@tauri-apps/cli@1.5.14': - resolution: {integrity: sha512-JOSMKymlg116UdEXSj69eg5p1OtZnQkUE0qIGbtNDO1sk3X/KgBN6+oHBW0BzPStp/W0AjBgrMWCqjHPwEpOug==} + /@tauri-apps/cli@1.5.11: + resolution: {integrity: sha512-B475D7phZrq5sZ3kDABH4g2mEoUIHtnIO+r4ZGAAfsjMbZCwXxR/jlMGTEL+VO3YzjpF7gQe38IzB4vLBbVppw==} engines: {node: '>= 10'} hasBin: true - - '@tauri-apps/cli@2.0.0-beta.17': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 1.5.11 + '@tauri-apps/cli-darwin-x64': 1.5.11 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.11 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.11 + '@tauri-apps/cli-linux-arm64-musl': 1.5.11 + '@tauri-apps/cli-linux-x64-gnu': 1.5.11 + '@tauri-apps/cli-linux-x64-musl': 1.5.11 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.11 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.11 + '@tauri-apps/cli-win32-x64-msvc': 1.5.11 + dev: true + + /@tauri-apps/cli@2.0.0-beta.17: resolution: {integrity: sha512-41a0fuu4OWC+vVWQVp/klOm2B5qJnX1ymITzyy8aFZ1ebQLiT2vQicrvcfCZUdY3u2yqhwLR8JVsIvvbQINLOA==} engines: {node: '>= 10'} hasBin: true + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.17 + '@tauri-apps/cli-darwin-x64': 2.0.0-beta.17 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.17 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.17 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.17 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.17 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.17 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.17 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.17 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.17 + dev: true - '@tauri-apps/plugin-deep-link@2.0.0-beta.4': + /@tauri-apps/plugin-deep-link@2.0.0-beta.4: resolution: {integrity: sha512-KYUr8nMJ6khQW4RyF2PLnH4bhuIzllWAlz38tK+tFsF5VqawbXTKqlMgqqBsFl2HVVkUXxWmIWMn0Z2zk5DliA==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@tauri-apps/plugin-dialog@2.0.0-beta.3': + /@tauri-apps/plugin-dialog@2.0.0-beta.3: resolution: {integrity: sha512-B3KxLjFxCVB3AIYWN/xY9HM6tO7m4u6aQk1t0ZrBToXThowRU9f62527EO0oj0uNlyKlXx20up68NkpdlER0yg==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@tauri-apps/plugin-fs@2.0.0-beta.3': + /@tauri-apps/plugin-fs@2.0.0-beta.3: resolution: {integrity: sha512-LBgA7S10NwcitHaugIfmCSkewz45vSz1VOpMHhzvE38i1r1KpuTSHlr3MZ0LLq93tH/lvhYZ+3LAml4Sriwthw==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@tauri-apps/plugin-process@2.0.0-beta.3': + /@tauri-apps/plugin-process@2.0.0-beta.3: resolution: {integrity: sha512-N3TkHxoQQb45FP8mbKfcI+e6foR17QlLrrwvPK8SH+LhEP9uo1b5EUvpZM1TIegAmL/3LQIBtJw1loyHVn8Esg==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@tauri-apps/plugin-store@2.0.0-beta.5': + /@tauri-apps/plugin-store@2.0.0-beta.5: resolution: {integrity: sha512-lF1OxZv0w45G1eRVtvplNhfsthHuJD17Lx+KDZe46WPwaLbGL9KJE+OYx7c2ek5idU2qBXtx33lWVEu6ghxGJA==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@tauri-apps/plugin-updater@2.0.0-beta.3': + /@tauri-apps/plugin-updater@2.0.0-beta.3: resolution: {integrity: sha512-bD1ikPz80uK9YJKNYpYlA6StSp9lr0Ob1kGLG2XdmOgspv7SZLLNVzMORtKeqgepxwG99qdYGDDegT3Ll6+UlA==} + dependencies: + '@tauri-apps/api': 2.0.0-beta.11 + dev: false - '@testing-library/dom@10.1.0': + /@testing-library/dom@10.1.0: resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} engines: {node: '>=18'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.24.7 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true - '@testing-library/react@15.0.7': - resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==} + /@testing-library/react@15.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-5mzIpuytB1ctpyywvyaY2TAAUQVCZIGqwiqFQf6u9lvj/SJQepGUzNV18Xpk+NLCaCE2j7CWrZE0tEf9xLZYiQ==} engines: {node: '>=18'} peerDependencies: - '@types/react': ^18.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.24.7 + '@testing-library/dom': 10.1.0 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true - '@testing-library/user-event@14.5.2': + /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' + dependencies: + '@testing-library/dom': 10.1.0 + dev: true - '@types/accepts@1.3.7': + /@types/accepts@1.3.7: resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/acorn@4.0.6': + /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.5 + dev: false - '@types/argparse@1.0.38': + /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + dev: false - '@types/aria-query@5.0.4': + /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true - '@types/aws-lambda@8.10.122': + /@types/aws-lambda@8.10.122: resolution: {integrity: sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==} + dev: false - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.6.8': + /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.24.7 - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - '@types/babel__traverse@7.20.6': + /@types/babel__traverse@7.20.6: resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + dependencies: + '@babel/types': 7.24.7 - '@types/body-parser@1.19.5': + /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.12.7 + dev: false - '@types/bunyan@1.8.9': + /@types/bunyan@1.8.9: resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/cacheable-request@6.0.3': + /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 20.12.7 + '@types/responselike': 1.0.3 + dev: true - '@types/connect@3.4.36': + /@types/connect@3.4.36: resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/connect@3.4.38': + /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/content-disposition@0.5.8': + /@types/content-disposition@0.5.8: resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + dev: false - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + /@types/cookie@0.5.4: + resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} + dev: false - '@types/cookies@0.9.0': + /@types/cookies@0.9.0: resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==} + dependencies: + '@types/connect': 3.4.38 + '@types/express': 4.17.21 + '@types/keygrip': 1.0.6 + '@types/node': 20.12.7 + dev: false - '@types/d3-array@3.2.1': + /@types/d3-array@3.2.1: resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + dev: false - '@types/d3-axis@3.0.6': + /@types/d3-axis@3.0.6: resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + dependencies: + '@types/d3-selection': 3.0.10 + dev: false - '@types/d3-brush@3.0.6': + /@types/d3-brush@3.0.6: resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + dependencies: + '@types/d3-selection': 3.0.10 + dev: false - '@types/d3-chord@3.0.6': + /@types/d3-chord@3.0.6: resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + dev: false - '@types/d3-color@3.1.3': + /@types/d3-color@3.1.3: resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + dev: false - '@types/d3-contour@3.0.6': + /@types/d3-contour@3.0.6: resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + dependencies: + '@types/d3-array': 3.2.1 + '@types/geojson': 7946.0.14 + dev: false - '@types/d3-delaunay@6.0.4': + /@types/d3-delaunay@6.0.4: resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + dev: false - '@types/d3-dispatch@3.0.6': + /@types/d3-dispatch@3.0.6: resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} + dev: false - '@types/d3-drag@3.0.7': + /@types/d3-drag@3.0.7: resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + dependencies: + '@types/d3-selection': 3.0.10 + dev: false - '@types/d3-dsv@3.0.7': + /@types/d3-dsv@3.0.7: resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + dev: false - '@types/d3-ease@3.0.2': + /@types/d3-ease@3.0.2: resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + dev: false - '@types/d3-fetch@3.0.7': + /@types/d3-fetch@3.0.7: resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + dependencies: + '@types/d3-dsv': 3.0.7 + dev: false - '@types/d3-force@3.0.9': + /@types/d3-force@3.0.9: resolution: {integrity: sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==} + dev: false - '@types/d3-format@3.0.4': + /@types/d3-format@3.0.4: resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + dev: false - '@types/d3-geo@3.1.0': + /@types/d3-geo@3.1.0: resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + dependencies: + '@types/geojson': 7946.0.14 + dev: false - '@types/d3-hierarchy@3.1.7': + /@types/d3-hierarchy@3.1.7: resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + dev: false - '@types/d3-interpolate@3.0.4': + /@types/d3-interpolate@3.0.4: resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + dependencies: + '@types/d3-color': 3.1.3 + dev: false - '@types/d3-path@3.1.0': + /@types/d3-path@3.1.0: resolution: {integrity: sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==} + dev: false - '@types/d3-polygon@3.0.2': + /@types/d3-polygon@3.0.2: resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + dev: false - '@types/d3-quadtree@3.0.6': + /@types/d3-quadtree@3.0.6: resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + dev: false - '@types/d3-random@3.0.3': + /@types/d3-random@3.0.3: resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + dev: false - '@types/d3-scale-chromatic@3.0.3': + /@types/d3-scale-chromatic@3.0.3: resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} + dev: false - '@types/d3-scale@4.0.8': + /@types/d3-scale@4.0.8: resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} + dependencies: + '@types/d3-time': 3.0.3 - '@types/d3-selection@3.0.10': + /@types/d3-selection@3.0.10: resolution: {integrity: sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==} + dev: false - '@types/d3-shape@3.1.6': + /@types/d3-shape@3.1.6: resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==} + dependencies: + '@types/d3-path': 3.1.0 + dev: false - '@types/d3-time-format@4.0.3': + /@types/d3-time-format@4.0.3: resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + dev: false - '@types/d3-time@3.0.3': + /@types/d3-time@3.0.3: resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} - '@types/d3-timer@3.0.2': + /@types/d3-timer@3.0.2: resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + dev: false - '@types/d3-transition@3.0.8': + /@types/d3-transition@3.0.8: resolution: {integrity: sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==} + dependencies: + '@types/d3-selection': 3.0.10 + dev: false - '@types/d3-zoom@3.0.8': + /@types/d3-zoom@3.0.8: resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.10 + dev: false - '@types/d3@7.4.3': + /@types/d3@7.4.3: resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + dependencies: + '@types/d3-array': 3.2.1 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.6 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.9 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.0 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.3 + '@types/d3-selection': 3.0.10 + '@types/d3-shape': 3.1.6 + '@types/d3-time': 3.0.3 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.8 + '@types/d3-zoom': 3.0.8 + dev: false - '@types/debug@4.1.12': + /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false - '@types/estree-jsx@1.0.5': + /@types/estree-jsx@1.0.5: resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + dependencies: + '@types/estree': 1.0.5 + dev: false - '@types/estree@1.0.5': + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.3': + /@types/express-serve-static-core@4.19.3: resolution: {integrity: sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==} + dependencies: + '@types/node': 20.12.7 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: false - '@types/express@4.17.21': + /@types/express@4.17.21: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.3 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + dev: false - '@types/geojson@7946.0.14': + /@types/geojson@7946.0.14: resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} + dev: false + + /@types/hapi__catbox@10.2.6: + resolution: {integrity: sha512-qdMHk4fBlwRfnBBDJaoaxb+fU9Ewi2xqkXD3mNjSPl2v/G/8IJbDpVRBuIcF7oXrcE8YebU5M8cCeKh1NXEn0w==} + dev: false + + /@types/hapi__hapi@20.0.13: + resolution: {integrity: sha512-LP4IPfhIO5ZPVOrJo7H8c8Slc0WYTFAUNQX1U0LBPKyXioXhH5H2TawIgxKujIyOhbwoBbpvOsBf6o5+ToJIrQ==} + dependencies: + '@hapi/boom': 9.1.4 + '@hapi/iron': 6.0.0 + '@hapi/podium': 4.1.3 + '@types/hapi__catbox': 10.2.6 + '@types/hapi__mimos': 4.1.4 + '@types/hapi__shot': 4.1.6 + '@types/node': 20.12.7 + joi: 17.13.1 + dev: false - '@types/hast@3.0.4': + /@types/hapi__mimos@4.1.4: + resolution: {integrity: sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==} + dependencies: + '@types/mime-db': 1.43.5 + dev: false + + /@types/hapi__shot@4.1.6: + resolution: {integrity: sha512-h33NBjx2WyOs/9JgcFeFhkxnioYWQAZxOHdmqDuoJ1Qjxpcs+JGvSjEEoDeWfcrF+1n47kKgqph5IpfmPOnzbg==} + dependencies: + '@types/node': 20.12.7 + dev: false + + /@types/hast@3.0.4: resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false - '@types/http-assert@1.5.5': + /@types/http-assert@1.5.5: resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} + dev: false - '@types/http-cache-semantics@4.0.4': + /@types/http-cache-semantics@4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: true - '@types/http-errors@2.0.4': + /@types/http-errors@2.0.4: resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: false + + /@types/ioredis@4.28.10: + resolution: {integrity: sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/keygrip@1.0.6': + /@types/keygrip@1.0.6: resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + dev: false - '@types/keyv@3.1.4': + /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 20.12.7 + dev: true - '@types/koa-compose@3.2.8': + /@types/koa-compose@3.2.8: resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + dependencies: + '@types/koa': 2.13.9 + dev: false - '@types/koa@2.14.0': - resolution: {integrity: sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==} + /@types/koa@2.13.9: + resolution: {integrity: sha512-tPX3cN1dGrMn+sjCDEiQqXH2AqlPoPd594S/8zxwUm/ZbPsQXKqHPUypr2gjCPhHUc+nDJLduhh5lXI/1olnGQ==} + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.8 + '@types/cookies': 0.9.0 + '@types/http-assert': 1.5.5 + '@types/http-errors': 2.0.4 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.8 + '@types/node': 20.12.7 + dev: false - '@types/koa__router@12.0.3': + /@types/koa__router@12.0.3: resolution: {integrity: sha512-5YUJVv6NwM1z7m6FuYpKfNLTZ932Z6EF6xy2BbtpJSyn13DKNQEkXVffFVSnJHxvwwWh2SAeumpjAYUELqgjyw==} + dependencies: + '@types/koa': 2.13.9 + dev: false - '@types/mdast@4.0.4': + /@types/mdast@4.0.4: resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 3.0.2 + dev: false - '@types/mdx@2.0.13': + /@types/mdx@2.0.13: resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + dev: false - '@types/memcached@2.2.10': + /@types/memcached@2.2.10: resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/mime@1.3.5': + /@types/mime-db@1.43.5: + resolution: {integrity: sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==} + dev: false + + /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: false - '@types/ms@0.7.34': + /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false - '@types/mysql@2.15.22': + /@types/mysql@2.15.22: resolution: {integrity: sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/nlcst@1.0.4': + /@types/nlcst@1.0.4: resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} + dependencies: + '@types/unist': 2.0.10 + dev: false - '@types/node@18.19.33': - resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} + /@types/node@18.19.34: + resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==} + dependencies: + undici-types: 5.26.5 + dev: false - '@types/node@20.13.0': - resolution: {integrity: sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + dependencies: + undici-types: 5.26.5 - '@types/offscreencanvas@2019.7.3': + /@types/offscreencanvas@2019.7.3: resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - '@types/pg-pool@2.0.4': + /@types/pg-pool@2.0.4: resolution: {integrity: sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==} + dependencies: + '@types/pg': 8.6.1 + dev: false - '@types/pg@8.6.1': + /@types/pg@8.6.1: resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + dependencies: + '@types/node': 20.12.7 + pg-protocol: 1.6.1 + pg-types: 2.2.0 + dev: false - '@types/prop-types@15.7.12': + /@types/prop-types@15.7.12: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/qs@6.9.15': + /@types/qs@6.9.15: resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + dev: false - '@types/range-parser@1.2.7': + /@types/range-parser@1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: false - '@types/react-color@3.0.12': + /@types/react-color@3.0.12: resolution: {integrity: sha512-pr3uKE3lSvf7GFo1Rn2K3QktiZQFFrSgSGJ/3iMvSOYWt2pPAJ97rVdVfhWxYJZ8prAEXzoP2XX//3qGSQgu7Q==} + dependencies: + '@types/react': 18.2.79 + '@types/reactcss': 1.2.12 + dev: true - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + /@types/react-dom@18.2.25: + resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + dependencies: + '@types/react': 18.2.79 - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + /@types/react@18.2.79: + resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 - '@types/reactcss@1.2.12': + /@types/reactcss@1.2.12: resolution: {integrity: sha512-BrXUQ86/wbbFiZv8h/Q1/Q1XOsaHneYmCb/tHe9+M8XBAAUc2EHfdY0DY22ZZjVSaXr5ix7j+zsqO2eGZub8lQ==} + dependencies: + '@types/react': 18.2.79 + dev: true - '@types/responselike@1.0.3': + /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + dependencies: + '@types/node': 20.12.7 + dev: true - '@types/send@0.17.4': + /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.12.7 + dev: false - '@types/serve-static@1.15.7': + /@types/serve-static@1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.12.7 + '@types/send': 0.17.4 + dev: false - '@types/shimmer@1.0.5': + /@types/shimmer@1.0.5: resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} + dev: false - '@types/tedious@4.0.14': + /@types/tedious@4.0.14: resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + dependencies: + '@types/node': 20.12.7 + dev: false - '@types/unist@2.0.10': + /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false - '@types/unist@3.0.2': + /@types/unist@3.0.2: resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false - '@types/use-sync-external-store@0.0.3': + /@types/use-sync-external-store@0.0.3: resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} - '@types/uuid@9.0.8': + /@types/uuid@9.0.8: resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + dev: true - '@types/webgl2@0.0.11': + /@types/webgl2@0.0.11: resolution: {integrity: sha512-LFa4je4lUbqDVRNeC2W1ZRM8dOgsGsm23MZO7m/EllCVg07yB65W3eUF4MAM+0LU9X6x/0NTrvXxAW0pmipNdw==} + dev: true - '@types/yauzl@2.10.3': + /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.12.7 + dev: true + optional: true - '@typescript-eslint/eslint-plugin@7.11.0': + /@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0)(eslint@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 - eslint: ^9.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true + dependencies: + '@eslint-community/regexpp': 4.10.1 + '@typescript-eslint/parser': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/type-utils': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.11.0 + eslint: 9.0.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/parser@7.11.0': + /@typescript-eslint/parser@7.11.0(eslint@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^9.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.11.0 + debug: 4.3.5 + eslint: 9.0.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/scope-manager@7.11.0': + /@typescript-eslint/scope-manager@7.11.0: resolution: {integrity: sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==} engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/visitor-keys': 7.11.0 + dev: true - '@typescript-eslint/type-utils@7.11.0': + /@typescript-eslint/type-utils@7.11.0(eslint@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^9.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + debug: 4.3.5 + eslint: 9.0.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/types@7.11.0': + /@typescript-eslint/types@7.11.0: resolution: {integrity: sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==} engines: {node: ^18.18.0 || >=20.0.0} + dev: true - '@typescript-eslint/typescript-estree@7.11.0': + /@typescript-eslint/typescript-estree@7.11.0(typescript@5.4.5): resolution: {integrity: sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -2725,5933 +4894,162 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/visitor-keys': 7.11.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/utils@7.11.0': + /@typescript-eslint/utils@7.11.0(eslint@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^9.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@typescript-eslint/scope-manager': 7.11.0 + '@typescript-eslint/types': 7.11.0 + '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) + eslint: 9.0.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true - '@typescript-eslint/visitor-keys@7.11.0': + /@typescript-eslint/visitor-keys@7.11.0: resolution: {integrity: sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==} engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.11.0 + eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: false - '@uptrace/core@1.20.0': - resolution: {integrity: sha512-k1NXfDiwC0YDSffdpDWl+k926N4A0YRhoBmDtaabyo7Qnbunvex+Ifc5FOm+hDKu2VsPXOhdS7/R9xG+3jgojA==} + /@uptrace/core@1.19.0: + resolution: {integrity: sha512-2xWd3UmsGOBFvhdoJf11ymUT4boq8EZ6Ouo08zLEl/UzD1vetknlcUxB9Q7WP+aMFAENhyH35a87VKEufSap9g==} engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + cross-fetch: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false - '@uptrace/node@1.20.0': - resolution: {integrity: sha512-QgtH6N2KY0cIbFRKQELjkDtfrfJF0G8wDENLBsRr17fo+ZBSzZfubWMQ5xxS3d0ZFto7njcmUM+dm2hw7mLClQ==} + /@uptrace/node@1.19.0(@opentelemetry/api-logs@0.52.0): + resolution: {integrity: sha512-Qdg9bZYiU7HU31UyexWqUneD1HZI5Cz8f7J/lll5Qd7Nsrgtds0QMGUc/gZI8AciotqISvRs/G7QkNBGvEO83A==} engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/auto-instrumentations-node': 0.40.3(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-logs-otlp-http': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/id-generator-aws-xray': 1.2.2(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.48.0(@opentelemetry/api-logs@0.52.0)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-node': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@uptrace/core': 1.19.0 + transitivePeerDependencies: + - '@opentelemetry/api-logs' + - encoding + - supports-color + dev: false - '@uptrace/web@1.20.0': - resolution: {integrity: sha512-xu6RudUkfzKy1geby7aHUVbHPa6dR7EDU6HUKR6LycYErrtBo0LVqFVNn8UNTAKOR+WCYiazFKQkoNQqhmO8ZA==} + /@uptrace/web@1.19.0: + resolution: {integrity: sha512-m3Pf2ORo+ighqun/EjG1R8sUij+IEBZY6qNawVW8bktIxWRBd7k9NL+6WUOO3VqOEPl1gbDDLCXrDrhngl0Isw==} engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-web': 1.21.0(@opentelemetry/api@1.7.0) + '@uptrace/core': 1.19.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false - '@vercel/analytics@1.3.1': + /@vercel/analytics@1.3.1(react@18.2.0): resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==} peerDependencies: next: '>= 13' - react: ^18.2.0 + react: ^18 || ^19 peerDependenciesMeta: next: optional: true react: optional: true + dependencies: + react: 18.2.0 + server-only: 0.0.1 + dev: false - '@vercel/edge@1.1.1': + /@vercel/edge@1.1.1: resolution: {integrity: sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ==} + dev: false - '@vercel/nft@0.26.5': + /@vercel/nft@0.26.5: resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} hasBin: true + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.7 + node-gyp-build: 4.8.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false - '@vitejs/plugin-react@4.3.0': + /@vitejs/plugin-react@4.3.0(vite@5.2.11): resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: 5.2.11 + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color - '@vitest/coverage-v8@1.6.0': - resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} + /@vitest/coverage-v8@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: - vitest: ^1.5.0 - - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - - '@volar/kit@2.2.5': - resolution: {integrity: sha512-Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==} - peerDependencies: - typescript: ^5.4.5 - - '@volar/language-core@1.11.1': - resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} - - '@volar/language-core@2.2.5': - resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} - - '@volar/language-server@2.2.5': - resolution: {integrity: sha512-PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==} - - '@volar/language-service@2.2.5': - resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} - - '@volar/snapshot-document@2.2.5': - resolution: {integrity: sha512-MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==} - - '@volar/source-map@1.11.1': - resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} - - '@volar/source-map@2.2.5': - resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} - - '@volar/typescript@1.11.1': - resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} - - '@volar/typescript@2.2.5': - resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} - - '@vscode/emmet-helper@2.9.3': - resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} - - '@vscode/l10n@0.0.16': - resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} - - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - - '@vue/compiler-core@3.4.27': - resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} - - '@vue/compiler-dom@3.4.27': - resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} - - '@vue/language-core@1.8.27': - resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} - peerDependencies: - typescript: ^5.4.5 - peerDependenciesMeta: - typescript: - optional: true - - '@vue/shared@3.4.27': - resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.14.0: - resolution: {integrity: sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==} - - algoliasearch@4.23.3: - resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - - array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - - astro-auto-import@0.4.2: - resolution: {integrity: sha512-ZgWZQ58+EhbEym1+aoUnNyECOy0wsG5uRUs+rVp/7BzHtj1V76J2qkhjaTWLplgNb+8WrzhvTQNxytmXRCW+Ow==} - engines: {node: '>=16.0.0'} - peerDependencies: - astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta - - astro-embed@0.7.2: - resolution: {integrity: sha512-v/j6yRA9Wa+TEHBV64dQU5bLKuYiy1mNudiKIM+nvFe1bAUh+4wzQOf3lRofrxyBMgHaZbr8Xy7oLS9PVzu5jg==} - peerDependencies: - astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta - - astro-seo@0.8.3: - resolution: {integrity: sha512-gQeEh0U2yyVM0iyU8DTORK6hXMy5WH2wufrkUuNOKjI3LnYLniqgDxm1LZPQDuD6b4OHabVOi/5L88A9POCcCQ==} - - astro@4.9.2: - resolution: {integrity: sha512-apzpRoISk6L8g99m3zKIW5SYxw2GhOju/1Gq0Ccf3SH+X2UcFXF+MTdxPOFl5yJUQg7X0qsVQDOIVf8zHRRKFg==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} - hasBin: true - - async-mutex@0.5.0: - resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} - - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - - base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - - big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - - bignumber.js@9.1.2: - resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - broadcast-channel@3.7.0: - resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - caniuse-lite@1.0.30001625: - resolution: {integrity: sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} - - classcat@5.0.5: - resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - complex.js@2.1.1: - resolution: {integrity: sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==} - - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: ^5.4.5 - peerDependenciesMeta: - typescript: - optional: true - - cross-fetch@4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - css-functions-list@3.2.2: - resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} - engines: {node: '>=12 || >=16'} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-selector-parser@1.4.1: - resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} - engines: {node: '>=18'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} - - devalue@5.0.0: - resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.4.788: - resolution: {integrity: sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==} - - electron@30.0.9: - resolution: {integrity: sha512-ArxgdGHVu3o5uaP+Tqj8cJDvU03R6vrGrOqiMs7JXLnvQHMqXJIIxmFKQAIdJW8VoT3ac3hD21tA7cPO10RLow==} - engines: {node: '>= 12.20.55'} - hasBin: true - - emmet@2.4.7: - resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} - - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.4: - resolution: {integrity: sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-latex@1.2.0: - resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-plugin-react@7.34.2: - resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^9.0.0 - - eslint-plugin-simple-import-sort@12.1.0: - resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} - peerDependencies: - eslint: ^9.0.0 - - eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.4.0: - resolution: {integrity: sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - - espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - file-entry-cache@9.0.0: - resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} - engines: {node: '>=18'} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flat-cache@5.0.0: - resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} - engines: {node: '>=18'} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - fraction.js@4.3.4: - resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - fuse.js@7.0.0: - resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} - engines: {node: '>=10'} - - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - - gaxios@6.6.0: - resolution: {integrity: sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==} - engines: {node: '>=14'} - - gcp-metadata@6.1.0: - resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} - engines: {node: '>=14'} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} - engines: {node: '>=10.0'} - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.3.0: - resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} - - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.0.3: - resolution: {integrity: sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==} - - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - - hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} - - hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - immer@10.1.1: - resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-in-the-middle@1.7.1: - resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} - - import-in-the-middle@1.7.4: - resolution: {integrity: sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - - inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} - - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} - engines: {node: '>=18'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - - javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - js-convert-case@4.2.0: - resolution: {integrity: sha512-i4mHCxiBNj6ajjMnZnC70qAOMA8gb+YgYipy2VR7a+Q5EBgEQ2/SgSAUBdNEyObk++B4AIUiFWeDEX2ggOd8cQ==} - - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdom@24.1.0: - resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - linkedom@0.14.26: - resolution: {integrity: sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A==} - - lite-youtube-embed@0.3.2: - resolution: {integrity: sha512-b1dgKyF4PHhinonmr3PB172Nj0qQgA/7DE9EmeIXHR1ksnFEC2olWjNJyJGdsN2cleKHRjjsmrziKlwXtPlmLQ==} - - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - magicast@0.3.4: - resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - match-sorter@6.3.4: - resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} - - matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} - - material-colors@1.2.6: - resolution: {integrity: sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==} - - mathjs@12.4.3: - resolution: {integrity: sha512-oHdGPDbp7gO873xxG90RLq36IuicuKvbpr/bBG5g9c8Obm/VsKVrK9uoRZZHUodohzlnmCEqfDzbR3LH6m+aAQ==} - engines: {node: '>= 18'} - hasBin: true - - mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - - mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - - mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} - - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} - - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} - - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - microseconds@0.2.0: - resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} - - module-details-from-path@1.0.3: - resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - muggle-string@0.3.1: - resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - nano-time@1.0.0: - resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} - - node-fetch@2.6.11: - resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} - hasBin: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nwsapi@2.2.10: - resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - - oblivious-set@1.0.0: - resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - ora@8.0.1: - resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} - engines: {node: '>=18'} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} - engines: {node: '>=18'} - - p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} - engines: {node: '>=14.16'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - - pg-protocol@1.6.1: - resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} - - pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - - postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} - - postcss-safe-parser@7.0.0: - resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.4.31 - - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - - postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - - postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - - postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - protobufjs@7.3.0: - resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} - engines: {node: '>=12.0.0'} - - proxy-compare@2.3.0: - resolution: {integrity: sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==} - - proxy-memoize@1.2.0: - resolution: {integrity: sha512-0heYEZb4yMfhdduz8T+BPJOCKGukc81WRJaYF0k6ZsJz/NkPLhGFqe6OLdiZURr5kC1byps5wdqLN6DC2tYAFw==} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - react-color@2.19.3: - resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} - peerDependencies: - react: ^18.2.0 - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.2.0 - - react-error-boundary@4.0.13: - resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} - peerDependencies: - react: ^18.2.0 - - react-icons@4.12.0: - resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==} - peerDependencies: - react: ^18.2.0 - - react-icons@5.2.1: - resolution: {integrity: sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==} - peerDependencies: - react: ^18.2.0 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-query@3.39.3: - resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} - peerDependencies: - react: ^18.2.0 - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - - react-redux@9.1.2: - resolution: {integrity: sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==} - peerDependencies: - '@types/react': ^18.2.25 - react: ^18.2.0 - redux: ^5.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - redux: - optional: true - - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - reactcss@1.2.3: - resolution: {integrity: sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==} - peerDependencies: - react: ^18.2.0 - - reactflow@11.11.3: - resolution: {integrity: sha512-wusd1Xpn1wgsSEv7UIa4NNraCwH9syBtubBy4xVNXg3b+CDKM+sFaF3hnMx0tr0et4km9urIDdNvwm34QiZong==} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - redux-thunk@3.1.0: - resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} - peerDependencies: - redux: ^5.0.0 - - redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - - rehype-parse@9.0.0: - resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - rehype-stringify@10.0.0: - resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} - - rehype@13.0.1: - resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} - - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - - remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - - remark-smartypants@2.1.0: - resolution: {integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - remove-accents@0.5.0: - resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} - - remove-markdown@0.5.0: - resolution: {integrity: sha512-x917M80K97K5IN1L8lUvFehsfhR8cYjGQ/yAMRI9E7JIKivtl5Emo5iD13DhMr+VojzMCiYk8V2byNPwT/oapg==} - - request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-in-the-middle@7.3.0: - resolution: {integrity: sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==} - engines: {node: '>=8.6.0'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - reselect@5.1.0: - resolution: {integrity: sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve@1.19.0: - resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} - - retext-smartypants@5.2.0: - resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} - - retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} - - retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} - engines: {node: '>=8.0'} - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - - rrweb-cssom@0.7.0: - resolution: {integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - seedrandom@3.0.5: - resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - - semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} - engines: {node: '>=10'} - - server-only@0.0.1: - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - sharp@0.33.4: - resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shiki@1.6.1: - resolution: {integrity: sha512-1Pu/A1rtsG6HZvQm4W0NExQ45e02og+rPog7PDaFDiMumZgOYnZIu4JtGQeAIfMwdbKSjJQoCUr79vDLKUUxWA==} - - shimmer@1.2.1: - resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} - engines: {node: '>=18'} - - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - - style-to-object@1.0.6: - resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} - - stylelint-config-prettier@9.0.5: - resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} - engines: {node: '>= 12'} - hasBin: true - peerDependencies: - stylelint: '>= 11.x < 15' - - stylelint-config-recommended@14.0.0: - resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.0.0 - - stylelint-config-standard@35.0.0: - resolution: {integrity: sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.0.0 - - stylelint@16.6.1: - resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} - engines: {node: '>=18.12.0'} - hasBin: true - - sumchecker@3.0.1: - resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} - engines: {node: '>= 8.0'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - table@6.8.2: - resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} - engines: {node: '>=10.0.0'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - tiny-emitter@2.1.0: - resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} - - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: ^5.4.5 - - tsconfck@3.1.0: - resolution: {integrity: sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.4.5 - peerDependenciesMeta: - typescript: - optional: true - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - turbo-darwin-64@1.13.3: - resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} - cpu: [x64] - os: [darwin] - - turbo-darwin-arm64@1.13.3: - resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} - cpu: [arm64] - os: [darwin] - - turbo-linux-64@1.13.3: - resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} - cpu: [x64] - os: [linux] - - turbo-linux-arm64@1.13.3: - resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} - cpu: [arm64] - os: [linux] - - turbo-windows-64@1.13.3: - resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} - cpu: [x64] - os: [win32] - - turbo-windows-arm64@1.13.3: - resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} - cpu: [arm64] - os: [win32] - - turbo@1.13.3: - resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} - hasBin: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - - typed-function@4.1.1: - resolution: {integrity: sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ==} - engines: {node: '>= 14'} - - typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - - typescript-auto-import-cache@0.3.2: - resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} - - typescript-eslint@7.11.0: - resolution: {integrity: sha512-ZKe3yHF/IS/kCUE4CGE3UgtK+Q7yRk1e9kwEI0rqm9XxMTd9P1eHe0LVVtrZ3oFuIQ2unJ9Xn0vTsLApzJ3aPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - uhyphen@0.2.0: - resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} - - ultrahtml@1.5.3: - resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} - - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - - unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} - - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-select@4.0.3: - resolution: {integrity: sha512-1074+K9VyR3NyUz3lgNtHKm7ln+jSZXtLJM4E22uVuoFn88a/Go2pX8dusrt/W+KWH1ncn8jcd8uCQuvXb/fXA==} - - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} - - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - unload@2.2.0: - resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} - - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^18.2.0 - - use-sync-external-store@1.2.2: - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} - peerDependencies: - react: ^18.2.0 - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - validator@13.12.0: - resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} - engines: {node: '>= 0.10'} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite-plugin-dts@3.8.2: - resolution: {integrity: sha512-GPkLNBUU+ztskHj37nelNsgRLurFuqXxqICSd/IxjRmgee1T6IIYlRCanugc9QtgWjYVPC/HJzSfpXJSy9OLUA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: ^5.4.5 - vite: 5.2.11 - peerDependenciesMeta: - vite: - optional: true - - vite-tsconfig-paths@4.3.2: - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} - peerDependencies: - vite: 5.2.11 - peerDependenciesMeta: - vite: - optional: true - - vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: 5.2.11 - peerDependenciesMeta: - vite: - optional: true - - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - volar-service-css@0.0.45: - resolution: {integrity: sha512-f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==} - peerDependencies: - '@volar/language-service': ~2.2.3 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-emmet@0.0.45: - resolution: {integrity: sha512-9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==} - peerDependencies: - '@volar/language-service': ~2.2.3 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-html@0.0.45: - resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} - peerDependencies: - '@volar/language-service': ~2.2.3 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-prettier@0.0.45: - resolution: {integrity: sha512-+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==} - peerDependencies: - '@volar/language-service': ~2.2.3 - prettier: 3.2.5 - peerDependenciesMeta: - '@volar/language-service': - optional: true - prettier: - optional: true - - volar-service-typescript-twoslash-queries@0.0.45: - resolution: {integrity: sha512-KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==} - peerDependencies: - '@volar/language-service': ~2.2.3 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-typescript@0.0.45: - resolution: {integrity: sha512-i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==} - peerDependencies: - '@volar/language-service': ~2.2.3 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - vscode-css-languageservice@6.2.14: - resolution: {integrity: sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==} - - vscode-html-languageservice@5.2.0: - resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} - - vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} - - vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - - vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - - vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - - vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true - - vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - - vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - - vue-tsc@1.8.27: - resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} - hasBin: true - peerDependencies: - typescript: ^5.4.5 - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - web-vitals@3.5.2: - resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} - - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - - which-pm@2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - z-schema@5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - - zod-to-json-schema@3.23.0: - resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} - peerDependencies: - zod: 3.23.8 - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - - zone.js@0.14.6: - resolution: {integrity: sha512-vyRNFqofdaHVdWAy7v3Bzmn84a1JHWSjpuTZROT/uYn8I3p2cmo7Ro9twFmYRQDPhiYOV7QLk0hhY4JJQVqS6Q==} - - zustand@4.5.2: - resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: ^18.2.0 - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@algolia/cache-browser-local-storage@4.23.3': - dependencies: - '@algolia/cache-common': 4.23.3 - - '@algolia/cache-common@4.23.3': {} - - '@algolia/cache-in-memory@4.23.3': - dependencies: - '@algolia/cache-common': 4.23.3 - - '@algolia/client-account@4.23.3': - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/client-analytics@4.23.3': - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/client-common@4.23.3': - dependencies: - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/client-personalization@4.23.3': - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/client-search@4.23.3': - dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/logger-common@4.23.3': {} - - '@algolia/logger-console@4.23.3': - dependencies: - '@algolia/logger-common': 4.23.3 - - '@algolia/recommend@4.23.3': - dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 - - '@algolia/requester-browser-xhr@4.23.3': - dependencies: - '@algolia/requester-common': 4.23.3 - - '@algolia/requester-common@4.23.3': {} - - '@algolia/requester-node-http@4.23.3': - dependencies: - '@algolia/requester-common': 4.23.3 - - '@algolia/transporter@4.23.3': - dependencies: - '@algolia/cache-common': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@astro-community/astro-embed-integration@0.7.1(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))': - dependencies: - '@astro-community/astro-embed-link-preview': 0.2.0 - '@astro-community/astro-embed-twitter': 0.5.4(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@astro-community/astro-embed-vimeo': 0.3.7(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@astro-community/astro-embed-youtube': 0.5.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@types/unist': 2.0.10 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - astro-auto-import: 0.4.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - unist-util-select: 4.0.3 - - '@astro-community/astro-embed-link-preview@0.2.0': - dependencies: - '@astro-community/astro-embed-utils': 0.1.2 - - '@astro-community/astro-embed-twitter@0.5.4(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))': - dependencies: - '@astro-community/astro-embed-utils': 0.1.2 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - - '@astro-community/astro-embed-utils@0.1.2': - dependencies: - linkedom: 0.14.26 - - '@astro-community/astro-embed-vimeo@0.3.7(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))': - dependencies: - '@astro-community/astro-embed-utils': 0.1.2 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - - '@astro-community/astro-embed-youtube@0.5.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))': - dependencies: - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - lite-youtube-embed: 0.3.2 - - '@astrojs/check@0.5.10(prettier@3.2.5)(typescript@5.4.5)': - dependencies: - '@astrojs/language-server': 2.10.0(prettier@3.2.5)(typescript@5.4.5) - chokidar: 3.6.0 - fast-glob: 3.3.2 - kleur: 4.1.5 - typescript: 5.4.5 - yargs: 17.7.2 - transitivePeerDependencies: - - prettier - - prettier-plugin-astro - - '@astrojs/compiler@2.8.0': {} - - '@astrojs/internal-helpers@0.4.0': {} - - '@astrojs/language-server@2.10.0(prettier@3.2.5)(typescript@5.4.5)': - dependencies: - '@astrojs/compiler': 2.8.0 - '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.2.5(typescript@5.4.5) - '@volar/language-core': 2.2.5 - '@volar/language-server': 2.2.5 - '@volar/language-service': 2.2.5 - '@volar/typescript': 2.2.5 - fast-glob: 3.3.2 - volar-service-css: 0.0.45(@volar/language-service@2.2.5) - volar-service-emmet: 0.0.45(@volar/language-service@2.2.5) - volar-service-html: 0.0.45(@volar/language-service@2.2.5) - volar-service-prettier: 0.0.45(@volar/language-service@2.2.5)(prettier@3.2.5) - volar-service-typescript: 0.0.45(@volar/language-service@2.2.5) - volar-service-typescript-twoslash-queries: 0.0.45(@volar/language-service@2.2.5) - vscode-html-languageservice: 5.2.0 - vscode-uri: 3.0.8 - optionalDependencies: - prettier: 3.2.5 - transitivePeerDependencies: - - typescript - - '@astrojs/markdown-remark@5.1.0': - dependencies: - '@astrojs/prism': 3.1.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.1 - hast-util-to-text: 4.0.2 - import-meta-resolve: 4.1.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.0 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - remark-smartypants: 2.1.0 - shiki: 1.6.1 - unified: 11.0.4 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - - '@astrojs/mdx@2.3.1(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))': - dependencies: - '@astrojs/markdown-remark': 5.1.0 - '@mdx-js/mdx': 3.0.1 - acorn: 8.11.3 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - es-module-lexer: 1.5.3 - estree-util-visit: 2.0.0 - github-slugger: 2.0.0 - gray-matter: 4.0.3 - hast-util-to-html: 9.0.1 - kleur: 4.1.5 - rehype-raw: 7.0.0 - remark-gfm: 4.0.0 - remark-smartypants: 2.1.0 - source-map: 0.7.4 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - - '@astrojs/prism@3.1.0': - dependencies: - prismjs: 1.29.0 - - '@astrojs/react@3.4.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@20.13.0))': - dependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@vitejs/plugin-react': 4.3.0(vite@5.2.11(@types/node@20.13.0)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - ultrahtml: 1.5.3 - transitivePeerDependencies: - - supports-color - - vite - - '@astrojs/telemetry@3.1.0': - dependencies: - ci-info: 4.0.0 - debug: 4.3.5 - dlv: 1.1.3 - dset: 3.1.3 - is-docker: 3.0.0 - is-wsl: 3.1.0 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - - '@astrojs/vercel@7.6.0(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5))(react@18.3.1)': - dependencies: - '@astrojs/internal-helpers': 0.4.0 - '@vercel/analytics': 1.3.1(react@18.3.1) - '@vercel/edge': 1.1.1 - '@vercel/nft': 0.26.5 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) - esbuild: 0.21.4 - fast-glob: 3.3.2 - set-cookie-parser: 2.6.0 - web-vitals: 3.5.2 - transitivePeerDependencies: - - encoding - - next - - react - - supports-color - - '@babel/code-frame@7.24.6': - dependencies: - '@babel/highlight': 7.24.6 - picocolors: 1.0.1 - - '@babel/compat-data@7.24.6': {} - - '@babel/core@7.24.6': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.6': - dependencies: - '@babel/types': 7.24.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-compilation-targets@7.24.6': - dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-environment-visitor@7.24.6': {} - - '@babel/helper-function-name@7.24.6': - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - - '@babel/helper-hoist-variables@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-module-imports@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - - '@babel/helper-plugin-utils@7.24.6': {} - - '@babel/helper-simple-access@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-split-export-declaration@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/helper-string-parser@7.24.6': {} - - '@babel/helper-validator-identifier@7.24.6': {} - - '@babel/helper-validator-option@7.24.6': {} - - '@babel/helpers@7.24.6': - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 - - '@babel/highlight@7.24.6': - dependencies: - '@babel/helper-validator-identifier': 7.24.6 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.24.6': - dependencies: - '@babel/types': 7.24.6 - - '@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-react-jsx-self@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-react-jsx-source@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - - '@babel/plugin-transform-react-jsx@7.24.6(@babel/core@7.24.6)': - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) - '@babel/types': 7.24.6 - - '@babel/runtime@7.24.6': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.24.6': - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - - '@babel/traverse@7.24.6': - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.24.6': - dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - to-fast-properties: 2.0.0 - - '@bcoe/v8-coverage@0.2.3': {} - - '@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1)': - dependencies: - '@csstools/css-tokenizer': 2.3.1 - - '@csstools/css-tokenizer@2.3.1': {} - - '@csstools/media-query-list-parser@2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1)': - dependencies: - '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) - '@csstools/css-tokenizer': 2.3.1 - - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0)': - dependencies: - postcss-selector-parser: 6.1.0 - - '@dual-bundle/import-meta-resolve@4.1.0': {} - - '@electron/get@2.0.3': - dependencies: - debug: 4.3.5 - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.1 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@emmetio/abbreviation@2.3.3': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-abbreviation@2.1.8': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-parser@0.4.0': - dependencies: - '@emmetio/stream-reader': 2.2.0 - '@emmetio/stream-reader-utils': 0.1.0 - - '@emmetio/html-matcher@1.3.0': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/scanner@1.0.4': {} - - '@emmetio/stream-reader-utils@0.1.0': {} - - '@emmetio/stream-reader@2.2.0': {} - - '@emnapi/runtime@1.2.0': - dependencies: - tslib: 2.6.2 - optional: true - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/aix-ppc64@0.21.4': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.21.4': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-arm@0.21.4': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/android-x64@0.21.4': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.21.4': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.21.4': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.21.4': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.21.4': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.21.4': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-arm@0.21.4': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.21.4': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.21.4': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.21.4': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.21.4': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.21.4': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.21.4': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/linux-x64@0.21.4': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.21.4': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.21.4': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.21.4': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.21.4': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.21.4': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@esbuild/win32-x64@0.21.4': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@9.4.0)': - dependencies: - eslint: 9.4.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.0': {} - - '@eslint/compat@1.0.3': {} - - '@eslint/config-array@0.15.1': - dependencies: - '@eslint/object-schema': 2.1.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/eslintrc@3.1.0': - dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 10.0.1 - globals: 14.0.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.4.0': {} - - '@eslint/object-schema@2.1.3': {} - - '@fontsource-variable/inter@5.0.18': {} - - '@fontsource/inter@5.0.18': {} - - '@grpc/grpc-js@1.10.8': - dependencies: - '@grpc/proto-loader': 0.7.13 - '@js-sdsl/ordered-map': 4.4.2 - - '@grpc/proto-loader@0.7.13': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.2.3 - protobufjs: 7.3.0 - yargs: 17.7.2 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.0': {} - - '@icons/material@0.2.4(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@img/sharp-darwin-arm64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 - optional: true - - '@img/sharp-darwin-x64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.0.2': - optional: true - - '@img/sharp-libvips-darwin-x64@1.0.2': - optional: true - - '@img/sharp-libvips-linux-arm64@1.0.2': - optional: true - - '@img/sharp-libvips-linux-arm@1.0.2': - optional: true - - '@img/sharp-libvips-linux-s390x@1.0.2': - optional: true - - '@img/sharp-libvips-linux-x64@1.0.2': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - optional: true - - '@img/sharp-linux-arm64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 - optional: true - - '@img/sharp-linux-arm@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 - optional: true - - '@img/sharp-linux-s390x@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 - optional: true - - '@img/sharp-linux-x64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 - optional: true - - '@img/sharp-linuxmusl-arm64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - optional: true - - '@img/sharp-linuxmusl-x64@0.33.4': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - optional: true - - '@img/sharp-wasm32@0.33.4': - dependencies: - '@emnapi/runtime': 1.2.0 - optional: true - - '@img/sharp-win32-ia32@0.33.4': - optional: true - - '@img/sharp-win32-x64@0.33.4': - optional: true - - '@istanbuljs/schema@0.1.3': {} - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.11 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@js-sdsl/ordered-map@4.4.2': {} - - '@juggle/resize-observer@3.4.0': {} - - '@mapbox/node-pre-gyp@1.0.11': - dependencies: - detect-libc: 2.0.3 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.6.11 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.6.2 - tar: 6.2.1 - transitivePeerDependencies: - - encoding - - supports-color - - '@mdx-js/mdx@3.0.1': - dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-build-jsx: 3.0.1 - estree-util-is-identifier-name: 3.0.0 - estree-util-to-js: 2.0.0 - estree-walker: 3.0.3 - hast-util-to-estree: 3.1.0 - hast-util-to-jsx-runtime: 2.3.0 - markdown-extensions: 2.0.0 - periscopic: 3.1.0 - remark-mdx: 3.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - source-map: 0.7.4 - unified: 11.0.4 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - - '@microsoft/api-extractor-model@7.28.13(@types/node@20.13.0)': - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@20.13.0) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.43.0(@types/node@20.13.0)': - dependencies: - '@microsoft/api-extractor-model': 7.28.13(@types/node@20.13.0) - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@20.13.0) - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0(@types/node@20.13.0) - '@rushstack/ts-command-line': 4.19.1(@types/node@20.13.0) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.5 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.16.2': - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - - '@microsoft/tsdoc@0.14.2': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@opentelemetry/api-logs@0.50.0': - dependencies: - '@opentelemetry/api': 1.8.0 - - '@opentelemetry/api-logs@0.51.1': - dependencies: - '@opentelemetry/api': 1.8.0 - - '@opentelemetry/api@1.8.0': {} - - '@opentelemetry/auto-instrumentations-node@0.46.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-amqplib': 0.37.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-aws-lambda': 0.41.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-aws-sdk': 0.41.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-bunyan': 0.38.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.38.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-connect': 0.36.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-cucumber': 0.6.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-dataloader': 0.9.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-dns': 0.36.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-express': 0.39.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-fastify': 0.36.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-fs': 0.12.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-generic-pool': 0.36.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-graphql': 0.40.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-grpc': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-hapi': 0.38.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-ioredis': 0.40.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-knex': 0.36.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-koa': 0.40.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.37.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-memcached': 0.36.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-mongodb': 0.43.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-mongoose': 0.38.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-mysql': 0.38.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-mysql2': 0.38.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-nestjs-core': 0.37.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-net': 0.36.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-pg': 0.41.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-pino': 0.39.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-redis': 0.39.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-redis-4': 0.39.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-restify': 0.38.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-router': 0.37.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-socket.io': 0.39.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-tedious': 0.10.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-undici': 0.2.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-winston': 0.37.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.28.9(@opentelemetry/api@1.8.0) - '@opentelemetry/resource-detector-aws': 1.5.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resource-detector-azure': 0.2.7(@opentelemetry/api@1.8.0) - '@opentelemetry/resource-detector-container': 0.3.9(@opentelemetry/api@1.8.0) - '@opentelemetry/resource-detector-gcp': 0.29.9(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-node': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - encoding - - supports-color - - '@opentelemetry/context-async-hooks@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - - '@opentelemetry/context-zone-peer-dep@1.24.1(@opentelemetry/api@1.8.0)(zone.js@0.14.6)': - dependencies: - '@opentelemetry/api': 1.8.0 - zone.js: 0.14.6 - - '@opentelemetry/context-zone@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/context-zone-peer-dep': 1.24.1(@opentelemetry/api@1.8.0)(zone.js@0.14.6) - zone.js: 0.14.6 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/exporter-logs-otlp-http@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.8.0) - - '@opentelemetry/exporter-metrics-otlp-http@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/exporter-trace-otlp-grpc@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@grpc/grpc-js': 1.10.8 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/exporter-trace-otlp-http@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/exporter-trace-otlp-proto@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-proto-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/exporter-zipkin@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/id-generator-aws-xray@1.2.2(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/instrumentation-amqplib@0.37.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-aws-lambda@0.41.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/propagator-aws-xray': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/aws-lambda': 8.10.122 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-aws-sdk@0.41.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/propagation-utils': 0.30.9(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-bunyan@0.38.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@types/bunyan': 1.8.9 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-cassandra-driver@0.38.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-connect@0.36.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/connect': 3.4.36 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-cucumber@0.6.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dataloader@0.9.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dns@0.36.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-document-load@0.37.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.50.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-express@0.39.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fastify@0.36.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fs@0.12.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.36.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.40.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-grpc@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-hapi@0.38.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-http@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-ioredis@0.40.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-knex@0.36.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-koa@0.40.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/koa': 2.14.0 - '@types/koa__router': 12.0.3 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-lru-memoizer@0.37.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-memcached@0.36.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/memcached': 2.2.10 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongodb@0.43.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongoose@0.38.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql2@0.38.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql@0.38.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/mysql': 2.15.22 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-nestjs-core@0.37.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-net@0.36.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pg@0.41.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.4 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pino@0.39.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis-4@0.39.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis@0.39.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-restify@0.38.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-router@0.37.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-socket.io@0.39.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-tedious@0.10.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - '@types/tedious': 4.0.14 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-undici@0.2.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-winston@0.37.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.50.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.50.0 - '@types/shimmer': 1.0.5 - import-in-the-middle: 1.7.1 - require-in-the-middle: 7.3.0 - semver: 7.6.2 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@types/shimmer': 1.0.5 - import-in-the-middle: 1.7.4 - require-in-the-middle: 7.3.0 - semver: 7.6.2 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/otlp-exporter-base@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/otlp-grpc-exporter-base@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@grpc/grpc-js': 1.10.8 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - protobufjs: 7.3.0 - - '@opentelemetry/otlp-proto-exporter-base@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - protobufjs: 7.3.0 - - '@opentelemetry/otlp-transformer@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/propagation-utils@0.30.9(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - - '@opentelemetry/propagator-aws-xray@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/propagator-b3@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/propagator-jaeger@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/redis-common@0.36.2': {} - - '@opentelemetry/resource-detector-alibaba-cloud@0.28.9(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/resource-detector-aws@1.5.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/resource-detector-azure@0.2.7(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/resource-detector-container@0.3.9(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/resource-detector-gcp@0.29.9(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - gcp-metadata: 6.1.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/sdk-logs@0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - - '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - lodash.merge: 4.6.2 - - '@opentelemetry/sdk-node@0.51.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.51.1 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-zipkin': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/context-async-hooks': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/propagator-b3': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/propagator-jaeger': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - semver: 7.6.2 - - '@opentelemetry/sdk-trace-web@1.24.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.24.1 - - '@opentelemetry/semantic-conventions@1.24.1': {} - - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - - '@reactflow/background@11.3.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reactflow/controls@11.2.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reactflow/core@11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@types/d3': 7.4.3 - '@types/d3-drag': 3.0.7 - '@types/d3-selection': 3.0.10 - '@types/d3-zoom': 3.0.8 - classcat: 5.0.5 - d3-drag: 3.0.0 - d3-selection: 3.0.0 - d3-zoom: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reactflow/minimap@11.7.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/d3-selection': 3.0.10 - '@types/d3-zoom': 3.0.8 - classcat: 5.0.5 - d3-selection: 3.0.0 - d3-zoom: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reactflow/node-resizer@2.2.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classcat: 5.0.5 - d3-drag: 3.0.0 - d3-selection: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reactflow/node-toolbar@1.3.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - immer - - '@reduxjs/toolkit@2.2.5(react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)': - dependencies: - immer: 10.1.1 - redux: 5.0.1 - redux-thunk: 3.1.0(redux@5.0.1) - reselect: 5.1.0 - optionalDependencies: - react: 18.3.1 - react-redux: 9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/pluginutils@5.1.0(rollup@4.18.0)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-x64@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.18.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.18.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.18.0': - optional: true - - '@rushstack/node-core-library@4.0.2(@types/node@20.13.0)': - dependencies: - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - z-schema: 5.0.5 - optionalDependencies: - '@types/node': 20.13.0 - - '@rushstack/rig-package@0.5.2': - dependencies: - resolve: 1.22.8 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.10.0(@types/node@20.13.0)': - dependencies: - '@rushstack/node-core-library': 4.0.2(@types/node@20.13.0) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 20.13.0 - - '@rushstack/ts-command-line@4.19.1(@types/node@20.13.0)': - dependencies: - '@rushstack/terminal': 0.10.0(@types/node@20.13.0) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@shikijs/core@1.6.1': {} - - '@sinclair/typebox@0.27.8': {} - - '@sindresorhus/is@4.6.0': {} - - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@tanstack/query-core@5.40.0': {} - - '@tanstack/react-query@5.40.0(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.40.0 - react: 18.3.1 - - '@tanstack/react-virtual@3.0.0-beta.54(react@18.3.1)': - dependencies: - '@tanstack/virtual-core': 3.0.0-beta.54 - react: 18.3.1 - - '@tanstack/virtual-core@3.0.0-beta.54': {} - - '@tauri-apps/api@2.0.0-beta.13': {} - - '@tauri-apps/cli-darwin-arm64@1.5.14': - optional: true - - '@tauri-apps/cli-darwin-arm64@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-darwin-x64@1.5.14': - optional: true - - '@tauri-apps/cli-darwin-x64@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-linux-arm-gnueabihf@1.5.14': - optional: true - - '@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-linux-arm64-gnu@1.5.14': - optional: true - - '@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-linux-arm64-musl@1.5.14': - optional: true - - '@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-linux-x64-gnu@1.5.14': - optional: true - - '@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-linux-x64-musl@1.5.14': - optional: true - - '@tauri-apps/cli-linux-x64-musl@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-win32-arm64-msvc@1.5.14': - optional: true - - '@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-win32-ia32-msvc@1.5.14': - optional: true - - '@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli-win32-x64-msvc@1.5.14': - optional: true - - '@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.17': - optional: true - - '@tauri-apps/cli@1.5.14': - optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.14 - '@tauri-apps/cli-darwin-x64': 1.5.14 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.14 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.14 - '@tauri-apps/cli-linux-arm64-musl': 1.5.14 - '@tauri-apps/cli-linux-x64-gnu': 1.5.14 - '@tauri-apps/cli-linux-x64-musl': 1.5.14 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.14 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.14 - '@tauri-apps/cli-win32-x64-msvc': 1.5.14 - - '@tauri-apps/cli@2.0.0-beta.17': - optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.17 - '@tauri-apps/cli-darwin-x64': 2.0.0-beta.17 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.17 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.17 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.17 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.17 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.17 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.17 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.17 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.17 - - '@tauri-apps/plugin-deep-link@2.0.0-beta.4': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@tauri-apps/plugin-dialog@2.0.0-beta.3': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@tauri-apps/plugin-fs@2.0.0-beta.3': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@tauri-apps/plugin-process@2.0.0-beta.3': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@tauri-apps/plugin-store@2.0.0-beta.5': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@tauri-apps/plugin-updater@2.0.0-beta.3': - dependencies: - '@tauri-apps/api': 2.0.0-beta.13 - - '@testing-library/dom@10.1.0': - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/runtime': 7.24.6 - '@types/aria-query': 5.0.4 - aria-query: 5.3.0 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - - '@testing-library/react@15.0.7(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.24.6 - '@testing-library/dom': 10.1.0 - '@types/react-dom': 18.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)': - dependencies: - '@testing-library/dom': 10.1.0 - - '@types/accepts@1.3.7': - dependencies: - '@types/node': 20.13.0 - - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.5 - - '@types/argparse@1.0.38': {} - - '@types/aria-query@5.0.4': {} - - '@types/aws-lambda@8.10.122': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.6 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.24.6 - - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.13.0 - - '@types/bunyan@1.8.9': - dependencies: - '@types/node': 20.13.0 - - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 20.13.0 - '@types/responselike': 1.0.3 - - '@types/connect@3.4.36': - dependencies: - '@types/node': 20.13.0 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.13.0 - - '@types/content-disposition@0.5.8': {} - - '@types/cookie@0.6.0': {} - - '@types/cookies@0.9.0': - dependencies: - '@types/connect': 3.4.38 - '@types/express': 4.17.21 - '@types/keygrip': 1.0.6 - '@types/node': 20.13.0 - - '@types/d3-array@3.2.1': {} - - '@types/d3-axis@3.0.6': - dependencies: - '@types/d3-selection': 3.0.10 - - '@types/d3-brush@3.0.6': - dependencies: - '@types/d3-selection': 3.0.10 - - '@types/d3-chord@3.0.6': {} - - '@types/d3-color@3.1.3': {} - - '@types/d3-contour@3.0.6': - dependencies: - '@types/d3-array': 3.2.1 - '@types/geojson': 7946.0.14 - - '@types/d3-delaunay@6.0.4': {} - - '@types/d3-dispatch@3.0.6': {} - - '@types/d3-drag@3.0.7': - dependencies: - '@types/d3-selection': 3.0.10 - - '@types/d3-dsv@3.0.7': {} - - '@types/d3-ease@3.0.2': {} - - '@types/d3-fetch@3.0.7': - dependencies: - '@types/d3-dsv': 3.0.7 - - '@types/d3-force@3.0.9': {} - - '@types/d3-format@3.0.4': {} - - '@types/d3-geo@3.1.0': - dependencies: - '@types/geojson': 7946.0.14 - - '@types/d3-hierarchy@3.1.7': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-path@3.1.0': {} - - '@types/d3-polygon@3.0.2': {} - - '@types/d3-quadtree@3.0.6': {} - - '@types/d3-random@3.0.3': {} - - '@types/d3-scale-chromatic@3.0.3': {} - - '@types/d3-scale@4.0.8': - dependencies: - '@types/d3-time': 3.0.3 - - '@types/d3-selection@3.0.10': {} - - '@types/d3-shape@3.1.6': - dependencies: - '@types/d3-path': 3.1.0 - - '@types/d3-time-format@4.0.3': {} - - '@types/d3-time@3.0.3': {} - - '@types/d3-timer@3.0.2': {} - - '@types/d3-transition@3.0.8': - dependencies: - '@types/d3-selection': 3.0.10 - - '@types/d3-zoom@3.0.8': - dependencies: - '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.10 - - '@types/d3@7.4.3': - dependencies: - '@types/d3-array': 3.2.1 - '@types/d3-axis': 3.0.6 - '@types/d3-brush': 3.0.6 - '@types/d3-chord': 3.0.6 - '@types/d3-color': 3.1.3 - '@types/d3-contour': 3.0.6 - '@types/d3-delaunay': 6.0.4 - '@types/d3-dispatch': 3.0.6 - '@types/d3-drag': 3.0.7 - '@types/d3-dsv': 3.0.7 - '@types/d3-ease': 3.0.2 - '@types/d3-fetch': 3.0.7 - '@types/d3-force': 3.0.9 - '@types/d3-format': 3.0.4 - '@types/d3-geo': 3.1.0 - '@types/d3-hierarchy': 3.1.7 - '@types/d3-interpolate': 3.0.4 - '@types/d3-path': 3.1.0 - '@types/d3-polygon': 3.0.2 - '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.3 - '@types/d3-scale': 4.0.8 - '@types/d3-scale-chromatic': 3.0.3 - '@types/d3-selection': 3.0.10 - '@types/d3-shape': 3.1.6 - '@types/d3-time': 3.0.3 - '@types/d3-time-format': 4.0.3 - '@types/d3-timer': 3.0.2 - '@types/d3-transition': 3.0.8 - '@types/d3-zoom': 3.0.8 - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 0.7.34 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.5 - - '@types/estree@1.0.5': {} - - '@types/express-serve-static-core@4.19.3': - dependencies: - '@types/node': 20.13.0 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.3 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.7 - - '@types/geojson@7946.0.14': {} - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.2 - - '@types/http-assert@1.5.5': {} - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-errors@2.0.4': {} - - '@types/keygrip@1.0.6': {} - - '@types/keyv@3.1.4': - dependencies: - '@types/node': 20.13.0 - - '@types/koa-compose@3.2.8': - dependencies: - '@types/koa': 2.14.0 - - '@types/koa@2.14.0': - dependencies: - '@types/accepts': 1.3.7 - '@types/content-disposition': 0.5.8 - '@types/cookies': 0.9.0 - '@types/http-assert': 1.5.5 - '@types/http-errors': 2.0.4 - '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.8 - '@types/node': 20.13.0 - - '@types/koa__router@12.0.3': - dependencies: - '@types/koa': 2.14.0 - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.2 - - '@types/mdx@2.0.13': {} - - '@types/memcached@2.2.10': - dependencies: - '@types/node': 20.13.0 - - '@types/mime@1.3.5': {} - - '@types/ms@0.7.34': {} - - '@types/mysql@2.15.22': - dependencies: - '@types/node': 20.13.0 - - '@types/nlcst@1.0.4': - dependencies: - '@types/unist': 2.0.10 - - '@types/node@18.19.33': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.13.0': - dependencies: - undici-types: 5.26.5 - - '@types/offscreencanvas@2019.7.3': {} - - '@types/pg-pool@2.0.4': - dependencies: - '@types/pg': 8.6.1 - - '@types/pg@8.6.1': - dependencies: - '@types/node': 20.13.0 - pg-protocol: 1.6.1 - pg-types: 2.2.0 - - '@types/prop-types@15.7.12': {} - - '@types/qs@6.9.15': {} - - '@types/range-parser@1.2.7': {} - - '@types/react-color@3.0.12': - dependencies: - '@types/react': 18.3.3 - '@types/reactcss': 1.2.12 - - '@types/react-dom@18.3.0': - dependencies: - '@types/react': 18.3.3 - - '@types/react@18.3.3': - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - '@types/reactcss@1.2.12': - dependencies: - '@types/react': 18.3.3 - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 20.13.0 - - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.13.0 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.13.0 - '@types/send': 0.17.4 - - '@types/shimmer@1.0.5': {} - - '@types/tedious@4.0.14': - dependencies: - '@types/node': 20.13.0 - - '@types/unist@2.0.10': {} - - '@types/unist@3.0.2': {} - - '@types/use-sync-external-store@0.0.3': {} - - '@types/uuid@9.0.8': {} - - '@types/webgl2@0.0.11': {} - - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 20.13.0 - optional: true - - '@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/type-utils': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.11.0 - eslint: 9.4.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.11.0(eslint@9.4.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.11.0 - debug: 4.3.5 - eslint: 9.4.0 - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.11.0': - dependencies: - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/visitor-keys': 7.11.0 - - '@typescript-eslint/type-utils@7.11.0(eslint@9.4.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - debug: 4.3.5 - eslint: 9.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.11.0': {} - - '@typescript-eslint/typescript-estree@7.11.0(typescript@5.4.5)': - dependencies: - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/visitor-keys': 7.11.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.11.0(eslint@9.4.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) - '@typescript-eslint/scope-manager': 7.11.0 - '@typescript-eslint/types': 7.11.0 - '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5) - eslint: 9.4.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.11.0': - dependencies: - '@typescript-eslint/types': 7.11.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@uptrace/core@1.20.0': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - cross-fetch: 4.0.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@uptrace/node@1.20.0(@opentelemetry/api-logs@0.51.1)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/auto-instrumentations-node': 0.46.1(@opentelemetry/api@1.8.0) - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-logs-otlp-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/id-generator-aws-xray': 1.2.2(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-node': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@uptrace/core': 1.20.0 - transitivePeerDependencies: - - '@opentelemetry/api-logs' - - encoding - - supports-color - - '@uptrace/web@1.20.0': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-http': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.24.1(@opentelemetry/api@1.8.0) - '@uptrace/core': 1.20.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@vercel/analytics@1.3.1(react@18.3.1)': - dependencies: - server-only: 0.0.1 - optionalDependencies: - react: 18.3.1 - - '@vercel/edge@1.1.1': {} - - '@vercel/nft@0.26.5': - dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 4.2.1 - acorn: 8.11.3 - acorn-import-attributes: 1.9.5(acorn@8.11.3) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - node-gyp-build: 4.8.1 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@vitejs/plugin-react@4.3.0(vite@5.2.11(@types/node@20.13.0))': - dependencies: - '@babel/core': 7.24.6 - '@babel/plugin-transform-react-jsx-self': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx-source': 7.24.6(@babel/core@7.24.6) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.2.11(@types/node@20.13.0) - transitivePeerDependencies: - - supports-color - - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0))': + vitest: 1.5.0 dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -8666,40 +5064,54 @@ snapshots: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.13.0)(jsdom@24.1.0) + vitest: 1.5.0(jsdom@24.0.0) transitivePeerDependencies: - supports-color + dev: true - '@vitest/expect@1.6.0': + /@vitest/expect@1.5.0: + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 chai: 4.4.1 + dev: true - '@vitest/runner@1.6.0': + /@vitest/runner@1.5.0: + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} dependencies: - '@vitest/utils': 1.6.0 + '@vitest/utils': 1.5.0 p-limit: 5.0.0 pathe: 1.1.2 + dev: true - '@vitest/snapshot@1.6.0': + /@vitest/snapshot@1.5.0: + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 + dev: true - '@vitest/spy@1.6.0': + /@vitest/spy@1.5.0: + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} dependencies: tinyspy: 2.2.1 + dev: true - '@vitest/utils@1.6.0': + /@vitest/utils@1.5.0: + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 + dev: true - '@volar/kit@2.2.5(typescript@5.4.5)': + /@volar/kit@2.2.5(typescript@5.4.5): + resolution: {integrity: sha512-Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==} + peerDependencies: + typescript: '*' dependencies: '@volar/language-service': 2.2.5 '@volar/typescript': 2.2.5 @@ -8707,16 +5119,22 @@ snapshots: typescript: 5.4.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false - '@volar/language-core@1.11.1': + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} dependencies: '@volar/source-map': 1.11.1 + dev: false - '@volar/language-core@2.2.5': + /@volar/language-core@2.2.5: + resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} dependencies: '@volar/source-map': 2.2.5 + dev: false - '@volar/language-server@2.2.5': + /@volar/language-server@2.2.5: + resolution: {integrity: sha512-PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==} dependencies: '@volar/language-core': 2.2.5 '@volar/language-service': 2.2.5 @@ -8729,63 +5147,92 @@ snapshots: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false - '@volar/language-service@2.2.5': + /@volar/language-service@2.2.5: + resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} dependencies: '@volar/language-core': 2.2.5 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false - '@volar/snapshot-document@2.2.5': + /@volar/snapshot-document@2.2.5: + resolution: {integrity: sha512-MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==} dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 + dev: false - '@volar/source-map@1.11.1': + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} dependencies: muggle-string: 0.3.1 + dev: false - '@volar/source-map@2.2.5': + /@volar/source-map@2.2.5: + resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} dependencies: muggle-string: 0.4.1 + dev: false - '@volar/typescript@1.11.1': + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} dependencies: '@volar/language-core': 1.11.1 path-browserify: 1.0.1 + dev: false - '@volar/typescript@2.2.5': + /@volar/typescript@2.2.5: + resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} dependencies: '@volar/language-core': 2.2.5 path-browserify: 1.0.1 + dev: false - '@vscode/emmet-helper@2.9.3': + /@vscode/emmet-helper@2.9.3: + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} dependencies: emmet: 2.4.7 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 + dev: false - '@vscode/l10n@0.0.16': {} + /@vscode/l10n@0.0.16: + resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + dev: false - '@vscode/l10n@0.0.18': {} + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: false - '@vue/compiler-core@3.4.27': + /@vue/compiler-core@3.4.27: + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.7 '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 + dev: false - '@vue/compiler-dom@3.4.27': + /@vue/compiler-dom@3.4.27: + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} dependencies: '@vue/compiler-core': 3.4.27 '@vue/shared': 3.4.27 + dev: false - '@vue/language-core@1.8.27(typescript@5.4.5)': + /@vue/language-core@1.8.27(typescript@5.4.5): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 @@ -8795,57 +5242,87 @@ snapshots: minimatch: 9.0.4 muggle-string: 0.3.1 path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 - optionalDependencies: typescript: 5.4.5 + vue-template-compiler: 2.7.16 + dev: false - '@vue/shared@3.4.27': {} + /@vue/shared@3.4.27: + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + dev: false - abbrev@1.1.1: {} + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false - acorn-import-assertions@1.9.0(acorn@8.11.3): + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 dependencies: acorn: 8.11.3 + dev: false - acorn-import-attributes@1.9.5(acorn@8.11.3): + /acorn-import-attributes@1.9.5(acorn@8.11.3): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 dependencies: acorn: 8.11.3 + dev: false - acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 - acorn-walk@8.3.2: {} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true - acorn@8.11.3: {} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: false - agent-base@7.1.1: + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} dependencies: debug: 4.3.5 transitivePeerDependencies: - supports-color - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.14.0: + /ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 + dev: false - algoliasearch@4.23.3: + /algoliasearch@4.23.3: + resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} dependencies: '@algolia/cache-browser-local-storage': 4.23.3 '@algolia/cache-common': 4.23.3 @@ -8862,55 +5339,90 @@ snapshots: '@algolia/requester-common': 4.23.3 '@algolia/requester-node-http': 4.23.3 '@algolia/transporter': 4.23.3 + dev: true - ansi-align@3.0.1: + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 + dev: false - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: false - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: false - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: false - aproba@2.0.0: {} + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: false - are-we-there-yet@2.0.0: + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: delegates: 1.0.0 readable-stream: 3.6.2 + dev: false - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 - array-buffer-byte-length@1.0.1: + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 + dev: true - array-includes@3.1.8: + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -8918,12 +5430,19 @@ snapshots: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 + dev: true - array-iterate@2.0.1: {} + /array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + dev: false - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - array.prototype.findlast@1.2.5: + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -8931,37 +5450,51 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flat@1.3.2: + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flatmap@1.3.2: + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.toreversed@1.1.2: + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.tosorted@1.1.3: + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 + dev: true - arraybuffer.prototype.slice@1.0.3: + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -8971,50 +5504,73 @@ snapshots: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + dev: true - assertion-error@1.1.0: {} + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true - astral-regex@2.0.0: {} + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: false - astring@1.8.6: {} + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false - astro-auto-import@0.4.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)): + /astro-auto-import@0.4.2(astro@4.6.3): + resolution: {integrity: sha512-ZgWZQ58+EhbEym1+aoUnNyECOy0wsG5uRUs+rVp/7BzHtj1V76J2qkhjaTWLplgNb+8WrzhvTQNxytmXRCW+Ow==} + engines: {node: '>=16.0.0'} + peerDependencies: + astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta dependencies: - '@types/node': 18.19.33 + '@types/node': 18.19.34 acorn: 8.11.3 - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) + astro: 4.6.3(typescript@5.4.5) + dev: false - astro-embed@0.7.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)): + /astro-embed@0.7.1(astro@4.6.3): + resolution: {integrity: sha512-3G7RGVjTCB3iYc2POz7mCW4R5RoO6kCAZDcFkzU1/ewAY3bKqwhHCzKrBgzQhIRA5qjn5NyAfqPy0mYcs9DQ4A==} + peerDependencies: + astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta dependencies: - '@astro-community/astro-embed-integration': 0.7.1(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@astro-community/astro-embed-link-preview': 0.2.0 - '@astro-community/astro-embed-twitter': 0.5.4(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@astro-community/astro-embed-vimeo': 0.3.7(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - '@astro-community/astro-embed-youtube': 0.5.2(astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5)) - astro: 4.9.2(@types/node@20.13.0)(typescript@5.4.5) + '@astro-community/astro-embed-integration': 0.7.1(astro@4.6.3) + '@astro-community/astro-embed-link-preview': 0.1.0 + '@astro-community/astro-embed-twitter': 0.5.4(astro@4.6.3) + '@astro-community/astro-embed-vimeo': 0.3.7(astro@4.6.3) + '@astro-community/astro-embed-youtube': 0.5.2(astro@4.6.3) + astro: 4.6.3(typescript@5.4.5) + dev: false - astro-seo@0.8.3(prettier@3.2.5)(typescript@5.4.5): + /astro-seo@0.8.3(prettier@3.2.5)(typescript@5.4.5): + resolution: {integrity: sha512-gQeEh0U2yyVM0iyU8DTORK6hXMy5WH2wufrkUuNOKjI3LnYLniqgDxm1LZPQDuD6b4OHabVOi/5L88A9POCcCQ==} dependencies: '@astrojs/check': 0.5.10(prettier@3.2.5)(typescript@5.4.5) transitivePeerDependencies: - prettier - prettier-plugin-astro - typescript + dev: false - astro@4.9.2(@types/node@20.13.0)(typescript@5.4.5): + /astro@4.6.3(typescript@5.4.5): + resolution: {integrity: sha512-p2zs1Gac+ysdc/yFCoc8pOXTZE5L9foAtmqUzUVL22WX68bYTRovd03GRs7J1MDpwzsl9kJtlK20ROpjyIFpNw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true dependencies: '@astrojs/compiler': 2.8.0 '@astrojs/internal-helpers': 0.4.0 '@astrojs/markdown-remark': 5.1.0 '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.6) - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__core': 7.20.5 - '@types/cookie': 0.6.0 + '@types/cookie': 0.5.4 acorn: 8.11.3 aria-query: 5.3.0 axobject-query: 4.0.0 @@ -9027,12 +5583,12 @@ snapshots: cssesc: 3.0.0 debug: 4.3.5 deterministic-object-hash: 2.0.2 - devalue: 5.0.0 + devalue: 4.3.3 diff: 5.2.0 dlv: 1.1.3 dset: 3.1.3 es-module-lexer: 1.5.3 - esbuild: 0.21.4 + esbuild: 0.19.12 estree-walker: 3.0.3 execa: 8.0.1 fast-glob: 3.3.2 @@ -9044,8 +5600,8 @@ snapshots: js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.10 - mrmime: 2.0.0 - ora: 8.0.1 + mime: 3.0.0 + ora: 7.0.1 p-limit: 5.0.0 p-queue: 8.0.1 path-to-regexp: 6.2.2 @@ -9054,20 +5610,20 @@ snapshots: rehype: 13.0.1 resolve: 1.22.8 semver: 7.6.2 - shiki: 1.6.1 + shiki: 1.3.0 string-width: 7.1.0 strip-ansi: 7.1.0 tsconfck: 3.1.0(typescript@5.4.5) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.2.11(@types/node@20.13.0) - vitefu: 0.2.5(vite@5.2.11(@types/node@20.13.0)) + vite: 5.2.11(@types/node@20.12.7) + vitefu: 0.2.5(vite@5.2.11) which-pm: 2.2.0 yargs-parser: 21.1.1 zod: 3.23.8 zod-to-json-schema: 3.23.0(zod@3.23.8) optionalDependencies: - sharp: 0.33.4 + sharp: 0.32.6 transitivePeerDependencies: - '@types/node' - less @@ -9078,47 +5634,142 @@ snapshots: - supports-color - terser - typescript + dev: false - async-mutex@0.5.0: + /async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 + dev: false - async-sema@3.1.1: {} + /async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + dev: false - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true - available-typed-arrays@1.0.7: + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.0.0 + dev: true - axobject-query@4.0.0: + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: dequal: 2.0.3 + dev: false + + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + dev: false + optional: true + + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: false + + /bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + dev: false + optional: true + + /bare-fs@2.3.1: + resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + requiresBuild: true + dependencies: + bare-events: 2.4.2 + bare-path: 2.1.3 + bare-stream: 2.1.2 + dev: false + optional: true + + /bare-os@2.3.0: + resolution: {integrity: sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==} + dev: false + optional: true - bail@2.0.2: {} + /bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + dependencies: + bare-os: 2.3.0 + dev: false + optional: true - balanced-match@1.0.2: {} + /bare-stream@2.1.2: + resolution: {integrity: sha512-az/7TFOh4Gk9Tqs1/xMFq5FuFoeZ9hZ3orsM2x69u8NXVUDXZnpdhG8mZY/Pv6DF954MGn+iIt4rFrG34eQsvg==} + dependencies: + streamx: 2.18.0 + dev: false + optional: true - balanced-match@2.0.0: {} + /base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + dev: false - base-64@1.0.0: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false - big-integer@1.6.52: {} + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: false - bignumber.js@9.1.2: {} + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + dev: false - binary-extensions@2.3.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: false - bindings@1.5.0: + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} dependencies: file-uri-to-path: 1.0.0 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + optional: true + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false - boolbase@1.0.0: {} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: false - boolean@3.2.0: + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + dev: true optional: true - boxen@7.1.1: + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -9128,23 +5779,29 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - braces@3.0.3: + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: fill-range: 7.1.1 - broadcast-channel@3.7.0: + /broadcast-channel@3.7.0: + resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.7 detect-node: 2.1.0 js-sha3: 0.8.0 microseconds: 0.2.0 @@ -9152,21 +5809,50 @@ snapshots: oblivious-set: 1.0.0 rimraf: 3.0.2 unload: 2.2.0 + dev: false - browserslist@4.23.0: + /browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - caniuse-lite: 1.0.30001625 - electron-to-chromium: 1.4.788 + caniuse-lite: 1.0.30001632 + electron-to-chromium: 1.4.799 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.1) + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + optional: true - buffer-crc32@0.2.13: {} + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false - cac@6.7.14: {} + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true - cacheable-lookup@5.0.4: {} + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true - cacheable-request@7.0.4: + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} dependencies: clone-response: 1.0.3 get-stream: 5.2.0 @@ -9175,59 +5861,94 @@ snapshots: lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.1 + dev: true - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 + dev: true - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - camelcase@7.0.1: {} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false - caniuse-lite@1.0.30001625: {} + /caniuse-lite@1.0.30001632: + resolution: {integrity: sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==} - ccount@2.0.1: {} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false - chai@4.4.1: + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 + dev: true - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false - character-entities-html4@2.1.0: {} + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false - character-entities-legacy@3.0.0: {} + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false - character-entities@2.0.2: {} + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false - character-reference-invalid@2.0.1: {} + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false - check-error@1.0.3: + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 + dev: true - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.3 @@ -9238,182 +5959,329 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: false + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + optional: true - chownr@2.0.0: {} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: false - ci-info@4.0.0: {} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: false - cjs-module-lexer@1.3.1: {} + /cjs-module-lexer@1.3.1: + resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + dev: false - classcat@5.0.5: {} + /classcat@5.0.5: + resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} + dev: false - cli-boxes@3.0.0: {} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false - cli-cursor@4.0.0: + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: 4.0.0 + dev: false - cli-spinners@2.9.2: {} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: false - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: false - clone-response@1.0.3: + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 + dev: true - clsx@2.1.1: {} + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false - collapse-white-space@2.1.0: {} + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + dev: false - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 + dev: false optional: true - color-support@1.1.3: {} + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: false - color@4.2.3: + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} dependencies: color-convert: 2.0.1 color-string: 1.9.1 + dev: false optional: true - colord@2.9.3: {} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: false - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true - comma-separated-tokens@2.0.3: {} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false - commander@9.5.0: + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: false optional: true - common-ancestor-path@1.0.1: {} + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: false - complex.js@2.1.1: {} + /complex.js@2.1.1: + resolution: {integrity: sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==} + dev: false - computeds@0.0.1: {} + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: false - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.7: {} + /confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + dev: true - console-control-strings@1.1.0: {} + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: false - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.6.0: {} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: false - cosmiconfig@9.0.0(typescript@5.4.5): + /cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - optionalDependencies: - typescript: 5.4.5 + dev: false - cross-fetch@4.0.0: + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: node-fetch: 2.6.11 transitivePeerDependencies: - encoding + dev: false - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css-functions-list@3.2.2: {} + /css-functions-list@3.2.2: + resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} + engines: {node: '>=12 || >=16'} + dev: false - css-select@5.1.0: + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 domutils: 3.1.0 nth-check: 2.1.1 + dev: false - css-selector-parser@1.4.1: {} + /css-selector-parser@1.4.1: + resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} + dev: false - css-tree@2.3.1: + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 + dev: false - css-what@6.1.0: {} + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: false - cssesc@3.0.0: {} + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false - cssom@0.5.0: {} + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: false - cssstyle@4.0.1: + /cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 + dev: true - csstype@3.1.3: {} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - d3-array@3.2.4: + /d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} dependencies: internmap: 2.0.3 + dev: false - d3-color@3.1.0: {} + /d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + dev: false - d3-dispatch@3.0.1: {} + /d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + dev: false - d3-drag@3.0.0: + /d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 + dev: false - d3-ease@3.0.1: {} + /d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + dev: false - d3-format@3.1.0: {} + /d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + dev: false - d3-interpolate@3.0.1: + /d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} dependencies: d3-color: 3.1.0 + dev: false - d3-scale@4.0.2: + /d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} dependencies: d3-array: 3.2.4 d3-format: 3.1.0 d3-interpolate: 3.0.1 d3-time: 3.1.0 d3-time-format: 4.1.0 + dev: false - d3-selection@3.0.0: {} + /d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + dev: false - d3-time-format@4.1.0: + /d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} dependencies: d3-time: 3.1.0 + dev: false - d3-time@3.1.0: + /d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} dependencies: d3-array: 3.2.4 + dev: false - d3-timer@3.0.1: {} + /d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + dev: false - d3-transition@3.0.1(d3-selection@3.0.0): + /d3-transition@3.0.1(d3-selection@3.0.0): + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 dependencies: d3-color: 3.1.0 d3-dispatch: 3.0.1 @@ -9421,168 +6289,291 @@ snapshots: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 + dev: false - d3-zoom@3.0.0: + /d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} dependencies: d3-dispatch: 3.0.1 d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) + dev: false - data-urls@5.0.0: + /data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + dev: true - data-view-buffer@1.0.1: + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-length@1.0.1: + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - data-view-byte-offset@1.0.0: + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + dev: true - de-indent@1.0.2: {} + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: false - debug@4.3.5: + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 - decimal.js@10.4.3: {} + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decode-named-character-reference@1.0.2: + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 + dev: false - decompress-response@6.0.0: + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - deep-eql@4.1.3: + /deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} dependencies: type-detect: 4.0.8 + dev: true + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + optional: true - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - defer-to-connect@2.0.1: {} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + dev: true - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + dev: true - delayed-stream@1.0.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true - delegates@1.0.0: {} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: false - dequal@2.0.3: {} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - detect-libc@2.0.3: {} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: false - detect-node@2.1.0: {} + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - deterministic-object-hash@2.0.2: + /deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} dependencies: base-64: 1.0.0 + dev: false - devalue@5.0.0: {} + /devalue@4.3.3: + resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + dev: false - devlop@1.1.0: + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dependencies: dequal: 2.0.3 + dev: false - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@5.2.0: {} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dev: false - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dlv@1.1.3: {} + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false - doctrine@2.1.0: + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: true - dom-accessibility-api@0.5.16: {} + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true - dom-serializer@2.0.0: + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 + dev: false - domelementtype@2.3.0: {} + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: false - domhandler@5.0.3: + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 + dev: false - domutils@3.1.0: + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 + dev: false - dotenv@16.4.5: {} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: false - dset@3.1.3: {} + /dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + engines: {node: '>=4'} + dev: false - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: false - electron-to-chromium@1.4.788: {} + /electron-to-chromium@1.4.799: + resolution: {integrity: sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==} - electron@30.0.9: + /electron@30.0.6: + resolution: {integrity: sha512-PkhEPFdpYcTzjAO3gMHZ+map7g2+xCrMDedo/L1i0ir2BRXvAB93IkTJX497U6Srb/09r2cFt+k20VPNVCdw3Q==} + engines: {node: '>= 12.20.55'} + hasBin: true + requiresBuild: true dependencies: '@electron/get': 2.0.3 - '@types/node': 20.13.0 + '@types/node': 20.12.7 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color + dev: true - emmet@2.4.7: + /emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 + dev: false - emoji-regex@10.3.0: {} + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: false - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false - emoji-regex@9.2.2: {} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false - end-of-stream@1.4.4: + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - env-paths@2.2.1: {} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: false - es-abstract@1.23.3: + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -9630,14 +6621,23 @@ snapshots: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 + dev: true - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true - es-iterator-helpers@1.0.19: + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -9653,33 +6653,84 @@ snapshots: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + dev: true - es-module-lexer@1.5.3: {} + /es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + dev: false - es-object-atoms@1.0.0: + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 + dev: true - es-set-tostringtag@2.0.3: + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 + dev: true - es-shim-unscopables@1.0.2: + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: hasown: 2.0.2 + dev: true - es-to-primitive@1.2.1: + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 + dev: true - es6-error@4.1.1: + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + dev: true optional: true - esbuild@0.20.2: + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: false + + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -9705,52 +6756,42 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - esbuild@0.21.4: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.4 - '@esbuild/android-arm': 0.21.4 - '@esbuild/android-arm64': 0.21.4 - '@esbuild/android-x64': 0.21.4 - '@esbuild/darwin-arm64': 0.21.4 - '@esbuild/darwin-x64': 0.21.4 - '@esbuild/freebsd-arm64': 0.21.4 - '@esbuild/freebsd-x64': 0.21.4 - '@esbuild/linux-arm': 0.21.4 - '@esbuild/linux-arm64': 0.21.4 - '@esbuild/linux-ia32': 0.21.4 - '@esbuild/linux-loong64': 0.21.4 - '@esbuild/linux-mips64el': 0.21.4 - '@esbuild/linux-ppc64': 0.21.4 - '@esbuild/linux-riscv64': 0.21.4 - '@esbuild/linux-s390x': 0.21.4 - '@esbuild/linux-x64': 0.21.4 - '@esbuild/netbsd-x64': 0.21.4 - '@esbuild/openbsd-x64': 0.21.4 - '@esbuild/sunos-x64': 0.21.4 - '@esbuild/win32-arm64': 0.21.4 - '@esbuild/win32-ia32': 0.21.4 - '@esbuild/win32-x64': 0.21.4 - - escalade@3.1.2: {} - - escape-latex@1.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-plugin-react@7.34.2(eslint@9.4.0): + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + /escape-latex@1.2.0: + resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /eslint-plugin-react@7.34.2(eslint@9.0.0): + resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.3 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.4.0 + eslint: 9.0.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -9762,29 +6803,45 @@ snapshots: resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + dev: true - eslint-plugin-simple-import-sort@12.1.0(eslint@9.4.0): + /eslint-plugin-simple-import-sort@12.1.0(eslint@9.0.0): + resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} + peerDependencies: + eslint: '>=5.0.0' dependencies: - eslint: 9.4.0 + eslint: 9.0.0 + dev: true - eslint-scope@8.0.1: + /eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint-visitor-keys@4.0.0: {} + /eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true - eslint@9.4.0: + /eslint@9.0.0: + resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/config-array': 0.15.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) + '@eslint-community/regexpp': 4.10.1 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.4.0 + '@eslint/js': 9.0.0 + '@humanwhocodes/config-array': 0.12.3 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 @@ -9800,6 +6857,7 @@ snapshots: file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 + graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 @@ -9814,60 +6872,96 @@ snapshots: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true - espree@10.0.1: + /espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 4.0.0 + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - esquery@1.5.0: + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - estree-util-attach-comments@3.0.0: + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} dependencies: '@types/estree': 1.0.5 + dev: false - estree-util-build-jsx@3.0.1: + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 + dev: false - estree-util-is-identifier-name@3.0.0: {} + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false - estree-util-to-js@2.0.0: + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 + dev: false - estree-util-visit@2.0.0: + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 + dev: false - estree-walker@2.0.2: {} + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: false - estree-walker@3.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true - eventemitter3@5.0.1: {} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false - execa@8.0.1: + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -9879,13 +6973,26 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - extend-shallow@2.0.1: + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + optional: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 - extend@3.0.2: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false - extract-zip@2.0.1: + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true dependencies: debug: 4.3.5 get-stream: 5.2.0 @@ -9894,10 +7001,19 @@ snapshots: '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: false + optional: true - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -9905,110 +7021,167 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.7 - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fastest-levenshtein@1.0.16: {} + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: false - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 - fd-slicer@1.1.0: + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 + dev: true - file-entry-cache@8.0.0: + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} dependencies: flat-cache: 4.0.1 - file-entry-cache@9.0.0: - dependencies: - flat-cache: 5.0.0 - - file-uri-to-path@1.0.0: {} + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false - fill-range@7.1.1: + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: false - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - find-yarn-workspace-root2@1.2.16: + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.7 pkg-dir: 4.2.0 + dev: false - flat-cache@4.0.1: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - - flat-cache@5.0.0: + /flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} dependencies: flatted: 3.3.1 keyv: 4.5.4 - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - flattie@1.1.1: {} + /flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + dev: false - for-each@0.3.3: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true + + /fraction.js@4.3.4: + resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} + dev: false - fraction.js@4.3.4: {} + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + optional: true - fs-extra@7.0.1: + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: false - fs-extra@8.1.0: + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: true - fs-minipass@2.1.0: + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 + dev: false - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 functions-have-names: 1.2.3 + dev: true - functions-have-names@1.2.3: {} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - fuse.js@7.0.0: {} + /fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + dev: false - gauge@3.0.2: + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -10019,8 +7192,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 + dev: false - gaxios@6.6.0: + /gaxios@6.6.0: + resolution: {integrity: sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==} + engines: {node: '>=14'} dependencies: extend: 3.0.2 https-proxy-agent: 7.0.4 @@ -10030,54 +7206,93 @@ snapshots: transitivePeerDependencies: - encoding - supports-color + dev: false - gcp-metadata@6.1.0: + /gcp-metadata@6.1.0: + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + engines: {node: '>=14'} dependencies: gaxios: 6.6.0 json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color + dev: false - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false - get-east-asian-width@1.2.0: {} + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: false - get-func-name@2.0.2: {} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 + dev: true - get-stream@5.2.0: + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} dependencies: pump: 3.0.0 + dev: true - get-stream@8.0.1: {} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} - get-symbol-description@1.0.2: + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 + dev: true - github-slugger@2.0.0: {} + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + optional: true + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -10086,7 +7301,10 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global-agent@3.0.0: + /global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + requiresBuild: true dependencies: boolean: 3.2.0 es6-error: 4.1.1 @@ -10094,30 +7312,50 @@ snapshots: roarr: 2.15.4 semver: 7.6.2 serialize-error: 7.0.1 + dev: true optional: true - global-modules@2.0.0: + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 + dev: false - global-prefix@3.0.0: + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 + dev: false - globals@11.12.0: {} + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - globals@14.0.0: {} + /globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + dev: true - globals@15.3.0: {} + /globals@15.3.0: + resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} + engines: {node: '>=18'} + dev: true - globalthis@1.0.4: + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 gopd: 1.0.1 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -10126,15 +7364,22 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globjoin@0.1.4: {} + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: false - globrex@0.1.2: {} + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 + dev: true - got@11.8.6: + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 4.0.6 @@ -10147,43 +7392,71 @@ snapshots: lowercase-keys: 2.0.0 p-cancelable: 2.1.1 responselike: 2.0.1 + dev: true - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - gray-matter@4.0.3: + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - has-bigints@1.0.2: {} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 + dev: true - has-proto@1.0.3: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true - has-tostringtag@1.0.2: + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - has-unicode@2.0.1: {} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - hast-util-from-html@2.0.1: + /hast-util-from-html@2.0.1: + resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} dependencies: '@types/hast': 3.0.4 devlop: 1.1.0 @@ -10191,8 +7464,10 @@ snapshots: parse5: 7.1.2 vfile: 6.0.1 vfile-message: 4.0.2 + dev: false - hast-util-from-parse5@8.0.1: + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -10202,16 +7477,22 @@ snapshots: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 + dev: false - hast-util-is-element@3.0.0: + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-parse-selector@4.0.0: + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-raw@9.0.3: + /hast-util-raw@9.0.3: + resolution: {integrity: sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -10219,15 +7500,17 @@ snapshots: hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.1 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-to-estree@3.1.0: + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -10247,8 +7530,10 @@ snapshots: zwitch: 2.0.4 transitivePeerDependencies: - supports-color + dev: false - hast-util-to-html@9.0.1: + /hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -10257,13 +7542,15 @@ snapshots: hast-util-raw: 9.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 property-information: 6.5.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 + dev: false - hast-util-to-jsx-runtime@2.3.0: + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -10282,8 +7569,10 @@ snapshots: vfile-message: 4.0.2 transitivePeerDependencies: - supports-color + dev: false - hast-util-to-parse5@8.0.0: + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -10292,334 +7581,574 @@ snapshots: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-to-text@4.0.2: + /hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 + dev: false - hast-util-whitespace@3.0.0: + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: '@types/hast': 3.0.4 + dev: false - hastscript@8.0.0: + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 space-separated-tokens: 2.0.2 + dev: false - he@1.2.0: {} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: false - html-encoding-sniffer@4.0.0: + /html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} dependencies: whatwg-encoding: 3.1.1 + dev: true - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - html-escaper@3.0.3: {} + /html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + dev: false - html-tags@3.3.1: {} + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: false - html-void-elements@3.0.0: {} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false - htmlparser2@8.0.2: + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 + dev: false - http-cache-semantics@4.1.1: {} + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-proxy-agent@7.0.2: + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true - http2-wrapper@1.0.3: + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: true - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: false - https-proxy-agent@7.0.4: + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 debug: 4.3.5 transitivePeerDependencies: - supports-color - human-signals@5.0.0: {} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - ignore@5.3.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false - immer@10.1.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + /immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + dev: false - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.7.1: + /import-in-the-middle@1.7.1: + resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} dependencies: acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) cjs-module-lexer: 1.3.1 module-details-from-path: 1.0.3 + dev: false - import-in-the-middle@1.7.4: - dependencies: - acorn: 8.11.3 - acorn-import-attributes: 1.9.5(acorn@8.11.3) - cjs-module-lexer: 1.3.1 - module-details-from-path: 1.0.3 - - import-lazy@4.0.0: {} + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: false - import-meta-resolve@4.1.0: {} + /import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + dev: false - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false - inline-style-parser@0.1.1: {} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false - inline-style-parser@0.2.3: {} + /inline-style-parser@0.2.3: + resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + dev: false - internal-slot@1.0.7: + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + dev: true - internmap@2.0.3: {} + /internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + dev: false - is-alphabetical@2.0.1: {} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false - is-alphanumerical@2.0.1: + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + dev: false - is-array-buffer@3.0.4: + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false - is-arrayish@0.3.2: + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false optional: true - is-async-function@2.0.0: + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-bigint@1.0.4: + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 + dev: false - is-boolean-object@1.1.2: + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-buffer@2.0.5: {} + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false - is-callable@1.2.7: {} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true - is-core-module@2.13.1: + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 + dev: true - is-date-object@1.0.5: + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-decimal@2.0.1: {} + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false - is-docker@3.0.0: {} + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false - is-extendable@0.1.1: {} + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: call-bind: 1.0.7 + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false - is-generator-function@1.0.10: + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - is-hexadecimal@2.0.1: {} + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false - is-inside-container@1.0.0: + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: is-docker: 3.0.0 + dev: false - is-interactive@2.0.0: {} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: false - is-map@2.0.3: {} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + dev: true - is-negative-zero@2.0.3: {} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true - is-number-object@1.0.7: + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true - is-plain-obj@4.1.0: {} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false - is-plain-object@5.0.0: {} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: false - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-reference@3.0.2: + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.5 + dev: false - is-regex@1.1.4: + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true - is-set@2.0.3: {} + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: true - is-shared-array-buffer@1.0.3: + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false - is-stream@3.0.0: {} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: true - is-symbol@1.0.4: + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - is-typed-array@1.1.13: + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.15 + dev: true - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.0.0: {} + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: false - is-weakmap@2.0.2: {} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: true - is-weakref@1.0.2: + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 + dev: true - is-weakset@2.0.3: + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - is-wsl@3.1.0: + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 + dev: false - isarray@2.0.5: {} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@5.0.4: + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} dependencies: '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.5 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.7: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - iterator.prototype@1.1.2: + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 + dev: true - javascript-natural-sort@0.7.1: {} + /javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + dev: false + + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: false - jju@1.4.0: {} + /joi@17.13.1: + resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: false - js-convert-case@4.2.0: {} + /js-convert-case@4.2.0: + resolution: {integrity: sha512-i4mHCxiBNj6ajjMnZnC70qAOMA8gb+YgYipy2VR7a+Q5EBgEQ2/SgSAUBdNEyObk++B4AIUiFWeDEX2ggOd8cQ==} + dev: false - js-sha3@0.8.0: {} + /js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + dev: false - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: {} + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + dev: true - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 - jsdom@24.1.0: + /jsdom@24.0.0: + resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true dependencies: cssstyle: 4.0.1 data-urls: 5.0.0 @@ -10631,7 +8160,7 @@ snapshots: is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.10 parse5: 7.1.2 - rrweb-cssom: 0.7.0 + rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -10646,172 +8175,288 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true - json-bigint@1.0.0: + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} dependencies: bignumber.js: 9.1.2 + dev: false - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - json-stringify-safe@5.0.1: + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true optional: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - jsonc-parser@2.3.1: {} + /jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: false - jsonfile@4.0.0: + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 - jsx-ast-utils@3.3.5: + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: false - kleur@4.1.5: {} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false - known-css-properties@0.31.0: {} + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + dev: false - kolorist@1.8.0: {} + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: false - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false - linkedom@0.14.26: + /linkedom@0.14.26: + resolution: {integrity: sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A==} dependencies: css-select: 5.1.0 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 8.0.2 uhyphen: 0.2.0 + dev: false - lite-youtube-embed@0.3.2: {} + /lite-youtube-embed@0.3.2: + resolution: {integrity: sha512-b1dgKyF4PHhinonmr3PB172Nj0qQgA/7DE9EmeIXHR1ksnFEC2olWjNJyJGdsN2cleKHRjjsmrziKlwXtPlmLQ==} + dev: false - load-yaml-file@0.2.0: + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 + dev: false - local-pkg@0.5.0: + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} dependencies: - mlly: 1.7.0 + mlly: 1.7.1 pkg-types: 1.1.1 + dev: true - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: false - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - lodash-es@4.17.21: {} + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false - lodash.camelcase@4.3.0: {} + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false - lodash.get@4.4.2: {} + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: false - lodash.isequal@4.5.0: {} + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.truncate@4.4.2: {} + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: false - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false - log-symbols@6.0.0: + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} dependencies: chalk: 5.3.0 is-unicode-supported: 1.3.0 + dev: false - long@5.2.3: {} + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false - longest-streak@3.1.0: {} + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false - loose-envify@1.4.0: + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + dev: true - lowercase-keys@2.0.0: {} + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: false - lz-string@1.5.0: {} + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true - magic-string@0.30.10: + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - magicast@0.3.4: + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 source-map-js: 1.2.0 + dev: true - make-dir@3.1.0: + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} dependencies: semver: 6.3.1 + dev: false - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.6.2 + dev: true - markdown-extensions@2.0.0: {} + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + dev: false - markdown-table@3.0.3: {} + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false - match-sorter@6.3.4: + /match-sorter@6.3.4: + resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.7 remove-accents: 0.5.0 + dev: false - matcher@3.0.0: + /matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 4.0.0 + dev: true optional: true - material-colors@1.2.6: {} + /material-colors@1.2.6: + resolution: {integrity: sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==} + dev: false - mathjs@12.4.3: + /mathjs@12.4.1: + resolution: {integrity: sha512-welnW3khgwYjPYvECFHO+xkCxAx9IKIIPDDWPi8B5rKAvmgoEHnQX9slEmHKZTNaJiE+OS4qrJJcB4sfDn/4sw==} + engines: {node: '>= 18'} + hasBin: true dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.7 complex.js: 2.1.1 decimal.js: 10.4.3 escape-latex: 1.2.0 @@ -10819,24 +8464,32 @@ snapshots: javascript-natural-sort: 0.7.1 seedrandom: 3.0.5 tiny-emitter: 2.1.0 - typed-function: 4.1.1 + typed-function: 4.2.1 + dev: false - mathml-tag-names@2.1.3: {} + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: false - mdast-util-definitions@6.0.0: + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 unist-util-visit: 5.0.0 + dev: false - mdast-util-find-and-replace@3.0.1: + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - mdast-util-from-markdown@2.0.1: + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -10852,16 +8505,20 @@ snapshots: unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-autolink-literal@2.0.0: + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 + dev: false - mdast-util-gfm-footnote@2.0.0: + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10870,16 +8527,20 @@ snapshots: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-strikethrough@2.0.0: + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-table@2.0.0: + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10888,8 +8549,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-task-list-item@2.0.0: + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -10897,8 +8560,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm@3.0.0: + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.0 @@ -10909,8 +8574,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-expression@2.0.0: + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -10920,8 +8587,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-jsx@3.1.2: + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -10938,8 +8607,10 @@ snapshots: vfile-message: 4.0.2 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx@3.0.0: + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: mdast-util-from-markdown: 2.0.1 mdast-util-mdx-expression: 2.0.0 @@ -10948,8 +8619,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdxjs-esm@2.0.1: + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -10959,13 +8632,17 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-phrasing@4.1.0: + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 + dev: false - mdast-util-to-hast@13.1.0: + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -10976,8 +8653,10 @@ snapshots: unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.1 + dev: false - mdast-util-to-markdown@2.1.0: + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -10987,20 +8666,32 @@ snapshots: micromark-util-decode-string: 2.0.0 unist-util-visit: 5.0.0 zwitch: 2.0.4 + dev: false - mdast-util-to-string@4.0.0: + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: '@types/mdast': 4.0.4 + dev: false - mdn-data@2.0.30: {} + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: false - meow@13.2.0: {} + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + dev: false - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - micromark-core-commonmark@2.0.1: + /micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -11018,15 +8709,19 @@ snapshots: micromark-util-subtokenize: 2.0.1 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-autolink-literal@2.0.0: + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-footnote@2.0.0: + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -11036,8 +8731,10 @@ snapshots: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-strikethrough@2.0.0: + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -11045,28 +8742,36 @@ snapshots: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-table@2.0.0: + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-tagfilter@2.0.0: + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-task-list-item@2.0.1: + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm@3.0.0: + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -11076,8 +8781,10 @@ snapshots: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-expression@3.0.0: + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -11087,8 +8794,10 @@ snapshots: micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-jsx@3.0.0: + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -11100,12 +8809,16 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-extension-mdx-md@2.0.0: + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdxjs-esm@3.0.0: + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -11116,8 +8829,10 @@ snapshots: micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-extension-mdxjs@3.0.0: + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -11127,21 +8842,27 @@ snapshots: micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-destination@2.0.0: + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-label@2.0.0: + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-mdx-expression@2.0.1: + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -11151,60 +8872,82 @@ snapshots: micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-factory-space@2.0.0: + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-title@2.0.0: + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-whitespace@2.0.0: + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-character@2.1.0: + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-chunked@2.0.0: + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-classify-character@2.0.0: + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-combine-extensions@2.0.0: + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-decode-numeric-character-reference@2.0.1: + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-decode-string@2.0.0: + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 + dev: false - micromark-util-encode@2.0.0: {} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false - micromark-util-events-to-acorn@2.0.2: + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -11214,35 +8957,51 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-util-html-tag-name@2.0.0: {} + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false - micromark-util-normalize-identifier@2.0.0: + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-resolve-all@2.0.0: + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-util-sanitize-uri@2.0.0: + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 + dev: false - micromark-util-subtokenize@2.0.1: + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-symbol@2.0.0: {} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false - micromark-util-types@2.0.0: {} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false - micromark@4.0.0: + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 debug: 4.3.5 @@ -11263,168 +9022,318 @@ snapshots: micromark-util-types: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - micromatch@4.0.7: + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.3 picomatch: 2.3.1 - microseconds@0.2.0: {} + /microseconds@0.2.0: + resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} + dev: false - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: false - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: false - mimic-fn@4.0.0: {} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} - mimic-response@1.0.1: {} + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true - mimic-response@3.1.0: {} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} - minimatch@3.0.8: + /minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} dependencies: brace-expansion: 1.1.11 + dev: false - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - minimatch@9.0.4: + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - minipass@3.3.6: + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + optional: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 + dev: false - minipass@5.0.0: {} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: false - minizlib@2.1.2: + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 yallist: 4.0.0 + dev: false - mkdirp@1.0.4: {} + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + optional: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false - mlly@1.7.0: + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.1.1 ufo: 1.5.3 + dev: true - module-details-from-path@1.0.3: {} - - mrmime@2.0.0: {} + /module-details-from-path@1.0.3: + resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + dev: false - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - muggle-string@0.3.1: {} + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: false - muggle-string@0.4.1: {} + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false - nano-time@1.0.0: + /nano-time@1.0.0: + resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} dependencies: big-integer: 1.6.52 + dev: false + + /nanoid@3.0.0: + resolution: {integrity: sha512-5lU+F2QpTW1JLwlXxnu2/jkpTipIuYZL3Za6TQzM16HYDzZQqlthbXYSW0H2KzZu1UQPGHDPbCl1TS3xOKfqEQ==} - nanoid@3.3.7: {} + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + optional: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - nlcst-to-string@3.1.1: + /nlcst-to-string@3.1.1: + resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} dependencies: '@types/nlcst': 1.0.4 + dev: false + + /node-abi@3.64.0: + resolution: {integrity: sha512-lxowHVCx3o1zfKJthjWh6WI8Eyi4gdTaK9bUc3oTjYv9j8sp5gSiufkOvoYZ1LgmZKngWUkS5a8G1RSuLWtPgg==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.2 + dev: false + optional: true - node-fetch@2.6.11: + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + dev: false + optional: true + + /node-fetch@2.6.11: + resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 + dev: false - node-gyp-build@4.8.1: {} + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + dev: false - node-releases@2.0.14: {} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - nopt@5.0.0: + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true dependencies: abbrev: 1.1.1 + dev: false - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false - normalize-url@6.1.0: {} + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true - npm-run-path@5.3.0: + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 - npmlog@5.0.1: + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 + dev: false - nth-check@2.1.1: + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 + dev: false - nwsapi@2.2.10: {} + /nwsapi@2.2.10: + resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - object-inspect@1.13.1: {} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true - object.assign@4.1.5: + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true - object.entries@1.1.8: + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - object.fromentries@2.0.8: + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 + dev: true - object.hasown@1.1.4: + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 + dev: true - object.values@1.2.0: + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - oblivious-set@1.0.0: {} + /oblivious-set@1.0.0: + resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} + dev: false - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: false - onetime@6.0.0: + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - optionator@0.9.4: + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -11432,55 +9341,86 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 + dev: true - ora@8.0.1: + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} dependencies: chalk: 5.3.0 cli-cursor: 4.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 - is-unicode-supported: 2.0.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.1.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + string-width: 6.1.0 strip-ansi: 7.1.0 + dev: false - p-cancelable@2.1.1: {} + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: false - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - p-limit@5.0.0: + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: false - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - p-queue@8.0.1: + /p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} dependencies: eventemitter3: 5.0.1 p-timeout: 6.1.2 + dev: false - p-timeout@6.1.2: {} + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + dev: false - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 - parse-entities@4.0.1: + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -11490,152 +9430,280 @@ snapshots: is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + dev: false - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: false - parse-latin@5.0.1: + /parse-latin@5.0.1: + resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} dependencies: nlcst-to-string: 3.1.1 unist-util-modify-children: 3.1.1 unist-util-visit-children: 2.0.2 + dev: false - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - path-browserify@1.0.1: {} + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - path-key@4.0.0: {} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@6.2.2: {} + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + dev: false - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - pathe@1.1.2: {} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true - pathval@1.1.1: {} + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true - pend@1.2.0: {} + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: true - periscopic@3.1.0: + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 + dev: false - pg-int8@1.0.1: {} + /pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + dev: false - pg-protocol@1.6.1: {} + /pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + dev: false - pg-types@2.2.0: + /pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} dependencies: pg-int8: 1.0.1 postgres-array: 2.0.0 postgres-bytea: 1.0.0 postgres-date: 1.0.7 postgres-interval: 1.2.0 + dev: false - picocolors@1.0.1: {} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: false - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: false - pkg-types@1.1.1: + /pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} dependencies: confbox: 0.1.7 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 + dev: true - possible-typed-array-names@1.0.0: {} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true - postcss-resolve-nested-selector@0.1.1: {} + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: false - postcss-safe-parser@7.0.0(postcss@8.4.38): + /postcss-safe-parser@7.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 dependencies: postcss: 8.4.38 + dev: false - postcss-selector-parser@6.1.0: + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + dev: false - postcss-value-parser@4.2.0: {} + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false - postcss@8.4.38: + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 + nanoid: 3.0.0 picocolors: 1.0.1 source-map-js: 1.2.0 - postgres-array@2.0.0: {} + /postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + dev: false - postgres-bytea@1.0.0: {} + /postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + dev: false - postgres-date@1.0.7: {} + /postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + dev: false - postgres-interval@1.2.0: + /postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} dependencies: xtend: 4.0.2 + dev: false + + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.64.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + optional: true - preferred-pm@3.1.3: + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 + dev: false - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - prettier@3.2.5: {} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true - pretty-format@27.5.1: + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.3.1 + dev: true - prismjs@1.29.0: {} + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false - progress@2.0.3: {} + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + dev: false - prop-types@15.8.1: + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.5.0: {} + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + dev: false - protobufjs@7.3.0: + /protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + engines: {node: '>=12.0.0'} + requiresBuild: true dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -11647,126 +9715,228 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.13.0 + '@types/node': 20.12.7 long: 5.2.3 + dev: false - proxy-compare@2.3.0: {} + /proxy-compare@2.3.0: + resolution: {integrity: sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==} - proxy-memoize@1.2.0: + /proxy-memoize@1.2.0: + resolution: {integrity: sha512-0heYEZb4yMfhdduz8T+BPJOCKGukc81WRJaYF0k6ZsJz/NkPLhGFqe6OLdiZURr5kC1byps5wdqLN6DC2tYAFw==} dependencies: proxy-compare: 2.3.0 - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - pump@3.0.0: + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - querystringify@2.2.0: {} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: false + optional: true - queue-microtask@1.2.3: {} + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true - quick-lru@5.1.1: {} + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + optional: true - react-color@2.19.3(react@18.3.1): + /react-color@2.19.3(react@18.2.0): + resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} + peerDependencies: + react: '*' dependencies: - '@icons/material': 0.2.4(react@18.3.1) + '@icons/material': 0.2.4(react@18.2.0) lodash: 4.17.21 lodash-es: 4.17.21 material-colors: 1.2.6 prop-types: 15.8.1 - react: 18.3.1 - reactcss: 1.2.3(react@18.3.1) + react: 18.2.0 + reactcss: 1.2.3(react@18.2.0) tinycolor2: 1.6.0 + dev: false - react-dom@18.3.1(react@18.3.1): + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 dependencies: loose-envify: 1.4.0 - react: 18.3.1 + react: 18.2.0 scheduler: 0.23.2 - react-error-boundary@4.0.13(react@18.3.1): + /react-error-boundary@4.0.13(react@18.2.0): + resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} + peerDependencies: + react: '>=16.13.1' dependencies: - '@babel/runtime': 7.24.6 - react: 18.3.1 + '@babel/runtime': 7.24.7 + react: 18.2.0 + dev: false - react-icons@4.12.0(react@18.3.1): + /react-icons@4.12.0(react@18.2.0): + resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==} + peerDependencies: + react: '*' dependencies: - react: 18.3.1 + react: 18.2.0 + dev: false - react-icons@5.2.1(react@18.3.1): + /react-icons@5.1.0(react@18.2.0): + resolution: {integrity: sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==} + peerDependencies: + react: '*' dependencies: - react: 18.3.1 + react: 18.2.0 + dev: false - react-is@16.13.1: {} + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: {} + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true - react-is@18.3.1: {} + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true - react-query@3.39.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + /react-query@3.39.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.7 broadcast-channel: 3.7.0 match-sorter: 6.3.4 - react: 18.3.1 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false - react-redux@9.1.2(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1): + /react-redux@9.1.0(@types/react@18.2.79)(react@18.2.0)(redux@5.0.1): + resolution: {integrity: sha512-6qoDzIO+gbrza8h3hjMA9aq4nwVFCKFtY2iLxCtVT38Swyy2C/dJCGBXHeHLtx6qlg/8qzc2MrhOeduf5K32wQ==} + peerDependencies: + '@types/react': ^18.2.25 + react: ^18.0 + react-native: '>=0.69' + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-native: + optional: true + redux: + optional: true dependencies: + '@types/react': 18.2.79 '@types/use-sync-external-store': 0.0.3 - react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 + react: 18.2.0 redux: 5.0.1 + use-sync-external-store: 1.2.2(react@18.2.0) - react-refresh@0.14.2: {} + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} - react@18.3.1: + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - reactcss@1.2.3(react@18.3.1): + /reactcss@1.2.3(react@18.2.0): + resolution: {integrity: sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==} + peerDependencies: + react: '*' dependencies: lodash: 4.17.21 - react: 18.3.1 - - reactflow@11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@reactflow/background': 11.3.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/controls': 11.2.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/core': 11.11.3(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/minimap': 11.7.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/node-resizer': 2.2.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/node-toolbar': 1.3.13(@types/react@18.3.3)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + dev: false + + /reactflow@11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-o1fT3stSdhzW+SedCGNSmEvZvULZygZIMLyW67NcWNZrgwx1wuJfzLg5fuQ0Nzf389wItumZX/zP3zdaPX7lEw==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + dependencies: + '@reactflow/background': 11.3.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/controls': 11.2.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.11.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/minimap': 11.7.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-resizer': 2.2.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-toolbar': 1.3.12(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer + dev: false - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + dev: false - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: false - redux-thunk@3.1.0(redux@5.0.1): + /redux-thunk@3.1.0(redux@5.0.1): + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 dependencies: redux: 5.0.1 + dev: false - redux@5.0.1: {} + /redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - reflect.getprototypeof@1.0.6: + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -11775,42 +9945,56 @@ snapshots: get-intrinsic: 1.2.4 globalthis: 1.0.4 which-builtin-type: 1.1.3 + dev: true - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.2: + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 + dev: true - rehype-parse@9.0.0: + /rehype-parse@9.0.0: + resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: '@types/hast': 3.0.4 hast-util-from-html: 2.0.1 unified: 11.0.4 + dev: false - rehype-raw@7.0.0: + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.3 vfile: 6.0.1 + dev: false - rehype-stringify@10.0.0: + /rehype-stringify@10.0.0: + resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} dependencies: '@types/hast': 3.0.4 hast-util-to-html: 9.0.1 unified: 11.0.4 + dev: false - rehype@13.0.1: + /rehype@13.0.1: + resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} dependencies: '@types/hast': 3.0.4 rehype-parse: 9.0.0 rehype-stringify: 10.0.0 unified: 11.0.4 + dev: false - remark-gfm@4.0.0: + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 @@ -11820,15 +10004,19 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-mdx@3.0.1: + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color + dev: false - remark-parse@11.0.0: + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.1 @@ -11836,115 +10024,178 @@ snapshots: unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-rehype@11.1.0: + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 unified: 11.0.4 vfile: 6.0.1 + dev: false - remark-smartypants@2.1.0: + /remark-smartypants@2.1.0: + resolution: {integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: retext: 8.1.0 retext-smartypants: 5.2.0 unist-util-visit: 5.0.0 + dev: false - remark-stringify@11.0.0: + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.0 unified: 11.0.4 + dev: false - remove-accents@0.5.0: {} + /remove-accents@0.5.0: + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} + dev: false - remove-markdown@0.5.0: {} + /remove-markdown@0.5.0: + resolution: {integrity: sha512-x917M80K97K5IN1L8lUvFehsfhR8cYjGQ/yAMRI9E7JIKivtl5Emo5iD13DhMr+VojzMCiYk8V2byNPwT/oapg==} + dev: true - request-light@0.7.0: {} + /request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + dev: false - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: false - require-in-the-middle@7.3.0: + /require-in-the-middle@7.3.0: + resolution: {integrity: sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==} + engines: {node: '>=8.6.0'} dependencies: debug: 4.3.5 module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: false - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - reselect@5.1.0: {} + /reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + dev: false - resolve-alpn@1.2.1: {} + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: false - resolve@1.19.0: + /resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 + dev: false - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: false - resolve@2.0.0-next.5: + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - responselike@2.0.1: + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: lowercase-keys: 2.0.0 + dev: true - restore-cursor@4.0.0: + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: false - retext-latin@3.1.0: + /retext-latin@3.1.0: + resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} dependencies: '@types/nlcst': 1.0.4 parse-latin: 5.0.1 unherit: 3.0.1 unified: 10.1.2 + dev: false - retext-smartypants@5.2.0: + /retext-smartypants@5.2.0: + resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} dependencies: '@types/nlcst': 1.0.4 nlcst-to-string: 3.1.1 unified: 10.1.2 unist-util-visit: 4.1.2 + dev: false - retext-stringify@3.1.0: + /retext-stringify@3.1.0: + resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} dependencies: '@types/nlcst': 1.0.4 nlcst-to-string: 3.1.1 unified: 10.1.2 + dev: false - retext@8.1.0: + /retext@8.1.0: + resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} dependencies: '@types/nlcst': 1.0.4 retext-latin: 3.1.0 retext-stringify: 3.1.0 unified: 10.1.2 + dev: false - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: false - roarr@2.15.4: + /roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} dependencies: boolean: 3.2.0 detect-node: 2.1.0 @@ -11952,9 +10203,13 @@ snapshots: json-stringify-safe: 5.0.1 semver-compare: 1.0.0 sprintf-js: 1.1.3 + dev: true optional: true - rollup@4.18.0: + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -11976,69 +10231,110 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 - rrweb-cssom@0.6.0: {} - - rrweb-cssom@0.7.0: {} + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.1.2: + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 + dev: true - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: false - safe-regex-test@1.0.3: + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 + dev: true - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - scheduler@0.23.2: + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: loose-envify: 1.4.0 - section-matter@1.0.0: + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - seedrandom@3.0.5: {} + /seedrandom@3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + dev: false - semver-compare@1.0.0: + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + dev: true optional: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true - semver@7.5.4: + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 + dev: false - semver@7.6.2: {} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true - serialize-error@7.0.1: + /serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} dependencies: type-fest: 0.13.1 + dev: true optional: true - server-only@0.0.1: {} + /server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + dev: false - set-blocking@2.0.0: {} + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false - set-cookie-parser@2.6.0: {} + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: false - set-function-length@1.2.2: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -12046,121 +10342,210 @@ snapshots: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 + dev: true - set-function-name@2.0.2: + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: true - sharp@0.33.4: + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true dependencies: color: 4.2.3 detect-libc: 2.0.3 + node-addon-api: 6.1.0 + prebuild-install: 7.1.2 semver: 7.6.2 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.4 - '@img/sharp-darwin-x64': 0.33.4 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.4 - '@img/sharp-linux-arm64': 0.33.4 - '@img/sharp-linux-s390x': 0.33.4 - '@img/sharp-linux-x64': 0.33.4 - '@img/sharp-linuxmusl-arm64': 0.33.4 - '@img/sharp-linuxmusl-x64': 0.33.4 - '@img/sharp-wasm32': 0.33.4 - '@img/sharp-win32-ia32': 0.33.4 - '@img/sharp-win32-x64': 0.33.4 - optional: true - - shebang-command@2.0.0: + simple-get: 4.0.1 + tar-fs: 3.0.6 + tunnel-agent: 0.6.0 + dev: false + optional: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - shiki@1.6.1: + /shiki@1.3.0: + resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} dependencies: - '@shikijs/core': 1.6.1 + '@shikijs/core': 1.3.0 + dev: false - shimmer@1.2.1: {} + /shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + dev: false - side-channel@1.0.6: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: false - siginfo@2.0.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - signal-exit@3.0.7: {} + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + optional: true - signal-exit@4.1.0: {} + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + optional: true - simple-swizzle@0.2.2: + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 + dev: false optional: true - sisteransi@1.0.5: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: false - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - slice-ansi@4.0.0: + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + dev: false - source-map-js@1.2.0: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: false - source-map@0.7.4: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false - space-separated-tokens@2.0.2: {} + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sprintf-js@1.1.3: + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: true optional: true - stackback@0.0.2: {} + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true - std-env@3.7.0: {} + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: false - stdin-discarder@0.2.2: {} + /streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.0 + optionalDependencies: + bare-events: 2.4.2 + dev: false + optional: true - string-argv@0.3.2: {} + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: false - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: false - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: false + + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.3.0 + strip-ansi: 7.1.0 + dev: false - string-width@7.1.0: + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 + dev: false - string.prototype.matchall@4.0.11: + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -12174,92 +10559,150 @@ snapshots: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 + dev: true - string.prototype.trim@1.2.9: + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimend@1.0.8: + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string.prototype.trimstart@1.0.8: + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: true - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 + dev: false - stringify-entities@4.0.4: + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + dev: false - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: false - strip-bom-string@1.0.0: {} + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false - strip-bom@3.0.0: {} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} - strip-final-newline@3.0.0: {} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} - strip-literal@2.1.0: + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: js-tokens: 9.0.0 + dev: true - style-to-object@0.4.4: + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: inline-style-parser: 0.1.1 + dev: false - style-to-object@1.0.6: + /style-to-object@1.0.6: + resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} dependencies: inline-style-parser: 0.2.3 + dev: false - stylelint-config-prettier@9.0.5(stylelint@16.6.1(typescript@5.4.5)): + /stylelint-config-prettier@9.0.5(stylelint@16.4.0): + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} + engines: {node: '>= 12'} + hasBin: true + peerDependencies: + stylelint: '>= 11.x < 15' dependencies: - stylelint: 16.6.1(typescript@5.4.5) + stylelint: 16.4.0 + dev: false - stylelint-config-recommended@14.0.0(stylelint@16.6.1(typescript@5.4.5)): + /stylelint-config-recommended@14.0.0(stylelint@16.4.0): + resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 dependencies: - stylelint: 16.6.1(typescript@5.4.5) + stylelint: 16.4.0 + dev: false - stylelint-config-standard@35.0.0(stylelint@16.6.1(typescript@5.4.5)): + /stylelint-config-standard@35.0.0(stylelint@16.4.0): + resolution: {integrity: sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 dependencies: - stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.4.0 + stylelint-config-recommended: 14.0.0(stylelint@16.4.0) + dev: false - stylelint@16.6.1(typescript@5.4.5): + /stylelint@16.4.0: + resolution: {integrity: sha512-uSx7VMuXwLuYcNSIg+0/fFNv0WinsfLAqsVVy7h7p80clKOHiGE8pfY6UjqwylTHiJrRIahTl6a8FPxGezhWoA==} + engines: {node: '>=18.12.0'} + hasBin: true dependencies: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 - '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1) + '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3)(@csstools/css-tokenizer@2.3.1) '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig: 9.0.0 css-functions-list: 3.2.2 css-tree: 2.3.1 debug: 4.3.5 fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 9.0.0 + file-entry-cache: 8.0.0 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -12267,7 +10710,7 @@ snapshots: ignore: 5.3.1 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.31.0 + known-css-properties: 0.30.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.7 @@ -12288,45 +10731,112 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: false - sumchecker@3.0.1: + /sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} dependencies: debug: 4.3.5 transitivePeerDependencies: - supports-color + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: false - supports-hyperlinks@3.0.0: + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} dependencies: has-flag: 4.0.0 supports-color: 7.2.0 + dev: false - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} - svg-tags@1.0.0: {} + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: false - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - table@6.8.2: + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} dependencies: - ajv: 8.14.0 + ajv: 8.16.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + optional: true + + /tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.1 + bare-path: 2.1.3 + dev: false + optional: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + optional: true + + /tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 + dev: false + optional: true - tar@6.2.1: + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -12334,77 +10844,172 @@ snapshots: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + dev: false - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true + + /text-decoder@1.1.0: + resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + dependencies: + b4a: 1.6.6 + dev: false + optional: true - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - tiny-emitter@2.1.0: {} + /tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + dev: false - tinybench@2.8.0: {} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + dev: true - tinycolor2@1.6.0: {} + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false - tinypool@0.8.4: {} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + dev: true - tinyspy@2.2.1: {} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - tough-cookie@4.1.4: + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false - tr46@5.0.0: + /tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} dependencies: punycode: 2.3.1 + dev: true - trim-lines@3.0.1: {} + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false - trough@2.2.0: {} + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false - ts-api-utils@1.3.0(typescript@5.4.5): + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: typescript: 5.4.5 + dev: true - tsconfck@3.1.0(typescript@5.4.5): - optionalDependencies: + /tsconfck@3.1.0(typescript@5.4.5): + resolution: {integrity: sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: typescript: 5.4.5 - tslib@2.6.2: {} + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: false + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + optional: true - turbo-darwin-64@1.13.3: + /turbo-darwin-64@1.13.3: + resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - turbo-darwin-arm64@1.13.3: + /turbo-darwin-arm64@1.13.3: + resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - turbo-linux-64@1.13.3: + /turbo-linux-64@1.13.3: + resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - turbo-linux-arm64@1.13.3: + /turbo-linux-arm64@1.13.3: + resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - turbo-windows-64@1.13.3: + /turbo-windows-64@1.13.3: + resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - turbo-windows-arm64@1.13.3: + /turbo-windows-arm64@1.13.3: + resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - turbo@1.13.3: + /turbo@1.13.3: + resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} + hasBin: true optionalDependencies: turbo-darwin-64: 1.13.3 turbo-darwin-arm64: 1.13.3 @@ -12412,33 +11017,54 @@ snapshots: turbo-linux-arm64: 1.13.3 turbo-windows-64: 1.13.3 turbo-windows-arm64: 1.13.3 + dev: true - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.13.1: + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true optional: true - type-fest@2.19.0: {} + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false - typed-array-buffer@1.0.2: + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 + dev: true - typed-array-byte-length@1.0.1: + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-byte-offset@1.0.2: + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -12446,8 +11072,11 @@ snapshots: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + dev: true - typed-array-length@1.0.6: + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -12455,46 +11084,77 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + dev: true - typed-function@4.1.1: {} + /typed-function@4.2.1: + resolution: {integrity: sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==} + engines: {node: '>= 18'} + dev: false - typesafe-path@0.2.2: {} + /typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + dev: false - typescript-auto-import-cache@0.3.2: + /typescript-auto-import-cache@0.3.2: + resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} dependencies: semver: 7.6.2 + dev: false - typescript-eslint@7.11.0(eslint@9.4.0)(typescript@5.4.5): + /typescript-eslint@7.11.0(eslint@9.0.0)(typescript@5.4.5): + resolution: {integrity: sha512-ZKe3yHF/IS/kCUE4CGE3UgtK+Q7yRk1e9kwEI0rqm9XxMTd9P1eHe0LVVtrZ3oFuIQ2unJ9Xn0vTsLApzJ3aPw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.11.0(eslint@9.4.0)(typescript@5.4.5) - eslint: 9.4.0 - optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.11.0(@typescript-eslint/parser@7.11.0)(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.11.0(eslint@9.0.0)(typescript@5.4.5) + eslint: 9.0.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true - typescript@5.4.5: {} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true - ufo@1.5.3: {} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + dev: true - uhyphen@0.2.0: {} + /uhyphen@0.2.0: + resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} + dev: false - ultrahtml@1.5.3: {} + /ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + dev: false - unbox-primitive@1.0.2: + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + dev: true - undici-types@5.26.5: {} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - unherit@3.0.1: {} + /unherit@3.0.1: + resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + dev: false - unified@10.1.2: + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: '@types/unist': 2.0.10 bail: 2.0.2 @@ -12503,8 +11163,10 @@ snapshots: is-plain-obj: 4.1.0 trough: 2.2.0 vfile: 5.3.7 + dev: false - unified@11.0.4: + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -12513,154 +11175,370 @@ snapshots: is-plain-obj: 4.1.0 trough: 2.2.0 vfile: 6.0.1 + dev: false - unist-util-find-after@5.0.0: + /unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 + dev: false - unist-util-is@5.2.1: + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: '@types/unist': 2.0.10 + dev: false - unist-util-is@6.0.0: + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-modify-children@3.1.1: + /unist-util-modify-children@3.1.1: + resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} dependencies: '@types/unist': 2.0.10 array-iterate: 2.0.1 + dev: false - unist-util-position-from-estree@2.0.0: + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-position@5.0.0: + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-remove-position@5.0.0: + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 + dev: false - unist-util-select@4.0.3: + /unist-util-select@4.0.3: + resolution: {integrity: sha512-1074+K9VyR3NyUz3lgNtHKm7ln+jSZXtLJM4E22uVuoFn88a/Go2pX8dusrt/W+KWH1ncn8jcd8uCQuvXb/fXA==} dependencies: '@types/unist': 2.0.10 css-selector-parser: 1.4.1 nth-check: 2.1.1 zwitch: 2.0.4 + dev: false - unist-util-stringify-position@3.0.3: + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: '@types/unist': 2.0.10 + dev: false - unist-util-stringify-position@4.0.0: + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-visit-children@2.0.2: + /unist-util-visit-children@2.0.2: + resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: '@types/unist': 2.0.10 + dev: false - unist-util-visit-parents@5.1.3: + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} dependencies: '@types/unist': 2.0.10 unist-util-is: 5.2.1 + dev: false - unist-util-visit-parents@6.0.1: + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 + dev: false - unist-util-visit@4.1.2: + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: '@types/unist': 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + dev: false - unist-util-visit@5.0.0: + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - universalify@0.1.2: {} + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} - universalify@0.2.0: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - unload@2.2.0: + /unload@2.2.0: + resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.7 detect-node: 2.1.0 + dev: false - update-browserslist-db@1.0.16(browserslist@4.23.0): + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 escalade: 3.1.2 picocolors: 1.0.1 - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - use-sync-external-store@1.2.0(react@18.3.1): + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.3.1 + react: 18.2.0 + dev: false - use-sync-external-store@1.2.2(react@18.3.1): + /use-sync-external-store@1.2.2(react@18.2.0): + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.3.1 + react: 18.2.0 - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false - uuid@9.0.1: {} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false - validator@13.12.0: {} + /validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + dev: false - vfile-location@5.0.2: + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 + dev: false - vfile-message@3.1.4: + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: '@types/unist': 2.0.10 unist-util-stringify-position: 3.0.3 + dev: false - vfile-message@4.0.2: + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 + dev: false - vfile@5.3.7: + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: '@types/unist': 2.0.10 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + dev: false + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + + /vite-node@1.5.0(@types/node@20.12.7): + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.5 + pathe: 1.1.2 + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-dts@3.8.2(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-GPkLNBUU+ztskHj37nelNsgRLurFuqXxqICSd/IxjRmgee1T6IIYlRCanugc9QtgWjYVPC/HJzSfpXJSy9OLUA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': 7.43.0 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.4.5) + debug: 4.3.5 + kolorist: 1.8.0 + magic-string: 0.30.10 + typescript: 5.4.5 + vite: 5.2.11(@types/node@20.12.7) + vue-tsc: 1.8.27(typescript@5.4.5) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: false + + /vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + debug: 4.3.5 + globrex: 0.1.2 + tsconfck: 3.1.0(typescript@5.4.5) + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color + - typescript + + /vite@5.2.11(@types/node@20.12.7): + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.12.7 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.18.0 + optionalDependencies: + fsevents: 2.3.3 - vfile@6.0.1: + /vitefu@0.2.5(vite@5.2.11): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true dependencies: - '@types/unist': 3.0.2 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 + vite: 5.2.11(@types/node@20.12.7) + dev: false - vite-node@1.6.0(@types/node@20.13.0): + /vitest@1.5.0(@types/node@20.12.7): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: - cac: 6.7.14 + '@types/node': 20.12.7 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 + acorn-walk: 8.3.2 + chai: 4.4.1 debug: 4.3.5 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.2.11(@types/node@20.13.0) + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) + why-is-node-running: 2.2.2 transitivePeerDependencies: - - '@types/node' - less - lightningcss - sass @@ -12668,59 +11546,43 @@ snapshots: - sugarss - supports-color - terser + dev: true - vite-plugin-dts@3.8.2(@types/node@20.13.0)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)): - dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@20.13.0) - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@vue/language-core': 1.8.27(typescript@5.4.5) - debug: 4.3.5 - kolorist: 1.8.0 - magic-string: 0.30.10 - typescript: 5.4.5 - vue-tsc: 1.8.27(typescript@5.4.5) - optionalDependencies: - vite: 5.2.11(@types/node@20.13.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.13.0)): - dependencies: - debug: 4.3.5 - globrex: 0.1.2 - tsconfck: 3.1.0(typescript@5.4.5) - optionalDependencies: - vite: 5.2.11(@types/node@20.13.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite@5.2.11(@types/node@20.13.0): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - '@types/node': 20.13.0 - fsevents: 2.3.3 - - vitefu@0.2.5(vite@5.2.11(@types/node@20.13.0)): - optionalDependencies: - vite: 5.2.11(@types/node@20.13.0) - - vitest@1.6.0(@types/node@20.13.0)(jsdom@24.1.0): + /vitest@1.5.0(jsdom@24.0.0): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.5 execa: 8.0.1 + jsdom: 24.0.0 local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 @@ -12729,12 +11591,9 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.11(@types/node@20.13.0) - vite-node: 1.6.0(@types/node@20.13.0) + vite: 5.2.11(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.13.0 - jsdom: 24.1.0 transitivePeerDependencies: - less - lightningcss @@ -12743,136 +11602,233 @@ snapshots: - sugarss - supports-color - terser + dev: true - volar-service-css@0.0.45(@volar/language-service@2.2.5): + /volar-service-css@0.0.45(@volar/language-service@2.2.5): + resolution: {integrity: sha512-f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: + '@volar/language-service': 2.2.5 vscode-css-languageservice: 6.2.14 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.2.5 + dev: false - volar-service-emmet@0.0.45(@volar/language-service@2.2.5): + /volar-service-emmet@0.0.45(@volar/language-service@2.2.5): + resolution: {integrity: sha512-9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.9.3 - optionalDependencies: '@volar/language-service': 2.2.5 + '@vscode/emmet-helper': 2.9.3 + dev: false - volar-service-html@0.0.45(@volar/language-service@2.2.5): + /volar-service-html@0.0.45(@volar/language-service@2.2.5): + resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: - vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + '@volar/language-service': 2.2.5 + vscode-html-languageservice: /@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.2.5 + dev: false - volar-service-prettier@0.0.45(@volar/language-service@2.2.5)(prettier@3.2.5): + /volar-service-prettier@0.0.45(@volar/language-service@2.2.5)(prettier@3.2.5): + resolution: {integrity: sha512-+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==} + peerDependencies: + '@volar/language-service': ~2.2.3 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true dependencies: - vscode-uri: 3.0.8 - optionalDependencies: '@volar/language-service': 2.2.5 prettier: 3.2.5 + vscode-uri: 3.0.8 + dev: false - volar-service-typescript-twoslash-queries@0.0.45(@volar/language-service@2.2.5): - optionalDependencies: + /volar-service-typescript-twoslash-queries@0.0.45(@volar/language-service@2.2.5): + resolution: {integrity: sha512-KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: '@volar/language-service': 2.2.5 + dev: false - volar-service-typescript@0.0.45(@volar/language-service@2.2.5): + /volar-service-typescript@0.0.45(@volar/language-service@2.2.5): + resolution: {integrity: sha512-i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: + '@volar/language-service': 2.2.5 path-browserify: 1.0.1 semver: 7.6.2 typescript-auto-import-cache: 0.3.2 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 - optionalDependencies: - '@volar/language-service': 2.2.5 + dev: false - vscode-css-languageservice@6.2.14: + /vscode-css-languageservice@6.2.14: + resolution: {integrity: sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==} dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 + dev: false - vscode-html-languageservice@5.2.0: + /vscode-html-languageservice@5.2.0: + resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 + dev: false - vscode-jsonrpc@8.2.0: {} + /vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + dev: false - vscode-languageserver-protocol@3.17.5: + /vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 + dev: false - vscode-languageserver-textdocument@1.0.11: {} + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: false - vscode-languageserver-types@3.17.5: {} + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: false - vscode-languageserver@9.0.1: + /vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true dependencies: vscode-languageserver-protocol: 3.17.5 + dev: false - vscode-nls@5.2.0: {} + /vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: false - vscode-uri@2.1.2: {} + /vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: false - vscode-uri@3.0.8: {} + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: false - vue-template-compiler@2.7.16: + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} dependencies: de-indent: 1.0.2 he: 1.2.0 + dev: false - vue-tsc@1.8.27(typescript@5.4.5): + /vue-tsc@1.8.27(typescript@5.4.5): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.27(typescript@5.4.5) semver: 7.6.2 typescript: 5.4.5 + dev: false - w3c-xmlserializer@5.0.0: + /w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} dependencies: xml-name-validator: 5.0.0 + dev: true - web-namespaces@2.0.1: {} + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false - web-vitals@3.5.2: {} + /web-vitals@3.5.2: + resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} + dev: false - webidl-conversions@3.0.1: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false - webidl-conversions@7.0.0: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - whatwg-encoding@3.1.1: + /whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-mimetype@4.0.0: {} + /whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + dev: true - whatwg-url@14.0.0: + /whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: false - which-boxed-primitive@1.0.2: + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true - which-builtin-type@1.1.3: + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -12886,93 +11842,166 @@ snapshots: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: true - which-collection@1.0.2: + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 + dev: true - which-pm-runs@1.1.0: {} + /which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: false - which-pm@2.0.0: + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 + dev: false - which-pm@2.2.0: + /which-pm@2.2.0: + resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 + dev: false - which-typed-array@1.1.15: + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 + dev: true - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: false - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true - wide-align@1.1.5: + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 + dev: false - widest-line@4.0.1: + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 + dev: false - word-wrap@1.2.5: {} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: false - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 + dev: false - ws@8.17.0: {} + /ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - xml-name-validator@5.0.0: {} + /xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + dev: true - xmlchars@2.2.0: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - xtend@4.0.2: {} + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false - yallist@3.1.1: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -12981,38 +12010,71 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: false - yauzl@2.10.0: + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - yocto-queue@1.0.0: {} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} - z-schema@5.0.5: + /z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 validator: 13.12.0 optionalDependencies: commander: 9.5.0 + dev: false - zod-to-json-schema@3.23.0(zod@3.23.8): + /zod-to-json-schema@3.23.0(zod@3.23.8): + resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} + peerDependencies: + zod: ^3.23.3 dependencies: zod: 3.23.8 + dev: false - zod@3.23.8: {} + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + dev: false - zone.js@0.14.6: {} + /zone.js@0.14.7: + resolution: {integrity: sha512-0w6DGkX2BPuiK/NLf+4A8FLE43QwBfuqz2dVgi/40Rj1WmqUskCqj329O/pwrqFJLG5X8wkeG2RhIAro441xtg==} + dev: false - zustand@4.5.2(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1): + /zustand@4.5.2(@types/react@18.2.79)(react@18.2.0): + resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true dependencies: - use-sync-external-store: 1.2.0(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - immer: 10.1.1 - react: 18.3.1 + '@types/react': 18.2.79 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false - zwitch@2.0.4: {} + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false diff --git a/synnax/pkg/api/api.go b/synnax/pkg/api/api.go index b7eed1cee0..f682f07600 100644 --- a/synnax/pkg/api/api.go +++ b/synnax/pkg/api/api.go @@ -122,10 +122,11 @@ type Transport struct { AuthChangePassword freighter.UnaryServer[ChangePasswordRequest, types.Nil] AuthRegistration freighter.UnaryServer[RegistrationRequest, TokenResponse] // CHANNEL - ChannelCreate freighter.UnaryServer[ChannelCreateRequest, ChannelCreateResponse] - ChannelRetrieve freighter.UnaryServer[ChannelRetrieveRequest, ChannelRetrieveResponse] - ChannelDelete freighter.UnaryServer[ChannelDeleteRequest, types.Nil] - ChannelRename freighter.UnaryServer[ChannelRenameRequest, types.Nil] + ChannelCreate freighter.UnaryServer[ChannelCreateRequest, ChannelCreateResponse] + ChannelRetrieve freighter.UnaryServer[ChannelRetrieveRequest, ChannelRetrieveResponse] + ChannelDelete freighter.UnaryServer[ChannelDeleteRequest, types.Nil] + ChannelRename freighter.UnaryServer[ChannelRenameRequest, types.Nil] + ChannelRetrieveGroup freighter.UnaryServer[ChannelRetrieveGroupRequest, ChannelRetrieveGroupResponse] // CONNECTIVITY ConnectivityCheck freighter.UnaryServer[types.Nil, ConnectivityCheckResponse] // FRAME @@ -243,6 +244,7 @@ func (a *API) BindTo(t Transport) { t.ChannelRetrieve, t.ChannelDelete, t.ChannelRename, + t.ChannelRetrieveGroup, // CONNECTIVITY t.ConnectivityCheck, @@ -335,6 +337,7 @@ func (a *API) BindTo(t Transport) { t.ConnectivityCheck.BindHandler(a.Connectivity.Check) t.ChannelDelete.BindHandler(a.Channel.Delete) t.ChannelRename.BindHandler(a.Channel.Rename) + t.ChannelRetrieveGroup.BindHandler(a.Channel.RetrieveGroup) // FRAME t.FrameWriter.BindHandler(a.Telem.Write) diff --git a/synnax/pkg/api/channel.go b/synnax/pkg/api/channel.go index 9a55942a7a..8d1e1b6c18 100644 --- a/synnax/pkg/api/channel.go +++ b/synnax/pkg/api/channel.go @@ -11,6 +11,7 @@ package api import ( "context" + "github.com/synnaxlabs/synnax/pkg/distribution/ontology/group" "go/types" "github.com/google/uuid" @@ -290,3 +291,17 @@ func (s *ChannelService) Rename( return s.internal.NewWriter(tx).RenameMany(ctx, req.Keys, req.Names, false) }) } + +type ChannelRetrieveGroupRequest struct { +} + +type ChannelRetrieveGroupResponse struct { + Group group.Group `json:"group" msgpack:"group"` +} + +func (s *ChannelService) RetrieveGroup( + ctx context.Context, + _ ChannelRetrieveGroupRequest, +) (ChannelRetrieveGroupResponse, error) { + return ChannelRetrieveGroupResponse{Group: s.internal.Group()}, nil +} diff --git a/synnax/pkg/api/grpc/grpc.go b/synnax/pkg/api/grpc/grpc.go index 7d8cb7a6a4..86e4d6d2de 100644 --- a/synnax/pkg/api/grpc/grpc.go +++ b/synnax/pkg/api/grpc/grpc.go @@ -27,6 +27,7 @@ func New() (a api.Transport, transports []fgrpc.BindableTransport) { // Channel a.ChannelRename = fnoop.UnaryServer[api.ChannelRenameRequest, types.Nil]{} + a.ChannelRetrieveGroup = fnoop.UnaryServer[api.ChannelRetrieveGroupRequest, api.ChannelRetrieveGroupResponse]{} // AUTH a.AuthChangeUsername = fnoop.UnaryServer[api.ChangeUsernameRequest, types.Nil]{} diff --git a/synnax/pkg/api/http/http.go b/synnax/pkg/api/http/http.go index c84b0d4e6d..c6bb686fb0 100644 --- a/synnax/pkg/api/http/http.go +++ b/synnax/pkg/api/http/http.go @@ -29,6 +29,7 @@ func New(router *fhttp.Router) (t api.Transport) { t.ChannelRetrieve = fhttp.UnaryServer[api.ChannelRetrieveRequest, api.ChannelRetrieveResponse](router, false, "/api/v1/channel/retrieve") t.ChannelDelete = fhttp.UnaryServer[api.ChannelDeleteRequest, types.Nil](router, false, "/api/v1/channel/delete") t.ChannelRename = fhttp.UnaryServer[api.ChannelRenameRequest, types.Nil](router, false, "/api/v1/channel/rename") + t.ChannelRetrieveGroup = fhttp.UnaryServer[api.ChannelRetrieveGroupRequest, api.ChannelRetrieveGroupResponse](router, false, "/api/v1/channel/retrieve-group") // CONNECTIVITY t.ConnectivityCheck = fhttp.UnaryServer[types.Nil, api.ConnectivityCheckResponse](router, false, "/api/v1/connectivity/check") diff --git a/synnax/pkg/distribution/channel/service.go b/synnax/pkg/distribution/channel/service.go index e975c2a581..2549045085 100644 --- a/synnax/pkg/distribution/channel/service.go +++ b/synnax/pkg/distribution/channel/service.go @@ -28,6 +28,7 @@ type Service interface { Readable Writeable ontology.Service + Group() group.Group } type Writeable interface { @@ -123,6 +124,7 @@ func New(ctx context.Context, configs ...ServiceConfig) (Service, error) { DB: cfg.ClusterDB, proxy: proxy, otg: cfg.Ontology, + group: mainGroup, } s.Writer = s.NewWriter(nil) if cfg.Ontology != nil { @@ -135,6 +137,8 @@ func (s *service) NewWriter(tx gorp.Tx) Writer { return writer{proxy: s.proxy, tx: s.DB.OverrideTx(tx)} } +func (s *service) Group() group.Group { return s.group } + func (s *service) NewRetrieve() Retrieve { return Retrieve{ gorp: gorp.NewRetrieve[Key, Channel](), diff --git a/x/ts/src/binary/encoder.spec.ts b/x/ts/src/binary/encoder.spec.ts index 69d2209a2e..59b9c8384a 100644 --- a/x/ts/src/binary/encoder.spec.ts +++ b/x/ts/src/binary/encoder.spec.ts @@ -12,7 +12,7 @@ import { z } from "zod"; import { binary } from "@/binary"; -const SampleSchema = z.object({ +const sampleSchema = z.object({ channelKey: z.string(), timeStamp: z.number(), value: z.unknown(), @@ -27,7 +27,7 @@ binary.ENCODERS.forEach((e) => { value: new Array([1, 2, 3]), }; const encoded = e.encode(sample); - expect(e.decode(encoded, SampleSchema)).toEqual(sample); + expect(e.decode(encoded, sampleSchema)).toEqual(sample); }); }); }); @@ -50,7 +50,125 @@ describe("JSON", () => { value: new Array([1, 2, 3]), }; const encoded = JSON.stringify(sample); - const decoded = binary.JSON_ECD.decodeString(encoded, SampleSchema); + const decoded = binary.JSON_ECD.decodeString(encoded, sampleSchema); expect(decoded.channelKey).toEqual("test"); }); + + describe("CSVEncoderDecoder", () => { + it("should correctly decode CSV data with valid input", () => { + const sample = ` + channelKey,timeStamp,value + test,123,5 + test2,124,6 + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + channelKey: ["test", "test2"], + timeStamp: [123, 124], + value: [5, 6], + }); + }); + + it("should handle empty CSV data", () => { + const sample = ` + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({}); + }); + + it("should handle CSV with only headers", () => { + const sample = ` + channelKey,timeStamp,value + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + channelKey: [], + timeStamp: [], + value: [], + }); + }); + + it("should handle CSV with missing values", () => { + const sample = ` + channelKey,timeStamp,value + test,123, + test2,124,6 + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + channelKey: ["test", "test2"], + timeStamp: [123, 124], + value: [6], + }); + }); + + it("should handle CSV with extra values", () => { + const sample = ` + channelKey,timeStamp,value + test,123,5,extra + test2,124,6 + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + channelKey: ["test", "test2"], + timeStamp: [123, 124], + value: [5, 6], + }); + }); + + it("should handle CSV with different types of values", () => { + const sample = ` + key,number,string + test,123,"hello" + test2,456,"world" + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + key: ["test", "test2"], + number: [123, 456], + string: ["hello", "world"], + }); + }); + + it("should handle CSV with spaces around values", () => { + const sample = ` + key, number , string + test , 123 , "hello" + test2 , 456 , "world" + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + key: ["test", "test2"], + number: [123, 456], + string: ["hello", "world"], + }); + }); + + it("should handle CSV with empty rows", () => { + const sample = ` + key,number,string + test,123,"hello" + , + test2,456,"world" + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + key: ["test", "test2"], + number: [123, 456], + string: ["hello", "world"], + }); + }); + + it("should handle CSV with single column", () => { + const sample = ` + key + test + test2 + `; + const decoded = binary.CSV_ECD.decodeString(sample); + expect(decoded).toEqual({ + key: ["test", "test2"], + }); + }); + }); }); diff --git a/x/ts/src/binary/encoder.ts b/x/ts/src/binary/encoder.ts index 692681be15..bbfc530552 100644 --- a/x/ts/src/binary/encoder.ts +++ b/x/ts/src/binary/encoder.ts @@ -7,7 +7,7 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -import { type z,type ZodSchema } from "zod"; +import { type z, type ZodSchema } from "zod"; import { caseconv } from "@/caseconv"; import { isObject } from "@/identity"; @@ -79,6 +79,96 @@ export class JSONEncoderDecoder implements EncoderDecoder { static registerCustomType(): void {} } +/** + * CSVEncoderDecoder is a CSV implementation of EncoderDecoder. + */ +export class CSVEncoderDecoder implements EncoderDecoder { + contentType = "text/csv"; + + encode(payload: unknown): ArrayBuffer { + const csvString = this.encodeString(payload); + return new TextEncoder().encode(csvString).buffer; + } + + decode

( + data: Uint8Array | ArrayBuffer, + schema?: P, + ): z.output

{ + const csvString = new TextDecoder().decode(data); + return this.decodeString(csvString, schema); + } + + encodeString(payload: unknown): string { + if (!Array.isArray(payload) || payload.length === 0 || !isObject(payload[0])) { + throw new Error("Payload must be an array of objects"); + } + + const keys = Object.keys(payload[0]); + const csvRows = [keys.join(",")]; + + payload.forEach((item: any) => { + const values = keys.map((key) => JSON.stringify(item[key] ?? "")); + csvRows.push(values.join(",")); + }); + + return csvRows.join("\n"); + } + + decodeString

(data: string, schema?: P): z.output

{ + const [headerLine, ...lines] = data + .trim() + .split("\n") + .map((line) => line.trim()); + if (headerLine.length === 0) + return schema != null ? schema.parse({}) : ({} as z.output

); + const headers = headerLine.split(",").map((header) => header.trim()); + const result: { [key: string]: any[] } = {}; + + headers.forEach((header) => { + result[header] = []; + }); + + lines.forEach((line) => { + const values = line.split(",").map((value) => value.trim()); + headers.forEach((header, index) => { + const v = this.parseValue(values[index]); + if (v == null) return; + result[header].push(v); + }); + }); + + return schema != null ? schema.parse(result) : (result as z.output

); + } + + private parseValue(value?: string): any { + if (value == null || value.length === 0) return null; + const num = Number(value); + if (!isNaN(num)) return num; + if (value.startsWith('"') && value.endsWith('"')) return value.slice(1, -1); + return value; + } + + static registerCustomType(): void {} +} + +export class TextEncoderDecoder implements EncoderDecoder { + contentType = "text/plain"; + + encode(payload: unknown): ArrayBuffer { + return new TextEncoder().encode(payload as string).buffer; + } + + decode

( + data: Uint8Array | ArrayBuffer, + schema?: P, + ): z.output

{ + const text = new TextDecoder().decode(data); + return schema != null ? schema.parse(text) : (text as z.output

); + } +} + export const JSON_ECD = new JSONEncoderDecoder(); +export const CSV_ECD = new CSVEncoderDecoder(); +export const TEXT_ECD = new TextEncoderDecoder(); export const ENCODERS: EncoderDecoder[] = [JSON_ECD]; diff --git a/x/ts/src/compare/compare.spec.ts b/x/ts/src/compare/compare.spec.ts new file mode 100644 index 0000000000..da67ed7797 --- /dev/null +++ b/x/ts/src/compare/compare.spec.ts @@ -0,0 +1,49 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +import { describe, expect, it } from "vitest"; + +import { compare } from "@/compare"; + +describe("compare", () => { + describe("numericStrings", () => { + interface Spec { + name: string; + input: string[]; + expected: string[]; + } + const SPECS: Spec[] = [ + { + name: "pure numbers", + input: ["5", "4", "3", "2", "1"], + expected: ["1", "2", "3", "4", "5"], + }, + { + name: "suffixed numbers with equal prefixes", + input: ["a5", "a4", "a3", "a2", "a1"], + expected: ["a1", "a2", "a3", "a4", "a5"], + }, + { + name: "suffixed numbers with different prefixes", + input: ["a1", "b1", "a2", "b2", "a3", "b3"], + expected: ["a1", "a2", "a3", "b1", "b2", "b3"], + }, + { + name: "mixed separators", + input: ["a2", "a.1", "a-3", "a_4"], + expected: ["a.1", "a2", "a-3", "a_4"], + }, + ]; + SPECS.forEach((spec) => { + it(spec.name, () => { + expect(spec.input.sort(compare.stringsWithNumbers)).toEqual(spec.expected); + }); + }); + }); +}); diff --git a/x/ts/src/compare/compare.ts b/x/ts/src/compare/compare.ts index 4e76fff997..7d2f9f2415 100644 --- a/x/ts/src/compare/compare.ts +++ b/x/ts/src/compare/compare.ts @@ -7,7 +7,7 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. -import { isStringer,type Primitive } from "@/primitive"; +import { isStringer, type Primitive } from "@/primitive"; import { type spatial } from "@/spatial"; export type CompareF = (a: T, b: T) => number; @@ -117,3 +117,30 @@ export const isLessThan = (n: number): boolean => n < EQUAL; export const isGreaterThan = (n: number): boolean => n > EQUAL; export const isGreaterThanEqual = (n: number): boolean => n >= EQUAL; + +export const stringsWithNumbers = (a: string, b: string): number => { + const alphaNumericRegex = /([a-zA-Z]+)|(\d+)/g; + + // Remove separators and split into parts + const aParts = a.replace(/[\s_.\-]+/g, "").match(alphaNumericRegex); + const bParts = b.replace(/[\s_.\-]+/g, "").match(alphaNumericRegex); + + if (!aParts || !bParts) return 0; + + for (let i = 0; i < Math.min(aParts.length, bParts.length); i++) { + const aPart = aParts[i]; + const bPart = bParts[i]; + + if (isNaN(Number(aPart)) && isNaN(Number(bPart))) { + const localeComparison = aPart.localeCompare(bPart); + if (localeComparison !== 0) return localeComparison; + } else if (!isNaN(Number(aPart)) && !isNaN(Number(bPart))) { + const numComparison = Number(aPart) - Number(bPart); + if (numComparison !== 0) return numComparison; + } else { + return isNaN(Number(aPart)) ? -1 : 1; + } + } + + return aParts.length - bParts.length; +}; From 6512454d47cd1b8ecba1067b202a6949c4d240d8 Mon Sep 17 00:00:00 2001 From: Emiliano Bonilla <56323762+emilbon99@users.noreply.github.com> Date: Thu, 13 Jun 2024 07:25:24 -0700 Subject: [PATCH 23/41] [console] - improvements to Form component --- client/py/examples/dev/rack_heartbeat.py | 68 +----- console/package.json | 7 +- .../src/hardware/ni/device/CreateChannels.tsx | 1 + console/src/hardware/ni/device/Properties.tsx | 9 +- console/src/hardware/ni/device/types.ts | 4 +- .../hardware/ni/task/ConfigureAnalogRead.tsx | 67 ++++-- console/src/layout/Window.tsx | 7 +- console/src/ontology/Tree.tsx | 155 +++++++------- pluto/src/form/Field.tsx | 157 ++++++++++++++ pluto/src/form/Form.spec.tsx | 59 +++++- pluto/src/form/Form.tsx | 200 +++--------------- pluto/src/form/external.ts | 1 + pluto/src/menu/Menu.tsx | 14 +- pnpm-lock.yaml | 5 +- x/media/src/Icon/index.tsx | 6 + 15 files changed, 414 insertions(+), 346 deletions(-) create mode 100644 pluto/src/form/Field.tsx diff --git a/client/py/examples/dev/rack_heartbeat.py b/client/py/examples/dev/rack_heartbeat.py index 6904581cd2..2771882088 100644 --- a/client/py/examples/dev/rack_heartbeat.py +++ b/client/py/examples/dev/rack_heartbeat.py @@ -7,68 +7,8 @@ r = client.hardware.retrieve_rack(names=["sy_node_1_rack"])[0] -print(r.key) - -# task key is the first 32 bits of 64 -task_key = 281479271677954 - -ch_idx = client.channels.create( - name="time", - data_type=sy.DataType.TIMESTAMP, - is_index=True, - retrieve_if_name_exists=True -) - -ch_data = client.channels.create( - name="the.answer", - data_type=sy.DataType.INT32, - index=ch_idx.key, - retrieve_if_name_exists=True -) - -client.hardware.create_task([sy.Task( - key=task_key, - name="Task", - type="opcuaReader", - config=json.dumps({ - "connection": { - "endpoint": "opc.tcp://0.0.0.0:4840", - }, - "rate": 1, - "channels": [ - { - "ns": 1, - "node": "the.answer", - "key": ch_data.key - } - ] - }) -)]) - -with client.new_streamer([ch_idx.key, ch_data.key]) as s: - # with client.new_writer(sy.TimeStamp.now(), ["sy_task_cmd"]) as w: - # w.write({ - # "sy_task_cmd": [{ - # "task": 281479271677954, - # "type": "scan", - # "args": { - # "endpoint": "opc.tcp://0.0.0.0:4840/freeopcua/server/", - # } - # }] - # }) - for frame in s: - print(frame) - -with client.new_streamer(["the.answer"]) as s: - # with client.new_writer(sy.TimeStamp.now(), ["sy_task_cmd"]) as w: - # w.write({ - # "sy_task_cmd": [{ - # "task": 281479271677954, - # "type": "scan", - # "args": { - # "endpoint": "opc.tcp://0.0.0.0:4840/freeopcua/server/", - # } - # }] - # }) +with client.open_streamer("sy_task_set") as s: for frame in s: - print(frame) + key = frame["sy_task_set"][0] + task = client.hardware.retrieve_task(keys=[key]) + print(task) diff --git a/console/package.json b/console/package.json index de539f0e47..bafb9487b4 100644 --- a/console/package.json +++ b/console/package.json @@ -29,8 +29,9 @@ "@tauri-apps/plugin-dialog": "2.0.0-beta.3", "@tauri-apps/plugin-fs": "2.0.0-beta.3", "@tauri-apps/plugin-process": "2.0.0-beta.3", - "@tauri-apps/plugin-updater": "2.0.0-beta.3", "@tauri-apps/plugin-store": "2.0.0-beta.5", + "@tauri-apps/plugin-updater": "2.0.0-beta.3", + "async-mutex": "^0.5.0", "nanoid": "^3.0.0", "proxy-memoize": "1.2.0", "react": "^18.2.0", @@ -50,8 +51,8 @@ "@vitejs/plugin-react": "^4.3.0", "eslint-config-synnaxlabs": "workspace:*", "stylelint-config-synnaxlabs": "workspace:*", + "typescript": "^5.4.5", "vite": "5.2.11", - "vite-tsconfig-paths": "4.3.2", - "typescript": "^5.4.5" + "vite-tsconfig-paths": "4.3.2" } } diff --git a/console/src/hardware/ni/device/CreateChannels.tsx b/console/src/hardware/ni/device/CreateChannels.tsx index f621362fb1..d89f09dcfe 100644 --- a/console/src/hardware/ni/device/CreateChannels.tsx +++ b/console/src/hardware/ni/device/CreateChannels.tsx @@ -195,6 +195,7 @@ const GroupList = ({ }); }, children: , + size: "large", }, ]} diff --git a/console/src/hardware/ni/device/Properties.tsx b/console/src/hardware/ni/device/Properties.tsx index bea61cb96b..426e5ce055 100644 --- a/console/src/hardware/ni/device/Properties.tsx +++ b/console/src/hardware/ni/device/Properties.tsx @@ -17,8 +17,8 @@ import { type ReactElement } from "react"; import { CSS } from "@/css"; import { SelectModel } from "@/hardware/ni/device/enrich/SelectModel"; -const MIN_IDENTIFIER_LENGTH = 3; -const MAX_IDENTIFIER_LENGTH = 5; +const MIN_IDENTIFIER_LENGTH = 4; +const MAX_IDENTIFIER_LENGTH = 7; export const extrapolateIdentifier = (identifier: string): string => { const words = identifier.split(" "); @@ -27,7 +27,7 @@ export const extrapolateIdentifier = (identifier: string): string => { return words .map((word, i) => (i === 0 ? word.slice(0, toGrabFromFirst) : word[0])) .join("") - .toUpperCase() + .toLowerCase() .slice(0, MAX_IDENTIFIER_LENGTH); }; @@ -74,9 +74,6 @@ export const PropertiesForm = (): ReactElement => { - {/* path="properties.vendor" label="Vendor"> - {(p) => } - */} path="properties.key" label="Serial Number" /> path="properties.model" label="Model"> {(props) => } diff --git a/console/src/hardware/ni/device/types.ts b/console/src/hardware/ni/device/types.ts index 7bad1734f4..e840d0bb20 100644 --- a/console/src/hardware/ni/device/types.ts +++ b/console/src/hardware/ni/device/types.ts @@ -35,8 +35,8 @@ const enrichedPropertiesDigestZ = propertiesDigestZ.extend({ name: z.string(), identifier: z .string() - .min(3) - .max(6) + .min(2) + .max(12) .refine((s) => !s.includes(" ") && /^[a-zA-Z0-9]+$/.test(s), { message: "Only alphanumeric characters allowed", }), diff --git a/console/src/hardware/ni/task/ConfigureAnalogRead.tsx b/console/src/hardware/ni/task/ConfigureAnalogRead.tsx index 7f65db7069..dfc77b8d81 100644 --- a/console/src/hardware/ni/task/ConfigureAnalogRead.tsx +++ b/console/src/hardware/ni/task/ConfigureAnalogRead.tsx @@ -263,13 +263,22 @@ interface ChannelListProps { selected: string[]; } +const availablePortFinder = (channels: Chan[]): (() => number) => { + const exclude = new Set(channels.map((v) => v.port)); + return () => { + let i = 0; + while (exclude.has(i)) i++; + exclude.add(i); + return i; + }; +}; + const ChannelList = ({ path, selected, onSelect }: ChannelListProps): ReactElement => { - const { value, push, remove } = Form.useFieldArray({ path }); + const { value, push, remove, set } = Form.useFieldArray({ path }); const handleAdd = (): void => { - const availablePort = Math.max(0, ...value.map((v) => v.port)) + 1; push({ ...deep.copy(ZERO_AI_CHANNELS["ai_voltage"]), - port: availablePort, + port: availablePortFinder(value)(), key: nanoid(), }); }; @@ -291,21 +300,53 @@ const ChannelList = ({ path, selected, onSelect }: ChannelListProps): ReactEleme { - const handleSelect = (key: string): void => { - switch (key) { - case "remove": { - const indices = keys.map((k) => value.findIndex((v) => v.key === k)); - remove(indices); - onSelect([], -1); - break; - } - } + const indices = keys.map((k) => value.findIndex((v) => v.key === k)); + const handleRemove = () => { + remove(indices); + onSelect([], -1); }; + const handleDuplicate = () => { + const pf = availablePortFinder(value); + push( + indices.map((i) => ({ + ...deep.copy(value[i]), + port: pf(), + key: nanoid(), + })), + ); + }; + const handleDisable = () => + set((v) => v.map((c, i) => ({ ...c, enabled: !indices.includes(i) }))); + const handleEnable = () => + set((v) => v.map((c, i) => ({ ...c, enabled: indices.includes(i) }))); + const allowDisable = indices.some((i) => value[i].enabled); + const allowEnable = indices.some((i) => !value[i].enabled); return ( - + }> Remove + }> + Duplicate + + {allowDisable && ( + }> + Disable + + )} + {allowEnable && ( + }> + Enable + + )} ); }} diff --git a/console/src/layout/Window.tsx b/console/src/layout/Window.tsx index 83f51b9661..f009411d2f 100644 --- a/console/src/layout/Window.tsx +++ b/console/src/layout/Window.tsx @@ -15,7 +15,7 @@ import { Logo } from "@synnaxlabs/media"; import { Align, Menu as PMenu, Nav, OS, Text } from "@synnaxlabs/pluto"; import { runtime } from "@synnaxlabs/x"; import { getCurrent } from "@tauri-apps/api/window"; -import { type ReactElement, useEffect } from "react"; +import { type ReactElement, useEffect, useLayoutEffect } from "react"; import { useDispatch } from "react-redux"; import { Controls } from "@/components"; @@ -92,11 +92,14 @@ export const Window = (): ReactElement | null => { useEffect(() => { if (os === "Windows") dispatch(setWindowDecorations({ value: false })); }, [os]); + useLayoutEffect(() => { + if (layout == null) return; + dispatch(setWindowVisible({ key: layout.key, value: true })); + }, [layout == null]); const menuProps = PMenu.useContextMenu(); const maximized = useSelectWindowAttribute(win, "maximized") ?? false; if (layout == null) return null; const content = ; - dispatch(setWindowVisible({ key: layout.key, value: true })); return ( } {...menuProps}> updateResources(p, fetched)); }; +const mu = new Mutex(); + const handleResourcesChange = async ( changes: ontology.ResourceChange[], services: Services, @@ -86,35 +89,36 @@ const handleResourcesChange = async ( setNodes: state.Set, setResources: state.Set, resources: ontology.Resource[], -): Promise => { - const removed = changes - .filter(({ variant }) => variant === "delete") - .map(({ key }) => key); - const updated = changes - .filter(({ variant, value }) => variant === "set" && value != null) - .map(({ value }) => value) as ontology.Resource[]; - setResources(updateResources(resources, updated, removed)); - let nextTree = Core.removeNode({ - tree: nodes, - keys: removed.map((id) => id.toString()), +): Promise => + await mu.runExclusive(async () => { + const removed = changes + .filter(({ variant }) => variant === "delete") + .map(({ key }) => key); + const updated = changes + .filter(({ variant, value }) => variant === "set" && value != null) + .map(({ value }) => value) as ontology.Resource[]; + setResources(updateResources(resources, updated, removed)); + let nextTree = Core.removeNode({ + tree: nodes, + keys: removed.map((id) => id.toString()), + }); + let changed = false; + nextTree = updated.reduce( + (nextTree, node) => + Core.updateNode({ + tree: nextTree, + key: node.id.toString(), + updater: (n) => { + const next = { ...n, ...toTreeNode(services, node) }; + if (!changed && !deep.equal(next, n)) changed = true; + return next; + }, + throwOnMissing: false, + }), + nextTree, + ); + if (changed) setNodes([...nextTree]); }); - let changed = false; - nextTree = updated.reduce( - (nextTree, node) => - Core.updateNode({ - tree: nextTree, - key: node.id.toString(), - updater: (n) => { - const next = { ...n, ...toTreeNode(services, node) }; - if (!changed && !deep.equal(next, n)) changed = true; - return next; - }, - throwOnMissing: false, - }), - nextTree, - ); - if (changed) setNodes([...nextTree]); -}; const handleRelationshipsChange = async ( client: Client, @@ -124,53 +128,54 @@ const handleRelationshipsChange = async ( setNodes: state.Set, setResources: state.Set, resources: ontology.Resource[], -): Promise => { - // Remove any relationships that were deleted - const removed = changes - .filter(({ variant }) => variant === "delete") - .map(({ key: { to } }) => to.toString()); - let nextTree = Core.removeNode({ tree: nodes, keys: removed }); - - const allSets = changes - .filter(({ variant }) => variant === "set") - .map(({ key }) => key); - - // Find all the parent nodes in the current tree that are visible i.e. they - // may need children added. - const visibleSetNodes = Core.findNodes({ - tree: nextTree, - keys: allSets.map(({ from }) => from.toString()), - }).map(({ key }) => key.toString()); - - // Get all the relationships that relate to those visibe nodes. - const visibleSets = allSets.filter(({ from }) => - visibleSetNodes.includes(from.toString()), - ); - - // Retrieve the new resources for the nodes that need to be updated. - const updatedResources = await client.ontology.retrieve( - visibleSets.map(({ to }) => to), - ); - - // Update the resources in the tree. - setResources(updateResources(resources, updatedResources)); - - // Update the tree. - nextTree = visibleSets.reduce( - (nextTree, { from, to }) => - Core.setNode({ - tree: nextTree, - destination: from.toString(), - additions: toTreeNodes( - services, - updatedResources.filter(({ id }) => id.toString() === to.toString()), - ), - }), - nextTree, - ); - - setNodes([...nextTree]); -}; +): Promise => + await mu.runExclusive(async () => { + // Remove any relationships that were deleted + const removed = changes + .filter(({ variant }) => variant === "delete") + .map(({ key: { to } }) => to.toString()); + let nextTree = Core.removeNode({ tree: nodes, keys: removed }); + + const allSets = changes + .filter(({ variant }) => variant === "set") + .map(({ key }) => key); + + // Find all the parent nodes in the current tree that are visible i.e. they + // may need children added. + const visibleSetNodes = Core.findNodes({ + tree: nextTree, + keys: allSets.map(({ from }) => from.toString()), + }).map(({ key }) => key.toString()); + + // Get all the relationships that relate to those visibe nodes. + const visibleSets = allSets.filter(({ from }) => + visibleSetNodes.includes(from.toString()), + ); + + // Retrieve the new resources for the nodes that need to be updated. + const updatedResources = await client.ontology.retrieve( + visibleSets.map(({ to }) => to), + ); + + // Update the resources in the tree. + setResources(updateResources(resources, updatedResources)); + + // Update the tree. + nextTree = visibleSets.reduce( + (nextTree, { from, to }) => + Core.setNode({ + tree: nextTree, + destination: from.toString(), + additions: toTreeNodes( + services, + updatedResources.filter(({ id }) => id.toString() === to.toString()), + ), + }), + nextTree, + ); + + setNodes([...nextTree]); + }); export const Tree = (): ReactElement => { const client = Synnax.use(); diff --git a/pluto/src/form/Field.tsx b/pluto/src/form/Field.tsx new file mode 100644 index 0000000000..1f557c281f --- /dev/null +++ b/pluto/src/form/Field.tsx @@ -0,0 +1,157 @@ +import { caseconv, deep, Key, Keyed } from "@synnaxlabs/x"; +import { FC, ReactElement } from "react"; + +import { CSS } from "@/css"; +import { + ContextValue, + FieldState, + useContext, + useField, + UseFieldProps, + UseNullableFieldProps, +} from "@/form/Form"; +import { Input } from "@/input"; +import { Select } from "@/select"; +import { componentRenderProp, RenderProp } from "@/util/renderProp"; + +export type FieldProps< + I extends Input.Value = string | number, + O extends Input.Value = I, +> = (UseFieldProps | UseNullableFieldProps) & + Omit & { + children?: RenderProp>; + padHelpText?: boolean; + visible?: boolean | ((state: FieldState, ctx: ContextValue) => boolean); + hideIfNull?: boolean; + }; + +const defaultInput = componentRenderProp(Input.Text); + +export type FieldT = ( + props: FieldProps, +) => ReactElement | null; + +export const Field = < + I extends Input.Value = string | number, + O extends Input.Value = I, +>({ + path, + children = defaultInput as unknown as RenderProp>, + label, + padHelpText = true, + visible = true, + hideIfNull = false, + optional, + onChange, + className, + ...props +}: FieldProps): ReactElement | null => { + const field = useField({ + path, + optional: (optional as true) ?? (hideIfNull as true), + onChange, + }); + const ctx = useContext(); + if (field == null) return null; + if (path == null) throw new Error("No path provided to Form Field"); + if (label == null) label = caseconv.capitalize(deep.element(path, -1)); + visible = typeof visible === "function" ? visible(field, ctx) : visible; + if (!visible) return null; + const helpText = field.touched ? field.status.message : ""; + const { onChange: fieldOnChange, value } = field; + return ( + + {children({ onChange: fieldOnChange, value })} + + ); +}; + +export interface FieldBuilderProps< + I extends Input.Value, + O extends Input.Value, + P extends {}, +> { + fieldKey?: string; + fieldProps?: Partial>; + inputProps?: Partial

; +} + +export type BuiltFieldProps< + I extends Input.Value, + O extends Input.Value, + P extends {}, +> = FieldProps & { + inputProps?: Partial

; + fieldKey?: string; +}; + +export const fieldBuilder = + ( + Component: FC

>, + ) => + ({ + fieldKey: baseFieldKey, + fieldProps, + inputProps: baseInputProps, + }: FieldBuilderProps): FC> => { + const C = ({ + inputProps, + path, + fieldKey = baseFieldKey, + ...props + }: BuiltFieldProps) => ( + + {...fieldProps} + {...props} + path={fieldKey ? `${path}.${fieldKey}` : path} + > + {(cp) => } + + ); + C.displayName = Component.displayName; + return C; + }; + +export const buildNumericField = fieldBuilder(Input.Numeric); +export const NumericField = buildNumericField({}); +export const buildTextField = fieldBuilder(Input.Text); +export const TextField = buildTextField({}); +export const buildSwitchField = fieldBuilder(Input.Switch); +export const SwitchField = buildSwitchField({}); +export const buildSelectSingleField = fieldBuilder(Select.Single) as < + K extends Key, + E extends Keyed, +>({ + fieldProps, + inputProps, +}: FieldBuilderProps>) => FC< + BuiltFieldProps> +>; + +export const buildSelectMultiField = fieldBuilder(Select.Multiple) as < + K extends Key, + E extends Keyed, +>({ + fieldProps, + inputProps, +}: FieldBuilderProps>) => FC< + BuiltFieldProps> +>; + +export const buildButtonSelectField = fieldBuilder(Select.DropdownButton) as < + K extends Key, + E extends Keyed, +>({ + fieldProps, + inputProps, +}: FieldBuilderProps>) => FC< + BuiltFieldProps> +>; diff --git a/pluto/src/form/Form.spec.tsx b/pluto/src/form/Form.spec.tsx index 642dbe6998..32becc072c 100644 --- a/pluto/src/form/Form.spec.tsx +++ b/pluto/src/form/Form.spec.tsx @@ -181,6 +181,7 @@ describe("Form", () => { }); }); }); + describe("useField", () => { it("should get a field from the form", () => { const { result } = renderHook(() => Form.useField({ path: "name" }), { @@ -204,13 +205,6 @@ describe("Form", () => { act(() => result.current.onChange("Jane Doe")); expect(onChange).toHaveBeenCalled(); }); - it("should apply a default value if the field is null", () => { - const { result } = renderHook( - () => Form.useField({ path: "ssn", defaultValue: "123-45-6789" }), - { wrapper }, - ); - expect(result.current.value).toBe("123-45-6789"); - }); it("should return a bad field status if a validation error occurs", () => { const { result } = renderHook(() => Form.useField({ path: "age" }), { wrapper, @@ -225,6 +219,7 @@ describe("Form", () => { expect(result.current.required).toBe(true); }); }); + describe("Field", () => { it("should return a text field with the correct value", () => { const c = render(, { wrapper }); @@ -288,6 +283,7 @@ describe("Form", () => { }); }); }); + describe("NumericField", () => { it("should return a numeric field with the correct value", () => { const c = render(, { wrapper }); @@ -308,6 +304,7 @@ describe("Form", () => { expect(c.findByText("You must be at least 5 years old.")).toBeTruthy(); }); }); + describe("useFieldListener", () => { it("should call a listener when a field changes", () => { const listener = vi.fn(); @@ -327,6 +324,7 @@ describe("Form", () => { expect(listener).toHaveBeenCalled(); }); }); + describe("useChildFieldValues", () => { it("should call a listener when a child field changes", () => { const res = renderHook( @@ -354,4 +352,51 @@ describe("Form", () => { expect(res.result.current.cv.ssn).toBe("123-45-6786"); }); }); + + describe("useFieldArray", () => { + it("should return the array as the value", () => { + const res = renderHook(() => Form.useFieldArray({ path: "array" }), { wrapper }); + expect(res.result.current.value).toEqual([{ name: "John Doe" }]); + }); + it("should correctly push a value onto the start of the array", () => { + const res = renderHook(() => Form.useFieldArray({ path: "array" }), { wrapper }); + res.result.current.push({ name: "Jane Doe" }); + res.rerender(); + expect(res.result.current.value).toEqual([ + { name: "John Doe" }, + { name: "Jane Doe" }, + ]); + }); + it("should correctly remove the given index from the array", () => { + const res = renderHook(() => Form.useFieldArray({ path: "array" }), { wrapper }); + res.result.current.remove(0); + res.rerender(); + expect(res.result.current.value).toEqual([]); + }); + it("should correctly keep only the given index in the array", () => { + const res = renderHook(() => Form.useFieldArray({ path: "array" }), { wrapper }); + res.result.current.push({ name: "Jane Doe" }); + res.rerender(); + res.result.current.keepOnly(1); + res.rerender(); + expect(res.result.current.value).toEqual([{ name: "Jane Doe" }]); + }); + it("should correctly call child listeners when the parent value changes", () => { + const callback = vi.fn(); + const res = renderHook( + () => { + const parent = Form.useFieldArray({ path: "array" }); + const child = Form.useFieldListener({ + path: "array.0.name", + onChange: callback, + }); + return { parent, child }; + }, + { wrapper }, + ); + res.result.current.parent.set((v) => [...v, { name: "Jane Doe" }]); + res.rerender(); + expect(callback).toHaveBeenCalled(); + }); + }); }); diff --git a/pluto/src/form/Form.tsx b/pluto/src/form/Form.tsx index d06a14ce10..868ad025bf 100644 --- a/pluto/src/form/Form.tsx +++ b/pluto/src/form/Form.tsx @@ -8,8 +8,7 @@ // included in the file licenses/APL.txt. /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */ -import { type Destructor, Key, Keyed, shallowCopy, toArray } from "@synnaxlabs/x"; -import { caseconv } from "@synnaxlabs/x/caseconv"; +import { type Destructor, shallowCopy, toArray } from "@synnaxlabs/x"; import { deep } from "@synnaxlabs/x/deep"; import { zodutil } from "@synnaxlabs/x/zodutil"; import { @@ -27,19 +26,16 @@ import { } from "react"; import { z } from "zod"; -import { CSS } from "@/css"; import { useSyncedRef } from "@/hooks/ref"; import { Input } from "@/input"; -import { Select } from "@/select"; +import { state } from "@/state"; import { type status } from "@/status/aether"; -import { componentRenderProp, type RenderProp } from "@/util/renderProp"; /** Props for the @see useField hook */ export interface UseFieldProps { path: string; optional?: false; onChange?: (value: O, extra: ContextValue & { path: string }) => void; - defaultValue?: O; } export interface UseNullableFieldProps @@ -72,13 +68,11 @@ interface UseField { */ export const useField = (({ path, - optional: propsOptional, + optional, onChange, - defaultValue, }: UseFieldProps): UseFieldReturn | null => { const ctx = useContext(); const { get, bind, set, setStatus } = ctx; - const optional = defaultValue != null || (propsOptional ?? false); const [state, setState] = useState | null>(get({ path, optional })); @@ -95,17 +89,16 @@ export const useField = (({ [path, set, onChange], ); - if (state == null) { - if (defaultValue != null) set({ path, value: defaultValue }); - if (!optional) throw new Error(`Field state is null: ${path}`); - return null; - } - const handleSetStatus = useCallback( (status: status.CrudeSpec) => setStatus(path, status), [path, setStatus], ); + if (state == null) { + if (!optional) throw new Error(`Field state is null: ${path}`); + return null; + } + return { onChange: handleChange, setStatus: handleSetStatus, ...state }; }) as UseField; @@ -234,6 +227,7 @@ export interface UseFieldArrayReturn { push: (value: V | V[]) => void; remove: (index: number | number[]) => void; keepOnly: (indices: number | number[]) => void; + set: (values: state.SetArg) => void; } export const useFieldArray = ({ @@ -241,16 +235,16 @@ export const useFieldArray = ({ updateOnChildren = false, }: UseFieldArrayProps): UseFieldArrayReturn => { const { bind, get, set } = useContext(); - const [state, setState] = useState(get({ path, optional: false }).value); + const [fState, setFState] = useState(get({ path, optional: false }).value); useLayoutEffect(() => { - setState(get({ path, optional: false }).value); + setFState(get({ path, optional: false }).value); return bind({ path, - onChange: (fs) => setState(shallowCopy(fs.value)), + onChange: (fs) => setFState(shallowCopy(fs.value)), listenToChildren: updateOnChildren, }); - }, [path, bind, get, setState]); + }, [path, bind, get, setFState]); const push = useCallback( (value: V | V[]) => { @@ -267,7 +261,7 @@ export const useFieldArray = ({ const indices = new Set(toArray(index)); set({ path, value: val.filter((_, i) => !indices.has(i)) }); }, - [path, state, get], + [path, fState, get], ); const keepOnly = useCallback( @@ -276,156 +270,22 @@ export const useFieldArray = ({ const indices = new Set(toArray(index)); set({ path, value: val.filter((_, i) => indices.has(i)) }); }, - [path, state, get], + [path, fState, get], ); - return { value: state, push, remove, keepOnly }; -}; - -export type FieldProps< - I extends Input.Value = string | number, - O extends Input.Value = I, -> = (UseFieldProps | UseNullableFieldProps) & - Omit & { - children?: RenderProp>; - padHelpText?: boolean; - visible?: boolean | ((state: FieldState, ctx: ContextValue) => boolean); - hideIfNull?: boolean; - }; - -const defaultInput = componentRenderProp(Input.Text); - -export type FieldT = ( - props: FieldProps, -) => ReactElement | null; - -export const Field = < - I extends Input.Value = string | number, - O extends Input.Value = I, ->({ - path, - children = defaultInput as unknown as RenderProp>, - label, - padHelpText = true, - visible = true, - hideIfNull = false, - optional, - defaultValue, - onChange, - className, - ...props -}: FieldProps): ReactElement | null => { - const field = useField({ - path, - optional: (optional as true) ?? (hideIfNull as true), - onChange, - defaultValue, - }); - const ctx = useContext(); - if (field == null) return null; - if (path == null) throw new Error("No path provided to Form Field"); - if (label == null) label = caseconv.capitalize(deep.element(path, -1)); - visible = typeof visible === "function" ? visible(field, ctx) : visible; - if (!visible) return null; - const helpText = field.touched ? field.status.message : ""; - const { onChange: fieldOnChange, value } = field; - return ( - - {children({ onChange: fieldOnChange, value })} - + const handleSet = useCallback( + (setter: state.SetArg) => { + set({ + path, + value: state.executeSetter(setter, get({ path }).value), + }); + }, + [path, set], ); -}; - -export interface FieldBuilderProps< - I extends Input.Value, - O extends Input.Value, - P extends {}, -> { - fieldKey?: string; - fieldProps?: Partial>; - inputProps?: Partial

; -} -export type BuiltFieldProps< - I extends Input.Value, - O extends Input.Value, - P extends {}, -> = FieldProps & { - inputProps?: Partial

; - fieldKey?: string; + return { value: fState, push, remove, keepOnly, set: handleSet }; }; -export const fieldBuilder = - ( - Component: FC

>, - ) => - ({ - fieldKey: baseFieldKey, - fieldProps, - inputProps: baseInputProps, - }: FieldBuilderProps): FC> => { - const C = ({ - inputProps, - path, - fieldKey = baseFieldKey, - ...props - }: BuiltFieldProps) => ( - - {...fieldProps} - {...props} - path={fieldKey ? `${path}.${fieldKey}` : path} - > - {(cp) => } - - ); - C.displayName = Component.displayName; - return C; - }; - -export const buildNumericField = fieldBuilder(Input.Numeric); -export const NumericField = buildNumericField({}); -export const buildTextField = fieldBuilder(Input.Text); -export const TextField = buildTextField({}); -export const buildSwitchField = fieldBuilder(Input.Switch); -export const SwitchField = buildSwitchField({}); -export const buildSelectSingleField = fieldBuilder(Select.Single) as < - K extends Key, - E extends Keyed, ->({ - fieldProps, - inputProps, -}: FieldBuilderProps>) => FC< - BuiltFieldProps> ->; - -export const buildSelectMultiField = fieldBuilder(Select.Multiple) as < - K extends Key, - E extends Keyed, ->({ - fieldProps, - inputProps, -}: FieldBuilderProps>) => FC< - BuiltFieldProps> ->; - -export const buildButtonSelectField = fieldBuilder(Select.DropdownButton) as < - K extends Key, - E extends Keyed, ->({ - fieldProps, - inputProps, -}: FieldBuilderProps>) => FC< - BuiltFieldProps> ->; - export type Listener = (state: FieldState) => void; export interface FieldState { @@ -667,11 +527,15 @@ export const use = ({ } catch { validateAsync(); } - listeners.get(path)?.forEach((l) => l(get({ path }))); + listeners.forEach((lis, lisPath) => { + if (!deep.pathsMatch(lisPath, path)) return; + const fs = get({ path: lisPath, optional: true }); + if (fs != null) lis.forEach((l) => l(fs)); + }); parentListeners.forEach((lis, lisPath) => { - if (!deep.pathsMatch(path, lisPath)) return; - const v = get({ path: lisPath }); - lis.forEach((l) => l(v)); + if (!deep.pathsMatch(path, lisPath) && !deep.pathsMatch(lisPath, path)) return; + const fs = get({ path: lisPath, optional: true }); + if (fs != null) lis.forEach((l) => l(fs)); }); onChangeRef.current?.(ref.current.state); }, []); diff --git a/pluto/src/form/external.ts b/pluto/src/form/external.ts index 81f632167a..301568494e 100644 --- a/pluto/src/form/external.ts +++ b/pluto/src/form/external.ts @@ -7,4 +7,5 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. +export * from "@/form/Field"; export * from "@/form/Form"; diff --git a/pluto/src/menu/Menu.tsx b/pluto/src/menu/Menu.tsx index ab80942378..9aa90d6802 100644 --- a/pluto/src/menu/Menu.tsx +++ b/pluto/src/menu/Menu.tsx @@ -14,7 +14,6 @@ import { useContext, } from "react"; -import { type Input } from "@/input"; import { type Text } from "@/text"; import { type ComponentSize } from "@/util/component"; @@ -31,9 +30,11 @@ export const MenuContext = createContext({ }); export interface MenuProps - extends Partial>, - PropsWithChildren, - Pick {} + extends PropsWithChildren, + Pick { + value?: string; + onChange?: ((key: string) => void) | Record void>; +} export const useMenuContext = (): MenuContextValue => useContext(MenuContext); @@ -54,7 +55,10 @@ export const Menu = ({ iconSpacing, value = "", }: MenuProps): ReactElement => { - const handleClick: MenuProps["onChange"] = (key) => onChange?.(key); + const handleClick: MenuProps["onChange"] = (key) => { + if (typeof onChange === "function") onChange(key); + else if (onChange && onChange[key]) onChange[key](); + }; return ( =20.0.0} peerDependencies: - eslint: ^9.0.0 + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@typescript-eslint/scope-manager': 7.11.0 diff --git a/x/media/src/Icon/index.tsx b/x/media/src/Icon/index.tsx index b8a1c87426..ef451955b4 100644 --- a/x/media/src/Icon/index.tsx +++ b/x/media/src/Icon/index.tsx @@ -74,6 +74,8 @@ import { MdLink, MdOutlineAccessTimeFilled, MdOutlineDeviceHub, + MdOutlineMotionPhotosOff, + MdOutlineMotionPhotosOn, MdOutlineTableRows, MdPause, MdPerson, @@ -312,6 +314,8 @@ export const Icon: IconType = { Link: wrapIcon(MdLink), Attachment: wrapIcon(GrAttachment), Drag: wrapIcon(GrDrag), + Enable: wrapIcon(MdOutlineMotionPhotosOn), + Disable: wrapIcon(MdOutlineMotionPhotosOff), }; export interface IconType { @@ -424,4 +428,6 @@ export interface IconType { Drag: IconFC; Link: IconFC; Attachment: IconFC; + Disable: IconFC; + Enable: IconFC; } From cb607ea2930756a7e4dc12eba2206d51733caff6 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 10:41:03 -0400 Subject: [PATCH 24/41] didnt save a file' --- driver/ni/ni.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 5edad3b97a..b75913933f 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -186,12 +186,7 @@ freighter::Error ni::Source::start(){ .details = { {"running", true} } -<<<<<<< HEAD - }); - -======= }); ->>>>>>> c322ad5d9c54e7a28a1d56e3d0f7c5bd8c866242 return freighter::NIL; } From 1ab201efe30e81029ba9a3ef426eb953d5bbd3ae Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 13:20:21 -0400 Subject: [PATCH 25/41] checkpoint --- driver/ni/ni.cpp | 18 ++++++++++++++---- driver/ni/ni.h | 1 + driver/pipeline/acquisition.cpp | 1 + driver/pipeline/acquisition.h | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index b75913933f..4bc814b482 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -169,7 +169,6 @@ int ni::Source::init(){ freighter::Error ni::Source::start(){ - LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; if(this->running.exchange(true) || !this->ok()){ return freighter::NIL; } @@ -187,15 +186,17 @@ freighter::Error ni::Source::start(){ {"running", true} } }); + LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; return freighter::NIL; } freighter::Error ni::Source::stop(){ LOG(INFO) << "[NI Reader] stopping reader for task " << this->reader_config.task_name; - if(!this->running.exchange(false) || !this->ok()){ + if(!this->running.exchange(false)){ return freighter::NIL; } - this->sample_thread.join(); + if(this->sample_thread.joinable()) this->sample_thread.join(); + if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))){ this->logError("failed while stopping reader for task " + this->reader_config.task_name); return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); @@ -238,7 +239,7 @@ int ni::Source::checkNIError(int32 error){ .variant = "error", .details = err_info}); - LOG(ERROR) << "[NI Reader] Vendor error: " << this->err_info["error details"]; + LOG(ERROR) << "[NI Reader] Vendor error: " << this->err_info["message"]; this->ok_state = false; return -1; } @@ -262,4 +263,13 @@ void ni::Source::logError(std::string err_msg){ LOG(ERROR) << "[NI Reader] " << err_msg; this->ok_state = false; return; +} + +void ni::Source::stoppedWithErr(const freighter::Error &err){ + this->running = false; + this->stop(); + this->logError("stopped with error: " + err.message()); + this->ctx->setState({.task = this->reader_config.task_key, + .variant = "error", + .details = err.message()}); } \ No newline at end of file diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 1932f8964d..22e5b04cb4 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -88,6 +88,7 @@ namespace ni{ virtual void parseConfig(config::Parser & parser); virtual freighter::Error start(); virtual freighter::Error stop(); + virtual void stoppedWithErr(const freighter::Error &err) override; virtual bool ok(); virtual void getIndexKeys(); diff --git a/driver/pipeline/acquisition.cpp b/driver/pipeline/acquisition.cpp index 4388697db8..d3ecb9e4a4 100644 --- a/driver/pipeline/acquisition.cpp +++ b/driver/pipeline/acquisition.cpp @@ -197,4 +197,5 @@ void Acquisition::runInternal() { ) return this->runInternal(); if (writer_err) this->source->stoppedWithErr(writer_err); + LOG(INFO) << "[acquisition] acquisition thread stopped"; } diff --git a/driver/pipeline/acquisition.h b/driver/pipeline/acquisition.h index ae9229b498..8514de09a0 100644 --- a/driver/pipeline/acquisition.h +++ b/driver/pipeline/acquisition.h @@ -41,7 +41,7 @@ class Source { /// source (read, stoppedWithErr) until the pipeline is restarted. /// /// This method may be called even if stop() was called on the pipeline. - virtual void stoppedWithErr(const freighter::Error &_) { + virtual void stoppedWithErr(const freighter::Error &err) { } virtual ~Source() = default; From fd93070e5037e23c48e6ce990e1b3127c51b884e Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 13:34:58 -0400 Subject: [PATCH 26/41] update analog read with valid read --- driver/ni/analog_read.cpp | 5 ++++- driver/ni/ts_queue.h | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 6fe5e23dec..6da948592f 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -124,7 +124,10 @@ std::pair ni::AnalogReadSource::read(){ std::this_thread::sleep_for(std::chrono::nanoseconds((uint64_t)((1.0 / this->reader_config.stream_rate )* 1000000000))); // take data off of queue - DataPacket d = data_queue.dequeue(); + auto [d,valid] = data_queue.dequeue(); + + if(!valid) return std::make_pair(f, freighter::Error(freighter::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); + double* data = static_cast(d.data); // interpolate timestamps between the initial and final timestamp to ensure non-overlapping timestamps between batched reads diff --git a/driver/ni/ts_queue.h b/driver/ni/ts_queue.h index 744cdb19c8..0b86d97011 100644 --- a/driver/ni/ts_queue.h +++ b/driver/ni/ts_queue.h @@ -24,14 +24,22 @@ class TSQueue{ c.notify_one(); } -T dequeue(void){ +std::pair dequeue(void){ std::unique_lock lock(m); - while(queue.empty()){ - c.wait(lock); + + // while(queue.empty()){ + // c.wait(lock); + // } + + c.wait_for(lock, std::chrono::seconds(2)); + if(queue.empty()){ + return std::make_pair(T(), false); } + T item = queue.front(); queue.pop(); - return item; + + return std::make_pair(item, true); } void reset(){ From e00d11190fe72fc173cf8d46510b06673f076d36 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 13:55:07 -0400 Subject: [PATCH 27/41] update read workflow for better handling of spurious shutdowns --- driver/ni/analog_read.cpp | 2 +- driver/ni/digital_read.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 6da948592f..054471abe0 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -126,7 +126,7 @@ std::pair ni::AnalogReadSource::read(){ // take data off of queue auto [d,valid] = data_queue.dequeue(); - if(!valid) return std::make_pair(f, freighter::Error(freighter::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); + if(!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); double* data = static_cast(d.data); diff --git a/driver/ni/digital_read.cpp b/driver/ni/digital_read.cpp index 4b3c57b809..97b5609d3c 100644 --- a/driver/ni/digital_read.cpp +++ b/driver/ni/digital_read.cpp @@ -117,7 +117,11 @@ std::pair ni::DigitalReadSource::read(){ std::this_thread::sleep_for(std::chrono::nanoseconds((uint64_t)((1.0 / this->reader_config.stream_rate )* 1000000000))); // take data off of queue - DataPacket d = data_queue.dequeue(); + auto [d, valid] = data_queue.dequeue(); + + if(!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); + + uInt8* data = static_cast(d.data); // interpolate timestamps between the initial and final timestamp to ensure non-overlapping timestamps between batched reads From 46a93b0a5ecf27a18839696ce73fdf2eae8ff9cd Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 14:28:58 -0400 Subject: [PATCH 28/41] add headers for scale and channels --- driver/ni/analog_channels.h | 139 ++++++++++++++++++++++++++++++++++++ driver/ni/scale.h | 18 ++++- 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 driver/ni/analog_channels.h diff --git a/driver/ni/analog_channels.h b/driver/ni/analog_channels.h new file mode 100644 index 0000000000..b0f2e1af13 --- /dev/null +++ b/driver/ni/analog_channels.h @@ -0,0 +1,139 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + + +#pragma once + +#include + + + +#include "nidaqmx_api.h" +#include "daqmx.h" +#include "nisyscfg.h" +#include "driver/config/config.h" +#include "nlohmann/json.hpp" +#include "glog/logging.h" +#include "client/cpp/telem/telem.h" +namespace ni{ + /// @brief an object that represents and is responsible for the configuration of + /// a single analog channel on National Instruments hardware. + class AnalogChannel{ + public: + virtual AnalogChannel() = default; + virtual ~AnalogChannel() = default; + + virtual int32_t + } + + /////////////////////////////////////////////////////////////////////////////////// + // Acceleration // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIAccelChan + // DAQmxCreateAIAccel4WireDCVoltageChan + // DAQmxCreateAIAccelChargeChan + + /////////////////////////////////////////////////////////////////////////////////// + // Bridge // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIBridgeChan + // DAQmxCreateAIForceBridgePolynomialChan + // DAQmxCreateAIForceBridgeTableChan + // DAQmxCreateAIForceBridgeTwoPointLinChan + // DAQmxCreateAIPressureBridgePolynomialChan + // DAQmxCreateAIPressureBridgeTableChan + // DAQmxCreateAIPressureBridgeTwoPointLinChan + // DAQmxCreateAITorqueBridgePolynomialChan + // DAQmxCreateAITorqueBridgeTableChan + // DAQmxCreateAITorqueBridgeTwoPointLinChan + + /////////////////////////////////////////////////////////////////////////////////// + // Charge // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIChargeChan + + /////////////////////////////////////////////////////////////////////////////////// + // Current // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAICurrentChan + // DAQmxCreateAICurrentRMSChan + + /////////////////////////////////////////////////////////////////////////////////// + // Force // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIForceBridgePolynomialChan + // DAQmxCreateAIForceBridgeTableChan + // DAQmxCreateAIForceBridgeTwoPointLinChan + // DAQmxCreateAIForceIEPEChan + + /////////////////////////////////////////////////////////////////////////////////// + // Frequency // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIFreqVoltageChan + + /////////////////////////////////////////////////////////////////////////////////// + // Microphone // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIMicrophoneChan + + /////////////////////////////////////////////////////////////////////////////////// + // Pressure // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIPressureBridgePolynomialChan + // DAQmxCreateAIPressureBridgeTableChan + // DAQmxCreateAIPressureBridgeTwoPointLinChan + + /////////////////////////////////////////////////////////////////////////////////// + // Resistance // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIResistanceChan + + /////////////////////////////////////////////////////////////////////////////////// + // Rosette Strain Gage // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIRosetteStrainGageChan + + /////////////////////////////////////////////////////////////////////////////////// + // RTD // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIRTDChan + + /////////////////////////////////////////////////////////////////////////////////// + // Strain Gage // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIStrainGageChan + + /////////////////////////////////////////////////////////////////////////////////// + // Temperature // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAITempBuiltInSensorChan + // DAQmxCreateAIThrmcplChan + // DAQmxCreateAIThrmstrChanIex + // DAQmxCreateAIThrmstrChanVex + + /////////////////////////////////////////////////////////////////////////////////// + // Torque // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAITorqueBridgePolynomialChan + // DAQmxCreateAITorqueBridgeTableChan + // DAQmxCreateAITorqueBridgeTwoPointLinChan + + /////////////////////////////////////////////////////////////////////////////////// + // Velocity // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIVelocityIEPEChan + + /////////////////////////////////////////////////////////////////////////////////// + // Voltage // + /////////////////////////////////////////////////////////////////////////////////// + // DAQmxCreateAIVoltageChan + // DAQmxCreateAIVoltageRMSChan + + +} \ No newline at end of file diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 494f75fd3a..c25816aa3f 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -25,6 +25,10 @@ namespace ni{ extern const std::map UNITS_MAP; + + /////////////////////////////////////////////////////////////////////////////////// + // LinearScale // + /////////////////////////////////////////////////////////////////////////////////// typedef struct LinearScale{ float64 slope; float64 offset; @@ -39,7 +43,10 @@ namespace ni{ } } LinearScale; - + + /////////////////////////////////////////////////////////////////////////////////// + // MapScale // + /////////////////////////////////////////////////////////////////////////////////// typedef struct MapScale{ float64 prescaled_min; float64 prescaled_max; @@ -59,6 +66,9 @@ namespace ni{ } MapScale; + /////////////////////////////////////////////////////////////////////////////////// + // PolynomialScale // + /////////////////////////////////////////////////////////////////////////////////// typedef struct PolynomialScale{ float64* forward_coeffs; float64* reverse_coeffs; @@ -120,6 +130,9 @@ namespace ni{ } PolynomialScale; + /////////////////////////////////////////////////////////////////////////////////// + // TableScale // + /////////////////////////////////////////////////////////////////////////////////// typedef struct TableScale{ float64* prescaled; float64* scaled; @@ -161,6 +174,9 @@ namespace ni{ } } TableScale; + /////////////////////////////////////////////////////////////////////////////////// + // ScaleConfig // + ////////////////////////////////////////////////////////////////////////////////// typedef union Scale{ LinearScale linear; MapScale map; From 0630a6f01c4f162dcf39f001432c6948667095c8 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Thu, 13 Jun 2024 16:29:06 -0400 Subject: [PATCH 29/41] checkpoint --- .../ni/{analog_channels.h => ai_channels.h} | 98 +++++++++++-- driver/ni/analog_read.cpp | 136 +++++++++++++++--- driver/ni/ni.h | 9 +- 3 files changed, 208 insertions(+), 35 deletions(-) rename driver/ni/{analog_channels.h => ai_channels.h} (65%) diff --git a/driver/ni/analog_channels.h b/driver/ni/ai_channels.h similarity index 65% rename from driver/ni/analog_channels.h rename to driver/ni/ai_channels.h index b0f2e1af13..8e73710491 100644 --- a/driver/ni/analog_channels.h +++ b/driver/ni/ai_channels.h @@ -24,13 +24,96 @@ namespace ni{ /// @brief an object that represents and is responsible for the configuration of /// a single analog channel on National Instruments hardware. - class AnalogChannel{ + class Analog{ + public: + virtual Analog() = default; + virtual ~Analog() = default; + virtual int32 createNIChannel() = 0; + + static int32_t getTerminalConfig(std::string terminal_config) const { + if(terminal_config == "PseudoDiff") return DAQmx_Val_PseudoDiff; + if(terminal_config == "Diff") return DAQmx_Val_Diff; + if(terminal_config == "NRSE") return DAQmx_Val_NRSE; + if(terminal_config == "RSE") return DAQmx_Val_RSE; + return DAQmx_Val_Cfg_Default; + } + + static ScaleConfig getScaleConfig(config::Parser &parser) const { + auto scale_parser = parser.child("custom_scale"); + std::string scale_name = std::to_string(config.channel_key) + "_scale"; + return ScaleConfig(scale_parser, scale_name); + } + + explict AnalogChannel(config::Parser &parser, TaskHandle task_handle) + : min_val(parser.required("min_val")), + max_val(parser.required("max_val")), + terminal_config(getTerminalConfig(parser.required("terminal_config"))), + custom_scale_name(parser.required("custom_scale")), + units(DAQmx_Val_Volts), + scale_config(getScaleConfig(parser)), + sy_key(parser.required("channel")), + task_handle(task_handle), + name(parser.required("name")), + type(parser.required("type")), + phsyical_channel(parser.required("physical_channel")){ + + } + TaskHandle task_handle = 0; + std::string type = ""; + std::string name = ""; + std::string phsyical_channel = ""; + int32_t terminal_config = 0; + std::string custom_scale_name = ""; + int32_t units = 0; + double min_val = 0; + double max_val = 0; + ScaleConfig scale_config; + uint32_t sy_key = 0; + } + + /////////////////////////////////////////////////////////////////////////////////// + // Voltage // + /////////////////////////////////////////////////////////////////////////////////// + /// @brief voltage channel. Can be configured to measure RMS voltage instead or scale + /// with internal excitaiton + class Voltage : public AnalogChannel{ public: - virtual AnalogChannel() = default; - virtual ~AnalogChannel() = default; - virtual int32_t + explict Voltage(config::Parser &parser, TaskHandle task_handle) + : Analog(parser){ + } + ~Voltage() = default; + + int32 createNIChannel() override { + if(this->scale_config.type == "none"){ + return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, + this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_Volts, + NULL + )); + } else{ + this->checkNIError(this->scale_config.createNIScale()); + return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_FromCustomScale, + this->scale_config.name.c_str() + )); + } + } } + // DAQmxCreateAIVoltageChan + // DAQmxCreateAIVoltageRMSChan + // DAQmxCreateAIVoltageChanWithExcit + /////////////////////////////////////////////////////////////////////////////////// // Acceleration // @@ -129,11 +212,6 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // DAQmxCreateAIVelocityIEPEChan - /////////////////////////////////////////////////////////////////////////////////// - // Voltage // - /////////////////////////////////////////////////////////////////////////////////// - // DAQmxCreateAIVoltageChan - // DAQmxCreateAIVoltageRMSChan - + } \ No newline at end of file diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 054471abe0..e3e43b1b9a 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -37,31 +37,129 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ config.channel_key = channel_builder.required("channel"); - config.min_val = channel_builder.required("min_val"); - config.max_val = channel_builder.required("max_val"); - - auto terminal_config = channel_builder.required("terminal_config"); - config.terminal_config = (terminal_config == "PseudoDiff") ? DAQmx_Val_PseudoDiff - : (terminal_config == "Diff") ? DAQmx_Val_Diff - : (terminal_config == "NRSE") ? DAQmx_Val_NRSE - : (terminal_config == "RSE") ? DAQmx_Val_RSE - : DAQmx_Val_Cfg_Default; + config.channel_type = channel_builder.required("channel_type"); + + // config.min_val = channel_builder.required("min_val"); + // config.max_val = channel_builder.required("max_val"); + + // auto terminal_config = channel_builder.required("terminal_config"); + // config.terminal_config = (terminal_config == "PseudoDiff") ? DAQmx_Val_PseudoDiff + // : (terminal_config == "Diff") ? DAQmx_Val_Diff + // : (terminal_config == "NRSE") ? DAQmx_Val_NRSE + // : (terminal_config == "RSE") ? DAQmx_Val_RSE + // : DAQmx_Val_Cfg_Default; - // check for custom scale - std::string scale_name = std::to_string(config.channel_key) + "_scale"; - auto scale_parser = channel_builder.child("custom_scale"); - LOG(INFO) << "[NI Reader] Parsing custom scale for channel " << config.name; - config.scale_config = ScaleConfig(scale_parser, scale_name); - if(!scale_parser.ok()){ - LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; - this->ok_state = false; - return; - } + // // check for custom scale + // std::string scale_name = std::to_string(config.channel_key) + "_scale"; + // auto scale_parser = channel_builder.child("custom_scale"); + // config.scale_config = ScaleConfig(scale_parser, scale_name); + // if(!scale_parser.ok()){ + // LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; + // this->ok_state = false; + // return; + // } + + config.ni_channel = this->parseChannel(channel_builder, config.channel_type); this->reader_config.channels.push_back(config); }); } +Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ + // if (channel_type == "ai_accel") { + // return Accel(parser, this->task_handle); + // } + // if (channel_type == "ai_accel_4_wire_dc_voltage") { + // return Accel4WireDCVoltage(parser, this->task_handle); + // } + // if (channel_type == "ai_accel_charge") { + // return AccelCharge(parser, this->task_handle); + // } + // if (channel_type == "ai_bridge") { + // return Bridge(parser, this->task_handle); + // } + // if (channel_type == "ai_charge") { + // return Charge(parser, this->task_handle); + // } + // if (channel_type == "ai_current") { + // return Current(parser, this->task_handle); + // } + // if (channel_type == "ai_current_rms") { + // return CurrentRMS(parser, this->task_handle); + // } + // if (channel_type == "ai_force_bridge_polynomial") { + // return ForceBridgePolynomial(parser, this->task_handle); + // } + // if (channel_type == "ai_force_bridge_table") { + // return ForceBridgeTable(parser, this->task_handle); + // } + // if (channel_type == "ai_force_bridge_two_point_lin") { + // return ForceBridgeTwoPointLin(parser, this->task_handle); + // } + // if (channel_type == "ai_force_iepe") { + // return ForceIEPE(parser, this->task_handle); + // } + // if (channel_type == "ai_freq_voltage") { + // return FreqVoltage(parser, this->task_handle); + // } + // if (channel_type == "ai_microphone") { + // return Microphone(parser, this->task_handle); + // } + // if (channel_type == "ai_pressure_bridge_polynomial") { + // return PressureBridgePolynomial(parser, this->task_handle); + // } + // if (channel_type == "ai_pressure_bridge_table") { + // return PressureBridgeTable(parser, this->task_handle); + // } + // if (channel_type == "ai_pressure_bridge_two_point_lin") { + // return PressureBridgeTwoPointLin(parser, this->task_handle); + // } + // if (channel_type == "ai_resistance") { + // return Resistance(parser, this->task_handle); + // } + // if (channel_type == "ai_rosette_strain_gage") { + // return RosetteStrainGage(parser, this->task_handle); + // } + // if (channel_type == "ai_rtd") { + // return RTD(parser, this->task_handle); + // } + // if (channel_type == "ai_strain_gage") { + // return StrainGage(parser, this->task_handle); + // } + // if (channel_type == "ai_temp_built_in_sensor") { + // return TempBuiltInSensor(parser, this->task_handle); + // } + // if (channel_type == "ai_thrmcpl") { + // return Thrmcpl(parser, this->task_handle); + // } + // if (channel_type == "ai_thrmstr_iex") { + // return ThrmstrIex(parser, this->task_handle); + // } + // if (channel_type == "ai_thrmstr_vex") { + // return ThrmstrVex(parser, this->task_handle); + // } + // if (channel_type == "ai_torque_bridge_polynomial") { + // return TorqueBridgePolynomial(parser, this->task_handle); + // } + // if (channel_type == "ai_torque_bridge_table") { + // return TorqueBridgeTable(parser, this->task_handle); + // } + // if (channel_type == "ai_torque_bridge_two_point_lin") { + // return TorqueBridgeTwoPointLin(parser, this->task_handle); + // } + // if (channel_type == "ai_velocity_iepe") { + // return VelocityIEPE(parser, this->task_handle); + // } + if (channel_type == "ai_voltage") { + return Voltage(parser, this->task_handle); + } + // if (channel_type == "ai_voltage_rms") { + // return VoltageRMS(parser, this->task_handle); + // } + // if (channel_type == "ai_voltage_with_excit") { + // return VoltageWithExcit(parser, this->task_handle); + } +} int ni::AnalogReadSource::configureTiming(){ diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 22e5b04cb4..06c5af5970 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -35,18 +35,14 @@ #include #include "ts_queue.h" #include "driver/ni/scale.h" - -// #include "driver/modules/module.h" +#include "ai_channels.h" namespace ni{ typedef struct ChannelConfig{ uint32_t channel_key; std::string name; std::string channel_type; - int terminal_config; - float min_val; - float max_val; - ScaleConfig scale_config; + ni::AnalogChannel ni_channel; } ChannelConfig; typedef struct ReaderConfig{ @@ -138,6 +134,7 @@ namespace ni{ void acquireData() override; int configureTiming() override; int createChannels() override; + Analog parseChannel(config::Parser &parser, std::string channel_type); void parseChannels(config::Parser &parser) override; int createChannel(ChannelConfig &channel); // NI related resources From 490a9a1aa28f19b78c4a3d04d4b721c08e1c6692 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 14 Jun 2024 09:40:25 -0400 Subject: [PATCH 30/41] build with refactored channel code --- driver/ni/BUILD.bazel | 1 + driver/ni/ai_channels.h | 108 +++++++++++++++++------------------- driver/ni/analog_read.cpp | 47 +++------------- driver/ni/digital_read.cpp | 7 --- driver/ni/digital_write.cpp | 2 - driver/ni/ni.h | 2 +- 6 files changed, 62 insertions(+), 105 deletions(-) diff --git a/driver/ni/BUILD.bazel b/driver/ni/BUILD.bazel index 46ee4e830d..44644ef7b2 100644 --- a/driver/ni/BUILD.bazel +++ b/driver/ni/BUILD.bazel @@ -56,6 +56,7 @@ cc_library( hdrs = [ "ni.h", "scale.h", + "ai_channels.h", "error.h", "//driver/task", "//driver/pipeline", diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index 8e73710491..101e52fc14 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -26,11 +26,12 @@ namespace ni{ /// a single analog channel on National Instruments hardware. class Analog{ public: - virtual Analog() = default; - virtual ~Analog() = default; - virtual int32 createNIChannel() = 0; + Analog() = default; + ~Analog() = default; + virtual int32 createNIChannel() { + } - static int32_t getTerminalConfig(std::string terminal_config) const { + static int32_t getTerminalConfig(std::string terminal_config) { if(terminal_config == "PseudoDiff") return DAQmx_Val_PseudoDiff; if(terminal_config == "Diff") return DAQmx_Val_Diff; if(terminal_config == "NRSE") return DAQmx_Val_NRSE; @@ -38,78 +39,73 @@ namespace ni{ return DAQmx_Val_Cfg_Default; } - static ScaleConfig getScaleConfig(config::Parser &parser) const { + static ScaleConfig getScaleConfig(config::Parser &parser) { + // TODO check if custom scale and channel exist + std::string scale_name = std::to_string(parser.required("channel")) + "_scale"; auto scale_parser = parser.child("custom_scale"); - std::string scale_name = std::to_string(config.channel_key) + "_scale"; return ScaleConfig(scale_parser, scale_name); } - - explict AnalogChannel(config::Parser &parser, TaskHandle task_handle) - : min_val(parser.required("min_val")), - max_val(parser.required("max_val")), - terminal_config(getTerminalConfig(parser.required("terminal_config"))), - custom_scale_name(parser.required("custom_scale")), - units(DAQmx_Val_Volts), - scale_config(getScaleConfig(parser)), - sy_key(parser.required("channel")), - task_handle(task_handle), - name(parser.required("name")), - type(parser.required("type")), - phsyical_channel(parser.required("physical_channel")){ - + + int32 createNIScale(){ + if(this->scale_config.type == "none") return 0; + return this->scale_config.createNIScale(); + } + + explicit Analog(config::Parser &parser, TaskHandle task_handle) + : task_handle(task_handle), + min_val(parser.required("min_val")), + max_val(parser.required("max_val")), + terminal_config(getTerminalConfig(parser.required("terminal_config"))), + units(DAQmx_Val_Volts), + sy_key(parser.required("channel")), + name(parser.required("name")), + type(parser.required("type")), + phsyical_channel(parser.required("physical_channel")), + scale_config(getScaleConfig(parser)) + { + // check name of channel + if(this->scale_config.type != "none"){ + strcpy(this->scale_name, this->scale_config.name.c_str()); + } } TaskHandle task_handle = 0; - std::string type = ""; - std::string name = ""; - std::string phsyical_channel = ""; - int32_t terminal_config = 0; - std::string custom_scale_name = ""; - int32_t units = 0; + char* scale_name = NULL; double min_val = 0; double max_val = 0; - ScaleConfig scale_config; + int32_t terminal_config = 0; + int32_t units = 0; uint32_t sy_key = 0; - } + std::string name = ""; + std::string type = ""; + std::string phsyical_channel = ""; + + ScaleConfig scale_config; + }; /////////////////////////////////////////////////////////////////////////////////// // Voltage // /////////////////////////////////////////////////////////////////////////////////// /// @brief voltage channel. Can be configured to measure RMS voltage instead or scale /// with internal excitaiton - class Voltage : public AnalogChannel{ + class Voltage : public Analog{ public: - explict Voltage(config::Parser &parser, TaskHandle task_handle) - : Analog(parser){ + explicit Voltage(config::Parser &parser, TaskHandle task_handle) + : Analog(parser, task_handle){ } ~Voltage() = default; - int32 createNIChannel() override { - if(this->scale_config.type == "none"){ - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, - this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - DAQmx_Val_Volts, - NULL - )); - } else{ - this->checkNIError(this->scale_config.createNIScale()); - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - DAQmx_Val_FromCustomScale, - this->scale_config.name.c_str() - )); - } + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_FromCustomScale, + this->scale_name + ); } - } + }; // DAQmxCreateAIVoltageChan // DAQmxCreateAIVoltageRMSChan // DAQmxCreateAIVoltageChanWithExcit diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index e3e43b1b9a..b9e775bc9c 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -34,9 +34,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ ni::ChannelConfig config; // analog channel names are formatted: /ai config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); - config.channel_key = channel_builder.required("channel"); - config.channel_type = channel_builder.required("channel_type"); // config.min_val = channel_builder.required("min_val"); @@ -59,13 +57,14 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // return; // } + // TODO: check scale parser in the function below config.ni_channel = this->parseChannel(channel_builder, config.channel_type); this->reader_config.channels.push_back(config); }); } -Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ +ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ // if (channel_type == "ai_accel") { // return Accel(parser, this->task_handle); // } @@ -158,7 +157,7 @@ Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string ch // } // if (channel_type == "ai_voltage_with_excit") { // return VoltageWithExcit(parser, this->task_handle); - } + // } } @@ -258,46 +257,16 @@ std::pair ni::AnalogReadSource::read(){ return std::make_pair(std::move(f), freighter::NIL); } - -int ni::AnalogReadSource::createChannel(ni::ChannelConfig &channel){ - if(channel.scale_config.type == "none"){ - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, - channel.name.c_str(), - "", - channel.terminal_config, - channel.min_val, - channel.max_val, - DAQmx_Val_Volts, - NULL - )); - } else{ - this->checkNIError(channel.scale_config.createNIScale()); - return this->checkNIError(ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, channel.name.c_str(), - "", - channel.terminal_config, - channel.min_val, - channel.max_val, - DAQmx_Val_FromCustomScale, - channel.scale_config.name.c_str() - )); - } -} - - int ni::AnalogReadSource::createChannels(){ - int err = 0; auto channels = this->reader_config.channels; for (auto &channel : channels){ - if (channel.channel_type != "index" ){ - err = createChannel(channel); - this->numAIChannels++; - } this->numChannels++; - if (err < 0){ + if (channel.channel_type == "index") continue; + this->numAIChannels++; + this->checkNIError(channel.ni_channel.createNIScale()); + this->checkNIError(channel.ni_channel.createNIChannel()); + if (!this->ok()){ LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; - this->ok_state = false; return -1; } } diff --git a/driver/ni/digital_read.cpp b/driver/ni/digital_read.cpp index 97b5609d3c..635747198a 100644 --- a/driver/ni/digital_read.cpp +++ b/driver/ni/digital_read.cpp @@ -28,16 +28,9 @@ void ni::DigitalReadSource::parseChannels(config::Parser &parser){ parser.iter("channels", [&](config::Parser &channel_builder){ ni::ChannelConfig config; - // digital channel names are formatted: /port/line config.name = (this->reader_config.device_name + "/port" + std::to_string(channel_builder.required("port")) + "/line" + std::to_string(channel_builder.required("line"))); - config.channel_key = channel_builder.required("channel"); - - // TODO: there could be more than 2 state logic - config.min_val = 0; - config.max_val = 1; - this->reader_config.channels.push_back(config); }); assert(parser.ok()); diff --git a/driver/ni/digital_write.cpp b/driver/ni/digital_write.cpp index 6b192a3a49..0a51e7b2c8 100644 --- a/driver/ni/digital_write.cpp +++ b/driver/ni/digital_write.cpp @@ -126,8 +126,6 @@ void ni::DigitalWriteSink::parseConfig(config::Parser &parser){ this->writer_config.drive_state_channel_keys.push_back(drive_state_key); // TODO: there could be more than 2 state - config.min_val = 0; - config.max_val = 1; this->writer_config.channels.push_back(config); }); diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 06c5af5970..0920b4ff30 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -42,7 +42,7 @@ namespace ni{ uint32_t channel_key; std::string name; std::string channel_type; - ni::AnalogChannel ni_channel; + ni::Analog ni_channel; } ChannelConfig; typedef struct ReaderConfig{ From c0e18f516b8b1be122276fb6f1041c9dbdc033e6 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 14 Jun 2024 13:04:01 -0400 Subject: [PATCH 31/41] checkpoint --- driver/ni/ai_channels.h | 23 +++++++++++++++-------- driver/ni/analog_read.cpp | 36 +++++++++++------------------------- driver/ni/ni.h | 5 ++--- 3 files changed, 28 insertions(+), 36 deletions(-) diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index 101e52fc14..1474d5c925 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -29,9 +29,12 @@ namespace ni{ Analog() = default; ~Analog() = default; virtual int32 createNIChannel() { + LOG(INFO) << "Creating Analog Channel"; + return 0; } static int32_t getTerminalConfig(std::string terminal_config) { + LOG(INFO) << "Terminal Config: " << terminal_config; if(terminal_config == "PseudoDiff") return DAQmx_Val_PseudoDiff; if(terminal_config == "Diff") return DAQmx_Val_Diff; if(terminal_config == "NRSE") return DAQmx_Val_NRSE; @@ -51,33 +54,36 @@ namespace ni{ return this->scale_config.createNIScale(); } - explicit Analog(config::Parser &parser, TaskHandle task_handle) + explicit Analog(config::Parser &parser, TaskHandle task_handle, std::string name) : task_handle(task_handle), min_val(parser.required("min_val")), max_val(parser.required("max_val")), terminal_config(getTerminalConfig(parser.required("terminal_config"))), units(DAQmx_Val_Volts), sy_key(parser.required("channel")), - name(parser.required("name")), + name(name), type(parser.required("type")), - phsyical_channel(parser.required("physical_channel")), scale_config(getScaleConfig(parser)) { + assert(parser.ok()); + LOG(INFO) << "Analog Channel constructor "; // check name of channel if(this->scale_config.type != "none"){ + LOG(INFO) << "Scale type: " << this->scale_config.type; strcpy(this->scale_name, this->scale_config.name.c_str()); + this->units = DAQmx_Val_FromCustomScale; } + LOG(INFO) << "Analog Channel constructor end"; } TaskHandle task_handle = 0; char* scale_name = NULL; double min_val = 0; double max_val = 0; int32_t terminal_config = 0; - int32_t units = 0; + int32_t units = DAQmx_Val_Volts; uint32_t sy_key = 0; std::string name = ""; std::string type = ""; - std::string phsyical_channel = ""; ScaleConfig scale_config; }; @@ -90,18 +96,19 @@ namespace ni{ class Voltage : public Analog{ public: - explicit Voltage(config::Parser &parser, TaskHandle task_handle) - : Analog(parser, task_handle){ + explicit Voltage(config::Parser &parser, TaskHandle task_handle, std::string name) + : Analog(parser, task_handle, name){ } ~Voltage() = default; int32 createNIChannel() override { + LOG(INFO) << "Creating Voltage Channel"; return ni::NiDAQmxInterface::CreateAIVoltageChan( this->task_handle, this->name.c_str(), "", this->terminal_config, this->min_val, this->max_val, - DAQmx_Val_FromCustomScale, + this->units, this->scale_name ); } diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index b9e775bc9c..6deaeb25b0 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -35,36 +35,19 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // analog channel names are formatted: /ai config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); config.channel_key = channel_builder.required("channel"); - config.channel_type = channel_builder.required("channel_type"); + config.channel_type = channel_builder.required("type"); - // config.min_val = channel_builder.required("min_val"); - // config.max_val = channel_builder.required("max_val"); - - // auto terminal_config = channel_builder.required("terminal_config"); - // config.terminal_config = (terminal_config == "PseudoDiff") ? DAQmx_Val_PseudoDiff - // : (terminal_config == "Diff") ? DAQmx_Val_Diff - // : (terminal_config == "NRSE") ? DAQmx_Val_NRSE - // : (terminal_config == "RSE") ? DAQmx_Val_RSE - // : DAQmx_Val_Cfg_Default; - - // // check for custom scale - // std::string scale_name = std::to_string(config.channel_key) + "_scale"; - // auto scale_parser = channel_builder.child("custom_scale"); - // config.scale_config = ScaleConfig(scale_parser, scale_name); - // if(!scale_parser.ok()){ - // LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; - // this->ok_state = false; - // return; - // } // TODO: check scale parser in the function below - config.ni_channel = this->parseChannel(channel_builder, config.channel_type); + config.ni_channel = this->parseChannel(channel_builder, config.channel_type, config.name); this->reader_config.channels.push_back(config); }); } -ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ +std::shared_ptr ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name){ + LOG(INFO) << "[NI Reader] Parsing Channel "; + LOG(INFO) << parser.get_json().dump(4); // if (channel_type == "ai_accel") { // return Accel(parser, this->task_handle); // } @@ -150,7 +133,8 @@ ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::strin // return VelocityIEPE(parser, this->task_handle); // } if (channel_type == "ai_voltage") { - return Voltage(parser, this->task_handle); + LOG(INFO) << "[NI Reader] Parsing Voltage Channel"; + return std::make_shared(parser, this->task_handle, channel_name); } // if (channel_type == "ai_voltage_rms") { // return VoltageRMS(parser, this->task_handle); @@ -258,13 +242,15 @@ std::pair ni::AnalogReadSource::read(){ } int ni::AnalogReadSource::createChannels(){ + LOG(INFO) << "[NI Reader] Creating Channels for task " << this->reader_config.task_name; auto channels = this->reader_config.channels; for (auto &channel : channels){ + LOG(INFO) << "[NI Reader] Creating Channel " << channel.name; this->numChannels++; if (channel.channel_type == "index") continue; this->numAIChannels++; - this->checkNIError(channel.ni_channel.createNIScale()); - this->checkNIError(channel.ni_channel.createNIChannel()); + this->checkNIError(channel.ni_channel->createNIScale()); + this->checkNIError(channel.ni_channel->createNIChannel()); if (!this->ok()){ LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; return -1; diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 0920b4ff30..7f57770d0d 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -42,7 +42,7 @@ namespace ni{ uint32_t channel_key; std::string name; std::string channel_type; - ni::Analog ni_channel; + std::shared_ptr ni_channel; } ChannelConfig; typedef struct ReaderConfig{ @@ -134,10 +134,9 @@ namespace ni{ void acquireData() override; int configureTiming() override; int createChannels() override; - Analog parseChannel(config::Parser &parser, std::string channel_type); + std::shared_ptr parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name); void parseChannels(config::Parser &parser) override; int createChannel(ChannelConfig &channel); - // NI related resources uint64_t numAIChannels = 0; }; From 32f4d39ee2fc035411ac852488ab9caf97bbf628 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 14 Jun 2024 13:11:02 -0400 Subject: [PATCH 32/41] refactored analog channel builds and runs analog read task --- driver/ni/ai_channels.h | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index 1474d5c925..7e39bf0cd6 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -70,7 +70,7 @@ namespace ni{ // check name of channel if(this->scale_config.type != "none"){ LOG(INFO) << "Scale type: " << this->scale_config.type; - strcpy(this->scale_name, this->scale_config.name.c_str()); + // strcpy(this->scale_name, this->scale_config.name.c_str()); // FIXME this->units = DAQmx_Val_FromCustomScale; } LOG(INFO) << "Analog Channel constructor end"; @@ -102,15 +102,29 @@ namespace ni{ ~Voltage() = default; int32 createNIChannel() override { LOG(INFO) << "Creating Voltage Channel"; - return ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - this->units, - this->scale_name - ); + + if(this->scale_config.type == "none"){ + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_Volts, + NULL + ); + } else{ + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_FromCustomScale, + this->scale_config.name.c_str() + ); + + } } }; // DAQmxCreateAIVoltageChan From c99a56ea4a3026f7296beacf1398d7c5d0a2dead Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 14 Jun 2024 13:27:39 -0400 Subject: [PATCH 33/41] [driver] reformat ni code --- driver/ni/ai_channels.h | 76 +- driver/ni/analog_read.cpp | 110 +- driver/ni/analog_read_test.cpp | 1492 ++-- driver/ni/daqmx.h | 11429 ++++++++++++++++++++---------- driver/ni/digital_read.cpp | 88 +- driver/ni/digital_read_test.cpp | 483 +- driver/ni/digital_write.cpp | 181 +- driver/ni/error.h | 3298 ++++----- driver/ni/factory.cpp | 40 +- driver/ni/ni.cpp | 201 +- driver/ni/ni.h | 280 +- driver/ni/nidaqmx_api.h | 840 +-- driver/ni/nidaqmx_mock.cpp | 61 +- driver/ni/nidaqmx_prod.cpp | 82 +- driver/ni/nisyscfg.h | 1585 ++--- driver/ni/nisyscfg_api.h | 100 +- driver/ni/nisyscfg_errors.h | 415 +- driver/ni/nisyscfg_mock.cpp | 77 +- driver/ni/nisyscfg_prod.cpp | 80 +- driver/ni/nisyscfg_wide.h | 860 +-- driver/ni/reader_test.cpp | 1265 ++-- driver/ni/scale.h | 256 +- driver/ni/scanner.cpp | 82 +- driver/ni/scanner_test.cpp | 92 +- driver/ni/task.cpp | 160 +- driver/ni/task_test.cpp | 852 ++- driver/ni/ts_queue.h | 53 +- 27 files changed, 14670 insertions(+), 9868 deletions(-) diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index 101e52fc14..b82cccc086 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -13,7 +13,6 @@ #include - #include "nidaqmx_api.h" #include "daqmx.h" #include "nisyscfg.h" @@ -21,55 +20,58 @@ #include "nlohmann/json.hpp" #include "glog/logging.h" #include "client/cpp/telem/telem.h" -namespace ni{ + +namespace ni { /// @brief an object that represents and is responsible for the configuration of /// a single analog channel on National Instruments hardware. - class Analog{ + class Analog { public: Analog() = default; + ~Analog() = default; + virtual int32 createNIChannel() { } - static int32_t getTerminalConfig(std::string terminal_config) { - if(terminal_config == "PseudoDiff") return DAQmx_Val_PseudoDiff; - if(terminal_config == "Diff") return DAQmx_Val_Diff; - if(terminal_config == "NRSE") return DAQmx_Val_NRSE; - if(terminal_config == "RSE") return DAQmx_Val_RSE; + static int32_t getTerminalConfig(std::string terminal_config) { + if (terminal_config == "PseudoDiff") return DAQmx_Val_PseudoDiff; + if (terminal_config == "Diff") return DAQmx_Val_Diff; + if (terminal_config == "NRSE") return DAQmx_Val_NRSE; + if (terminal_config == "RSE") return DAQmx_Val_RSE; return DAQmx_Val_Cfg_Default; } static ScaleConfig getScaleConfig(config::Parser &parser) { // TODO check if custom scale and channel exist - std::string scale_name = std::to_string(parser.required("channel")) + "_scale"; + std::string scale_name = std::to_string(parser.required("channel")) + "_scale"; auto scale_parser = parser.child("custom_scale"); return ScaleConfig(scale_parser, scale_name); } - int32 createNIScale(){ - if(this->scale_config.type == "none") return 0; + int32 createNIScale() { + if (this->scale_config.type == "none") return 0; return this->scale_config.createNIScale(); } explicit Analog(config::Parser &parser, TaskHandle task_handle) - : task_handle(task_handle), - min_val(parser.required("min_val")), - max_val(parser.required("max_val")), - terminal_config(getTerminalConfig(parser.required("terminal_config"))), - units(DAQmx_Val_Volts), - sy_key(parser.required("channel")), - name(parser.required("name")), - type(parser.required("type")), - phsyical_channel(parser.required("physical_channel")), - scale_config(getScaleConfig(parser)) - { + : task_handle(task_handle), + min_val(parser.required("min_val")), + max_val(parser.required("max_val")), + terminal_config(getTerminalConfig(parser.required("terminal_config"))), + units(DAQmx_Val_Volts), + sy_key(parser.required("channel")), + name(parser.required("name")), + type(parser.required("type")), + phsyical_channel(parser.required("physical_channel")), + scale_config(getScaleConfig(parser)) { // check name of channel - if(this->scale_config.type != "none"){ + if (this->scale_config.type != "none") { strcpy(this->scale_name, this->scale_config.name.c_str()); } } + TaskHandle task_handle = 0; - char* scale_name = NULL; + char *scale_name = NULL; double min_val = 0; double max_val = 0; int32_t terminal_config = 0; @@ -81,29 +83,31 @@ namespace ni{ ScaleConfig scale_config; }; - + /////////////////////////////////////////////////////////////////////////////////// // Voltage // /////////////////////////////////////////////////////////////////////////////////// /// @brief voltage channel. Can be configured to measure RMS voltage instead or scale /// with internal excitaiton - class Voltage : public Analog{ + class Voltage : public Analog { public: explicit Voltage(config::Parser &parser, TaskHandle task_handle) - : Analog(parser, task_handle){ + : Analog(parser, task_handle) { } + ~Voltage() = default; + int32 createNIChannel() override { - return ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - DAQmx_Val_FromCustomScale, + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_FromCustomScale, this->scale_name - ); + ); } }; // DAQmxCreateAIVoltageChan @@ -208,6 +212,6 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // DAQmxCreateAIVelocityIEPEChan - + } \ No newline at end of file diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index b9e775bc9c..04a9b9f7de 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -23,17 +23,18 @@ using json = nlohmann::json; -void ni::AnalogReadSource::parseChannels(config::Parser &parser){ +void ni::AnalogReadSource::parseChannels(config::Parser &parser) { LOG(INFO) << "[NI Reader] Parsing Channels for task " << this->reader_config.task_name; // now parse the channels parser.iter("channels", - [&](config::Parser &channel_builder){ + [&](config::Parser &channel_builder) { LOG(INFO) << channel_builder.get_json().dump(4); ni::ChannelConfig config; // analog channel names are formatted: /ai - config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); + config.name = (this->reader_config.device_name + "/ai" + + std::to_string(channel_builder.required("port"))); config.channel_key = channel_builder.required("channel"); config.channel_type = channel_builder.required("channel_type"); @@ -46,7 +47,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // : (terminal_config == "NRSE") ? DAQmx_Val_NRSE // : (terminal_config == "RSE") ? DAQmx_Val_RSE // : DAQmx_Val_Cfg_Default; - + // // check for custom scale // std::string scale_name = std::to_string(config.channel_key) + "_scale"; // auto scale_parser = channel_builder.child("custom_scale"); @@ -58,13 +59,13 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser){ // } // TODO: check scale parser in the function below - config.ni_channel = this->parseChannel(channel_builder, config.channel_type); - + config.ni_channel = this->parseChannel(channel_builder, config.channel_type); + this->reader_config.channels.push_back(config); }); } -ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ +ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type) { // if (channel_type == "ai_accel") { // return Accel(parser, this->task_handle); // } @@ -161,25 +162,25 @@ ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::strin } -int ni::AnalogReadSource::configureTiming(){ - if(this->reader_config.timing_source == "none"){ +int ni::AnalogReadSource::configureTiming() { + if (this->reader_config.timing_source == "none") { if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, - "", - this->reader_config.sample_rate, - DAQmx_Val_Rising, - DAQmx_Val_ContSamps, - this->reader_config.sample_rate))){ - LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; - this->ok_state = false; - return -1; - } - } else{ + "", + this->reader_config.sample_rate, + DAQmx_Val_Rising, + DAQmx_Val_ContSamps, + this->reader_config.sample_rate))) { + LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; + this->ok_state = false; + return -1; + } + } else { if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, - this->reader_config.timing_source.c_str(), - this->reader_config.sample_rate, - DAQmx_Val_Rising, - DAQmx_Val_ContSamps, - this->reader_config.sample_rate))){ + this->reader_config.timing_source.c_str(), + this->reader_config.sample_rate, + DAQmx_Val_Rising, + DAQmx_Val_ContSamps, + this->reader_config.sample_rate))) { LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; this->ok_state = false; return -1; @@ -194,52 +195,55 @@ int ni::AnalogReadSource::configureTiming(){ return 0; } -void ni::AnalogReadSource::acquireData(){ - while(this->running){ +void ni::AnalogReadSource::acquireData() { + while (this->running) { DataPacket data_packet; data_packet.data = new double[this->bufferSize]; data_packet.t0 = (uint64_t) ((synnax::TimeStamp::now()).value); if (this->checkNIError(ni::NiDAQmxInterface::ReadAnalogF64( - this->task_handle, - this->numSamplesPerChannel, - -1, - DAQmx_Val_GroupByChannel, - static_cast(data_packet.data), - this->bufferSize, - &data_packet.samplesReadPerChannel, - NULL))){ + this->task_handle, + this->numSamplesPerChannel, + -1, + DAQmx_Val_GroupByChannel, + static_cast(data_packet.data), + this->bufferSize, + &data_packet.samplesReadPerChannel, + NULL))) { this->logError("failed while reading analog data for task " + this->reader_config.task_name); } - data_packet.tf = (uint64_t)((synnax::TimeStamp::now()).value); + data_packet.tf = (uint64_t) ((synnax::TimeStamp::now()).value); data_queue.enqueue(data_packet); } } -std::pair ni::AnalogReadSource::read(){ +std::pair ni::AnalogReadSource::read() { synnax::Frame f = synnax::Frame(numChannels); // sleep per stream rate - std::this_thread::sleep_for(std::chrono::nanoseconds((uint64_t)((1.0 / this->reader_config.stream_rate )* 1000000000))); + std::this_thread::sleep_for( + std::chrono::nanoseconds((uint64_t) ((1.0 / this->reader_config.stream_rate) * 1000000000))); // take data off of queue - auto [d,valid] = data_queue.dequeue(); + auto [d, valid] = data_queue.dequeue(); + + if (!valid) + return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, + "Failed to read data from queue")); - if(!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); - - double* data = static_cast(d.data); + double *data = static_cast(d.data); // interpolate timestamps between the initial and final timestamp to ensure non-overlapping timestamps between batched reads - uint64_t incr = ( (d.tf- d.t0) / this->numSamplesPerChannel ); - + uint64_t incr = ((d.tf - d.t0) / this->numSamplesPerChannel); + // Construct and populate index channel std::vector time_index(this->numSamplesPerChannel); for (uint64_t i = 0; i < d.samplesReadPerChannel; ++i) - time_index[i] = d.t0 + (std::uint64_t)(incr * i); - + time_index[i] = d.t0 + (std::uint64_t) (incr * i); + // Construct and populate synnax frame uint64_t data_index = 0; - for(int i = 0; i < numChannels; i++){ - if(this->reader_config.channels[i].channel_type == "index") { + for (int i = 0; i < numChannels; i++) { + if (this->reader_config.channels[i].channel_type == "index") { f.add(this->reader_config.channels[i].channel_key, synnax::Series(time_index, synnax::TIMESTAMP)); continue; } @@ -257,15 +261,15 @@ std::pair ni::AnalogReadSource::read(){ return std::make_pair(std::move(f), freighter::NIL); } -int ni::AnalogReadSource::createChannels(){ +int ni::AnalogReadSource::createChannels() { auto channels = this->reader_config.channels; - for (auto &channel : channels){ - this->numChannels++; - if (channel.channel_type == "index") continue; + for (auto &channel: channels) { + this->numChannels++; + if (channel.channel_type == "index") continue; this->numAIChannels++; this->checkNIError(channel.ni_channel.createNIScale()); - this->checkNIError(channel.ni_channel.createNIChannel()); - if (!this->ok()){ + this->checkNIError(channel.ni_channel.createNIChannel()); + if (!this->ok()) { LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; return -1; } diff --git a/driver/ni/analog_read_test.cpp b/driver/ni/analog_read_test.cpp index 2a96b7b265..a47fed2bb9 100644 --- a/driver/ni/analog_read_test.cpp +++ b/driver/ni/analog_read_test.cpp @@ -26,597 +26,895 @@ using json = nlohmann::json; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Basic Tests // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -TEST(read_tests, one_analog_channel){ - LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, - {"stream_rate", 20}, - {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, - {"test", true}, - {"device", ""} - }; - json scale_config = json{ +TEST(read_tests, one_analog_channel +){ +LOG(INFO) +<< "test_read_one_analog_channel: "<< +std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 100}, + {"stream_rate", 20}, + {"device_location", "Dev1"}, + {"type", "ni_analog_read"}, + {"test", true}, + {"device", ""} +}; +json scale_config = json{ {"type", "none"} - }; - - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - uint32_t ai_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); - } - ai_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - - std::cout << std::endl; - reader.stop(); -} - -TEST(read_tests, multiple_analog_channels){ - LOG(INFO) << "test_read_one_analog_channel: "<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, - {"stream_rate", 20}, - {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, //TODO: change to analog_read - {"test", true}, - {"device", ""} - }; - json scale_config = json{ +}; + +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +add_AI_channel_JSON(config, +"a1", data.key, 0, -10.0, 10.0, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +uint32_t ai_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - auto [data1, dErr2] = client->channels.create( // analog input channel - "ai2", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr2) << dErr.message(); - auto [data2, dErr3] = client->channels.create( // analog input channel - "ai3", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr3) << dErr.message(); - auto [data3, dErr4] = client->channels.create( // analog input channel - "ai4", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr4) << dErr.message(); - - - add_AI_channel_JSON(config, "a1", data.key, 0, -10.0, 10.0, "Default", scale_config); - add_AI_channel_JSON(config, "a2", data1.key, 1, -10.0, 10.0, "Default", scale_config); - add_AI_channel_JSON(config, "a3", data2.key, 2, -10.0, 10.0, "Default", scale_config); - add_AI_channel_JSON(config, "a4", data3.key, 3, -10.0, 10.0, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - - auto [frame, err] = reader.read(); - - //iterate through each series and print the data - for(int i = 0; i < 30; i++ ) { // test for 50 read cycles - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 0, 10); // can be any value of a sine wave from -10 to 10 - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - std::cout << std::endl; - } - reader.stop(); +}; + +/////////////////////////////////////////////// setup synnax test infrustructure +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +auto [data1, dErr2] = client->channels.create( // analog input channel + "ai2", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr2) +<< dErr. + +message(); + +auto [data2, dErr3] = client->channels.create( // analog input channel + "ai3", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr3) +<< dErr. + +message(); + +auto [data3, dErr4] = client->channels.create( // analog input channel + "ai4", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr4) +<< dErr. + +message(); + + +add_AI_channel_JSON(config, +"a1", data.key, 0, -10.0, 10.0, "Default", scale_config); +add_AI_channel_JSON(config, +"a2", data1.key, 1, -10.0, 10.0, "Default", scale_config); +add_AI_channel_JSON(config, +"a3", data2.key, 2, -10.0, 10.0, "Default", scale_config); +add_AI_channel_JSON(config, +"a4", data3.key, 3, -10.0, 10.0, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +auto [frame, err] = reader.read(); + +//iterate through each series and print the data +for( +int i = 0; +i < 30; i++ ) { // test for 50 read cycles +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - add_AI_channel_JSON(config, "a1", data.key, 0, 0, 10.0, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 5, 1); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - - std::cout << std::endl; - reader.stop(); -} - -TEST(read_tests, analog_map_scaling){ - LOG(INFO) << "analog_map_scaling: "<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, - {"stream_rate", 20}, - {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, - {"test", true}, - {"device", ""} - }; - json scale_config = json{ - {"type", "map"}, + {"scaled_units", "Volts"}, + {"slope", 0.5}, + {"y_intercept", 5} +}; + +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +add_AI_channel_JSON(config, +"a1", data.key, 0, 0, 10.0, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - add_AI_channel_JSON(config, "a1", data.key, 0, 0, 100, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 50, 5); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - - std::cout << std::endl; - reader.stop(); -} - - -TEST(read_tests, analog_table_scaling){ - LOG(INFO) << "analog_table_scaling: "<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, - {"stream_rate", 20}, - {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, - {"test", true}, - {"device", ""} - }; - json scale_config = json{ - {"type", "table"}, + {"scaled_units", "Volts"}, + {"pre_scaled_min", 0.0}, + {"pre_scaled_max", 10.0}, + {"scaled_min", 0}, + {"scaled_max", 100.0} +}; + +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +add_AI_channel_JSON(config, +"a1", data.key, 0, 0, 100, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - add_AI_channel_JSON(config, "a1", data.key, 0, 0, 500.0, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 250, 20); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - - std::cout << std::endl; - reader.stop(); -} - -TEST(read_tests, analog_polynomial_scaling){ - LOG(INFO) << "analog_table_scaling: "<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, - {"stream_rate", 20}, - {"device_location", "Dev1"}, - {"type", "ni_analog_read"}, - {"test", true}, - {"device", ""} - }; - json scale_config = json{ - {"type", "polynomial"}, + {"scaled_units", "Volts"}, + {"num_points", 11}, + {"pre_scaled_vals", {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}}, + {"scaled_vals", {0.0, 50.0, 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0}} +}; + +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +add_AI_channel_JSON(config, +"a1", data.key, 0, 0, 500.0, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "ai", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - add_AI_channel_JSON(config, "a1", data.key, 0, 0, 10.0, "Default", scale_config); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "ni_analog_read", // task type - to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::AnalogReadSource( taskHandle, - mockCtx, - task); // analog reader - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 117, 2); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - } - } - } - - std::cout << std::endl; - reader.stop(); + {"scaled_units", "Volts"}, + {"poly_order", 2}, + {"coeffs", {300.0, 300.0, 43.0}}, + {"num_coeffs", 3}, + {"min_x", 0.0}, + {"max_x", 10.0} +}; + +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "ai", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +add_AI_channel_JSON(config, +"a1", data.key, 0, 0, 10.0, "Default", scale_config); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "ni_analog_read", // task type + to_string(config) // task config +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::AnalogReadSource(taskHandle, + mockCtx, + task); // analog reader +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= prescaled_max || scaled_min >= scaled_max - // - invalid prescaled_min, prescaled_max, scaled_min, scaled_max - // polynomial - // table - // - min >= max val (analog) - // - invalid terminal config (analog) - // - invalid port (digital and analog) - // - invalid line (analog) - // - invalid device - // - stream rate > sample rate +// - invalid channel +// - invalid scale (analog) +// linear +// - missing slope or offset or both +// - invalid slope & offset or both (i.e. isnt comptaible with specified max and min) +// map +// - missing attributes +// - prescaled_min >= prescaled_max || scaled_min >= scaled_max +// - invalid prescaled_min, prescaled_max, scaled_min, scaled_max +// polynomial +// table +// - min >= max val (analog) +// - invalid terminal config (analog) +// - invalid port (digital and analog) +// - invalid line (analog) +// - invalid device +// - stream rate > sample rate // vendor/hardware errors // double start diff --git a/driver/ni/daqmx.h b/driver/ni/daqmx.h index d74f38ad68..aedc52c178 100644 --- a/driver/ni/daqmx.h +++ b/driver/ni/daqmx.h @@ -17,85 +17,125 @@ /* */ /*============================================================================*/ -#ifndef ___nidaqmx_h___ -#define ___nidaqmx_h___ +#ifndef +___nidaqmx_h___ +#define +___nidaqmx_h___ -#ifdef __cplusplus +#ifdef +__cplusplus extern "C" { #endif -#if defined(__linux__) || defined(__APPLE__) -#define __CFUNC -#define __CFUNC_C -#define __CFUNCPTRVAR -#define CVICDECL -#define CVICALLBACK CVICDECL +#if +defined(__linux__) || defined(__APPLE__) +#define +__CFUNC +#define +__CFUNC_C +#define +__CFUNCPTRVAR +#define +CVICDECL +#define +CVICALLBACK CVICDECL #else -#define __CFUNC __stdcall -#define __CFUNC_C __cdecl -#define __CFUNCPTRVAR __cdecl -#define CVICDECL __cdecl -#define CVICALLBACK CVICDECL +#define +__CFUNC __stdcall +#define +__CFUNC_C __cdecl +#define +__CFUNCPTRVAR __cdecl +#define +CVICDECL __cdecl +#define +CVICALLBACK CVICDECL #endif -#if defined(_CVI_) && !defined(__TPC__) -#pragma EnableLibraryRuntimeChecking +#if +defined(_CVI_) && !defined(__TPC__) +#pragma +EnableLibraryRuntimeChecking #endif // NI-DAQmx Typedefs -#ifndef _NI_int8_DEFINED_ -#define _NI_int8_DEFINED_ -typedef signed char int8; +#ifndef +_NI_int8_DEFINED_ +#define +_NI_int8_DEFINED_ +typedef signed char int8; #endif -#ifndef _NI_uInt8_DEFINED_ -#define _NI_uInt8_DEFINED_ -typedef unsigned char uInt8; +#ifndef +_NI_uInt8_DEFINED_ +#define +_NI_uInt8_DEFINED_ +typedef unsigned char uInt8; #endif -#ifndef _NI_int16_DEFINED_ -#define _NI_int16_DEFINED_ -typedef signed short int16; +#ifndef +_NI_int16_DEFINED_ +#define +_NI_int16_DEFINED_ +typedef signed short int16; #endif -#ifndef _NI_uInt16_DEFINED_ -#define _NI_uInt16_DEFINED_ -typedef unsigned short uInt16; +#ifndef +_NI_uInt16_DEFINED_ +#define +_NI_uInt16_DEFINED_ +typedef unsigned short uInt16; #endif -#ifndef _NI_int32_DEFINED_ -#define _NI_int32_DEFINED_ -#if ((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) -typedef signed int int32; +#ifndef +_NI_int32_DEFINED_ +#define +_NI_int32_DEFINED_ +#if +((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) +typedef signed int int32; #else -typedef signed long int32; +typedef signed long int32; #endif #endif -#ifndef _NI_uInt32_DEFINED_ -#define _NI_uInt32_DEFINED_ -#if ((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) -typedef unsigned int uInt32; +#ifndef +_NI_uInt32_DEFINED_ +#define +_NI_uInt32_DEFINED_ +#if +((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) +typedef unsigned int uInt32; #else -typedef unsigned long uInt32; +typedef unsigned long uInt32; #endif #endif -#ifndef _NI_float32_DEFINED_ -#define _NI_float32_DEFINED_ -typedef float float32; +#ifndef +_NI_float32_DEFINED_ +#define +_NI_float32_DEFINED_ +typedef float float32; #endif -#ifndef _NI_float64_DEFINED_ -#define _NI_float64_DEFINED_ -typedef double float64; +#ifndef +_NI_float64_DEFINED_ +#define +_NI_float64_DEFINED_ +typedef double float64; #endif -#ifndef _NI_int64_DEFINED_ -#define _NI_int64_DEFINED_ -#if defined(__linux__) || defined(__APPLE__) -typedef long long int int64; +#ifndef +_NI_int64_DEFINED_ +#define +_NI_int64_DEFINED_ +#if +defined(__linux__) || defined(__APPLE__) +typedef long long int int64; #else -typedef long long int int64; +typedef long long int int64; #endif #endif -#ifndef _NI_uInt64_DEFINED_ -#define _NI_uInt64_DEFINED_ -#if defined(__linux__) || defined(__APPLE__) +#ifndef +_NI_uInt64_DEFINED_ +#define +_NI_uInt64_DEFINED_ +#if +defined(__linux__) || defined(__APPLE__) typedef unsigned long long uInt64; #else typedef unsigned long long uInt64; @@ -103,35 +143,50 @@ typedef unsigned long long uInt64; #endif -#pragma pack(push) -#pragma pack(4) +#pragma +pack(push) +#pragma +pack(4) -#ifndef CVITime_DECLARED -#define CVITime_DECLARED +#ifndef +CVITime_DECLARED +#define +CVITime_DECLARED // Please visit ni.com/info and enter the Info Code NI_BTF for more information -typedef struct CVITime { uInt64 lsb; int64 msb; } CVITime; +typedef struct CVITime { +uInt64 lsb; int64 msb; } CVITime; #endif -#ifndef CVIAbsoluteTime_DECLARED -#define CVIAbsoluteTime_DECLARED +#ifndef +CVIAbsoluteTime_DECLARED +#define +CVIAbsoluteTime_DECLARED // Please visit ni.com/info and enter the Info Code NI_BTF for more information -typedef union CVIAbsoluteTime { CVITime cviTime; uInt32 u32Data[4]; } CVIAbsoluteTime; +typedef union CVIAbsoluteTime { +CVITime cviTime; uInt32 u32Data[4]; } CVIAbsoluteTime; #endif -#pragma pack(pop) +#pragma +pack(pop) typedef uInt32 bool32; typedef void* TaskHandle; typedef uInt32 CalHandle; -#ifndef TRUE -#define TRUE (1L) +#ifndef +TRUE +#define +TRUE (1L) #endif -#ifndef FALSE -#define FALSE (0L) +#ifndef +FALSE +#define +FALSE (0L) #endif -#ifndef NULL -#define NULL (0L) +#ifndef +NULL +#define +NULL (0L) #endif @@ -140,1160 +195,2248 @@ typedef uInt32 CalHandle; ******************************************************************************/ //********** Buffer Attributes ********** -#define DAQmx_Buf_Input_BufSize 0x186C // Specifies the number of samples the input buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic input buffer allocation that NI-DAQmx performs. -#define DAQmx_Buf_Input_OnbrdBufSize 0x230A // Indicates in samples per channel the size of the onboard input buffer of the device. -#define DAQmx_Buf_Output_BufSize 0x186D // Specifies the number of samples the output buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic output buffer allocation that NI-DAQmx performs. -#define DAQmx_Buf_Output_OnbrdBufSize 0x230B // Specifies in samples per channel the size of the onboard output buffer of the device. +#define +DAQmx_Buf_Input_BufSize 0x186C // Specifies the number of samples the input buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic input buffer allocation that NI-DAQmx performs. +#define +DAQmx_Buf_Input_OnbrdBufSize 0x230A // Indicates in samples per channel the size of the onboard input buffer of the device. +#define +DAQmx_Buf_Output_BufSize 0x186D // Specifies the number of samples the output buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic output buffer allocation that NI-DAQmx performs. +#define +DAQmx_Buf_Output_OnbrdBufSize 0x230B // Specifies in samples per channel the size of the onboard output buffer of the device. //********** Calibration Info Attributes ********** -#define DAQmx_SelfCal_Supported 0x1860 // Indicates whether the device supports self-calibration. -#define DAQmx_SelfCal_LastTemp 0x1864 // Indicates in degrees Celsius the temperature of the device at the time of the last self-calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. -#define DAQmx_ExtCal_RecommendedInterval 0x1868 // Indicates in months the National Instruments recommended interval between each external calibration of the device. -#define DAQmx_ExtCal_LastTemp 0x1867 // Indicates in degrees Celsius the temperature of the device at the time of the last external calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. -#define DAQmx_Cal_UserDefinedInfo 0x1861 // Specifies a string that contains arbitrary, user-defined information. This number of characters in this string can be no more than Max Size. -#define DAQmx_Cal_UserDefinedInfo_MaxSize 0x191C // Indicates the maximum length in characters of Information. -#define DAQmx_Cal_DevTemp 0x223B // Indicates in degrees Celsius the current temperature of the device. -#define DAQmx_Cal_AccConnectionCount 0x2FEB // Specifies the number of times a particular connection that results in tangible wear and tear of onboard components has been made on the accessory. This connection count is useful for tracking accessory life and usage. -#define DAQmx_Cal_RecommendedAccConnectionCountLimit 0x2FEC // Indicates the recommended connection count limit for an accessory. If the accessory connection count exceeds this limit, the accessory could require maintenance. +#define +DAQmx_SelfCal_Supported 0x1860 // Indicates whether the device supports self-calibration. +#define +DAQmx_SelfCal_LastTemp 0x1864 // Indicates in degrees Celsius the temperature of the device at the time of the last self-calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. +#define +DAQmx_ExtCal_RecommendedInterval 0x1868 // Indicates in months the National Instruments recommended interval between each external calibration of the device. +#define +DAQmx_ExtCal_LastTemp 0x1867 // Indicates in degrees Celsius the temperature of the device at the time of the last external calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. +#define +DAQmx_Cal_UserDefinedInfo 0x1861 // Specifies a string that contains arbitrary, user-defined information. This number of characters in this string can be no more than Max Size. +#define +DAQmx_Cal_UserDefinedInfo_MaxSize 0x191C // Indicates the maximum length in characters of Information. +#define +DAQmx_Cal_DevTemp 0x223B // Indicates in degrees Celsius the current temperature of the device. +#define +DAQmx_Cal_AccConnectionCount 0x2FEB // Specifies the number of times a particular connection that results in tangible wear and tear of onboard components has been made on the accessory. This connection count is useful for tracking accessory life and usage. +#define +DAQmx_Cal_RecommendedAccConnectionCountLimit 0x2FEC // Indicates the recommended connection count limit for an accessory. If the accessory connection count exceeds this limit, the accessory could require maintenance. //********** Channel Attributes ********** -#define DAQmx_AI_Max 0x17DD // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the device can measure with the current settings. -#define DAQmx_AI_Min 0x17DE // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the device can measure with the current settings. -#define DAQmx_AI_CustomScaleName 0x17E0 // Specifies the name of a custom scale for the channel. -#define DAQmx_AI_MeasType 0x0695 // Indicates the measurement to take with the analog input channel and in some cases, such as for temperature measurements, the sensor to use. -#define DAQmx_AI_Voltage_Units 0x1094 // Specifies the units to use to return voltage measurements from the channel. -#define DAQmx_AI_Voltage_dBRef 0x29B0 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define DAQmx_AI_Voltage_ACRMS_Units 0x17E2 // Specifies the units to use to return voltage RMS measurements from the channel. -#define DAQmx_AI_Temp_Units 0x1033 // Specifies the units to use to return temperature measurements from the channel. -#define DAQmx_AI_Thrmcpl_Type 0x1050 // Specifies the type of thermocouple connected to the channel. Thermocouple types differ in composition and measurement range. -#define DAQmx_AI_Thrmcpl_ScaleType 0x29D0 // Specifies the method or equation form that the thermocouple scale uses. -#define DAQmx_AI_Thrmcpl_CJCSrc 0x1035 // Indicates the source of cold-junction compensation. -#define DAQmx_AI_Thrmcpl_CJCVal 0x1036 // Specifies the temperature of the cold junction if CJC Source is DAQmx_Val_ConstVal. Specify this value in the units of the measurement. +#define +DAQmx_AI_Max 0x17DD // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the device can measure with the current settings. +#define +DAQmx_AI_Min 0x17DE // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the device can measure with the current settings. +#define +DAQmx_AI_CustomScaleName 0x17E0 // Specifies the name of a custom scale for the channel. +#define +DAQmx_AI_MeasType 0x0695 // Indicates the measurement to take with the analog input channel and in some cases, such as for temperature measurements, the sensor to use. +#define +DAQmx_AI_Voltage_Units 0x1094 // Specifies the units to use to return voltage measurements from the channel. +#define +DAQmx_AI_Voltage_dBRef 0x29B0 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define +DAQmx_AI_Voltage_ACRMS_Units 0x17E2 // Specifies the units to use to return voltage RMS measurements from the channel. +#define +DAQmx_AI_Temp_Units 0x1033 // Specifies the units to use to return temperature measurements from the channel. +#define +DAQmx_AI_Thrmcpl_Type 0x1050 // Specifies the type of thermocouple connected to the channel. Thermocouple types differ in composition and measurement range. +#define +DAQmx_AI_Thrmcpl_ScaleType 0x29D0 // Specifies the method or equation form that the thermocouple scale uses. +#define +DAQmx_AI_Thrmcpl_CJCSrc 0x1035 // Indicates the source of cold-junction compensation. +#define +DAQmx_AI_Thrmcpl_CJCVal 0x1036 // Specifies the temperature of the cold junction if CJC Source is DAQmx_Val_ConstVal. Specify this value in the units of the measurement. #define DAQmx_AI_Thrmcpl_CJCChan 0x1034 // Indicates the channel that acquires the temperature of the cold junction if CJC Source is DAQmx_Val_Chan. If the channel is a temperature channel, NI-DAQmx acquires the temperature in the correct units. Other channel types, such as a resistance channel with a custom sensor, must use a custom scale to scale values to degrees Celsius. -#define DAQmx_AI_RTD_Type 0x1032 // Specifies the type of RTD connected to the channel. -#define DAQmx_AI_RTD_R0 0x1030 // Specifies in ohms the sensor resistance at 0 deg C. The Callendar-Van Dusen equation requires this value. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_RTD_A 0x1010 // Specifies the 'A' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define DAQmx_AI_RTD_B 0x1011 // Specifies the 'B' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define DAQmx_AI_RTD_C 0x1013 // Specifies the 'C' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define DAQmx_AI_Thrmstr_A 0x18C9 // Specifies the 'A' constant of the Steinhart-Hart thermistor equation. -#define DAQmx_AI_Thrmstr_B 0x18CB // Specifies the 'B' constant of the Steinhart-Hart thermistor equation. -#define DAQmx_AI_Thrmstr_C 0x18CA // Specifies the 'C' constant of the Steinhart-Hart thermistor equation. -#define DAQmx_AI_Thrmstr_R1 0x1061 // Specifies in ohms the value of the reference resistor for the thermistor if you use voltage excitation. NI-DAQmx ignores this value for current excitation. -#define DAQmx_AI_ForceReadFromChan 0x18F8 // Specifies whether to read from the channel if it is a cold-junction compensation channel. By default, an NI-DAQmx Read function does not return data from cold-junction compensation channels. Setting this property to TRUE forces read operations to return the cold-junction compensation channel data with the other channels in the task. -#define DAQmx_AI_Current_Units 0x0701 // Specifies the units to use to return current measurements from the channel. -#define DAQmx_AI_Current_ACRMS_Units 0x17E3 // Specifies the units to use to return current RMS measurements from the channel. -#define DAQmx_AI_Strain_Units 0x0981 // Specifies the units to use to return strain measurements from the channel. -#define DAQmx_AI_StrainGage_ForceReadFromChan 0x2FFA // Specifies whether the data is returned by an NI-DAQmx Read function when set on a raw strain channel that is part of a rosette configuration. -#define DAQmx_AI_StrainGage_GageFactor 0x0994 // Specifies the sensitivity of the strain gage. Gage factor relates the change in electrical resistance to the change in strain. Refer to the sensor documentation for this value. -#define DAQmx_AI_StrainGage_PoissonRatio 0x0998 // Specifies the ratio of lateral strain to axial strain in the material you are measuring. -#define DAQmx_AI_StrainGage_Cfg 0x0982 // Specifies the bridge configuration of the strain gages. -#define DAQmx_AI_RosetteStrainGage_RosetteType 0x2FFE // Indicates the type of rosette gage. -#define DAQmx_AI_RosetteStrainGage_Orientation 0x2FFC // Specifies gage orientation in degrees with respect to the X axis. -#define DAQmx_AI_RosetteStrainGage_StrainChans 0x2FFB // Indicates the raw strain channels that comprise the strain rosette. -#define DAQmx_AI_RosetteStrainGage_RosetteMeasType 0x2FFD // Specifies the type of rosette measurement. -#define DAQmx_AI_Resistance_Units 0x0955 // Specifies the units to use to return resistance measurements. -#define DAQmx_AI_Freq_Units 0x0806 // Specifies the units to use to return frequency measurements from the channel. -#define DAQmx_AI_Freq_ThreshVoltage 0x0815 // Specifies the voltage level at which to recognize waveform repetitions. You should select a voltage level that occurs only once within the entire period of a waveform. You also can select a voltage that occurs only once while the voltage rises or falls. -#define DAQmx_AI_Freq_Hyst 0x0814 // Specifies in volts a window below Threshold Level. The input voltage must pass below Threshold Level minus this value before NI-DAQmx recognizes a waveform repetition at Threshold Level. Hysteresis can improve the measurement accuracy when the signal contains noise or jitter. -#define DAQmx_AI_LVDT_Units 0x0910 // Specifies the units to use to return linear position measurements from the channel. -#define DAQmx_AI_LVDT_Sensitivity 0x0939 // Specifies the sensitivity of the LVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_LVDT_SensitivityUnits 0x219A // Specifies the units of Sensitivity. -#define DAQmx_AI_RVDT_Units 0x0877 // Specifies the units to use to return angular position measurements from the channel. -#define DAQmx_AI_RVDT_Sensitivity 0x0903 // Specifies the sensitivity of the RVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_RVDT_SensitivityUnits 0x219B // Specifies the units of Sensitivity. -#define DAQmx_AI_EddyCurrentProxProbe_Units 0x2AC0 // Specifies the units to use to return proximity measurements from the channel. -#define DAQmx_AI_EddyCurrentProxProbe_Sensitivity 0x2ABE // Specifies the sensitivity of the eddy current proximity probe . This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits 0x2ABF // Specifies the units of Sensitivity. -#define DAQmx_AI_SoundPressure_MaxSoundPressureLvl 0x223A // Specifies the maximum instantaneous sound pressure level you expect to measure. This value is in decibels, referenced to 20 micropascals. NI-DAQmx uses the maximum sound pressure level to calculate values in pascals for Maximum Value and Minimum Value for the channel. -#define DAQmx_AI_SoundPressure_Units 0x1528 // Specifies the units to use to return sound pressure measurements from the channel. -#define DAQmx_AI_SoundPressure_dBRef 0x29B1 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. NI-DAQmx also uses the decibel reference level when converting Maximum Sound Pressure Level to a voltage level. -#define DAQmx_AI_Microphone_Sensitivity 0x1536 // Specifies the sensitivity of the microphone. This value is in mV/Pa. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_Accel_Units 0x0673 // Specifies the units to use to return acceleration measurements from the channel. -#define DAQmx_AI_Accel_dBRef 0x29B2 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define DAQmx_AI_Accel_4WireDCVoltage_Sensitivity 0x3115 // Specifies the sensitivity of the 4 wire DC voltage acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.4WireDCVoltage.SensitivityUnits. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits 0x3116 // Specifies the units of AI.Accel.4WireDCVoltage.Sensitivity. -#define DAQmx_AI_Accel_Sensitivity 0x0692 // Specifies the sensitivity of the accelerometer. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_Accel_SensitivityUnits 0x219C // Specifies the units of Sensitivity. -#define DAQmx_AI_Accel_Charge_Sensitivity 0x3113 // Specifies the sensitivity of the charge acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.Charge.SensitivityUnits. Refer to the sensor documentation to determine this value. -#define DAQmx_AI_Accel_Charge_SensitivityUnits 0x3114 // Specifies the units of AI.Accel.Charge.Sensitivity. -#define DAQmx_AI_Velocity_Units 0x2FF4 // Specifies in which unit to return velocity measurements from the channel. -#define DAQmx_AI_Velocity_IEPESensor_dBRef 0x2FF5 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define DAQmx_AI_Velocity_IEPESensor_Sensitivity 0x2FF6 // Specifies the sensitivity of the IEPE velocity sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. +#define +DAQmx_AI_RTD_Type 0x1032 // Specifies the type of RTD connected to the channel. +#define +DAQmx_AI_RTD_R0 0x1030 // Specifies in ohms the sensor resistance at 0 deg C. The Callendar-Van Dusen equation requires this value. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_RTD_A 0x1010 // Specifies the 'A' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define +DAQmx_AI_RTD_B 0x1011 // Specifies the 'B' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define +DAQmx_AI_RTD_C 0x1013 // Specifies the 'C' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define +DAQmx_AI_Thrmstr_A 0x18C9 // Specifies the 'A' constant of the Steinhart-Hart thermistor equation. +#define +DAQmx_AI_Thrmstr_B 0x18CB // Specifies the 'B' constant of the Steinhart-Hart thermistor equation. +#define +DAQmx_AI_Thrmstr_C 0x18CA // Specifies the 'C' constant of the Steinhart-Hart thermistor equation. +#define +DAQmx_AI_Thrmstr_R1 0x1061 // Specifies in ohms the value of the reference resistor for the thermistor if you use voltage excitation. NI-DAQmx ignores this value for current excitation. +#define +DAQmx_AI_ForceReadFromChan 0x18F8 // Specifies whether to read from the channel if it is a cold-junction compensation channel. By default, an NI-DAQmx Read function does not return data from cold-junction compensation channels. Setting this property to TRUE forces read operations to return the cold-junction compensation channel data with the other channels in the task. +#define +DAQmx_AI_Current_Units 0x0701 // Specifies the units to use to return current measurements from the channel. +#define +DAQmx_AI_Current_ACRMS_Units 0x17E3 // Specifies the units to use to return current RMS measurements from the channel. +#define +DAQmx_AI_Strain_Units 0x0981 // Specifies the units to use to return strain measurements from the channel. +#define +DAQmx_AI_StrainGage_ForceReadFromChan 0x2FFA // Specifies whether the data is returned by an NI-DAQmx Read function when set on a raw strain channel that is part of a rosette configuration. +#define +DAQmx_AI_StrainGage_GageFactor 0x0994 // Specifies the sensitivity of the strain gage. Gage factor relates the change in electrical resistance to the change in strain. Refer to the sensor documentation for this value. +#define +DAQmx_AI_StrainGage_PoissonRatio 0x0998 // Specifies the ratio of lateral strain to axial strain in the material you are measuring. +#define +DAQmx_AI_StrainGage_Cfg 0x0982 // Specifies the bridge configuration of the strain gages. +#define +DAQmx_AI_RosetteStrainGage_RosetteType 0x2FFE // Indicates the type of rosette gage. +#define +DAQmx_AI_RosetteStrainGage_Orientation 0x2FFC // Specifies gage orientation in degrees with respect to the X axis. +#define +DAQmx_AI_RosetteStrainGage_StrainChans 0x2FFB // Indicates the raw strain channels that comprise the strain rosette. +#define +DAQmx_AI_RosetteStrainGage_RosetteMeasType 0x2FFD // Specifies the type of rosette measurement. +#define +DAQmx_AI_Resistance_Units 0x0955 // Specifies the units to use to return resistance measurements. +#define +DAQmx_AI_Freq_Units 0x0806 // Specifies the units to use to return frequency measurements from the channel. +#define +DAQmx_AI_Freq_ThreshVoltage 0x0815 // Specifies the voltage level at which to recognize waveform repetitions. You should select a voltage level that occurs only once within the entire period of a waveform. You also can select a voltage that occurs only once while the voltage rises or falls. +#define +DAQmx_AI_Freq_Hyst 0x0814 // Specifies in volts a window below Threshold Level. The input voltage must pass below Threshold Level minus this value before NI-DAQmx recognizes a waveform repetition at Threshold Level. Hysteresis can improve the measurement accuracy when the signal contains noise or jitter. +#define +DAQmx_AI_LVDT_Units 0x0910 // Specifies the units to use to return linear position measurements from the channel. +#define +DAQmx_AI_LVDT_Sensitivity 0x0939 // Specifies the sensitivity of the LVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_LVDT_SensitivityUnits 0x219A // Specifies the units of Sensitivity. +#define +DAQmx_AI_RVDT_Units 0x0877 // Specifies the units to use to return angular position measurements from the channel. +#define +DAQmx_AI_RVDT_Sensitivity 0x0903 // Specifies the sensitivity of the RVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_RVDT_SensitivityUnits 0x219B // Specifies the units of Sensitivity. +#define +DAQmx_AI_EddyCurrentProxProbe_Units 0x2AC0 // Specifies the units to use to return proximity measurements from the channel. +#define +DAQmx_AI_EddyCurrentProxProbe_Sensitivity 0x2ABE // Specifies the sensitivity of the eddy current proximity probe . This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits 0x2ABF // Specifies the units of Sensitivity. +#define +DAQmx_AI_SoundPressure_MaxSoundPressureLvl 0x223A // Specifies the maximum instantaneous sound pressure level you expect to measure. This value is in decibels, referenced to 20 micropascals. NI-DAQmx uses the maximum sound pressure level to calculate values in pascals for Maximum Value and Minimum Value for the channel. +#define +DAQmx_AI_SoundPressure_Units 0x1528 // Specifies the units to use to return sound pressure measurements from the channel. +#define +DAQmx_AI_SoundPressure_dBRef 0x29B1 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. NI-DAQmx also uses the decibel reference level when converting Maximum Sound Pressure Level to a voltage level. +#define +DAQmx_AI_Microphone_Sensitivity 0x1536 // Specifies the sensitivity of the microphone. This value is in mV/Pa. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_Accel_Units 0x0673 // Specifies the units to use to return acceleration measurements from the channel. +#define +DAQmx_AI_Accel_dBRef 0x29B2 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define +DAQmx_AI_Accel_4WireDCVoltage_Sensitivity 0x3115 // Specifies the sensitivity of the 4 wire DC voltage acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.4WireDCVoltage.SensitivityUnits. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits 0x3116 // Specifies the units of AI.Accel.4WireDCVoltage.Sensitivity. +#define +DAQmx_AI_Accel_Sensitivity 0x0692 // Specifies the sensitivity of the accelerometer. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_Accel_SensitivityUnits 0x219C // Specifies the units of Sensitivity. +#define +DAQmx_AI_Accel_Charge_Sensitivity 0x3113 // Specifies the sensitivity of the charge acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.Charge.SensitivityUnits. Refer to the sensor documentation to determine this value. +#define +DAQmx_AI_Accel_Charge_SensitivityUnits 0x3114 // Specifies the units of AI.Accel.Charge.Sensitivity. +#define +DAQmx_AI_Velocity_Units 0x2FF4 // Specifies in which unit to return velocity measurements from the channel. +#define +DAQmx_AI_Velocity_IEPESensor_dBRef 0x2FF5 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define +DAQmx_AI_Velocity_IEPESensor_Sensitivity 0x2FF6 // Specifies the sensitivity of the IEPE velocity sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. #define DAQmx_AI_Velocity_IEPESensor_SensitivityUnits 0x2FF7 // Specifies the units for Sensitivity. -#define DAQmx_AI_Force_Units 0x2F75 // Specifies in which unit to return force or load measurements from the channel. -#define DAQmx_AI_Force_IEPESensor_Sensitivity 0x2F81 // Specifies the sensitivity of the IEPE force sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. -#define DAQmx_AI_Force_IEPESensor_SensitivityUnits 0x2F82 // Specifies the units for Sensitivity. -#define DAQmx_AI_Pressure_Units 0x2F76 // Specifies in which unit to return pressure measurements from the channel. -#define DAQmx_AI_Torque_Units 0x2F77 // Specifies in which unit to return torque measurements from the channel. -#define DAQmx_AI_Bridge_Units 0x2F92 // Specifies in which unit to return voltage ratios from the channel. -#define DAQmx_AI_Bridge_ElectricalUnits 0x2F87 // Specifies from which electrical unit to scale data. Select the same unit that the sensor data sheet or calibration certificate uses for electrical values. -#define DAQmx_AI_Bridge_PhysicalUnits 0x2F88 // Specifies to which physical unit to scale electrical data. Select the same unit that the sensor data sheet or calibration certificate uses for physical values. -#define DAQmx_AI_Bridge_ScaleType 0x2F89 // Specifies the scaling type to use when scaling electrical values from the sensor to physical units. -#define DAQmx_AI_Bridge_TwoPointLin_First_ElectricalVal 0x2F8A // Specifies the first electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. -#define DAQmx_AI_Bridge_TwoPointLin_First_PhysicalVal 0x2F8B // Specifies the first physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. -#define DAQmx_AI_Bridge_TwoPointLin_Second_ElectricalVal 0x2F8C // Specifies the second electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. -#define DAQmx_AI_Bridge_TwoPointLin_Second_PhysicalVal 0x2F8D // Specifies the second physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. -#define DAQmx_AI_Bridge_Table_ElectricalVals 0x2F8E // Specifies the array of electrical values that map to the values in Physical Values. Specify this value in the unit indicated by Electrical Units. -#define DAQmx_AI_Bridge_Table_PhysicalVals 0x2F8F // Specifies the array of physical values that map to the values in Electrical Values. Specify this value in the unit indicated by Physical Units. -#define DAQmx_AI_Bridge_Poly_ForwardCoeff 0x2F90 // Specifies an array of coefficients for the polynomial that converts electrical values to physical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define DAQmx_AI_Bridge_Poly_ReverseCoeff 0x2F91 // Specifies an array of coefficients for the polynomial that converts physical values to electrical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define DAQmx_AI_Charge_Units 0x3112 // Specifies the units to use to return charge measurements from the channel. -#define DAQmx_AI_Is_TEDS 0x2983 // Indicates if the virtual channel was initialized using a TEDS bitstream from the corresponding physical channel. -#define DAQmx_AI_TEDS_Units 0x21E0 // Indicates the units defined by TEDS information associated with the channel. -#define DAQmx_AI_Coupling 0x0064 // Specifies the coupling for the channel. -#define DAQmx_AI_Impedance 0x0062 // Specifies the input impedance of the channel. -#define DAQmx_AI_TermCfg 0x1097 // Specifies the terminal configuration for the channel. -#define DAQmx_AI_InputSrc 0x2198 // Specifies the source of the channel. You can use the signal from the I/O connector or one of several calibration signals. Certain devices have a single calibration signal bus. For these devices, you must specify the same calibration signal for all channels you connect to a calibration signal. -#define DAQmx_AI_ResistanceCfg 0x1881 // Specifies the resistance configuration for the channel. NI-DAQmx uses this value for any resistance-based measurements, including temperature measurement using a thermistor or RTD. -#define DAQmx_AI_LeadWireResistance 0x17EE // Specifies in ohms the resistance of the wires that lead to the sensor. -#define DAQmx_AI_Bridge_Cfg 0x0087 // Specifies the type of Wheatstone bridge connected to the channel. -#define DAQmx_AI_Bridge_NomResistance 0x17EC // Specifies in ohms the resistance of the bridge while not under load. -#define DAQmx_AI_Bridge_InitialVoltage 0x17ED // Specifies in volts the output voltage of the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Ratio, NI-DAQmx coerces this property to Initial Bridge Ratio times Actual Excitation Value. This property is set by DAQmx Perform Bridge Offset Nulling Calibration. If you set this property, NI-DAQmx coerces Initial Bridge Ratio... -#define DAQmx_AI_Bridge_InitialRatio 0x2F86 // Specifies in volts per volt the ratio of output voltage from the bridge to excitation voltage supplied to the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Voltage, NI-DAQmx coerces this property to Initial Bridge Voltage divided by Actual Excitation Value. If you set this property, NI-DAQmx coerces Initial Bridge Volt... -#define DAQmx_AI_Bridge_ShuntCal_Enable 0x0094 // Specifies whether to enable a shunt calibration switch. Use Shunt Cal Select to select the switch(es) to enable. -#define DAQmx_AI_Bridge_ShuntCal_Select 0x21D5 // Specifies which shunt calibration switch(es) to enable. Use Shunt Cal Enable to enable the switch(es) you specify with this property. -#define DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc 0x30CA // Specifies whether to use internal or external shunt when Shunt Cal A is selected. -#define DAQmx_AI_Bridge_ShuntCal_GainAdjust 0x193F // Specifies the result of a shunt calibration. This property is set by DAQmx Perform Shunt Calibration. NI-DAQmx multiplies data read from the channel by the value of this property. This value should be close to 1.0. -#define DAQmx_AI_Bridge_ShuntCal_ShuntCalAResistance 0x2F78 // Specifies in ohms the desired value of the internal shunt calibration A resistor. -#define DAQmx_AI_Bridge_ShuntCal_ShuntCalAActualResistance 0x2F79 // Specifies in ohms the actual value of the internal shunt calibration A resistor. -#define DAQmx_AI_Bridge_ShuntCal_ShuntCalBResistance 0x2F7A // Specifies in ohms the desired value of the internal shunt calibration B resistor. -#define DAQmx_AI_Bridge_ShuntCal_ShuntCalBActualResistance 0x2F7B // Specifies in ohms the actual value of the internal shunt calibration B resistor. -#define DAQmx_AI_Bridge_Balance_CoarsePot 0x17F1 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 127. -#define DAQmx_AI_Bridge_Balance_FinePot 0x18F4 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 4095. -#define DAQmx_AI_CurrentShunt_Loc 0x17F2 // Specifies the shunt resistor location for current measurements. -#define DAQmx_AI_CurrentShunt_Resistance 0x17F3 // Specifies in ohms the external shunt resistance for current measurements. -#define DAQmx_AI_Excit_Sense 0x30FD // Specifies whether to use local or remote sense to sense excitation. -#define DAQmx_AI_Excit_Src 0x17F4 // Specifies the source of excitation. -#define DAQmx_AI_Excit_Val 0x17F5 // Specifies the amount of excitation that the sensor requires. If Voltage or Current is DAQmx_Val_Voltage, this value is in volts. If Voltage or Current is DAQmx_Val_Current, this value is in amperes. -#define DAQmx_AI_Excit_UseForScaling 0x17FC // Specifies if NI-DAQmx divides the measurement by the excitation. You should typically set this property to TRUE for ratiometric transducers. If you set this property to TRUE, set Maximum Value and Minimum Value to reflect the scaling. -#define DAQmx_AI_Excit_UseMultiplexed 0x2180 // Specifies if the SCXI-1122 multiplexes the excitation to the upper half of the channels as it advances through the scan list. -#define DAQmx_AI_Excit_ActualVal 0x1883 // Specifies the actual amount of excitation supplied by an internal excitation source. If you read an internal excitation source more precisely with an external device, set this property to the value you read. NI-DAQmx ignores this value for external excitation. When performing shunt calibration, some devices set this property automatically. -#define DAQmx_AI_Excit_DCorAC 0x17FB // Specifies if the excitation supply is DC or AC. +#define +DAQmx_AI_Force_Units 0x2F75 // Specifies in which unit to return force or load measurements from the channel. +#define +DAQmx_AI_Force_IEPESensor_Sensitivity 0x2F81 // Specifies the sensitivity of the IEPE force sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. +#define +DAQmx_AI_Force_IEPESensor_SensitivityUnits 0x2F82 // Specifies the units for Sensitivity. +#define +DAQmx_AI_Pressure_Units 0x2F76 // Specifies in which unit to return pressure measurements from the channel. +#define +DAQmx_AI_Torque_Units 0x2F77 // Specifies in which unit to return torque measurements from the channel. +#define +DAQmx_AI_Bridge_Units 0x2F92 // Specifies in which unit to return voltage ratios from the channel. +#define +DAQmx_AI_Bridge_ElectricalUnits 0x2F87 // Specifies from which electrical unit to scale data. Select the same unit that the sensor data sheet or calibration certificate uses for electrical values. +#define +DAQmx_AI_Bridge_PhysicalUnits 0x2F88 // Specifies to which physical unit to scale electrical data. Select the same unit that the sensor data sheet or calibration certificate uses for physical values. +#define +DAQmx_AI_Bridge_ScaleType 0x2F89 // Specifies the scaling type to use when scaling electrical values from the sensor to physical units. +#define +DAQmx_AI_Bridge_TwoPointLin_First_ElectricalVal 0x2F8A // Specifies the first electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. +#define +DAQmx_AI_Bridge_TwoPointLin_First_PhysicalVal 0x2F8B // Specifies the first physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. +#define +DAQmx_AI_Bridge_TwoPointLin_Second_ElectricalVal 0x2F8C // Specifies the second electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. +#define +DAQmx_AI_Bridge_TwoPointLin_Second_PhysicalVal 0x2F8D // Specifies the second physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. +#define +DAQmx_AI_Bridge_Table_ElectricalVals 0x2F8E // Specifies the array of electrical values that map to the values in Physical Values. Specify this value in the unit indicated by Electrical Units. +#define +DAQmx_AI_Bridge_Table_PhysicalVals 0x2F8F // Specifies the array of physical values that map to the values in Electrical Values. Specify this value in the unit indicated by Physical Units. +#define +DAQmx_AI_Bridge_Poly_ForwardCoeff 0x2F90 // Specifies an array of coefficients for the polynomial that converts electrical values to physical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define +DAQmx_AI_Bridge_Poly_ReverseCoeff 0x2F91 // Specifies an array of coefficients for the polynomial that converts physical values to electrical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define +DAQmx_AI_Charge_Units 0x3112 // Specifies the units to use to return charge measurements from the channel. +#define +DAQmx_AI_Is_TEDS 0x2983 // Indicates if the virtual channel was initialized using a TEDS bitstream from the corresponding physical channel. +#define +DAQmx_AI_TEDS_Units 0x21E0 // Indicates the units defined by TEDS information associated with the channel. +#define +DAQmx_AI_Coupling 0x0064 // Specifies the coupling for the channel. +#define +DAQmx_AI_Impedance 0x0062 // Specifies the input impedance of the channel. +#define +DAQmx_AI_TermCfg 0x1097 // Specifies the terminal configuration for the channel. +#define +DAQmx_AI_InputSrc 0x2198 // Specifies the source of the channel. You can use the signal from the I/O connector or one of several calibration signals. Certain devices have a single calibration signal bus. For these devices, you must specify the same calibration signal for all channels you connect to a calibration signal. +#define +DAQmx_AI_ResistanceCfg 0x1881 // Specifies the resistance configuration for the channel. NI-DAQmx uses this value for any resistance-based measurements, including temperature measurement using a thermistor or RTD. +#define +DAQmx_AI_LeadWireResistance 0x17EE // Specifies in ohms the resistance of the wires that lead to the sensor. +#define +DAQmx_AI_Bridge_Cfg 0x0087 // Specifies the type of Wheatstone bridge connected to the channel. +#define +DAQmx_AI_Bridge_NomResistance 0x17EC // Specifies in ohms the resistance of the bridge while not under load. +#define +DAQmx_AI_Bridge_InitialVoltage 0x17ED // Specifies in volts the output voltage of the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Ratio, NI-DAQmx coerces this property to Initial Bridge Ratio times Actual Excitation Value. This property is set by DAQmx Perform Bridge Offset Nulling Calibration. If you set this property, NI-DAQmx coerces Initial Bridge Ratio... +#define +DAQmx_AI_Bridge_InitialRatio 0x2F86 // Specifies in volts per volt the ratio of output voltage from the bridge to excitation voltage supplied to the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Voltage, NI-DAQmx coerces this property to Initial Bridge Voltage divided by Actual Excitation Value. If you set this property, NI-DAQmx coerces Initial Bridge Volt... +#define +DAQmx_AI_Bridge_ShuntCal_Enable 0x0094 // Specifies whether to enable a shunt calibration switch. Use Shunt Cal Select to select the switch(es) to enable. +#define +DAQmx_AI_Bridge_ShuntCal_Select 0x21D5 // Specifies which shunt calibration switch(es) to enable. Use Shunt Cal Enable to enable the switch(es) you specify with this property. +#define +DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc 0x30CA // Specifies whether to use internal or external shunt when Shunt Cal A is selected. +#define +DAQmx_AI_Bridge_ShuntCal_GainAdjust 0x193F // Specifies the result of a shunt calibration. This property is set by DAQmx Perform Shunt Calibration. NI-DAQmx multiplies data read from the channel by the value of this property. This value should be close to 1.0. +#define +DAQmx_AI_Bridge_ShuntCal_ShuntCalAResistance 0x2F78 // Specifies in ohms the desired value of the internal shunt calibration A resistor. +#define +DAQmx_AI_Bridge_ShuntCal_ShuntCalAActualResistance 0x2F79 // Specifies in ohms the actual value of the internal shunt calibration A resistor. +#define +DAQmx_AI_Bridge_ShuntCal_ShuntCalBResistance 0x2F7A // Specifies in ohms the desired value of the internal shunt calibration B resistor. +#define +DAQmx_AI_Bridge_ShuntCal_ShuntCalBActualResistance 0x2F7B // Specifies in ohms the actual value of the internal shunt calibration B resistor. +#define +DAQmx_AI_Bridge_Balance_CoarsePot 0x17F1 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 127. +#define +DAQmx_AI_Bridge_Balance_FinePot 0x18F4 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 4095. +#define +DAQmx_AI_CurrentShunt_Loc 0x17F2 // Specifies the shunt resistor location for current measurements. +#define +DAQmx_AI_CurrentShunt_Resistance 0x17F3 // Specifies in ohms the external shunt resistance for current measurements. +#define +DAQmx_AI_Excit_Sense 0x30FD // Specifies whether to use local or remote sense to sense excitation. +#define +DAQmx_AI_Excit_Src 0x17F4 // Specifies the source of excitation. +#define +DAQmx_AI_Excit_Val 0x17F5 // Specifies the amount of excitation that the sensor requires. If Voltage or Current is DAQmx_Val_Voltage, this value is in volts. If Voltage or Current is DAQmx_Val_Current, this value is in amperes. +#define +DAQmx_AI_Excit_UseForScaling 0x17FC // Specifies if NI-DAQmx divides the measurement by the excitation. You should typically set this property to TRUE for ratiometric transducers. If you set this property to TRUE, set Maximum Value and Minimum Value to reflect the scaling. +#define +DAQmx_AI_Excit_UseMultiplexed 0x2180 // Specifies if the SCXI-1122 multiplexes the excitation to the upper half of the channels as it advances through the scan list. +#define +DAQmx_AI_Excit_ActualVal 0x1883 // Specifies the actual amount of excitation supplied by an internal excitation source. If you read an internal excitation source more precisely with an external device, set this property to the value you read. NI-DAQmx ignores this value for external excitation. When performing shunt calibration, some devices set this property automatically. +#define +DAQmx_AI_Excit_DCorAC 0x17FB // Specifies if the excitation supply is DC or AC. #define DAQmx_AI_Excit_VoltageOrCurrent 0x17F6 // Specifies if the channel uses current or voltage excitation. -#define DAQmx_AI_Excit_IdleOutputBehavior 0x30B8 // Specifies whether this channel will disable excitation after the task is uncommitted. Setting this to Zero Volts or Amps disables excitation after task uncommit. Setting this attribute to Maintain Existing Value leaves the excitation on after task uncommit. -#define DAQmx_AI_ACExcit_Freq 0x0101 // Specifies the AC excitation frequency in Hertz. -#define DAQmx_AI_ACExcit_SyncEnable 0x0102 // Specifies whether to synchronize the AC excitation source of the channel to that of another channel. Synchronize the excitation sources of multiple channels to use multichannel sensors. Set this property to FALSE for the master channel and to TRUE for the slave channels. -#define DAQmx_AI_ACExcit_WireMode 0x18CD // Specifies the number of leads on the LVDT or RVDT. Some sensors require you to tie leads together to configure a four- or five- wire sensor. Refer to the sensor documentation for more information. -#define DAQmx_AI_SensorPower_Voltage 0x3169 // Specifies the voltage level for the sensor's power supply. -#define DAQmx_AI_SensorPower_Cfg 0x316A // Specifies whether to turn on the sensor's power supply or to leave the configuration unchanged. -#define DAQmx_AI_SensorPower_Type 0x316B // Specifies the type of power supplied to the sensor. -#define DAQmx_AI_OpenThrmcplDetectEnable 0x2F72 // Specifies whether to apply the open thermocouple detection bias voltage to the channel. Changing the value of this property on a channel may require settling time before the data returned is valid. To compensate for this settling time, discard unsettled data or add a delay between committing and starting the task. Refer to your device specifications for the required settling time. When open thermocouple detection ... -#define DAQmx_AI_Thrmcpl_LeadOffsetVoltage 0x2FB8 // Specifies the lead offset nulling voltage to subtract from measurements on a device. This property is ignored if open thermocouple detection is disabled. -#define DAQmx_AI_Atten 0x1801 // Specifies the amount of attenuation to use. -#define DAQmx_AI_ProbeAtten 0x2A88 // Specifies the amount of attenuation provided by the probe connected to the channel. Specify this attenuation as a ratio. -#define DAQmx_AI_Lowpass_Enable 0x1802 // Specifies whether to enable the lowpass filter of the channel. -#define DAQmx_AI_Lowpass_CutoffFreq 0x1803 // Specifies the frequency in Hertz that corresponds to the -3dB cutoff of the filter. -#define DAQmx_AI_Lowpass_SwitchCap_ClkSrc 0x1884 // Specifies the source of the filter clock. If you need a higher resolution for the filter, you can supply an external clock to increase the resolution. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define DAQmx_AI_Lowpass_SwitchCap_ExtClkFreq 0x1885 // Specifies the frequency of the external clock when you set Clock Source to DAQmx_Val_External. NI-DAQmx uses this frequency to set the pre- and post- filters on the SCXI-1141, SCXI-1142, and SCXI-1143. On those devices, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more... -#define DAQmx_AI_Lowpass_SwitchCap_ExtClkDiv 0x1886 // Specifies the divisor for the external clock when you set Clock Source to DAQmx_Val_External. On the SCXI-1141, SCXI-1142, and SCXI-1143, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define DAQmx_AI_Lowpass_SwitchCap_OutClkDiv 0x1887 // Specifies the divisor for the output clock. NI-DAQmx uses the cutoff frequency to determine the output clock frequency. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define DAQmx_AI_DigFltr_Enable 0x30BD // Specifies whether the digital filter is enabled or disabled. -#define DAQmx_AI_DigFltr_Type 0x30BE // Specifies the digital filter type. -#define DAQmx_AI_DigFltr_Response 0x30BF // Specifies the digital filter response. -#define DAQmx_AI_DigFltr_Order 0x30C0 // Specifies the order of the digital filter. -#define DAQmx_AI_DigFltr_Lowpass_CutoffFreq 0x30C1 // Specifies the lowpass cutoff frequency of the digital filter. -#define DAQmx_AI_DigFltr_Highpass_CutoffFreq 0x30C2 // Specifies the highpass cutoff frequency of the digital filter. -#define DAQmx_AI_DigFltr_Bandpass_CenterFreq 0x30C3 // Specifies the center frequency of the passband for the digital filter. -#define DAQmx_AI_DigFltr_Bandpass_Width 0x30C4 // Specifies the width of the passband centered around the center frequency for the digital filter. -#define DAQmx_AI_DigFltr_Notch_CenterFreq 0x30C5 // Specifies the center frequency of the stopband for the digital filter. -#define DAQmx_AI_DigFltr_Notch_Width 0x30C6 // Specifies the width of the stopband centered around the center frequency for the digital filter. -#define DAQmx_AI_DigFltr_Coeff 0x30C7 // Specifies the digital filter coefficients. -#define DAQmx_AI_Filter_Enable 0x3173 // Specifies the corresponding filter enable/disable state. -#define DAQmx_AI_Filter_Freq 0x3174 // Specifies the corresponding filter frequency (cutoff or center) of the filter response. -#define DAQmx_AI_Filter_Response 0x3175 // Specifies the corresponding filter response and defines the shape of the filter response. -#define DAQmx_AI_Filter_Order 0x3176 // Specifies the corresponding filter order and defines the slope of the filter response. -#define DAQmx_AI_FilterDelay 0x2FED // Indicates the amount of time between when the ADC samples data and when the sample is read by the host device. This value is in the units you specify with Filter Delay Units. You can adjust this amount of time using Filter Delay Adjustment. -#define DAQmx_AI_FilterDelayUnits 0x3071 // Specifies the units of Filter Delay and Filter Delay Adjustment. -#define DAQmx_AI_RemoveFilterDelay 0x2FBD // Specifies if filter delay removal is enabled on the device. -#define DAQmx_AI_FilterDelayAdjustment 0x3074 // Specifies the amount of filter delay that gets removed if Remove Filter Delay is enabled. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. -#define DAQmx_AI_AveragingWinSize 0x2FEE // Specifies the number of samples to average while acquiring data. Increasing the number of samples to average reduces noise in your measurement. -#define DAQmx_AI_ResolutionUnits 0x1764 // Indicates the units of Resolution Value. -#define DAQmx_AI_Resolution 0x1765 // Indicates the resolution of the analog-to-digital converter of the channel. This value is in the units you specify with Resolution Units. -#define DAQmx_AI_RawSampSize 0x22DA // Indicates in bits the size of a raw sample from the device. -#define DAQmx_AI_RawSampJustification 0x0050 // Indicates the justification of a raw sample from the device. -#define DAQmx_AI_ADCTimingMode 0x29F9 // Specifies the ADC timing mode, controlling the tradeoff between speed and effective resolution. Some ADC timing modes provide increased powerline noise rejection. On devices that have an AI Convert clock, this setting affects both the maximum and default values for Rate. You must use the same ADC timing mode for all channels on a device, but you can use different ADC timing modes for different devices in the same ... -#define DAQmx_AI_ADCCustomTimingMode 0x2F6B // Specifies the timing mode of the ADC when Timing Mode is DAQmx_Val_Custom. -#define DAQmx_AI_Dither_Enable 0x0068 // Specifies whether to enable dithering. Dithering adds Gaussian noise to the input signal. You can use dithering to achieve higher resolution measurements by over sampling the input signal and averaging the results. -#define DAQmx_AI_ChanCal_HasValidCalInfo 0x2297 // Indicates if the channel has calibration information. -#define DAQmx_AI_ChanCal_EnableCal 0x2298 // Specifies whether to enable the channel calibration associated with the channel. -#define DAQmx_AI_ChanCal_ApplyCalIfExp 0x2299 // Specifies whether to apply the channel calibration to the channel after the expiration date has passed. -#define DAQmx_AI_ChanCal_ScaleType 0x229C // Specifies the method or equation form that the calibration scale uses. -#define DAQmx_AI_ChanCal_Table_PreScaledVals 0x229D // Specifies the reference values collected when calibrating the channel. +#define +DAQmx_AI_Excit_IdleOutputBehavior 0x30B8 // Specifies whether this channel will disable excitation after the task is uncommitted. Setting this to Zero Volts or Amps disables excitation after task uncommit. Setting this attribute to Maintain Existing Value leaves the excitation on after task uncommit. +#define +DAQmx_AI_ACExcit_Freq 0x0101 // Specifies the AC excitation frequency in Hertz. +#define +DAQmx_AI_ACExcit_SyncEnable 0x0102 // Specifies whether to synchronize the AC excitation source of the channel to that of another channel. Synchronize the excitation sources of multiple channels to use multichannel sensors. Set this property to FALSE for the master channel and to TRUE for the slave channels. +#define +DAQmx_AI_ACExcit_WireMode 0x18CD // Specifies the number of leads on the LVDT or RVDT. Some sensors require you to tie leads together to configure a four- or five- wire sensor. Refer to the sensor documentation for more information. +#define +DAQmx_AI_SensorPower_Voltage 0x3169 // Specifies the voltage level for the sensor's power supply. +#define +DAQmx_AI_SensorPower_Cfg 0x316A // Specifies whether to turn on the sensor's power supply or to leave the configuration unchanged. +#define +DAQmx_AI_SensorPower_Type 0x316B // Specifies the type of power supplied to the sensor. +#define +DAQmx_AI_OpenThrmcplDetectEnable 0x2F72 // Specifies whether to apply the open thermocouple detection bias voltage to the channel. Changing the value of this property on a channel may require settling time before the data returned is valid. To compensate for this settling time, discard unsettled data or add a delay between committing and starting the task. Refer to your device specifications for the required settling time. When open thermocouple detection ... +#define +DAQmx_AI_Thrmcpl_LeadOffsetVoltage 0x2FB8 // Specifies the lead offset nulling voltage to subtract from measurements on a device. This property is ignored if open thermocouple detection is disabled. +#define +DAQmx_AI_Atten 0x1801 // Specifies the amount of attenuation to use. +#define +DAQmx_AI_ProbeAtten 0x2A88 // Specifies the amount of attenuation provided by the probe connected to the channel. Specify this attenuation as a ratio. +#define +DAQmx_AI_Lowpass_Enable 0x1802 // Specifies whether to enable the lowpass filter of the channel. +#define +DAQmx_AI_Lowpass_CutoffFreq 0x1803 // Specifies the frequency in Hertz that corresponds to the -3dB cutoff of the filter. +#define +DAQmx_AI_Lowpass_SwitchCap_ClkSrc 0x1884 // Specifies the source of the filter clock. If you need a higher resolution for the filter, you can supply an external clock to increase the resolution. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define +DAQmx_AI_Lowpass_SwitchCap_ExtClkFreq 0x1885 // Specifies the frequency of the external clock when you set Clock Source to DAQmx_Val_External. NI-DAQmx uses this frequency to set the pre- and post- filters on the SCXI-1141, SCXI-1142, and SCXI-1143. On those devices, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more... +#define +DAQmx_AI_Lowpass_SwitchCap_ExtClkDiv 0x1886 // Specifies the divisor for the external clock when you set Clock Source to DAQmx_Val_External. On the SCXI-1141, SCXI-1142, and SCXI-1143, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define +DAQmx_AI_Lowpass_SwitchCap_OutClkDiv 0x1887 // Specifies the divisor for the output clock. NI-DAQmx uses the cutoff frequency to determine the output clock frequency. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define +DAQmx_AI_DigFltr_Enable 0x30BD // Specifies whether the digital filter is enabled or disabled. +#define +DAQmx_AI_DigFltr_Type 0x30BE // Specifies the digital filter type. +#define +DAQmx_AI_DigFltr_Response 0x30BF // Specifies the digital filter response. +#define +DAQmx_AI_DigFltr_Order 0x30C0 // Specifies the order of the digital filter. +#define +DAQmx_AI_DigFltr_Lowpass_CutoffFreq 0x30C1 // Specifies the lowpass cutoff frequency of the digital filter. +#define +DAQmx_AI_DigFltr_Highpass_CutoffFreq 0x30C2 // Specifies the highpass cutoff frequency of the digital filter. +#define +DAQmx_AI_DigFltr_Bandpass_CenterFreq 0x30C3 // Specifies the center frequency of the passband for the digital filter. +#define +DAQmx_AI_DigFltr_Bandpass_Width 0x30C4 // Specifies the width of the passband centered around the center frequency for the digital filter. +#define +DAQmx_AI_DigFltr_Notch_CenterFreq 0x30C5 // Specifies the center frequency of the stopband for the digital filter. +#define +DAQmx_AI_DigFltr_Notch_Width 0x30C6 // Specifies the width of the stopband centered around the center frequency for the digital filter. +#define +DAQmx_AI_DigFltr_Coeff 0x30C7 // Specifies the digital filter coefficients. +#define +DAQmx_AI_Filter_Enable 0x3173 // Specifies the corresponding filter enable/disable state. +#define +DAQmx_AI_Filter_Freq 0x3174 // Specifies the corresponding filter frequency (cutoff or center) of the filter response. +#define +DAQmx_AI_Filter_Response 0x3175 // Specifies the corresponding filter response and defines the shape of the filter response. +#define +DAQmx_AI_Filter_Order 0x3176 // Specifies the corresponding filter order and defines the slope of the filter response. +#define +DAQmx_AI_FilterDelay 0x2FED // Indicates the amount of time between when the ADC samples data and when the sample is read by the host device. This value is in the units you specify with Filter Delay Units. You can adjust this amount of time using Filter Delay Adjustment. +#define +DAQmx_AI_FilterDelayUnits 0x3071 // Specifies the units of Filter Delay and Filter Delay Adjustment. +#define +DAQmx_AI_RemoveFilterDelay 0x2FBD // Specifies if filter delay removal is enabled on the device. +#define +DAQmx_AI_FilterDelayAdjustment 0x3074 // Specifies the amount of filter delay that gets removed if Remove Filter Delay is enabled. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. +#define +DAQmx_AI_AveragingWinSize 0x2FEE // Specifies the number of samples to average while acquiring data. Increasing the number of samples to average reduces noise in your measurement. +#define +DAQmx_AI_ResolutionUnits 0x1764 // Indicates the units of Resolution Value. +#define +DAQmx_AI_Resolution 0x1765 // Indicates the resolution of the analog-to-digital converter of the channel. This value is in the units you specify with Resolution Units. +#define +DAQmx_AI_RawSampSize 0x22DA // Indicates in bits the size of a raw sample from the device. +#define +DAQmx_AI_RawSampJustification 0x0050 // Indicates the justification of a raw sample from the device. +#define +DAQmx_AI_ADCTimingMode 0x29F9 // Specifies the ADC timing mode, controlling the tradeoff between speed and effective resolution. Some ADC timing modes provide increased powerline noise rejection. On devices that have an AI Convert clock, this setting affects both the maximum and default values for Rate. You must use the same ADC timing mode for all channels on a device, but you can use different ADC timing modes for different devices in the same ... +#define +DAQmx_AI_ADCCustomTimingMode 0x2F6B // Specifies the timing mode of the ADC when Timing Mode is DAQmx_Val_Custom. +#define +DAQmx_AI_Dither_Enable 0x0068 // Specifies whether to enable dithering. Dithering adds Gaussian noise to the input signal. You can use dithering to achieve higher resolution measurements by over sampling the input signal and averaging the results. +#define +DAQmx_AI_ChanCal_HasValidCalInfo 0x2297 // Indicates if the channel has calibration information. +#define +DAQmx_AI_ChanCal_EnableCal 0x2298 // Specifies whether to enable the channel calibration associated with the channel. +#define +DAQmx_AI_ChanCal_ApplyCalIfExp 0x2299 // Specifies whether to apply the channel calibration to the channel after the expiration date has passed. +#define +DAQmx_AI_ChanCal_ScaleType 0x229C // Specifies the method or equation form that the calibration scale uses. +#define +DAQmx_AI_ChanCal_Table_PreScaledVals 0x229D // Specifies the reference values collected when calibrating the channel. #define DAQmx_AI_ChanCal_Table_ScaledVals 0x229E // Specifies the acquired values collected when calibrating the channel. -#define DAQmx_AI_ChanCal_Poly_ForwardCoeff 0x229F // Specifies the forward polynomial values used for calibrating the channel. -#define DAQmx_AI_ChanCal_Poly_ReverseCoeff 0x22A0 // Specifies the reverse polynomial values used for calibrating the channel. -#define DAQmx_AI_ChanCal_OperatorName 0x22A3 // Specifies the name of the operator who performed the channel calibration. -#define DAQmx_AI_ChanCal_Desc 0x22A4 // Specifies the description entered for the calibration of the channel. -#define DAQmx_AI_ChanCal_Verif_RefVals 0x22A1 // Specifies the reference values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. -#define DAQmx_AI_ChanCal_Verif_AcqVals 0x22A2 // Specifies the acquired values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. -#define DAQmx_AI_Rng_High 0x1815 // Specifies the upper limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define DAQmx_AI_Rng_Low 0x1816 // Specifies the lower limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define DAQmx_AI_DCOffset 0x2A89 // Specifies the DC value to add to the input range of the device. Use High and Low to specify the input range. This offset is in the native units of the device . -#define DAQmx_AI_Gain 0x1818 // Specifies a gain factor to apply to the channel. -#define DAQmx_AI_SampAndHold_Enable 0x181A // Specifies whether to enable the sample and hold circuitry of the device. When you disable sample and hold circuitry, a small voltage offset might be introduced into the signal. You can eliminate this offset by using Auto Zero Mode to perform an auto zero on the channel. -#define DAQmx_AI_AutoZeroMode 0x1760 // Specifies how often to measure ground. NI-DAQmx subtracts the measured ground voltage from every sample. -#define DAQmx_AI_ChopEnable 0x3143 // Specifies whether the device will chop its inputs. Chopping removes offset voltages and other low frequency errors. -#define DAQmx_AI_DataXferMaxRate 0x3117 // Specifies the sample_rate in B/s to transfer data from the device. If this value is not set, then the device will transfer data at a sample_rate based on the bus detected. Modify this value to affect performance under different combinations of operating system, configuration, and device. -#define DAQmx_AI_DataXferMech 0x1821 // Specifies the data transfer mode for the device. -#define DAQmx_AI_DataXferReqCond 0x188B // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define DAQmx_AI_DataXferCustomThreshold 0x230C // Specifies the number of samples that must be in the FIFO to transfer data from the device if Data Transfer Request Condition is DAQmx_Val_OnbrdMemCustomThreshold. -#define DAQmx_AI_UsbXferReqSize 0x2A8E // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_AI_UsbXferReqCount 0x3000 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_AI_MemMapEnable 0x188C // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_AI_RawDataCompressionType 0x22D8 // Specifies the type of compression to apply to raw samples returned from the device. -#define DAQmx_AI_LossyLSBRemoval_CompressedSampSize 0x22D9 // Specifies the number of bits to return in a raw sample when Raw Data Compression Type is set to DAQmx_Val_LossyLSBRemoval. -#define DAQmx_AI_DevScalingCoeff 0x1930 // Indicates the coefficients of a polynomial equation that NI-DAQmx uses to scale values from the native format of the device to volts. Each element of the array corresponds to a term of the equation. For example, if index two of the array is 4, the third term of the equation is 4x^2. Scaling coefficients do not account for any custom scales or sensors contained by the channel. -#define DAQmx_AI_EnhancedAliasRejectionEnable 0x2294 // Specifies whether to enable enhanced alias rejection. Leave this property set to the default value for most applications. -#define DAQmx_AI_OpenChanDetectEnable 0x30FF // Specifies whether to enable open channel detection. -#define DAQmx_AI_InputLimitsFaultDetect_UpperLimit 0x318C // Specifies the level of the upper limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. -#define DAQmx_AI_InputLimitsFaultDetect_LowerLimit 0x318D // Specifies the level of the lower limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. -#define DAQmx_AI_InputLimitsFaultDetectEnable 0x318E // Specifies whether to enable input limits fault detection. -#define DAQmx_AI_PowerSupplyFaultDetectEnable 0x3191 // Specifies whether to enable power supply fault detection. -#define DAQmx_AI_OvercurrentDetectEnable 0x3194 // Specifies whether to enable overcurrent detection. -#define DAQmx_AO_Max 0x1186 // Specifies the maximum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value larger than the maximum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a smaller value if other task settings restrict the device from generating the desired maximum. -#define DAQmx_AO_Min 0x1187 // Specifies the minimum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value smaller than the minimum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a larger value if other task settings restrict the device from generating the desired minimum. -#define DAQmx_AO_CustomScaleName 0x1188 // Specifies the name of a custom scale for the channel. -#define DAQmx_AO_OutputType 0x1108 // Indicates whether the channel generates voltage, current, or a waveform. -#define DAQmx_AO_Voltage_Units 0x1184 // Specifies in what units to generate voltage on the channel. Write data to the channel in the units you select. -#define DAQmx_AO_Voltage_CurrentLimit 0x2A1D // Specifies the current limit, in amperes, for the voltage channel. -#define DAQmx_AO_Current_Units 0x1109 // Specifies in what units to generate current on the channel. Write data to the channel in the units you select. -#define DAQmx_AO_FuncGen_Type 0x2A18 // Specifies the kind of the waveform to generate. -#define DAQmx_AO_FuncGen_Freq 0x2A19 // Specifies the frequency of the waveform to generate in hertz. -#define DAQmx_AO_FuncGen_Amplitude 0x2A1A // Specifies the zero-to-peak amplitude of the waveform to generate in volts. Zero and negative values are valid. -#define DAQmx_AO_FuncGen_Offset 0x2A1B // Specifies the voltage offset of the waveform to generate. -#define DAQmx_AO_FuncGen_Square_DutyCycle 0x2A1C // Specifies the square wave duty cycle of the waveform to generate. -#define DAQmx_AO_FuncGen_ModulationType 0x2A22 // Specifies if the device generates a modulated version of the waveform using the original waveform as a carrier and input from an external terminal as the signal. -#define DAQmx_AO_FuncGen_FMDeviation 0x2A23 // Specifies the FM deviation in hertz per volt when Type is DAQmx_Val_FM. -#define DAQmx_AO_OutputImpedance 0x1490 // Specifies in ohms the impedance of the analog output stage of the device. -#define DAQmx_AO_LoadImpedance 0x0121 // Specifies in ohms the load impedance connected to the analog output channel. -#define DAQmx_AO_IdleOutputBehavior 0x2240 // Specifies the state of the channel when no generation is in progress. -#define DAQmx_AO_TermCfg 0x188E // Specifies the terminal configuration of the channel. -#define DAQmx_AO_ResolutionUnits 0x182B // Specifies the units of Resolution Value. +#define +DAQmx_AI_ChanCal_Poly_ForwardCoeff 0x229F // Specifies the forward polynomial values used for calibrating the channel. +#define +DAQmx_AI_ChanCal_Poly_ReverseCoeff 0x22A0 // Specifies the reverse polynomial values used for calibrating the channel. +#define +DAQmx_AI_ChanCal_OperatorName 0x22A3 // Specifies the name of the operator who performed the channel calibration. +#define +DAQmx_AI_ChanCal_Desc 0x22A4 // Specifies the description entered for the calibration of the channel. +#define +DAQmx_AI_ChanCal_Verif_RefVals 0x22A1 // Specifies the reference values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. +#define +DAQmx_AI_ChanCal_Verif_AcqVals 0x22A2 // Specifies the acquired values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. +#define +DAQmx_AI_Rng_High 0x1815 // Specifies the upper limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define +DAQmx_AI_Rng_Low 0x1816 // Specifies the lower limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define +DAQmx_AI_DCOffset 0x2A89 // Specifies the DC value to add to the input range of the device. Use High and Low to specify the input range. This offset is in the native units of the device . +#define +DAQmx_AI_Gain 0x1818 // Specifies a gain factor to apply to the channel. +#define +DAQmx_AI_SampAndHold_Enable 0x181A // Specifies whether to enable the sample and hold circuitry of the device. When you disable sample and hold circuitry, a small voltage offset might be introduced into the signal. You can eliminate this offset by using Auto Zero Mode to perform an auto zero on the channel. +#define +DAQmx_AI_AutoZeroMode 0x1760 // Specifies how often to measure ground. NI-DAQmx subtracts the measured ground voltage from every sample. +#define +DAQmx_AI_ChopEnable 0x3143 // Specifies whether the device will chop its inputs. Chopping removes offset voltages and other low frequency errors. +#define +DAQmx_AI_DataXferMaxRate 0x3117 // Specifies the sample_rate in B/s to transfer data from the device. If this value is not set, then the device will transfer data at a sample_rate based on the bus detected. Modify this value to affect performance under different combinations of operating system, configuration, and device. +#define +DAQmx_AI_DataXferMech 0x1821 // Specifies the data transfer mode for the device. +#define +DAQmx_AI_DataXferReqCond 0x188B // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define +DAQmx_AI_DataXferCustomThreshold 0x230C // Specifies the number of samples that must be in the FIFO to transfer data from the device if Data Transfer Request Condition is DAQmx_Val_OnbrdMemCustomThreshold. +#define +DAQmx_AI_UsbXferReqSize 0x2A8E // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_AI_UsbXferReqCount 0x3000 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_AI_MemMapEnable 0x188C // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_AI_RawDataCompressionType 0x22D8 // Specifies the type of compression to apply to raw samples returned from the device. +#define +DAQmx_AI_LossyLSBRemoval_CompressedSampSize 0x22D9 // Specifies the number of bits to return in a raw sample when Raw Data Compression Type is set to DAQmx_Val_LossyLSBRemoval. +#define +DAQmx_AI_DevScalingCoeff 0x1930 // Indicates the coefficients of a polynomial equation that NI-DAQmx uses to scale values from the native format of the device to volts. Each element of the array corresponds to a term of the equation. For example, if index two of the array is 4, the third term of the equation is 4x^2. Scaling coefficients do not account for any custom scales or sensors contained by the channel. +#define +DAQmx_AI_EnhancedAliasRejectionEnable 0x2294 // Specifies whether to enable enhanced alias rejection. Leave this property set to the default value for most applications. +#define +DAQmx_AI_OpenChanDetectEnable 0x30FF // Specifies whether to enable open channel detection. +#define +DAQmx_AI_InputLimitsFaultDetect_UpperLimit 0x318C // Specifies the level of the upper limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. +#define +DAQmx_AI_InputLimitsFaultDetect_LowerLimit 0x318D // Specifies the level of the lower limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. +#define +DAQmx_AI_InputLimitsFaultDetectEnable 0x318E // Specifies whether to enable input limits fault detection. +#define +DAQmx_AI_PowerSupplyFaultDetectEnable 0x3191 // Specifies whether to enable power supply fault detection. +#define +DAQmx_AI_OvercurrentDetectEnable 0x3194 // Specifies whether to enable overcurrent detection. +#define +DAQmx_AO_Max 0x1186 // Specifies the maximum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value larger than the maximum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a smaller value if other task settings restrict the device from generating the desired maximum. +#define +DAQmx_AO_Min 0x1187 // Specifies the minimum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value smaller than the minimum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a larger value if other task settings restrict the device from generating the desired minimum. +#define +DAQmx_AO_CustomScaleName 0x1188 // Specifies the name of a custom scale for the channel. +#define +DAQmx_AO_OutputType 0x1108 // Indicates whether the channel generates voltage, current, or a waveform. +#define +DAQmx_AO_Voltage_Units 0x1184 // Specifies in what units to generate voltage on the channel. Write data to the channel in the units you select. +#define +DAQmx_AO_Voltage_CurrentLimit 0x2A1D // Specifies the current limit, in amperes, for the voltage channel. +#define +DAQmx_AO_Current_Units 0x1109 // Specifies in what units to generate current on the channel. Write data to the channel in the units you select. +#define +DAQmx_AO_FuncGen_Type 0x2A18 // Specifies the kind of the waveform to generate. +#define +DAQmx_AO_FuncGen_Freq 0x2A19 // Specifies the frequency of the waveform to generate in hertz. +#define +DAQmx_AO_FuncGen_Amplitude 0x2A1A // Specifies the zero-to-peak amplitude of the waveform to generate in volts. Zero and negative values are valid. +#define +DAQmx_AO_FuncGen_Offset 0x2A1B // Specifies the voltage offset of the waveform to generate. +#define +DAQmx_AO_FuncGen_Square_DutyCycle 0x2A1C // Specifies the square wave duty cycle of the waveform to generate. +#define +DAQmx_AO_FuncGen_ModulationType 0x2A22 // Specifies if the device generates a modulated version of the waveform using the original waveform as a carrier and input from an external terminal as the signal. +#define +DAQmx_AO_FuncGen_FMDeviation 0x2A23 // Specifies the FM deviation in hertz per volt when Type is DAQmx_Val_FM. +#define +DAQmx_AO_OutputImpedance 0x1490 // Specifies in ohms the impedance of the analog output stage of the device. +#define +DAQmx_AO_LoadImpedance 0x0121 // Specifies in ohms the load impedance connected to the analog output channel. +#define +DAQmx_AO_IdleOutputBehavior 0x2240 // Specifies the state of the channel when no generation is in progress. +#define +DAQmx_AO_TermCfg 0x188E // Specifies the terminal configuration of the channel. +#define +DAQmx_AO_ResolutionUnits 0x182B // Specifies the units of Resolution Value. #define DAQmx_AO_Resolution 0x182C // Indicates the resolution of the digital-to-analog converter of the channel. This value is in the units you specify with Resolution Units. -#define DAQmx_AO_DAC_Rng_High 0x182E // Specifies the upper limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define DAQmx_AO_DAC_Rng_Low 0x182D // Specifies the lower limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define DAQmx_AO_DAC_Ref_ConnToGnd 0x0130 // Specifies whether to ground the internal DAC reference. Grounding the internal DAC reference has the effect of grounding all analog output channels and stopping waveform generation across all analog output channels regardless of whether the channels belong to the current task. You can ground the internal DAC reference only when Source is DAQmx_Val_Internal and Allow Connecting DAC Reference to Ground at Runtime is... -#define DAQmx_AO_DAC_Ref_AllowConnToGnd 0x1830 // Specifies whether to allow grounding the internal DAC reference at run time. You must set this property to TRUE and set Source to DAQmx_Val_Internal before you can set Connect DAC Reference to Ground to TRUE. -#define DAQmx_AO_DAC_Ref_Src 0x0132 // Specifies the source of the DAC reference voltage. The value of this voltage source determines the full-scale value of the DAC. -#define DAQmx_AO_DAC_Ref_ExtSrc 0x2252 // Specifies the source of the DAC reference voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. -#define DAQmx_AO_DAC_Ref_Val 0x1832 // Specifies in volts the value of the DAC reference voltage. This voltage determines the full-scale range of the DAC. Smaller reference voltages result in smaller ranges, but increased resolution. -#define DAQmx_AO_DAC_Offset_Src 0x2253 // Specifies the source of the DAC offset voltage. The value of this voltage source determines the full-scale value of the DAC. -#define DAQmx_AO_DAC_Offset_ExtSrc 0x2254 // Specifies the source of the DAC offset voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. -#define DAQmx_AO_DAC_Offset_Val 0x2255 // Specifies in volts the value of the DAC offset voltage. To achieve best accuracy, the DAC offset value should be hand calibrated. -#define DAQmx_AO_ReglitchEnable 0x0133 // Specifies whether to enable reglitching. The output of a DAC normally glitches whenever the DAC is updated with a new value. The amount of glitching differs from code to code and is generally largest at major code transitions. Reglitching generates uniform glitch energy at each code transition and provides for more uniform glitches. Uniform glitch energy makes it easier to filter out the noise introduced from g... -#define DAQmx_AO_FilterDelay 0x3075 // Specifies the amount of time between when the sample is written by the host device and when the sample is output by the DAC. This value is in the units you specify with Filter Delay Units. -#define DAQmx_AO_FilterDelayUnits 0x3076 // Specifies the units of Filter Delay and Filter Delay Adjustment. -#define DAQmx_AO_FilterDelayAdjustment 0x3072 // Specifies an additional amount of time to wait between when the sample is written by the host device and when the sample is output by the DAC. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. -#define DAQmx_AO_Gain 0x0118 // Specifies in decibels the gain factor to apply to the channel. -#define DAQmx_AO_UseOnlyOnBrdMem 0x183A // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. -#define DAQmx_AO_DataXferMech 0x0134 // Specifies the data transfer mode for the device. -#define DAQmx_AO_DataXferReqCond 0x183C // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define DAQmx_AO_UsbXferReqSize 0x2A8F // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_AO_UsbXferReqCount 0x3001 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_AO_MemMapEnable 0x188F // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_AO_DevScalingCoeff 0x1931 // Indicates the coefficients of a linear equation that NI-DAQmx uses to scale values from a voltage to the native format of the device. Each element of the array corresponds to a term of the equation. The first element of the array corresponds to the y-intercept, and the second element corresponds to the slope. Scaling coefficients do not account for any custom scales that may be applied to the channel. -#define DAQmx_AO_EnhancedImageRejectionEnable 0x2241 // Specifies whether to enable the DAC interpolation filter. Disable the interpolation filter to improve DAC signal-to-noise ratio at the expense of degraded image rejection. -#define DAQmx_DI_InvertLines 0x0793 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. -#define DAQmx_DI_NumLines 0x2178 // Indicates the number of digital lines in the channel. -#define DAQmx_DI_DigFltr_Enable 0x21D6 // Specifies whether to enable the digital filter for the line(s) or port(s). You can enable the filter on a line-by-line basis. You do not have to enable the filter for all lines in a channel. -#define DAQmx_DI_DigFltr_MinPulseWidth 0x21D7 // Specifies in seconds the minimum pulse width the filter recognizes as a valid high or low state transition. -#define DAQmx_DI_DigFltr_EnableBusMode 0x2EFE // Specifies whether to enable bus mode for digital filtering. If you set this property to TRUE, NI-DAQmx treats all lines that use common filtering settings as a bus. If any line in the bus has jitter, all lines in the bus hold state until the entire bus stabilizes, or until 2 times the minimum pulse width elapses. If you set this property to FALSE, NI-DAQmx filters all lines individually. Jitter in one line does no... -#define DAQmx_DI_DigFltr_TimebaseSrc 0x2ED4 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_DI_DigFltr_TimebaseRate 0x2ED5 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_DI_DigSync_Enable 0x2ED6 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_DI_Tristate 0x1890 // Specifies whether to tristate the lines in the channel. If you set this property to TRUE, NI-DAQmx tristates the lines in the channel. If you set this property to FALSE, NI-DAQmx does not modify the configuration of the lines even if the lines were previously tristated. Set this property to FALSE to read lines in other tasks or to read output-only lines. -#define DAQmx_DI_LogicFamily 0x296D // Specifies the logic family to use for acquisition. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. -#define DAQmx_DI_DataXferMech 0x2263 // Specifies the data transfer mode for the device. -#define DAQmx_DI_DataXferReqCond 0x2264 // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define DAQmx_DI_UsbXferReqSize 0x2A90 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_DI_UsbXferReqCount 0x3002 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_DI_MemMapEnable 0x296A // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_DI_AcquireOn 0x2966 // Specifies on which edge of the sample clock to acquire samples. -#define DAQmx_DO_OutputDriveType 0x1137 // Specifies the drive type for digital output channels. -#define DAQmx_DO_InvertLines 0x1133 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. -#define DAQmx_DO_NumLines 0x2179 // Indicates the number of digital lines in the channel. -#define DAQmx_DO_Tristate 0x18F3 // Specifies whether to stop driving the channel and set it to a high-impedance state. You must commit the task for this setting to take effect. -#define DAQmx_DO_LineStates_StartState 0x2972 // Specifies the state of the lines in a digital output task when the task starts. -#define DAQmx_DO_LineStates_PausedState 0x2967 // Specifies the state of the lines in a digital output task when the task pauses. -#define DAQmx_DO_LineStates_DoneState 0x2968 // Specifies the state of the lines in a digital output task when the task completes execution. -#define DAQmx_DO_LogicFamily 0x296E // Specifies the logic family to use for generation. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. -#define DAQmx_DO_Overcurrent_Limit 0x2A85 // Specifies the current threshold in Amperes for the channel. A value of 0 means the channel observes no limit. Devices can monitor only a finite number of current thresholds simultaneously. If you attempt to monitor additional thresholds, NI-DAQmx returns an error. -#define DAQmx_DO_Overcurrent_AutoReenable 0x2A86 // Specifies whether to automatically reenable channels after they no longer exceed the current limit specified by Current Limit. +#define +DAQmx_AO_DAC_Rng_High 0x182E // Specifies the upper limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define +DAQmx_AO_DAC_Rng_Low 0x182D // Specifies the lower limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define +DAQmx_AO_DAC_Ref_ConnToGnd 0x0130 // Specifies whether to ground the internal DAC reference. Grounding the internal DAC reference has the effect of grounding all analog output channels and stopping waveform generation across all analog output channels regardless of whether the channels belong to the current task. You can ground the internal DAC reference only when Source is DAQmx_Val_Internal and Allow Connecting DAC Reference to Ground at Runtime is... +#define +DAQmx_AO_DAC_Ref_AllowConnToGnd 0x1830 // Specifies whether to allow grounding the internal DAC reference at run time. You must set this property to TRUE and set Source to DAQmx_Val_Internal before you can set Connect DAC Reference to Ground to TRUE. +#define +DAQmx_AO_DAC_Ref_Src 0x0132 // Specifies the source of the DAC reference voltage. The value of this voltage source determines the full-scale value of the DAC. +#define +DAQmx_AO_DAC_Ref_ExtSrc 0x2252 // Specifies the source of the DAC reference voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. +#define +DAQmx_AO_DAC_Ref_Val 0x1832 // Specifies in volts the value of the DAC reference voltage. This voltage determines the full-scale range of the DAC. Smaller reference voltages result in smaller ranges, but increased resolution. +#define +DAQmx_AO_DAC_Offset_Src 0x2253 // Specifies the source of the DAC offset voltage. The value of this voltage source determines the full-scale value of the DAC. +#define +DAQmx_AO_DAC_Offset_ExtSrc 0x2254 // Specifies the source of the DAC offset voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. +#define +DAQmx_AO_DAC_Offset_Val 0x2255 // Specifies in volts the value of the DAC offset voltage. To achieve best accuracy, the DAC offset value should be hand calibrated. +#define +DAQmx_AO_ReglitchEnable 0x0133 // Specifies whether to enable reglitching. The output of a DAC normally glitches whenever the DAC is updated with a new value. The amount of glitching differs from code to code and is generally largest at major code transitions. Reglitching generates uniform glitch energy at each code transition and provides for more uniform glitches. Uniform glitch energy makes it easier to filter out the noise introduced from g... +#define +DAQmx_AO_FilterDelay 0x3075 // Specifies the amount of time between when the sample is written by the host device and when the sample is output by the DAC. This value is in the units you specify with Filter Delay Units. +#define +DAQmx_AO_FilterDelayUnits 0x3076 // Specifies the units of Filter Delay and Filter Delay Adjustment. +#define +DAQmx_AO_FilterDelayAdjustment 0x3072 // Specifies an additional amount of time to wait between when the sample is written by the host device and when the sample is output by the DAC. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. +#define +DAQmx_AO_Gain 0x0118 // Specifies in decibels the gain factor to apply to the channel. +#define +DAQmx_AO_UseOnlyOnBrdMem 0x183A // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. +#define +DAQmx_AO_DataXferMech 0x0134 // Specifies the data transfer mode for the device. +#define +DAQmx_AO_DataXferReqCond 0x183C // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define +DAQmx_AO_UsbXferReqSize 0x2A8F // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_AO_UsbXferReqCount 0x3001 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_AO_MemMapEnable 0x188F // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_AO_DevScalingCoeff 0x1931 // Indicates the coefficients of a linear equation that NI-DAQmx uses to scale values from a voltage to the native format of the device. Each element of the array corresponds to a term of the equation. The first element of the array corresponds to the y-intercept, and the second element corresponds to the slope. Scaling coefficients do not account for any custom scales that may be applied to the channel. +#define +DAQmx_AO_EnhancedImageRejectionEnable 0x2241 // Specifies whether to enable the DAC interpolation filter. Disable the interpolation filter to improve DAC signal-to-noise ratio at the expense of degraded image rejection. +#define +DAQmx_DI_InvertLines 0x0793 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. +#define +DAQmx_DI_NumLines 0x2178 // Indicates the number of digital lines in the channel. +#define +DAQmx_DI_DigFltr_Enable 0x21D6 // Specifies whether to enable the digital filter for the line(s) or port(s). You can enable the filter on a line-by-line basis. You do not have to enable the filter for all lines in a channel. +#define +DAQmx_DI_DigFltr_MinPulseWidth 0x21D7 // Specifies in seconds the minimum pulse width the filter recognizes as a valid high or low state transition. +#define +DAQmx_DI_DigFltr_EnableBusMode 0x2EFE // Specifies whether to enable bus mode for digital filtering. If you set this property to TRUE, NI-DAQmx treats all lines that use common filtering settings as a bus. If any line in the bus has jitter, all lines in the bus hold state until the entire bus stabilizes, or until 2 times the minimum pulse width elapses. If you set this property to FALSE, NI-DAQmx filters all lines individually. Jitter in one line does no... +#define +DAQmx_DI_DigFltr_TimebaseSrc 0x2ED4 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_DI_DigFltr_TimebaseRate 0x2ED5 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_DI_DigSync_Enable 0x2ED6 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_DI_Tristate 0x1890 // Specifies whether to tristate the lines in the channel. If you set this property to TRUE, NI-DAQmx tristates the lines in the channel. If you set this property to FALSE, NI-DAQmx does not modify the configuration of the lines even if the lines were previously tristated. Set this property to FALSE to read lines in other tasks or to read output-only lines. +#define +DAQmx_DI_LogicFamily 0x296D // Specifies the logic family to use for acquisition. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. +#define +DAQmx_DI_DataXferMech 0x2263 // Specifies the data transfer mode for the device. +#define +DAQmx_DI_DataXferReqCond 0x2264 // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define +DAQmx_DI_UsbXferReqSize 0x2A90 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_DI_UsbXferReqCount 0x3002 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_DI_MemMapEnable 0x296A // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_DI_AcquireOn 0x2966 // Specifies on which edge of the sample clock to acquire samples. +#define +DAQmx_DO_OutputDriveType 0x1137 // Specifies the drive type for digital output channels. +#define +DAQmx_DO_InvertLines 0x1133 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. +#define +DAQmx_DO_NumLines 0x2179 // Indicates the number of digital lines in the channel. +#define +DAQmx_DO_Tristate 0x18F3 // Specifies whether to stop driving the channel and set it to a high-impedance state. You must commit the task for this setting to take effect. +#define +DAQmx_DO_LineStates_StartState 0x2972 // Specifies the state of the lines in a digital output task when the task starts. +#define +DAQmx_DO_LineStates_PausedState 0x2967 // Specifies the state of the lines in a digital output task when the task pauses. +#define +DAQmx_DO_LineStates_DoneState 0x2968 // Specifies the state of the lines in a digital output task when the task completes execution. +#define +DAQmx_DO_LogicFamily 0x296E // Specifies the logic family to use for generation. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. +#define +DAQmx_DO_Overcurrent_Limit 0x2A85 // Specifies the current threshold in Amperes for the channel. A value of 0 means the channel observes no limit. Devices can monitor only a finite number of current thresholds simultaneously. If you attempt to monitor additional thresholds, NI-DAQmx returns an error. +#define +DAQmx_DO_Overcurrent_AutoReenable 0x2A86 // Specifies whether to automatically reenable channels after they no longer exceed the current limit specified by Current Limit. #define DAQmx_DO_Overcurrent_ReenablePeriod 0x2A87 // Specifies the delay in seconds between the time a channel no longer exceeds the current limit and the reactivation of that channel, if Automatic Re-enable is TRUE. -#define DAQmx_DO_UseOnlyOnBrdMem 0x2265 // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory after you start the task. Onboard memory includes data FIFOs. -#define DAQmx_DO_DataXferMech 0x2266 // Specifies the data transfer mode for the device. -#define DAQmx_DO_DataXferReqCond 0x2267 // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define DAQmx_DO_UsbXferReqSize 0x2A91 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_DO_UsbXferReqCount 0x3003 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_DO_MemMapEnable 0x296B // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_DO_GenerateOn 0x2969 // Specifies on which edge of the sample clock to generate samples. -#define DAQmx_CI_Max 0x189C // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the hardware can measure with the current settings. -#define DAQmx_CI_Min 0x189D // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the hardware can measure with the current settings. -#define DAQmx_CI_CustomScaleName 0x189E // Specifies the name of a custom scale for the channel. -#define DAQmx_CI_MeasType 0x18A0 // Indicates the measurement to take with the channel. -#define DAQmx_CI_Freq_Units 0x18A1 // Specifies the units to use to return frequency measurements. -#define DAQmx_CI_Freq_Term 0x18A2 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_Freq_TermCfg 0x3097 // Specifies the input terminal configuration. -#define DAQmx_CI_Freq_LogicLvlBehavior 0x3098 // Specifies the logic level behavior on the input line. -#define DAQmx_CI_Freq_DigFltr_Enable 0x21E7 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Freq_DigFltr_MinPulseWidth 0x21E8 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Freq_DigFltr_TimebaseSrc 0x21E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Freq_DigFltr_TimebaseRate 0x21EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Freq_DigSync_Enable 0x21EB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Freq_StartingEdge 0x0799 // Specifies between which edges to measure the frequency of the signal. -#define DAQmx_CI_Freq_MeasMeth 0x0144 // Specifies the method to use to measure the frequency of the signal. -#define DAQmx_CI_Freq_EnableAveraging 0x2ED0 // Specifies whether to enable averaging mode for Sample Clock-timed frequency measurements. -#define DAQmx_CI_Freq_MeasTime 0x0145 // Specifies in seconds the length of time to measure the frequency of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. -#define DAQmx_CI_Freq_Div 0x0147 // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. -#define DAQmx_CI_Period_Units 0x18A3 // Specifies the unit to use to return period measurements. -#define DAQmx_CI_Period_Term 0x18A4 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_Period_TermCfg 0x3099 // Specifies the input terminal configuration. -#define DAQmx_CI_Period_LogicLvlBehavior 0x309A // Specifies the logic level behavior on the input line. -#define DAQmx_CI_Period_DigFltr_Enable 0x21EC // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Period_DigFltr_MinPulseWidth 0x21ED // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Period_DigFltr_TimebaseSrc 0x21EE // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Period_DigFltr_TimebaseRate 0x21EF // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Period_DigSync_Enable 0x21F0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Period_StartingEdge 0x0852 // Specifies between which edges to measure the period of the signal. -#define DAQmx_CI_Period_MeasMeth 0x192C // Specifies the method to use to measure the period of the signal. -#define DAQmx_CI_Period_EnableAveraging 0x2ED1 // Specifies whether to enable averaging mode for Sample Clock-timed period measurements. -#define DAQmx_CI_Period_MeasTime 0x192D // Specifies in seconds the length of time to measure the period of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. -#define DAQmx_CI_Period_Div 0x192E // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. -#define DAQmx_CI_CountEdges_Term 0x18C7 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_CountEdges_TermCfg 0x309B // Specifies the input terminal configuration. -#define DAQmx_CI_CountEdges_LogicLvlBehavior 0x309C // Specifies the logic level behavior on the input line. -#define DAQmx_CI_CountEdges_DigFltr_Enable 0x21F6 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_CountEdges_DigFltr_MinPulseWidth 0x21F7 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_CountEdges_DigFltr_TimebaseSrc 0x21F8 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_CountEdges_DigFltr_TimebaseRate 0x21F9 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_CountEdges_DigSync_Enable 0x21FA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_CountEdges_Dir 0x0696 // Specifies whether to increment or decrement the counter on each edge. -#define DAQmx_CI_CountEdges_DirTerm 0x21E1 // Specifies the source terminal of the digital signal that controls the count direction if Direction is DAQmx_Val_ExtControlled. +#define +DAQmx_DO_UseOnlyOnBrdMem 0x2265 // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory after you start the task. Onboard memory includes data FIFOs. +#define +DAQmx_DO_DataXferMech 0x2266 // Specifies the data transfer mode for the device. +#define +DAQmx_DO_DataXferReqCond 0x2267 // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define +DAQmx_DO_UsbXferReqSize 0x2A91 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_DO_UsbXferReqCount 0x3003 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_DO_MemMapEnable 0x296B // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_DO_GenerateOn 0x2969 // Specifies on which edge of the sample clock to generate samples. +#define +DAQmx_CI_Max 0x189C // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the hardware can measure with the current settings. +#define +DAQmx_CI_Min 0x189D // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the hardware can measure with the current settings. +#define +DAQmx_CI_CustomScaleName 0x189E // Specifies the name of a custom scale for the channel. +#define +DAQmx_CI_MeasType 0x18A0 // Indicates the measurement to take with the channel. +#define +DAQmx_CI_Freq_Units 0x18A1 // Specifies the units to use to return frequency measurements. +#define +DAQmx_CI_Freq_Term 0x18A2 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_Freq_TermCfg 0x3097 // Specifies the input terminal configuration. +#define +DAQmx_CI_Freq_LogicLvlBehavior 0x3098 // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_Freq_DigFltr_Enable 0x21E7 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Freq_DigFltr_MinPulseWidth 0x21E8 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Freq_DigFltr_TimebaseSrc 0x21E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Freq_DigFltr_TimebaseRate 0x21EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Freq_DigSync_Enable 0x21EB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Freq_StartingEdge 0x0799 // Specifies between which edges to measure the frequency of the signal. +#define +DAQmx_CI_Freq_MeasMeth 0x0144 // Specifies the method to use to measure the frequency of the signal. +#define +DAQmx_CI_Freq_EnableAveraging 0x2ED0 // Specifies whether to enable averaging mode for Sample Clock-timed frequency measurements. +#define +DAQmx_CI_Freq_MeasTime 0x0145 // Specifies in seconds the length of time to measure the frequency of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. +#define +DAQmx_CI_Freq_Div 0x0147 // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. +#define +DAQmx_CI_Period_Units 0x18A3 // Specifies the unit to use to return period measurements. +#define +DAQmx_CI_Period_Term 0x18A4 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_Period_TermCfg 0x3099 // Specifies the input terminal configuration. +#define +DAQmx_CI_Period_LogicLvlBehavior 0x309A // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_Period_DigFltr_Enable 0x21EC // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Period_DigFltr_MinPulseWidth 0x21ED // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Period_DigFltr_TimebaseSrc 0x21EE // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Period_DigFltr_TimebaseRate 0x21EF // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Period_DigSync_Enable 0x21F0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Period_StartingEdge 0x0852 // Specifies between which edges to measure the period of the signal. +#define +DAQmx_CI_Period_MeasMeth 0x192C // Specifies the method to use to measure the period of the signal. +#define +DAQmx_CI_Period_EnableAveraging 0x2ED1 // Specifies whether to enable averaging mode for Sample Clock-timed period measurements. +#define +DAQmx_CI_Period_MeasTime 0x192D // Specifies in seconds the length of time to measure the period of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. +#define +DAQmx_CI_Period_Div 0x192E // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. +#define +DAQmx_CI_CountEdges_Term 0x18C7 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_CountEdges_TermCfg 0x309B // Specifies the input terminal configuration. +#define +DAQmx_CI_CountEdges_LogicLvlBehavior 0x309C // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_CountEdges_DigFltr_Enable 0x21F6 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_CountEdges_DigFltr_MinPulseWidth 0x21F7 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_CountEdges_DigFltr_TimebaseSrc 0x21F8 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CountEdges_DigFltr_TimebaseRate 0x21F9 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_CountEdges_DigSync_Enable 0x21FA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_CountEdges_Dir 0x0696 // Specifies whether to increment or decrement the counter on each edge. +#define +DAQmx_CI_CountEdges_DirTerm 0x21E1 // Specifies the source terminal of the digital signal that controls the count direction if Direction is DAQmx_Val_ExtControlled. #define DAQmx_CI_CountEdges_CountDir_TermCfg 0x309D // Specifies the input terminal configuration. -#define DAQmx_CI_CountEdges_CountDir_LogicLvlBehavior 0x309E // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_CountEdges_CountDir_DigFltr_Enable 0x21F1 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_CountEdges_CountDir_DigFltr_MinPulseWidth 0x21F2 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseSrc 0x21F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseRate 0x21F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_CountEdges_CountDir_DigSync_Enable 0x21F5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_CountEdges_InitialCnt 0x0698 // Specifies the starting value from which to count. -#define DAQmx_CI_CountEdges_ActiveEdge 0x0697 // Specifies on which edges to increment or decrement the counter. -#define DAQmx_CI_CountEdges_CountReset_Enable 0x2FAF // Specifies whether to reset the count on the active edge specified with Terminal. -#define DAQmx_CI_CountEdges_CountReset_ResetCount 0x2FB0 // Specifies the value to reset the count to. -#define DAQmx_CI_CountEdges_CountReset_Term 0x2FB1 // Specifies the input terminal of the signal to reset the count. -#define DAQmx_CI_CountEdges_CountReset_TermCfg 0x309F // Specifies the input terminal configuration. -#define DAQmx_CI_CountEdges_CountReset_LogicLvlBehavior 0x30A0 // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_CountEdges_CountReset_DigFltr_Enable 0x2FB3 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_CountEdges_CountReset_DigFltr_MinPulseWidth 0x2FB4 // Specifies the minimum pulse width the filter recognizes. -#define DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseSrc 0x2FB5 // Specifies the input of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseRate 0x2FB6 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_CountEdges_CountReset_DigSync_Enable 0x2FB7 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_CountEdges_CountReset_ActiveEdge 0x2FB2 // Specifies on which edge of the signal to reset the count. -#define DAQmx_CI_CountEdges_Gate_Enable 0x30ED // Specifies whether to enable the functionality to gate the counter input signal for a count edges measurement. -#define DAQmx_CI_CountEdges_Gate_Term 0x30EE // Specifies the gate terminal. -#define DAQmx_CI_CountEdges_Gate_TermCfg 0x30EF // Specifies the gate terminal configuration. -#define DAQmx_CI_CountEdges_Gate_LogicLvlBehavior 0x30F0 // Specifies the logic level behavior on the gate input line. -#define DAQmx_CI_CountEdges_Gate_DigFltrEnable 0x30F1 // Specifies whether to apply the pulse width filter to the gate input signal. -#define DAQmx_CI_CountEdges_Gate_DigFltrMinPulseWidth 0x30F2 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define DAQmx_CI_CountEdges_Gate_DigFltrTimebaseSrc 0x30F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_CountEdges_Gate_DigFltrTimebaseRate 0x30F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_CountEdges_GateWhen 0x30F5 // Specifies whether the counter gates input pulses while the signal is high or low. -#define DAQmx_CI_DutyCycle_Term 0x308D // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_DutyCycle_TermCfg 0x30A1 // Specifies the input terminal configuration. -#define DAQmx_CI_DutyCycle_LogicLvlBehavior 0x30A2 // Specifies the logic level behavior on the input line. -#define DAQmx_CI_DutyCycle_DigFltr_Enable 0x308E // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_DutyCycle_DigFltr_MinPulseWidth 0x308F // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define DAQmx_CI_DutyCycle_DigFltr_TimebaseSrc 0x3090 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_DutyCycle_DigFltr_TimebaseRate 0x3091 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_DutyCycle_StartingEdge 0x3092 // Specifies which edge of the input signal to begin the duty cycle measurement. -#define DAQmx_CI_AngEncoder_Units 0x18A6 // Specifies the units to use to return angular position measurements from the channel. -#define DAQmx_CI_AngEncoder_PulsesPerRev 0x0875 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. -#define DAQmx_CI_AngEncoder_InitialAngle 0x0881 // Specifies the starting angle of the encoder. This value is in the units you specify with Units. -#define DAQmx_CI_LinEncoder_Units 0x18A9 // Specifies the units to use to return linear encoder measurements from the channel. -#define DAQmx_CI_LinEncoder_DistPerPulse 0x0911 // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify with Units. -#define DAQmx_CI_LinEncoder_InitialPos 0x0915 // Specifies the position of the encoder when the measurement begins. This value is in the units you specify with Units. -#define DAQmx_CI_Encoder_DecodingType 0x21E6 // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. DAQmx_Val_X1, DAQmx_Val_X2, and DAQmx_Val_X4 are valid for quadrature encoders only. DAQmx_Val_TwoPulseCounting is valid for two-pulse encoders only. -#define DAQmx_CI_Encoder_AInputTerm 0x219D // Specifies the terminal to which signal A is connected. -#define DAQmx_CI_Encoder_AInputTermCfg 0x30A3 // Specifies the input terminal configuration. -#define DAQmx_CI_Encoder_AInputLogicLvlBehavior 0x30A4 // Specifies the logic level behavior on the input line. -#define DAQmx_CI_Encoder_AInput_DigFltr_Enable 0x21FB // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Encoder_AInput_DigFltr_MinPulseWidth 0x21FC // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Encoder_AInput_DigFltr_TimebaseSrc 0x21FD // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CountEdges_CountDir_LogicLvlBehavior 0x309E // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_CountEdges_CountDir_DigFltr_Enable 0x21F1 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_CountEdges_CountDir_DigFltr_MinPulseWidth 0x21F2 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseSrc 0x21F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseRate 0x21F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_CountEdges_CountDir_DigSync_Enable 0x21F5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_CountEdges_InitialCnt 0x0698 // Specifies the starting value from which to count. +#define +DAQmx_CI_CountEdges_ActiveEdge 0x0697 // Specifies on which edges to increment or decrement the counter. +#define +DAQmx_CI_CountEdges_CountReset_Enable 0x2FAF // Specifies whether to reset the count on the active edge specified with Terminal. +#define +DAQmx_CI_CountEdges_CountReset_ResetCount 0x2FB0 // Specifies the value to reset the count to. +#define +DAQmx_CI_CountEdges_CountReset_Term 0x2FB1 // Specifies the input terminal of the signal to reset the count. +#define +DAQmx_CI_CountEdges_CountReset_TermCfg 0x309F // Specifies the input terminal configuration. +#define +DAQmx_CI_CountEdges_CountReset_LogicLvlBehavior 0x30A0 // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_CountEdges_CountReset_DigFltr_Enable 0x2FB3 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_CountEdges_CountReset_DigFltr_MinPulseWidth 0x2FB4 // Specifies the minimum pulse width the filter recognizes. +#define +DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseSrc 0x2FB5 // Specifies the input of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseRate 0x2FB6 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_CountEdges_CountReset_DigSync_Enable 0x2FB7 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_CountEdges_CountReset_ActiveEdge 0x2FB2 // Specifies on which edge of the signal to reset the count. +#define +DAQmx_CI_CountEdges_Gate_Enable 0x30ED // Specifies whether to enable the functionality to gate the counter input signal for a count edges measurement. +#define +DAQmx_CI_CountEdges_Gate_Term 0x30EE // Specifies the gate terminal. +#define +DAQmx_CI_CountEdges_Gate_TermCfg 0x30EF // Specifies the gate terminal configuration. +#define +DAQmx_CI_CountEdges_Gate_LogicLvlBehavior 0x30F0 // Specifies the logic level behavior on the gate input line. +#define +DAQmx_CI_CountEdges_Gate_DigFltrEnable 0x30F1 // Specifies whether to apply the pulse width filter to the gate input signal. +#define +DAQmx_CI_CountEdges_Gate_DigFltrMinPulseWidth 0x30F2 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define +DAQmx_CI_CountEdges_Gate_DigFltrTimebaseSrc 0x30F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CountEdges_Gate_DigFltrTimebaseRate 0x30F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_CountEdges_GateWhen 0x30F5 // Specifies whether the counter gates input pulses while the signal is high or low. +#define +DAQmx_CI_DutyCycle_Term 0x308D // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_DutyCycle_TermCfg 0x30A1 // Specifies the input terminal configuration. +#define +DAQmx_CI_DutyCycle_LogicLvlBehavior 0x30A2 // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_DutyCycle_DigFltr_Enable 0x308E // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_DutyCycle_DigFltr_MinPulseWidth 0x308F // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define +DAQmx_CI_DutyCycle_DigFltr_TimebaseSrc 0x3090 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_DutyCycle_DigFltr_TimebaseRate 0x3091 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_DutyCycle_StartingEdge 0x3092 // Specifies which edge of the input signal to begin the duty cycle measurement. +#define +DAQmx_CI_AngEncoder_Units 0x18A6 // Specifies the units to use to return angular position measurements from the channel. +#define +DAQmx_CI_AngEncoder_PulsesPerRev 0x0875 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. +#define +DAQmx_CI_AngEncoder_InitialAngle 0x0881 // Specifies the starting angle of the encoder. This value is in the units you specify with Units. +#define +DAQmx_CI_LinEncoder_Units 0x18A9 // Specifies the units to use to return linear encoder measurements from the channel. +#define +DAQmx_CI_LinEncoder_DistPerPulse 0x0911 // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify with Units. +#define +DAQmx_CI_LinEncoder_InitialPos 0x0915 // Specifies the position of the encoder when the measurement begins. This value is in the units you specify with Units. +#define +DAQmx_CI_Encoder_DecodingType 0x21E6 // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. DAQmx_Val_X1, DAQmx_Val_X2, and DAQmx_Val_X4 are valid for quadrature encoders only. DAQmx_Val_TwoPulseCounting is valid for two-pulse encoders only. +#define +DAQmx_CI_Encoder_AInputTerm 0x219D // Specifies the terminal to which signal A is connected. +#define +DAQmx_CI_Encoder_AInputTermCfg 0x30A3 // Specifies the input terminal configuration. +#define +DAQmx_CI_Encoder_AInputLogicLvlBehavior 0x30A4 // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_Encoder_AInput_DigFltr_Enable 0x21FB // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Encoder_AInput_DigFltr_MinPulseWidth 0x21FC // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Encoder_AInput_DigFltr_TimebaseSrc 0x21FD // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. #define DAQmx_CI_Encoder_AInput_DigFltr_TimebaseRate 0x21FE // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Encoder_AInput_DigSync_Enable 0x21FF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Encoder_BInputTerm 0x219E // Specifies the terminal to which signal B is connected. -#define DAQmx_CI_Encoder_BInputTermCfg 0x30A5 // Specifies the input terminal configuration. -#define DAQmx_CI_Encoder_BInputLogicLvlBehavior 0x30A6 // Specifies the logic level behavior on the input line. -#define DAQmx_CI_Encoder_BInput_DigFltr_Enable 0x2200 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Encoder_BInput_DigFltr_MinPulseWidth 0x2201 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Encoder_BInput_DigFltr_TimebaseSrc 0x2202 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Encoder_BInput_DigFltr_TimebaseRate 0x2203 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Encoder_BInput_DigSync_Enable 0x2204 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Encoder_ZInputTerm 0x219F // Specifies the terminal to which signal Z is connected. -#define DAQmx_CI_Encoder_ZInputTermCfg 0x30A7 // Specifies the input terminal configuration. -#define DAQmx_CI_Encoder_ZInputLogicLvlBehavior 0x30A8 // Specifies the logic level behavior on the input line. -#define DAQmx_CI_Encoder_ZInput_DigFltr_Enable 0x2205 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Encoder_ZInput_DigFltr_MinPulseWidth 0x2206 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseSrc 0x2207 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseRate 0x2208 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Encoder_ZInput_DigSync_Enable 0x2209 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Encoder_ZIndexEnable 0x0890 // Specifies whether to use Z indexing for the channel. -#define DAQmx_CI_Encoder_ZIndexVal 0x0888 // Specifies the value to which to reset the measurement when signal Z is high and signal A and signal B are at the states you specify with Z Index Phase. Specify this value in the units of the measurement. -#define DAQmx_CI_Encoder_ZIndexPhase 0x0889 // Specifies the states at which signal A and signal B must be while signal Z is high for NI-DAQmx to reset the measurement. If signal Z is never high while signal A and signal B are high, for example, you must choose a phase other than DAQmx_Val_AHighBHigh. -#define DAQmx_CI_PulseWidth_Units 0x0823 // Specifies the units to use to return pulse width measurements. -#define DAQmx_CI_PulseWidth_Term 0x18AA // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_PulseWidth_TermCfg 0x30A9 // Specifies the input terminal configuration. -#define DAQmx_CI_PulseWidth_LogicLvlBehavior 0x30AA // Specifies the logic level behavior on the input line. -#define DAQmx_CI_PulseWidth_DigFltr_Enable 0x220A // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_PulseWidth_DigFltr_MinPulseWidth 0x220B // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_PulseWidth_DigFltr_TimebaseSrc 0x220C // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_PulseWidth_DigFltr_TimebaseRate 0x220D // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_PulseWidth_DigSync_Enable 0x220E // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_PulseWidth_StartingEdge 0x0825 // Specifies on which edge of the input signal to begin each pulse width measurement. -#define DAQmx_CI_Timestamp_Units 0x22B3 // Specifies the units to use to return timestamp measurements. -#define DAQmx_CI_Timestamp_InitialSeconds 0x22B4 // Specifies the number of seconds that elapsed since the beginning of the current year. This value is ignored if Synchronization Method is DAQmx_Val_IRIGB. -#define DAQmx_CI_GPS_SyncMethod 0x1092 // Specifies the method to use to synchronize the counter to a GPS receiver. -#define DAQmx_CI_GPS_SyncSrc 0x1093 // Specifies the terminal to which the GPS synchronization signal is connected. -#define DAQmx_CI_Velocity_AngEncoder_Units 0x30D8 // Specifies the units to use to return angular velocity counter measurements. -#define DAQmx_CI_Velocity_AngEncoder_PulsesPerRev 0x30D9 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. -#define DAQmx_CI_Velocity_LinEncoder_Units 0x30DA // Specifies the units to use to return linear encoder velocity measurements from the channel. -#define DAQmx_CI_Velocity_LinEncoder_DistPerPulse 0x30DB // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify in CI.Velocity.LinEncoder.DistUnits. -#define DAQmx_CI_Velocity_Encoder_DecodingType 0x30DC // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. X1, X2, and X4 are valid for quadrature encoders only. Two Pulse Counting is valid for two-pulse encoders only. -#define DAQmx_CI_Velocity_Encoder_AInputTerm 0x30DD // Specifies the terminal to which signal A is connected. -#define DAQmx_CI_Velocity_Encoder_AInputTermCfg 0x30DE // Specifies the input terminal configuration. -#define DAQmx_CI_Velocity_Encoder_AInputLogicLvlBehavior 0x30DF // Specifies the logic level behavior of the input terminal. -#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_Enable 0x30E0 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_MinPulseWidth 0x30E1 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseSrc 0x30E2 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseRate 0x30E3 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Velocity_Encoder_BInputTerm 0x30E4 // Specifies the terminal to which signal B is connected. -#define DAQmx_CI_Velocity_Encoder_BInputTermCfg 0x30E5 // Specifies the input terminal configuration. -#define DAQmx_CI_Velocity_Encoder_BInputLogicLvlBehavior 0x30E6 // Specifies the logic level behavior of the input terminal. +#define +DAQmx_CI_Encoder_AInput_DigSync_Enable 0x21FF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Encoder_BInputTerm 0x219E // Specifies the terminal to which signal B is connected. +#define +DAQmx_CI_Encoder_BInputTermCfg 0x30A5 // Specifies the input terminal configuration. +#define +DAQmx_CI_Encoder_BInputLogicLvlBehavior 0x30A6 // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_Encoder_BInput_DigFltr_Enable 0x2200 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Encoder_BInput_DigFltr_MinPulseWidth 0x2201 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Encoder_BInput_DigFltr_TimebaseSrc 0x2202 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Encoder_BInput_DigFltr_TimebaseRate 0x2203 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Encoder_BInput_DigSync_Enable 0x2204 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Encoder_ZInputTerm 0x219F // Specifies the terminal to which signal Z is connected. +#define +DAQmx_CI_Encoder_ZInputTermCfg 0x30A7 // Specifies the input terminal configuration. +#define +DAQmx_CI_Encoder_ZInputLogicLvlBehavior 0x30A8 // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_Encoder_ZInput_DigFltr_Enable 0x2205 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Encoder_ZInput_DigFltr_MinPulseWidth 0x2206 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseSrc 0x2207 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseRate 0x2208 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Encoder_ZInput_DigSync_Enable 0x2209 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Encoder_ZIndexEnable 0x0890 // Specifies whether to use Z indexing for the channel. +#define +DAQmx_CI_Encoder_ZIndexVal 0x0888 // Specifies the value to which to reset the measurement when signal Z is high and signal A and signal B are at the states you specify with Z Index Phase. Specify this value in the units of the measurement. +#define +DAQmx_CI_Encoder_ZIndexPhase 0x0889 // Specifies the states at which signal A and signal B must be while signal Z is high for NI-DAQmx to reset the measurement. If signal Z is never high while signal A and signal B are high, for example, you must choose a phase other than DAQmx_Val_AHighBHigh. +#define +DAQmx_CI_PulseWidth_Units 0x0823 // Specifies the units to use to return pulse width measurements. +#define +DAQmx_CI_PulseWidth_Term 0x18AA // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_PulseWidth_TermCfg 0x30A9 // Specifies the input terminal configuration. +#define +DAQmx_CI_PulseWidth_LogicLvlBehavior 0x30AA // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_PulseWidth_DigFltr_Enable 0x220A // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_PulseWidth_DigFltr_MinPulseWidth 0x220B // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_PulseWidth_DigFltr_TimebaseSrc 0x220C // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_PulseWidth_DigFltr_TimebaseRate 0x220D // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_PulseWidth_DigSync_Enable 0x220E // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_PulseWidth_StartingEdge 0x0825 // Specifies on which edge of the input signal to begin each pulse width measurement. +#define +DAQmx_CI_Timestamp_Units 0x22B3 // Specifies the units to use to return timestamp measurements. +#define +DAQmx_CI_Timestamp_InitialSeconds 0x22B4 // Specifies the number of seconds that elapsed since the beginning of the current year. This value is ignored if Synchronization Method is DAQmx_Val_IRIGB. +#define +DAQmx_CI_GPS_SyncMethod 0x1092 // Specifies the method to use to synchronize the counter to a GPS receiver. +#define +DAQmx_CI_GPS_SyncSrc 0x1093 // Specifies the terminal to which the GPS synchronization signal is connected. +#define +DAQmx_CI_Velocity_AngEncoder_Units 0x30D8 // Specifies the units to use to return angular velocity counter measurements. +#define +DAQmx_CI_Velocity_AngEncoder_PulsesPerRev 0x30D9 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. +#define +DAQmx_CI_Velocity_LinEncoder_Units 0x30DA // Specifies the units to use to return linear encoder velocity measurements from the channel. +#define +DAQmx_CI_Velocity_LinEncoder_DistPerPulse 0x30DB // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify in CI.Velocity.LinEncoder.DistUnits. +#define +DAQmx_CI_Velocity_Encoder_DecodingType 0x30DC // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. X1, X2, and X4 are valid for quadrature encoders only. Two Pulse Counting is valid for two-pulse encoders only. +#define +DAQmx_CI_Velocity_Encoder_AInputTerm 0x30DD // Specifies the terminal to which signal A is connected. +#define +DAQmx_CI_Velocity_Encoder_AInputTermCfg 0x30DE // Specifies the input terminal configuration. +#define +DAQmx_CI_Velocity_Encoder_AInputLogicLvlBehavior 0x30DF // Specifies the logic level behavior of the input terminal. +#define +DAQmx_CI_Velocity_Encoder_AInputDigFltr_Enable 0x30E0 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_Velocity_Encoder_AInputDigFltr_MinPulseWidth 0x30E1 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define +DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseSrc 0x30E2 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseRate 0x30E3 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Velocity_Encoder_BInputTerm 0x30E4 // Specifies the terminal to which signal B is connected. +#define +DAQmx_CI_Velocity_Encoder_BInputTermCfg 0x30E5 // Specifies the input terminal configuration. +#define +DAQmx_CI_Velocity_Encoder_BInputLogicLvlBehavior 0x30E6 // Specifies the logic level behavior of the input terminal. #define DAQmx_CI_Velocity_Encoder_BInputDigFltr_Enable 0x30E7 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_MinPulseWidth 0x30E8 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseSrc 0x30E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseRate 0x30EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Velocity_MeasTime 0x30EB // Specifies in seconds the length of time to measure the velocity of the signal. -#define DAQmx_CI_Velocity_Div 0x30EC // Specifies the value by which to divide the input signal. -#define DAQmx_CI_TwoEdgeSep_Units 0x18AC // Specifies the units to use to return two-edge separation measurements from the channel. -#define DAQmx_CI_TwoEdgeSep_FirstTerm 0x18AD // Specifies the source terminal of the digital signal that starts each measurement. -#define DAQmx_CI_TwoEdgeSep_FirstTermCfg 0x30AB // Specifies the input terminal configuration. -#define DAQmx_CI_TwoEdgeSep_FirstLogicLvlBehavior 0x30AC // Specifies the logic level behavior on the input line. -#define DAQmx_CI_TwoEdgeSep_First_DigFltr_Enable 0x220F // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_TwoEdgeSep_First_DigFltr_MinPulseWidth 0x2210 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseSrc 0x2211 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseRate 0x2212 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_TwoEdgeSep_First_DigSync_Enable 0x2213 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_TwoEdgeSep_FirstEdge 0x0833 // Specifies on which edge of the first signal to start each measurement. -#define DAQmx_CI_TwoEdgeSep_SecondTerm 0x18AE // Specifies the source terminal of the digital signal that stops each measurement. -#define DAQmx_CI_TwoEdgeSep_SecondTermCfg 0x30AD // Specifies the input terminal configuration. -#define DAQmx_CI_TwoEdgeSep_SecondLogicLvlBehavior 0x30AE // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_Enable 0x2214 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_MinPulseWidth 0x2215 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseSrc 0x2216 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseRate 0x2217 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_TwoEdgeSep_Second_DigSync_Enable 0x2218 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_TwoEdgeSep_SecondEdge 0x0834 // Specifies on which edge of the second signal to stop each measurement. -#define DAQmx_CI_SemiPeriod_Units 0x18AF // Specifies the units to use to return semi-period measurements. -#define DAQmx_CI_SemiPeriod_Term 0x18B0 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_SemiPeriod_TermCfg 0x30AF // Specifies the input terminal configuration. -#define DAQmx_CI_SemiPeriod_LogicLvlBehavior 0x30B0 // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_SemiPeriod_DigFltr_Enable 0x2219 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_SemiPeriod_DigFltr_MinPulseWidth 0x221A // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_SemiPeriod_DigFltr_TimebaseSrc 0x221B // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_SemiPeriod_DigFltr_TimebaseRate 0x221C // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_SemiPeriod_DigSync_Enable 0x221D // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_SemiPeriod_StartingEdge 0x22FE // Specifies on which edge of the input signal to begin semi-period measurement. Semi-period measurements alternate between high time and low time, starting on this edge. -#define DAQmx_CI_Pulse_Freq_Units 0x2F0B // Specifies the units to use to return pulse specifications in terms of frequency. -#define DAQmx_CI_Pulse_Freq_Term 0x2F04 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_Pulse_Freq_TermCfg 0x30B1 // Specifies the input terminal configuration. -#define DAQmx_CI_Pulse_Freq_LogicLvlBehavior 0x30B2 // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_Pulse_Freq_DigFltr_Enable 0x2F06 // Specifies whether to apply a digital filter to the signal to measure. -#define DAQmx_CI_Pulse_Freq_DigFltr_MinPulseWidth 0x2F07 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Pulse_Freq_DigFltr_TimebaseSrc 0x2F08 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_CI_Pulse_Freq_DigFltr_TimebaseRate 0x2F09 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Pulse_Freq_DigSync_Enable 0x2F0A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Pulse_Freq_Start_Edge 0x2F05 // Specifies on which edge of the input signal to begin pulse measurement. -#define DAQmx_CI_Pulse_Time_Units 0x2F13 // Specifies the units to use to return pulse specifications in terms of high time and low time. -#define DAQmx_CI_Pulse_Time_Term 0x2F0C // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_Pulse_Time_TermCfg 0x30B3 // Specifies the input terminal configuration. -#define DAQmx_CI_Pulse_Time_LogicLvlBehavior 0x30B4 // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_Pulse_Time_DigFltr_Enable 0x2F0E // Specifies whether to apply a digital filter to the signal to measure. +#define +DAQmx_CI_Velocity_Encoder_BInputDigFltr_MinPulseWidth 0x30E8 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define +DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseSrc 0x30E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseRate 0x30EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Velocity_MeasTime 0x30EB // Specifies in seconds the length of time to measure the velocity of the signal. +#define +DAQmx_CI_Velocity_Div 0x30EC // Specifies the value by which to divide the input signal. +#define +DAQmx_CI_TwoEdgeSep_Units 0x18AC // Specifies the units to use to return two-edge separation measurements from the channel. +#define +DAQmx_CI_TwoEdgeSep_FirstTerm 0x18AD // Specifies the source terminal of the digital signal that starts each measurement. +#define +DAQmx_CI_TwoEdgeSep_FirstTermCfg 0x30AB // Specifies the input terminal configuration. +#define +DAQmx_CI_TwoEdgeSep_FirstLogicLvlBehavior 0x30AC // Specifies the logic level behavior on the input line. +#define +DAQmx_CI_TwoEdgeSep_First_DigFltr_Enable 0x220F // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_TwoEdgeSep_First_DigFltr_MinPulseWidth 0x2210 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseSrc 0x2211 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseRate 0x2212 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_TwoEdgeSep_First_DigSync_Enable 0x2213 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_TwoEdgeSep_FirstEdge 0x0833 // Specifies on which edge of the first signal to start each measurement. +#define +DAQmx_CI_TwoEdgeSep_SecondTerm 0x18AE // Specifies the source terminal of the digital signal that stops each measurement. +#define +DAQmx_CI_TwoEdgeSep_SecondTermCfg 0x30AD // Specifies the input terminal configuration. +#define +DAQmx_CI_TwoEdgeSep_SecondLogicLvlBehavior 0x30AE // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_TwoEdgeSep_Second_DigFltr_Enable 0x2214 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_TwoEdgeSep_Second_DigFltr_MinPulseWidth 0x2215 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseSrc 0x2216 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseRate 0x2217 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_TwoEdgeSep_Second_DigSync_Enable 0x2218 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_TwoEdgeSep_SecondEdge 0x0834 // Specifies on which edge of the second signal to stop each measurement. +#define +DAQmx_CI_SemiPeriod_Units 0x18AF // Specifies the units to use to return semi-period measurements. +#define +DAQmx_CI_SemiPeriod_Term 0x18B0 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_SemiPeriod_TermCfg 0x30AF // Specifies the input terminal configuration. +#define +DAQmx_CI_SemiPeriod_LogicLvlBehavior 0x30B0 // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_SemiPeriod_DigFltr_Enable 0x2219 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_SemiPeriod_DigFltr_MinPulseWidth 0x221A // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_SemiPeriod_DigFltr_TimebaseSrc 0x221B // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_SemiPeriod_DigFltr_TimebaseRate 0x221C // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_SemiPeriod_DigSync_Enable 0x221D // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_SemiPeriod_StartingEdge 0x22FE // Specifies on which edge of the input signal to begin semi-period measurement. Semi-period measurements alternate between high time and low time, starting on this edge. +#define +DAQmx_CI_Pulse_Freq_Units 0x2F0B // Specifies the units to use to return pulse specifications in terms of frequency. +#define +DAQmx_CI_Pulse_Freq_Term 0x2F04 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_Pulse_Freq_TermCfg 0x30B1 // Specifies the input terminal configuration. +#define +DAQmx_CI_Pulse_Freq_LogicLvlBehavior 0x30B2 // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_Pulse_Freq_DigFltr_Enable 0x2F06 // Specifies whether to apply a digital filter to the signal to measure. +#define +DAQmx_CI_Pulse_Freq_DigFltr_MinPulseWidth 0x2F07 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Pulse_Freq_DigFltr_TimebaseSrc 0x2F08 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_CI_Pulse_Freq_DigFltr_TimebaseRate 0x2F09 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Pulse_Freq_DigSync_Enable 0x2F0A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Pulse_Freq_Start_Edge 0x2F05 // Specifies on which edge of the input signal to begin pulse measurement. +#define +DAQmx_CI_Pulse_Time_Units 0x2F13 // Specifies the units to use to return pulse specifications in terms of high time and low time. +#define +DAQmx_CI_Pulse_Time_Term 0x2F0C // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_Pulse_Time_TermCfg 0x30B3 // Specifies the input terminal configuration. +#define +DAQmx_CI_Pulse_Time_LogicLvlBehavior 0x30B4 // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_Pulse_Time_DigFltr_Enable 0x2F0E // Specifies whether to apply a digital filter to the signal to measure. #define DAQmx_CI_Pulse_Time_DigFltr_MinPulseWidth 0x2F0F // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Pulse_Time_DigFltr_TimebaseSrc 0x2F10 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_CI_Pulse_Time_DigFltr_TimebaseRate 0x2F11 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Pulse_Time_DigSync_Enable 0x2F12 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Pulse_Time_StartEdge 0x2F0D // Specifies on which edge of the input signal to begin pulse measurement. -#define DAQmx_CI_Pulse_Ticks_Term 0x2F14 // Specifies the input terminal of the signal to measure. -#define DAQmx_CI_Pulse_Ticks_TermCfg 0x30B5 // Specifies the input terminal configuration. -#define DAQmx_CI_Pulse_Ticks_LogicLvlBehavior 0x30B6 // Specifies the logic level behavior on the count reset line. -#define DAQmx_CI_Pulse_Ticks_DigFltr_Enable 0x2F16 // Specifies whether to apply a digital filter to the signal to measure. -#define DAQmx_CI_Pulse_Ticks_DigFltr_MinPulseWidth 0x2F17 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseSrc 0x2F18 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseRate 0x2F19 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_Pulse_Ticks_DigSync_Enable 0x2F1A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_Pulse_Ticks_StartEdge 0x2F15 // Specifies on which edge of the input signal to begin pulse measurement. -#define DAQmx_CI_CtrTimebaseSrc 0x0143 // Specifies the terminal of the timebase to use for the counter. -#define DAQmx_CI_CtrTimebaseRate 0x18B2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to take measurements in terms of time or frequency rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can take measurements only in terms of ticks of the timebase. -#define DAQmx_CI_CtrTimebaseActiveEdge 0x0142 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. -#define DAQmx_CI_CtrTimebase_DigFltr_Enable 0x2271 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CI_CtrTimebase_DigFltr_MinPulseWidth 0x2272 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CI_CtrTimebase_DigFltr_TimebaseSrc 0x2273 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CI_CtrTimebase_DigFltr_TimebaseRate 0x2274 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CI_CtrTimebase_DigSync_Enable 0x2275 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CI_ThreshVoltage 0x30B7 // Specifies the digital threshold value in Volts for high and low input transitions. Some devices do not support this for differential channels. -#define DAQmx_CI_Count 0x0148 // Indicates the current value of the count register. -#define DAQmx_CI_OutputState 0x0149 // Indicates the current state of the out terminal of the counter. -#define DAQmx_CI_TCReached 0x0150 // Indicates whether the counter rolled over. When you query this property, NI-DAQmx resets it to FALSE. -#define DAQmx_CI_CtrTimebaseMasterTimebaseDiv 0x18B3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to measure slower signals without causing the count register to roll over. -#define DAQmx_CI_SampClkOverrunBehavior 0x3093 // Specifies the counter behavior when data is read but a new value was not detected during a sample clock. -#define DAQmx_CI_SampClkOverrunSentinelVal 0x3094 // Specifies the sentinel value returned when the No New Sample Behavior is set to Sentinel Value. -#define DAQmx_CI_DataXferMech 0x0200 // Specifies the data transfer mode for the channel. -#define DAQmx_CI_DataXferReqCond 0x2EFB // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define DAQmx_CI_UsbXferReqSize 0x2A92 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_CI_UsbXferReqCount 0x3004 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_CI_MemMapEnable 0x2ED2 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_CI_NumPossiblyInvalidSamps 0x193C // Indicates the number of samples that the device might have overwritten before it could transfer them to the buffer. -#define DAQmx_CI_DupCountPrevent 0x21AC // Specifies whether to enable duplicate count prevention for the channel. Duplicate count prevention is enabled by default. Setting Prescaler disables duplicate count prevention unless you explicitly enable it. -#define DAQmx_CI_Prescaler 0x2239 // Specifies the divisor to apply to the signal you connect to the counter source terminal. Scaled data that you read takes this setting into account. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. Setting this value disables duplicate count prevention unless you explicitly set Duplicate ... -#define DAQmx_CI_MaxMeasPeriod 0x3095 // Specifies the maximum period (in seconds) in which the device will recognize signals. For frequency measurements, a signal with a higher period than the one set in this property will return 0 Hz. For duty cycle, the device will return 0 or 1 depending on the state of the line during the max defined period of time. Period measurements will return NaN. Pulse width measurement will return zero. -#define DAQmx_CO_OutputType 0x18B5 // Indicates how to define pulses generated on the channel. -#define DAQmx_CO_Pulse_IdleState 0x1170 // Specifies the resting state of the output terminal. -#define DAQmx_CO_Pulse_Term 0x18E1 // Specifies on which terminal to generate pulses. -#define DAQmx_CO_Pulse_Time_Units 0x18D6 // Specifies the units in which to define high and low pulse time. -#define DAQmx_CO_Pulse_HighTime 0x18BA // Specifies the amount of time that the pulse is at a high voltage. This value is in the units you specify with Units or when you configure the channel. -#define DAQmx_CO_Pulse_LowTime 0x18BB // Specifies the amount of time that the pulse is at a low voltage. This value is in the units you specify with Units or when you configure the channel. -#define DAQmx_CO_Pulse_Time_InitialDelay 0x18BC // Specifies in seconds the amount of time to wait before generating the first pulse. -#define DAQmx_CO_Pulse_DutyCyc 0x1176 // Specifies the duty cycle of the pulses. The duty cycle of a signal is the width of the pulse divided by period. NI-DAQmx uses this ratio and the pulse frequency to determine the width of the pulses and the delay between pulses. -#define DAQmx_CO_Pulse_Freq_Units 0x18D5 // Specifies the units in which to define pulse frequency. -#define DAQmx_CO_Pulse_Freq 0x1178 // Specifies the frequency of the pulses to generate. This value is in the units you specify with Units or when you configure the channel. -#define DAQmx_CO_Pulse_Freq_InitialDelay 0x0299 // Specifies in seconds the amount of time to wait before generating the first pulse. -#define DAQmx_CO_Pulse_HighTicks 0x1169 // Specifies the number of ticks the pulse is high. +#define +DAQmx_CI_Pulse_Time_DigFltr_TimebaseSrc 0x2F10 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_CI_Pulse_Time_DigFltr_TimebaseRate 0x2F11 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Pulse_Time_DigSync_Enable 0x2F12 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Pulse_Time_StartEdge 0x2F0D // Specifies on which edge of the input signal to begin pulse measurement. +#define +DAQmx_CI_Pulse_Ticks_Term 0x2F14 // Specifies the input terminal of the signal to measure. +#define +DAQmx_CI_Pulse_Ticks_TermCfg 0x30B5 // Specifies the input terminal configuration. +#define +DAQmx_CI_Pulse_Ticks_LogicLvlBehavior 0x30B6 // Specifies the logic level behavior on the count reset line. +#define +DAQmx_CI_Pulse_Ticks_DigFltr_Enable 0x2F16 // Specifies whether to apply a digital filter to the signal to measure. +#define +DAQmx_CI_Pulse_Ticks_DigFltr_MinPulseWidth 0x2F17 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseSrc 0x2F18 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseRate 0x2F19 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_Pulse_Ticks_DigSync_Enable 0x2F1A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_Pulse_Ticks_StartEdge 0x2F15 // Specifies on which edge of the input signal to begin pulse measurement. +#define +DAQmx_CI_CtrTimebaseSrc 0x0143 // Specifies the terminal of the timebase to use for the counter. +#define +DAQmx_CI_CtrTimebaseRate 0x18B2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to take measurements in terms of time or frequency rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can take measurements only in terms of ticks of the timebase. +#define +DAQmx_CI_CtrTimebaseActiveEdge 0x0142 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. +#define +DAQmx_CI_CtrTimebase_DigFltr_Enable 0x2271 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CI_CtrTimebase_DigFltr_MinPulseWidth 0x2272 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CI_CtrTimebase_DigFltr_TimebaseSrc 0x2273 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CI_CtrTimebase_DigFltr_TimebaseRate 0x2274 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CI_CtrTimebase_DigSync_Enable 0x2275 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CI_ThreshVoltage 0x30B7 // Specifies the digital threshold value in Volts for high and low input transitions. Some devices do not support this for differential channels. +#define +DAQmx_CI_Count 0x0148 // Indicates the current value of the count register. +#define +DAQmx_CI_OutputState 0x0149 // Indicates the current state of the out terminal of the counter. +#define +DAQmx_CI_TCReached 0x0150 // Indicates whether the counter rolled over. When you query this property, NI-DAQmx resets it to FALSE. +#define +DAQmx_CI_CtrTimebaseMasterTimebaseDiv 0x18B3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to measure slower signals without causing the count register to roll over. +#define +DAQmx_CI_SampClkOverrunBehavior 0x3093 // Specifies the counter behavior when data is read but a new value was not detected during a sample clock. +#define +DAQmx_CI_SampClkOverrunSentinelVal 0x3094 // Specifies the sentinel value returned when the No New Sample Behavior is set to Sentinel Value. +#define +DAQmx_CI_DataXferMech 0x0200 // Specifies the data transfer mode for the channel. +#define +DAQmx_CI_DataXferReqCond 0x2EFB // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define +DAQmx_CI_UsbXferReqSize 0x2A92 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_CI_UsbXferReqCount 0x3004 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_CI_MemMapEnable 0x2ED2 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_CI_NumPossiblyInvalidSamps 0x193C // Indicates the number of samples that the device might have overwritten before it could transfer them to the buffer. +#define +DAQmx_CI_DupCountPrevent 0x21AC // Specifies whether to enable duplicate count prevention for the channel. Duplicate count prevention is enabled by default. Setting Prescaler disables duplicate count prevention unless you explicitly enable it. +#define +DAQmx_CI_Prescaler 0x2239 // Specifies the divisor to apply to the signal you connect to the counter source terminal. Scaled data that you read takes this setting into account. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. Setting this value disables duplicate count prevention unless you explicitly set Duplicate ... +#define +DAQmx_CI_MaxMeasPeriod 0x3095 // Specifies the maximum period (in seconds) in which the device will recognize signals. For frequency measurements, a signal with a higher period than the one set in this property will return 0 Hz. For duty cycle, the device will return 0 or 1 depending on the state of the line during the max defined period of time. Period measurements will return NaN. Pulse width measurement will return zero. +#define +DAQmx_CO_OutputType 0x18B5 // Indicates how to define pulses generated on the channel. +#define +DAQmx_CO_Pulse_IdleState 0x1170 // Specifies the resting state of the output terminal. +#define +DAQmx_CO_Pulse_Term 0x18E1 // Specifies on which terminal to generate pulses. +#define +DAQmx_CO_Pulse_Time_Units 0x18D6 // Specifies the units in which to define high and low pulse time. +#define +DAQmx_CO_Pulse_HighTime 0x18BA // Specifies the amount of time that the pulse is at a high voltage. This value is in the units you specify with Units or when you configure the channel. +#define +DAQmx_CO_Pulse_LowTime 0x18BB // Specifies the amount of time that the pulse is at a low voltage. This value is in the units you specify with Units or when you configure the channel. +#define +DAQmx_CO_Pulse_Time_InitialDelay 0x18BC // Specifies in seconds the amount of time to wait before generating the first pulse. +#define +DAQmx_CO_Pulse_DutyCyc 0x1176 // Specifies the duty cycle of the pulses. The duty cycle of a signal is the width of the pulse divided by period. NI-DAQmx uses this ratio and the pulse frequency to determine the width of the pulses and the delay between pulses. +#define +DAQmx_CO_Pulse_Freq_Units 0x18D5 // Specifies the units in which to define pulse frequency. +#define +DAQmx_CO_Pulse_Freq 0x1178 // Specifies the frequency of the pulses to generate. This value is in the units you specify with Units or when you configure the channel. +#define +DAQmx_CO_Pulse_Freq_InitialDelay 0x0299 // Specifies in seconds the amount of time to wait before generating the first pulse. +#define +DAQmx_CO_Pulse_HighTicks 0x1169 // Specifies the number of ticks the pulse is high. #define DAQmx_CO_Pulse_LowTicks 0x1171 // Specifies the number of ticks the pulse is low. -#define DAQmx_CO_Pulse_Ticks_InitialDelay 0x0298 // Specifies the number of ticks to wait before generating the first pulse. -#define DAQmx_CO_CtrTimebaseSrc 0x0339 // Specifies the terminal of the timebase to use for the counter. Typically, NI-DAQmx uses one of the internal counter timebases when generating pulses. Use this property to specify an external timebase and produce custom pulse widths that are not possible using the internal timebases. -#define DAQmx_CO_CtrTimebaseRate 0x18C2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to define output pulses in seconds rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can define output pulses only in ticks of the timebase. -#define DAQmx_CO_CtrTimebaseActiveEdge 0x0341 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. -#define DAQmx_CO_CtrTimebase_DigFltr_Enable 0x2276 // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_CO_CtrTimebase_DigFltr_MinPulseWidth 0x2277 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_CO_CtrTimebase_DigFltr_TimebaseSrc 0x2278 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_CO_CtrTimebase_DigFltr_TimebaseRate 0x2279 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_CO_CtrTimebase_DigSync_Enable 0x227A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_CO_Count 0x0293 // Indicates the current value of the count register. -#define DAQmx_CO_OutputState 0x0294 // Indicates the current state of the output terminal of the counter. -#define DAQmx_CO_AutoIncrCnt 0x0295 // Specifies a number of timebase ticks by which to increase the time spent in the idle state for each successive pulse. -#define DAQmx_CO_CtrTimebaseMasterTimebaseDiv 0x18C3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to generate slower signals without causing the count register to roll over. -#define DAQmx_CO_PulseDone 0x190E // Indicates if the task completed pulse generation. Use this value for retriggerable pulse generation when you need to determine if the device generated the current pulse. For retriggerable tasks, when you query this property, NI-DAQmx resets it to FALSE. -#define DAQmx_CO_EnableInitialDelayOnRetrigger 0x2EC9 // Specifies whether to apply the initial delay to retriggered pulse trains. -#define DAQmx_CO_ConstrainedGenMode 0x29F2 // Specifies constraints to apply when the counter generates pulses. Constraining the counter reduces the device resources required for counter operation. Constraining the counter can also allow additional analog or counter tasks on the device to run concurrently. For continuous counter tasks, NI-DAQmx consumes no device resources when the counter is constrained. For finite counter tasks, resource use increases with ... -#define DAQmx_CO_UseOnlyOnBrdMem 0x2ECB // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. -#define DAQmx_CO_DataXferMech 0x2ECC // Specifies the data transfer mode for the device. For buffered operations, use DMA or USB Bulk. For non-buffered operations, use Polled. -#define DAQmx_CO_DataXferReqCond 0x2ECD // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define DAQmx_CO_UsbXferReqSize 0x2A93 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_CO_UsbXferReqCount 0x3005 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define DAQmx_CO_MemMapEnable 0x2ED3 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define DAQmx_CO_Prescaler 0x226D // Specifies the divisor to apply to the signal you connect to the counter source terminal. Pulse generations defined by frequency or time take this setting into account, but pulse generations defined by ticks do not. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. -#define DAQmx_CO_RdyForNewVal 0x22FF // Indicates whether the counter is ready for new continuous pulse train values. -#define DAQmx_ChanType 0x187F // Indicates the type of the virtual channel. -#define DAQmx_PhysicalChanName 0x18F5 // Specifies the name of the physical channel upon which this virtual channel is based. -#define DAQmx_ChanDescr 0x1926 // Specifies a user-defined description for the channel. -#define DAQmx_ChanIsGlobal 0x2304 // Indicates whether the channel is a global channel. -#define DAQmx_Chan_SyncUnlockBehavior 0x313C // Specifies the action to take if the target loses its synchronization to the grand master. +#define +DAQmx_CO_Pulse_Ticks_InitialDelay 0x0298 // Specifies the number of ticks to wait before generating the first pulse. +#define +DAQmx_CO_CtrTimebaseSrc 0x0339 // Specifies the terminal of the timebase to use for the counter. Typically, NI-DAQmx uses one of the internal counter timebases when generating pulses. Use this property to specify an external timebase and produce custom pulse widths that are not possible using the internal timebases. +#define +DAQmx_CO_CtrTimebaseRate 0x18C2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to define output pulses in seconds rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can define output pulses only in ticks of the timebase. +#define +DAQmx_CO_CtrTimebaseActiveEdge 0x0341 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. +#define +DAQmx_CO_CtrTimebase_DigFltr_Enable 0x2276 // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_CO_CtrTimebase_DigFltr_MinPulseWidth 0x2277 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_CO_CtrTimebase_DigFltr_TimebaseSrc 0x2278 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_CO_CtrTimebase_DigFltr_TimebaseRate 0x2279 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_CO_CtrTimebase_DigSync_Enable 0x227A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_CO_Count 0x0293 // Indicates the current value of the count register. +#define +DAQmx_CO_OutputState 0x0294 // Indicates the current state of the output terminal of the counter. +#define +DAQmx_CO_AutoIncrCnt 0x0295 // Specifies a number of timebase ticks by which to increase the time spent in the idle state for each successive pulse. +#define +DAQmx_CO_CtrTimebaseMasterTimebaseDiv 0x18C3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to generate slower signals without causing the count register to roll over. +#define +DAQmx_CO_PulseDone 0x190E // Indicates if the task completed pulse generation. Use this value for retriggerable pulse generation when you need to determine if the device generated the current pulse. For retriggerable tasks, when you query this property, NI-DAQmx resets it to FALSE. +#define +DAQmx_CO_EnableInitialDelayOnRetrigger 0x2EC9 // Specifies whether to apply the initial delay to retriggered pulse trains. +#define +DAQmx_CO_ConstrainedGenMode 0x29F2 // Specifies constraints to apply when the counter generates pulses. Constraining the counter reduces the device resources required for counter operation. Constraining the counter can also allow additional analog or counter tasks on the device to run concurrently. For continuous counter tasks, NI-DAQmx consumes no device resources when the counter is constrained. For finite counter tasks, resource use increases with ... +#define +DAQmx_CO_UseOnlyOnBrdMem 0x2ECB // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. +#define +DAQmx_CO_DataXferMech 0x2ECC // Specifies the data transfer mode for the device. For buffered operations, use DMA or USB Bulk. For non-buffered operations, use Polled. +#define +DAQmx_CO_DataXferReqCond 0x2ECD // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define +DAQmx_CO_UsbXferReqSize 0x2A93 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_CO_UsbXferReqCount 0x3005 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define +DAQmx_CO_MemMapEnable 0x2ED3 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define +DAQmx_CO_Prescaler 0x226D // Specifies the divisor to apply to the signal you connect to the counter source terminal. Pulse generations defined by frequency or time take this setting into account, but pulse generations defined by ticks do not. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. +#define +DAQmx_CO_RdyForNewVal 0x22FF // Indicates whether the counter is ready for new continuous pulse train values. +#define +DAQmx_ChanType 0x187F // Indicates the type of the virtual channel. +#define +DAQmx_PhysicalChanName 0x18F5 // Specifies the name of the physical channel upon which this virtual channel is based. +#define +DAQmx_ChanDescr 0x1926 // Specifies a user-defined description for the channel. +#define +DAQmx_ChanIsGlobal 0x2304 // Indicates whether the channel is a global channel. +#define +DAQmx_Chan_SyncUnlockBehavior 0x313C // Specifies the action to take if the target loses its synchronization to the grand master. //********** Device Attributes ********** -#define DAQmx_Dev_IsSimulated 0x22CA // Indicates if the device is a simulated device. -#define DAQmx_Dev_ProductCategory 0x29A9 // Indicates the product category of the device. This category corresponds to the category displayed in MAX when creating NI-DAQmx simulated devices. -#define DAQmx_Dev_ProductType 0x0631 // Indicates the product name of the device. -#define DAQmx_Dev_ProductNum 0x231D // Indicates the unique hardware identification number for the device. -#define DAQmx_Dev_SerialNum 0x0632 // Indicates the serial number of the device. This value is zero if the device does not have a serial number. -#define DAQmx_Dev_Accessory_ProductTypes 0x2F6D // Indicates the model names of accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains an empty string for each connector with no accessory connected. -#define DAQmx_Dev_Accessory_ProductNums 0x2F6E // Indicates the unique hardware identification number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. -#define DAQmx_Dev_Accessory_SerialNums 0x2F6F // Indicates the serial number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. -#define DAQmx_Carrier_SerialNum 0x2A8A // Indicates the serial number of the device carrier. This value is zero if the carrier does not have a serial number. -#define DAQmx_FieldDAQ_DevName 0x3171 // Indicates the parent device which this bank is located in. -#define DAQmx_FieldDAQ_BankDevNames 0x3178 // Indicates an array containing the names of the banks in the FieldDAQ. -#define DAQmx_Dev_Chassis_ModuleDevNames 0x29B6 // Indicates an array containing the names of the modules in the chassis. -#define DAQmx_Dev_AnlgTrigSupported 0x2984 // Indicates if the device supports analog triggering. -#define DAQmx_Dev_DigTrigSupported 0x2985 // Indicates if the device supports digital triggering. -#define DAQmx_Dev_TimeTrigSupported 0x301F // Indicates whether the device supports time triggering. -#define DAQmx_Dev_AI_PhysicalChans 0x231E // Indicates an array containing the names of the analog input physical channels available on the device. -#define DAQmx_Dev_AI_SupportedMeasTypes 0x2FD2 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. -#define DAQmx_Dev_AI_MaxSingleChanRate 0x298C // Indicates the maximum sample_rate for an analog input task if the task contains only a single channel from this device. -#define DAQmx_Dev_AI_MaxMultiChanRate 0x298D // Indicates the maximum sampling sample_rate for an analog input task from this device. To find the maximum sample_rate for the task, take the minimum of Maximum Single Channel Rate or the indicated sampling sample_rate of this device divided by the number of channels to acquire data from (including cold-junction compensation and autozero channels). -#define DAQmx_Dev_AI_MinRate 0x298E // Indicates the minimum sample_rate for an analog input task on this device. NI-DAQmx returns a warning or error if you attempt to sample at a slower sample_rate. +#define +DAQmx_Dev_IsSimulated 0x22CA // Indicates if the device is a simulated device. +#define +DAQmx_Dev_ProductCategory 0x29A9 // Indicates the product category of the device. This category corresponds to the category displayed in MAX when creating NI-DAQmx simulated devices. +#define +DAQmx_Dev_ProductType 0x0631 // Indicates the product name of the device. +#define +DAQmx_Dev_ProductNum 0x231D // Indicates the unique hardware identification number for the device. +#define +DAQmx_Dev_SerialNum 0x0632 // Indicates the serial number of the device. This value is zero if the device does not have a serial number. +#define +DAQmx_Dev_Accessory_ProductTypes 0x2F6D // Indicates the model names of accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains an empty string for each connector with no accessory connected. +#define +DAQmx_Dev_Accessory_ProductNums 0x2F6E // Indicates the unique hardware identification number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. +#define +DAQmx_Dev_Accessory_SerialNums 0x2F6F // Indicates the serial number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. +#define +DAQmx_Carrier_SerialNum 0x2A8A // Indicates the serial number of the device carrier. This value is zero if the carrier does not have a serial number. +#define +DAQmx_FieldDAQ_DevName 0x3171 // Indicates the parent device which this bank is located in. +#define +DAQmx_FieldDAQ_BankDevNames 0x3178 // Indicates an array containing the names of the banks in the FieldDAQ. +#define +DAQmx_Dev_Chassis_ModuleDevNames 0x29B6 // Indicates an array containing the names of the modules in the chassis. +#define +DAQmx_Dev_AnlgTrigSupported 0x2984 // Indicates if the device supports analog triggering. +#define +DAQmx_Dev_DigTrigSupported 0x2985 // Indicates if the device supports digital triggering. +#define +DAQmx_Dev_TimeTrigSupported 0x301F // Indicates whether the device supports time triggering. +#define +DAQmx_Dev_AI_PhysicalChans 0x231E // Indicates an array containing the names of the analog input physical channels available on the device. +#define +DAQmx_Dev_AI_SupportedMeasTypes 0x2FD2 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. +#define +DAQmx_Dev_AI_MaxSingleChanRate 0x298C // Indicates the maximum sample_rate for an analog input task if the task contains only a single channel from this device. +#define +DAQmx_Dev_AI_MaxMultiChanRate 0x298D // Indicates the maximum sampling sample_rate for an analog input task from this device. To find the maximum sample_rate for the task, take the minimum of Maximum Single Channel Rate or the indicated sampling sample_rate of this device divided by the number of channels to acquire data from (including cold-junction compensation and autozero channels). +#define +DAQmx_Dev_AI_MinRate 0x298E // Indicates the minimum sample_rate for an analog input task on this device. NI-DAQmx returns a warning or error if you attempt to sample at a slower sample_rate. #define DAQmx_Dev_AI_SimultaneousSamplingSupported 0x298F // Indicates if the device supports simultaneous sampling. -#define DAQmx_Dev_AI_NumSampTimingEngines 0x3163 // Indicates the number of Analog Input sample timing engines supported by the device. -#define DAQmx_Dev_AI_SampModes 0x2FDC // Indicates sample modes supported by devices that support sample clocked analog input. -#define DAQmx_Dev_AI_NumSyncPulseSrcs 0x3164 // Indicates the number of Analog Input synchronization pulse sources supported by the device. -#define DAQmx_Dev_AI_TrigUsage 0x2986 // Indicates the triggers supported by this device for an analog input task. -#define DAQmx_Dev_AI_VoltageRngs 0x2990 // Indicates pairs of input voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define DAQmx_Dev_AI_VoltageIntExcitDiscreteVals 0x29C9 // Indicates the set of discrete internal voltage excitation values supported by this device. If the device supports ranges of internal excitation values, use Range Values to determine supported excitation values. -#define DAQmx_Dev_AI_VoltageIntExcitRangeVals 0x29CA // Indicates pairs of internal voltage excitation ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete internal excitation values, use Discrete Values to determine the supported excitation values. -#define DAQmx_Dev_AI_ChargeRngs 0x3111 // Indicates in coulombs pairs of input charge ranges for the device. Each pair consists of the low value followed by the high value. -#define DAQmx_Dev_AI_CurrentRngs 0x2991 // Indicates the pairs of current input ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define DAQmx_Dev_AI_CurrentIntExcitDiscreteVals 0x29CB // Indicates the set of discrete internal current excitation values supported by this device. -#define DAQmx_Dev_AI_BridgeRngs 0x2FD0 // Indicates pairs of input voltage ratio ranges, in volts per volt, supported by devices that acquire using ratiometric measurements. Each pair consists of the low value followed by the high value. -#define DAQmx_Dev_AI_ResistanceRngs 0x2A15 // Indicates pairs of input resistance ranges, in ohms, supported by devices that have the necessary signal conditioning to measure resistances. Each pair consists of the low value followed by the high value. -#define DAQmx_Dev_AI_FreqRngs 0x2992 // Indicates the pairs of frequency input ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define DAQmx_Dev_AI_Gains 0x2993 // Indicates the input gain settings supported by this device. -#define DAQmx_Dev_AI_Couplings 0x2994 // Indicates the coupling types supported by this device. -#define DAQmx_Dev_AI_LowpassCutoffFreqDiscreteVals 0x2995 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use Range Values to determine supported frequencies. -#define DAQmx_Dev_AI_LowpassCutoffFreqRangeVals 0x29CF // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use Discrete Values to determine the supported frequencies. -#define DAQmx_AI_DigFltr_Types 0x3107 // Indicates the AI digital filter types supported by the device. -#define DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqDiscreteVals 0x30C8 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.RangeVals to determine supported frequencies. -#define DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqRangeVals 0x30C9 // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.DiscreteVals to determine the supported frequencies. -#define DAQmx_Dev_AO_PhysicalChans 0x231F // Indicates an array containing the names of the analog output physical channels available on the device. -#define DAQmx_Dev_AO_SupportedOutputTypes 0x2FD3 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. -#define DAQmx_Dev_AO_MaxRate 0x2997 // Indicates the maximum analog output sample_rate of the device. -#define DAQmx_Dev_AO_MinRate 0x2998 // Indicates the minimum analog output sample_rate of the device. -#define DAQmx_Dev_AO_SampClkSupported 0x2996 // Indicates if the device supports the sample clock timing type for analog output tasks. -#define DAQmx_Dev_AO_NumSampTimingEngines 0x3165 // Indicates the number of Analog Output sample timing engines supported by the device. -#define DAQmx_Dev_AO_SampModes 0x2FDD // Indicates sample modes supported by devices that support sample clocked analog output. -#define DAQmx_Dev_AO_NumSyncPulseSrcs 0x3166 // Indicates the number of Analog Output synchronization pulse sources supported by the device. -#define DAQmx_Dev_AO_TrigUsage 0x2987 // Indicates the triggers supported by this device for analog output tasks. -#define DAQmx_Dev_AO_VoltageRngs 0x299B // Indicates pairs of output voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define DAQmx_Dev_AO_CurrentRngs 0x299C // Indicates pairs of output current ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define DAQmx_Dev_AO_Gains 0x299D // Indicates the output gain settings supported by this device. -#define DAQmx_Dev_DI_Lines 0x2320 // Indicates an array containing the names of the digital input lines available on the device. -#define DAQmx_Dev_DI_Ports 0x2321 // Indicates an array containing the names of the digital input ports available on the device. -#define DAQmx_Dev_DI_MaxRate 0x2999 // Indicates the maximum digital input sample_rate of the device. -#define DAQmx_Dev_DI_NumSampTimingEngines 0x3167 // Indicates the number of Digital Input sample timing engines supported by the device. -#define DAQmx_Dev_DI_TrigUsage 0x2988 // Indicates the triggers supported by this device for digital input tasks. -#define DAQmx_Dev_DO_Lines 0x2322 // Indicates an array containing the names of the digital output lines available on the device. -#define DAQmx_Dev_DO_Ports 0x2323 // Indicates an array containing the names of the digital output ports available on the device. -#define DAQmx_Dev_DO_MaxRate 0x299A // Indicates the maximum digital output sample_rate of the device. -#define DAQmx_Dev_DO_NumSampTimingEngines 0x3168 // Indicates the number of Digital Output synchronization pulse sources supported by the device. -#define DAQmx_Dev_DO_TrigUsage 0x2989 // Indicates the triggers supported by this device for digital output tasks. -#define DAQmx_Dev_CI_PhysicalChans 0x2324 // Indicates an array containing the names of the counter input physical channels available on the device. -#define DAQmx_Dev_CI_SupportedMeasTypes 0x2FD4 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. -#define DAQmx_Dev_CI_TrigUsage 0x298A // Indicates the triggers supported by this device for counter input tasks. -#define DAQmx_Dev_CI_SampClkSupported 0x299E // Indicates if the device supports the sample clock timing type for counter input tasks. -#define DAQmx_Dev_CI_SampModes 0x2FDE // Indicates sample modes supported by devices that support sample clocked counter input. -#define DAQmx_Dev_CI_MaxSize 0x299F // Indicates in bits the size of the counters on the device. -#define DAQmx_Dev_CI_MaxTimebase 0x29A0 // Indicates in hertz the maximum counter timebase frequency. +#define +DAQmx_Dev_AI_NumSampTimingEngines 0x3163 // Indicates the number of Analog Input sample timing engines supported by the device. +#define +DAQmx_Dev_AI_SampModes 0x2FDC // Indicates sample modes supported by devices that support sample clocked analog input. +#define +DAQmx_Dev_AI_NumSyncPulseSrcs 0x3164 // Indicates the number of Analog Input synchronization pulse sources supported by the device. +#define +DAQmx_Dev_AI_TrigUsage 0x2986 // Indicates the triggers supported by this device for an analog input task. +#define +DAQmx_Dev_AI_VoltageRngs 0x2990 // Indicates pairs of input voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define +DAQmx_Dev_AI_VoltageIntExcitDiscreteVals 0x29C9 // Indicates the set of discrete internal voltage excitation values supported by this device. If the device supports ranges of internal excitation values, use Range Values to determine supported excitation values. +#define +DAQmx_Dev_AI_VoltageIntExcitRangeVals 0x29CA // Indicates pairs of internal voltage excitation ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete internal excitation values, use Discrete Values to determine the supported excitation values. +#define +DAQmx_Dev_AI_ChargeRngs 0x3111 // Indicates in coulombs pairs of input charge ranges for the device. Each pair consists of the low value followed by the high value. +#define +DAQmx_Dev_AI_CurrentRngs 0x2991 // Indicates the pairs of current input ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define +DAQmx_Dev_AI_CurrentIntExcitDiscreteVals 0x29CB // Indicates the set of discrete internal current excitation values supported by this device. +#define +DAQmx_Dev_AI_BridgeRngs 0x2FD0 // Indicates pairs of input voltage ratio ranges, in volts per volt, supported by devices that acquire using ratiometric measurements. Each pair consists of the low value followed by the high value. +#define +DAQmx_Dev_AI_ResistanceRngs 0x2A15 // Indicates pairs of input resistance ranges, in ohms, supported by devices that have the necessary signal conditioning to measure resistances. Each pair consists of the low value followed by the high value. +#define +DAQmx_Dev_AI_FreqRngs 0x2992 // Indicates the pairs of frequency input ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define +DAQmx_Dev_AI_Gains 0x2993 // Indicates the input gain settings supported by this device. +#define +DAQmx_Dev_AI_Couplings 0x2994 // Indicates the coupling types supported by this device. +#define +DAQmx_Dev_AI_LowpassCutoffFreqDiscreteVals 0x2995 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use Range Values to determine supported frequencies. +#define +DAQmx_Dev_AI_LowpassCutoffFreqRangeVals 0x29CF // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use Discrete Values to determine the supported frequencies. +#define +DAQmx_AI_DigFltr_Types 0x3107 // Indicates the AI digital filter types supported by the device. +#define +DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqDiscreteVals 0x30C8 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.RangeVals to determine supported frequencies. +#define +DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqRangeVals 0x30C9 // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.DiscreteVals to determine the supported frequencies. +#define +DAQmx_Dev_AO_PhysicalChans 0x231F // Indicates an array containing the names of the analog output physical channels available on the device. +#define +DAQmx_Dev_AO_SupportedOutputTypes 0x2FD3 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. +#define +DAQmx_Dev_AO_MaxRate 0x2997 // Indicates the maximum analog output sample_rate of the device. +#define +DAQmx_Dev_AO_MinRate 0x2998 // Indicates the minimum analog output sample_rate of the device. +#define +DAQmx_Dev_AO_SampClkSupported 0x2996 // Indicates if the device supports the sample clock timing type for analog output tasks. +#define +DAQmx_Dev_AO_NumSampTimingEngines 0x3165 // Indicates the number of Analog Output sample timing engines supported by the device. +#define +DAQmx_Dev_AO_SampModes 0x2FDD // Indicates sample modes supported by devices that support sample clocked analog output. +#define +DAQmx_Dev_AO_NumSyncPulseSrcs 0x3166 // Indicates the number of Analog Output synchronization pulse sources supported by the device. +#define +DAQmx_Dev_AO_TrigUsage 0x2987 // Indicates the triggers supported by this device for analog output tasks. +#define +DAQmx_Dev_AO_VoltageRngs 0x299B // Indicates pairs of output voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define +DAQmx_Dev_AO_CurrentRngs 0x299C // Indicates pairs of output current ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define +DAQmx_Dev_AO_Gains 0x299D // Indicates the output gain settings supported by this device. +#define +DAQmx_Dev_DI_Lines 0x2320 // Indicates an array containing the names of the digital input lines available on the device. +#define +DAQmx_Dev_DI_Ports 0x2321 // Indicates an array containing the names of the digital input ports available on the device. +#define +DAQmx_Dev_DI_MaxRate 0x2999 // Indicates the maximum digital input sample_rate of the device. +#define +DAQmx_Dev_DI_NumSampTimingEngines 0x3167 // Indicates the number of Digital Input sample timing engines supported by the device. +#define +DAQmx_Dev_DI_TrigUsage 0x2988 // Indicates the triggers supported by this device for digital input tasks. +#define +DAQmx_Dev_DO_Lines 0x2322 // Indicates an array containing the names of the digital output lines available on the device. +#define +DAQmx_Dev_DO_Ports 0x2323 // Indicates an array containing the names of the digital output ports available on the device. +#define +DAQmx_Dev_DO_MaxRate 0x299A // Indicates the maximum digital output sample_rate of the device. +#define +DAQmx_Dev_DO_NumSampTimingEngines 0x3168 // Indicates the number of Digital Output synchronization pulse sources supported by the device. +#define +DAQmx_Dev_DO_TrigUsage 0x2989 // Indicates the triggers supported by this device for digital output tasks. +#define +DAQmx_Dev_CI_PhysicalChans 0x2324 // Indicates an array containing the names of the counter input physical channels available on the device. +#define +DAQmx_Dev_CI_SupportedMeasTypes 0x2FD4 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. +#define +DAQmx_Dev_CI_TrigUsage 0x298A // Indicates the triggers supported by this device for counter input tasks. +#define +DAQmx_Dev_CI_SampClkSupported 0x299E // Indicates if the device supports the sample clock timing type for counter input tasks. +#define +DAQmx_Dev_CI_SampModes 0x2FDE // Indicates sample modes supported by devices that support sample clocked counter input. +#define +DAQmx_Dev_CI_MaxSize 0x299F // Indicates in bits the size of the counters on the device. +#define +DAQmx_Dev_CI_MaxTimebase 0x29A0 // Indicates in hertz the maximum counter timebase frequency. #define DAQmx_Dev_CO_PhysicalChans 0x2325 // Indicates an array containing the names of the counter output physical channels available on the device. -#define DAQmx_Dev_CO_SupportedOutputTypes 0x2FD5 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. -#define DAQmx_Dev_CO_SampClkSupported 0x2F5B // Indicates if the device supports Sample Clock timing for counter output tasks. -#define DAQmx_Dev_CO_SampModes 0x2FDF // Indicates sample modes supported by devices that support sample clocked counter output. -#define DAQmx_Dev_CO_TrigUsage 0x298B // Indicates the triggers supported by this device for counter output tasks. -#define DAQmx_Dev_CO_MaxSize 0x29A1 // Indicates in bits the size of the counters on the device. -#define DAQmx_Dev_CO_MaxTimebase 0x29A2 // Indicates in hertz the maximum counter timebase frequency. -#define DAQmx_Dev_TEDS_HWTEDSSupported 0x2FD6 // Indicates whether the device supports hardware TEDS. -#define DAQmx_Dev_NumDMAChans 0x233C // Indicates the number of DMA channels on the device. -#define DAQmx_Dev_BusType 0x2326 // Indicates the bus type of the device. -#define DAQmx_Dev_PCI_BusNum 0x2327 // Indicates the PCI bus number of the device. -#define DAQmx_Dev_PCI_DevNum 0x2328 // Indicates the PCI slot number of the device. -#define DAQmx_Dev_PXI_ChassisNum 0x2329 // Indicates the PXI chassis number of the device, as identified in MAX. -#define DAQmx_Dev_PXI_SlotNum 0x232A // Indicates the PXI slot number of the device. -#define DAQmx_Dev_CompactDAQ_ChassisDevName 0x29B7 // Indicates the name of the CompactDAQ chassis that contains this module. -#define DAQmx_Dev_CompactDAQ_SlotNum 0x29B8 // Indicates the slot number in which this module is located in the CompactDAQ chassis. -#define DAQmx_Dev_CompactRIO_ChassisDevName 0x3161 // Indicates the name of the CompactRIO chassis that contains this module. -#define DAQmx_Dev_CompactRIO_SlotNum 0x3162 // Indicates the slot number of the CompactRIO chassis where this module is located. -#define DAQmx_Dev_TCPIP_Hostname 0x2A8B // Indicates the IPv4 hostname of the device. -#define DAQmx_Dev_TCPIP_EthernetIP 0x2A8C // Indicates the IPv4 address of the Ethernet interface in dotted decimal format. This property returns 0.0.0.0 if the Ethernet interface cannot acquire an address. -#define DAQmx_Dev_TCPIP_WirelessIP 0x2A8D // Indicates the IPv4 address of the 802.11 wireless interface in dotted decimal format. This property returns 0.0.0.0 if the wireless interface cannot acquire an address. -#define DAQmx_Dev_Terminals 0x2A40 // Indicates a list of all terminals on the device. -#define DAQmx_Dev_NumTimeTrigs 0x3141 // Indicates the number of time triggers available on the device. -#define DAQmx_Dev_NumTimestampEngines 0x3142 // Indicates the number of timestamp engines available on the device. +#define +DAQmx_Dev_CO_SupportedOutputTypes 0x2FD5 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. +#define +DAQmx_Dev_CO_SampClkSupported 0x2F5B // Indicates if the device supports Sample Clock timing for counter output tasks. +#define +DAQmx_Dev_CO_SampModes 0x2FDF // Indicates sample modes supported by devices that support sample clocked counter output. +#define +DAQmx_Dev_CO_TrigUsage 0x298B // Indicates the triggers supported by this device for counter output tasks. +#define +DAQmx_Dev_CO_MaxSize 0x29A1 // Indicates in bits the size of the counters on the device. +#define +DAQmx_Dev_CO_MaxTimebase 0x29A2 // Indicates in hertz the maximum counter timebase frequency. +#define +DAQmx_Dev_TEDS_HWTEDSSupported 0x2FD6 // Indicates whether the device supports hardware TEDS. +#define +DAQmx_Dev_NumDMAChans 0x233C // Indicates the number of DMA channels on the device. +#define +DAQmx_Dev_BusType 0x2326 // Indicates the bus type of the device. +#define +DAQmx_Dev_PCI_BusNum 0x2327 // Indicates the PCI bus number of the device. +#define +DAQmx_Dev_PCI_DevNum 0x2328 // Indicates the PCI slot number of the device. +#define +DAQmx_Dev_PXI_ChassisNum 0x2329 // Indicates the PXI chassis number of the device, as identified in MAX. +#define +DAQmx_Dev_PXI_SlotNum 0x232A // Indicates the PXI slot number of the device. +#define +DAQmx_Dev_CompactDAQ_ChassisDevName 0x29B7 // Indicates the name of the CompactDAQ chassis that contains this module. +#define +DAQmx_Dev_CompactDAQ_SlotNum 0x29B8 // Indicates the slot number in which this module is located in the CompactDAQ chassis. +#define +DAQmx_Dev_CompactRIO_ChassisDevName 0x3161 // Indicates the name of the CompactRIO chassis that contains this module. +#define +DAQmx_Dev_CompactRIO_SlotNum 0x3162 // Indicates the slot number of the CompactRIO chassis where this module is located. +#define +DAQmx_Dev_TCPIP_Hostname 0x2A8B // Indicates the IPv4 hostname of the device. +#define +DAQmx_Dev_TCPIP_EthernetIP 0x2A8C // Indicates the IPv4 address of the Ethernet interface in dotted decimal format. This property returns 0.0.0.0 if the Ethernet interface cannot acquire an address. +#define +DAQmx_Dev_TCPIP_WirelessIP 0x2A8D // Indicates the IPv4 address of the 802.11 wireless interface in dotted decimal format. This property returns 0.0.0.0 if the wireless interface cannot acquire an address. +#define +DAQmx_Dev_Terminals 0x2A40 // Indicates a list of all terminals on the device. +#define +DAQmx_Dev_NumTimeTrigs 0x3141 // Indicates the number of time triggers available on the device. +#define +DAQmx_Dev_NumTimestampEngines 0x3142 // Indicates the number of timestamp engines available on the device. //********** Export Signal Attributes ********** -#define DAQmx_Exported_AIConvClk_OutputTerm 0x1687 // Specifies the terminal to which to route the AI Convert Clock. -#define DAQmx_Exported_AIConvClk_Pulse_Polarity 0x1688 // Indicates the polarity of the exported AI Convert Clock. The polarity is fixed and independent of the active edge of the source of the AI Convert Clock. -#define DAQmx_Exported_10MHzRefClk_OutputTerm 0x226E // Specifies the terminal to which to route the 10MHz Clock. -#define DAQmx_Exported_20MHzTimebase_OutputTerm 0x1657 // Specifies the terminal to which to route the 20MHz Timebase. -#define DAQmx_Exported_SampClk_OutputBehavior 0x186B // Specifies whether the exported Sample Clock issues a pulse at the beginning of a sample or changes to a high state for the duration of the sample. -#define DAQmx_Exported_SampClk_OutputTerm 0x1663 // Specifies the terminal to which to route the Sample Clock. -#define DAQmx_Exported_SampClk_DelayOffset 0x21C4 // Specifies in seconds the amount of time to offset the exported Sample clock. Refer to timing diagrams for generation applications in the device documentation for more information about this value. -#define DAQmx_Exported_SampClk_Pulse_Polarity 0x1664 // Specifies the polarity of the exported Sample Clock if Output Behavior is DAQmx_Val_Pulse. -#define DAQmx_Exported_SampClkTimebase_OutputTerm 0x18F9 // Specifies the terminal to which to route the Sample Clock Timebase. -#define DAQmx_Exported_DividedSampClkTimebase_OutputTerm 0x21A1 // Specifies the terminal to which to route the Divided Sample Clock Timebase. -#define DAQmx_Exported_AdvTrig_OutputTerm 0x1645 // Specifies the terminal to which to route the Advance Trigger. -#define DAQmx_Exported_AdvTrig_Pulse_Polarity 0x1646 // Indicates the polarity of the exported Advance Trigger. -#define DAQmx_Exported_AdvTrig_Pulse_WidthUnits 0x1647 // Specifies the units of Width Value. -#define DAQmx_Exported_AdvTrig_Pulse_Width 0x1648 // Specifies the width of an exported Advance Trigger pulse. Specify this value in the units you specify with Width Units. -#define DAQmx_Exported_PauseTrig_OutputTerm 0x1615 // Specifies the terminal to which to route the Pause Trigger. -#define DAQmx_Exported_PauseTrig_Lvl_ActiveLvl 0x1616 // Specifies the active level of the exported Pause Trigger. -#define DAQmx_Exported_RefTrig_OutputTerm 0x0590 // Specifies the terminal to which to route the Reference Trigger. -#define DAQmx_Exported_RefTrig_Pulse_Polarity 0x0591 // Specifies the polarity of the exported Reference Trigger. -#define DAQmx_Exported_StartTrig_OutputTerm 0x0584 // Specifies the terminal to which to route the Start Trigger. -#define DAQmx_Exported_StartTrig_Pulse_Polarity 0x0585 // Specifies the polarity of the exported Start Trigger. -#define DAQmx_Exported_AdvCmpltEvent_OutputTerm 0x1651 // Specifies the terminal to which to route the Advance Complete Event. -#define DAQmx_Exported_AdvCmpltEvent_Delay 0x1757 // Specifies the output signal delay in periods of the sample clock. -#define DAQmx_Exported_AdvCmpltEvent_Pulse_Polarity 0x1652 // Specifies the polarity of the exported Advance Complete Event. -#define DAQmx_Exported_AdvCmpltEvent_Pulse_Width 0x1654 // Specifies the width of the exported Advance Complete Event pulse. -#define DAQmx_Exported_AIHoldCmpltEvent_OutputTerm 0x18ED // Specifies the terminal to which to route the AI Hold Complete Event. -#define DAQmx_Exported_AIHoldCmpltEvent_PulsePolarity 0x18EE // Specifies the polarity of an exported AI Hold Complete Event pulse. +#define +DAQmx_Exported_AIConvClk_OutputTerm 0x1687 // Specifies the terminal to which to route the AI Convert Clock. +#define +DAQmx_Exported_AIConvClk_Pulse_Polarity 0x1688 // Indicates the polarity of the exported AI Convert Clock. The polarity is fixed and independent of the active edge of the source of the AI Convert Clock. +#define +DAQmx_Exported_10MHzRefClk_OutputTerm 0x226E // Specifies the terminal to which to route the 10MHz Clock. +#define +DAQmx_Exported_20MHzTimebase_OutputTerm 0x1657 // Specifies the terminal to which to route the 20MHz Timebase. +#define +DAQmx_Exported_SampClk_OutputBehavior 0x186B // Specifies whether the exported Sample Clock issues a pulse at the beginning of a sample or changes to a high state for the duration of the sample. +#define +DAQmx_Exported_SampClk_OutputTerm 0x1663 // Specifies the terminal to which to route the Sample Clock. +#define +DAQmx_Exported_SampClk_DelayOffset 0x21C4 // Specifies in seconds the amount of time to offset the exported Sample clock. Refer to timing diagrams for generation applications in the device documentation for more information about this value. +#define +DAQmx_Exported_SampClk_Pulse_Polarity 0x1664 // Specifies the polarity of the exported Sample Clock if Output Behavior is DAQmx_Val_Pulse. +#define +DAQmx_Exported_SampClkTimebase_OutputTerm 0x18F9 // Specifies the terminal to which to route the Sample Clock Timebase. +#define +DAQmx_Exported_DividedSampClkTimebase_OutputTerm 0x21A1 // Specifies the terminal to which to route the Divided Sample Clock Timebase. +#define +DAQmx_Exported_AdvTrig_OutputTerm 0x1645 // Specifies the terminal to which to route the Advance Trigger. +#define +DAQmx_Exported_AdvTrig_Pulse_Polarity 0x1646 // Indicates the polarity of the exported Advance Trigger. +#define +DAQmx_Exported_AdvTrig_Pulse_WidthUnits 0x1647 // Specifies the units of Width Value. +#define +DAQmx_Exported_AdvTrig_Pulse_Width 0x1648 // Specifies the width of an exported Advance Trigger pulse. Specify this value in the units you specify with Width Units. +#define +DAQmx_Exported_PauseTrig_OutputTerm 0x1615 // Specifies the terminal to which to route the Pause Trigger. +#define +DAQmx_Exported_PauseTrig_Lvl_ActiveLvl 0x1616 // Specifies the active level of the exported Pause Trigger. +#define +DAQmx_Exported_RefTrig_OutputTerm 0x0590 // Specifies the terminal to which to route the Reference Trigger. +#define +DAQmx_Exported_RefTrig_Pulse_Polarity 0x0591 // Specifies the polarity of the exported Reference Trigger. +#define +DAQmx_Exported_StartTrig_OutputTerm 0x0584 // Specifies the terminal to which to route the Start Trigger. +#define +DAQmx_Exported_StartTrig_Pulse_Polarity 0x0585 // Specifies the polarity of the exported Start Trigger. +#define +DAQmx_Exported_AdvCmpltEvent_OutputTerm 0x1651 // Specifies the terminal to which to route the Advance Complete Event. +#define +DAQmx_Exported_AdvCmpltEvent_Delay 0x1757 // Specifies the output signal delay in periods of the sample clock. +#define +DAQmx_Exported_AdvCmpltEvent_Pulse_Polarity 0x1652 // Specifies the polarity of the exported Advance Complete Event. +#define +DAQmx_Exported_AdvCmpltEvent_Pulse_Width 0x1654 // Specifies the width of the exported Advance Complete Event pulse. +#define +DAQmx_Exported_AIHoldCmpltEvent_OutputTerm 0x18ED // Specifies the terminal to which to route the AI Hold Complete Event. +#define +DAQmx_Exported_AIHoldCmpltEvent_PulsePolarity 0x18EE // Specifies the polarity of an exported AI Hold Complete Event pulse. #define DAQmx_Exported_ChangeDetectEvent_OutputTerm 0x2197 // Specifies the terminal to which to route the Change Detection Event. -#define DAQmx_Exported_ChangeDetectEvent_Pulse_Polarity 0x2303 // Specifies the polarity of an exported Change Detection Event pulse. -#define DAQmx_Exported_CtrOutEvent_OutputTerm 0x1717 // Specifies the terminal to which to route the Counter Output Event. -#define DAQmx_Exported_CtrOutEvent_OutputBehavior 0x174F // Specifies whether the exported Counter Output Event pulses or changes from one state to the other when the counter reaches terminal count. -#define DAQmx_Exported_CtrOutEvent_Pulse_Polarity 0x1718 // Specifies the polarity of the pulses at the output terminal of the counter when Output Behavior is DAQmx_Val_Pulse. NI-DAQmx ignores this property if Output Behavior is DAQmx_Val_Toggle. -#define DAQmx_Exported_CtrOutEvent_Toggle_IdleState 0x186A // Specifies the initial state of the output terminal of the counter when Output Behavior is DAQmx_Val_Toggle. The terminal enters this state when NI-DAQmx commits the task. -#define DAQmx_Exported_HshkEvent_OutputTerm 0x22BA // Specifies the terminal to which to route the Handshake Event. -#define DAQmx_Exported_HshkEvent_OutputBehavior 0x22BB // Specifies the output behavior of the Handshake Event. -#define DAQmx_Exported_HshkEvent_Delay 0x22BC // Specifies the number of seconds to delay after the Handshake Trigger deasserts before asserting the Handshake Event. -#define DAQmx_Exported_HshkEvent_Interlocked_AssertedLvl 0x22BD // Specifies the asserted level of the exported Handshake Event if Output Behavior is DAQmx_Val_Interlocked. -#define DAQmx_Exported_HshkEvent_Interlocked_AssertOnStart 0x22BE // Specifies to assert the Handshake Event when the task starts if Output Behavior is DAQmx_Val_Interlocked. -#define DAQmx_Exported_HshkEvent_Interlocked_DeassertDelay 0x22BF // Specifies in seconds the amount of time to wait after the Handshake Trigger asserts before deasserting the Handshake Event if Output Behavior is DAQmx_Val_Interlocked. -#define DAQmx_Exported_HshkEvent_Pulse_Polarity 0x22C0 // Specifies the polarity of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. -#define DAQmx_Exported_HshkEvent_Pulse_Width 0x22C1 // Specifies in seconds the pulse width of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. -#define DAQmx_Exported_RdyForXferEvent_OutputTerm 0x22B5 // Specifies the terminal to which to route the Ready for Transfer Event. -#define DAQmx_Exported_RdyForXferEvent_Lvl_ActiveLvl 0x22B6 // Specifies the active level of the exported Ready for Transfer Event. -#define DAQmx_Exported_RdyForXferEvent_DeassertCond 0x2963 // Specifies when the ready for transfer event deasserts. -#define DAQmx_Exported_RdyForXferEvent_DeassertCondCustomThreshold 0x2964 // Specifies in samples the threshold below which the Ready for Transfer Event deasserts. This threshold is an amount of space available in the onboard memory of the device. Deassert Condition must be DAQmx_Val_OnbrdMemCustomThreshold to use a custom threshold. -#define DAQmx_Exported_DataActiveEvent_OutputTerm 0x1633 // Specifies the terminal to which to export the Data Active Event. -#define DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl 0x1634 // Specifies the polarity of the exported Data Active Event. -#define DAQmx_Exported_RdyForStartEvent_OutputTerm 0x1609 // Specifies the terminal to which to route the Ready for Start Event. -#define DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl 0x1751 // Specifies the polarity of the exported Ready for Start Event. -#define DAQmx_Exported_SyncPulseEvent_OutputTerm 0x223C // Specifies the terminal to which to route the Synchronization Pulse Event. -#define DAQmx_Exported_WatchdogExpiredEvent_OutputTerm 0x21AA // Specifies the terminal to which to route the Watchdog Timer Expired Event. +#define +DAQmx_Exported_ChangeDetectEvent_Pulse_Polarity 0x2303 // Specifies the polarity of an exported Change Detection Event pulse. +#define +DAQmx_Exported_CtrOutEvent_OutputTerm 0x1717 // Specifies the terminal to which to route the Counter Output Event. +#define +DAQmx_Exported_CtrOutEvent_OutputBehavior 0x174F // Specifies whether the exported Counter Output Event pulses or changes from one state to the other when the counter reaches terminal count. +#define +DAQmx_Exported_CtrOutEvent_Pulse_Polarity 0x1718 // Specifies the polarity of the pulses at the output terminal of the counter when Output Behavior is DAQmx_Val_Pulse. NI-DAQmx ignores this property if Output Behavior is DAQmx_Val_Toggle. +#define +DAQmx_Exported_CtrOutEvent_Toggle_IdleState 0x186A // Specifies the initial state of the output terminal of the counter when Output Behavior is DAQmx_Val_Toggle. The terminal enters this state when NI-DAQmx commits the task. +#define +DAQmx_Exported_HshkEvent_OutputTerm 0x22BA // Specifies the terminal to which to route the Handshake Event. +#define +DAQmx_Exported_HshkEvent_OutputBehavior 0x22BB // Specifies the output behavior of the Handshake Event. +#define +DAQmx_Exported_HshkEvent_Delay 0x22BC // Specifies the number of seconds to delay after the Handshake Trigger deasserts before asserting the Handshake Event. +#define +DAQmx_Exported_HshkEvent_Interlocked_AssertedLvl 0x22BD // Specifies the asserted level of the exported Handshake Event if Output Behavior is DAQmx_Val_Interlocked. +#define +DAQmx_Exported_HshkEvent_Interlocked_AssertOnStart 0x22BE // Specifies to assert the Handshake Event when the task starts if Output Behavior is DAQmx_Val_Interlocked. +#define +DAQmx_Exported_HshkEvent_Interlocked_DeassertDelay 0x22BF // Specifies in seconds the amount of time to wait after the Handshake Trigger asserts before deasserting the Handshake Event if Output Behavior is DAQmx_Val_Interlocked. +#define +DAQmx_Exported_HshkEvent_Pulse_Polarity 0x22C0 // Specifies the polarity of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. +#define +DAQmx_Exported_HshkEvent_Pulse_Width 0x22C1 // Specifies in seconds the pulse width of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. +#define +DAQmx_Exported_RdyForXferEvent_OutputTerm 0x22B5 // Specifies the terminal to which to route the Ready for Transfer Event. +#define +DAQmx_Exported_RdyForXferEvent_Lvl_ActiveLvl 0x22B6 // Specifies the active level of the exported Ready for Transfer Event. +#define +DAQmx_Exported_RdyForXferEvent_DeassertCond 0x2963 // Specifies when the ready for transfer event deasserts. +#define +DAQmx_Exported_RdyForXferEvent_DeassertCondCustomThreshold 0x2964 // Specifies in samples the threshold below which the Ready for Transfer Event deasserts. This threshold is an amount of space available in the onboard memory of the device. Deassert Condition must be DAQmx_Val_OnbrdMemCustomThreshold to use a custom threshold. +#define +DAQmx_Exported_DataActiveEvent_OutputTerm 0x1633 // Specifies the terminal to which to export the Data Active Event. +#define +DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl 0x1634 // Specifies the polarity of the exported Data Active Event. +#define +DAQmx_Exported_RdyForStartEvent_OutputTerm 0x1609 // Specifies the terminal to which to route the Ready for Start Event. +#define +DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl 0x1751 // Specifies the polarity of the exported Ready for Start Event. +#define +DAQmx_Exported_SyncPulseEvent_OutputTerm 0x223C // Specifies the terminal to which to route the Synchronization Pulse Event. +#define +DAQmx_Exported_WatchdogExpiredEvent_OutputTerm 0x21AA // Specifies the terminal to which to route the Watchdog Timer Expired Event. //********** Persisted Channel Attributes ********** -#define DAQmx_PersistedChan_Author 0x22D0 // Indicates the author of the global channel. -#define DAQmx_PersistedChan_AllowInteractiveEditing 0x22D1 // Indicates whether the global channel can be edited in the DAQ Assistant. -#define DAQmx_PersistedChan_AllowInteractiveDeletion 0x22D2 // Indicates whether the global channel can be deleted through MAX. +#define +DAQmx_PersistedChan_Author 0x22D0 // Indicates the author of the global channel. +#define +DAQmx_PersistedChan_AllowInteractiveEditing 0x22D1 // Indicates whether the global channel can be edited in the DAQ Assistant. +#define +DAQmx_PersistedChan_AllowInteractiveDeletion 0x22D2 // Indicates whether the global channel can be deleted through MAX. //********** Persisted Scale Attributes ********** -#define DAQmx_PersistedScale_Author 0x22D4 // Indicates the author of the custom scale. -#define DAQmx_PersistedScale_AllowInteractiveEditing 0x22D5 // Indicates whether the custom scale can be edited in the DAQ Assistant. -#define DAQmx_PersistedScale_AllowInteractiveDeletion 0x22D6 // Indicates whether the custom scale can be deleted through MAX. +#define +DAQmx_PersistedScale_Author 0x22D4 // Indicates the author of the custom scale. +#define +DAQmx_PersistedScale_AllowInteractiveEditing 0x22D5 // Indicates whether the custom scale can be edited in the DAQ Assistant. +#define +DAQmx_PersistedScale_AllowInteractiveDeletion 0x22D6 // Indicates whether the custom scale can be deleted through MAX. //********** Persisted Task Attributes ********** -#define DAQmx_PersistedTask_Author 0x22CC // Indicates the author of the task. -#define DAQmx_PersistedTask_AllowInteractiveEditing 0x22CD // Indicates whether the task can be edited in the DAQ Assistant. -#define DAQmx_PersistedTask_AllowInteractiveDeletion 0x22CE // Indicates whether the task can be deleted through MAX. +#define +DAQmx_PersistedTask_Author 0x22CC // Indicates the author of the task. +#define +DAQmx_PersistedTask_AllowInteractiveEditing 0x22CD // Indicates whether the task can be edited in the DAQ Assistant. +#define +DAQmx_PersistedTask_AllowInteractiveDeletion 0x22CE // Indicates whether the task can be deleted through MAX. //********** Physical Channel Attributes ********** -#define DAQmx_PhysicalChan_AI_SupportedMeasTypes 0x2FD7 // Indicates the measurement types supported by the channel. -#define DAQmx_PhysicalChan_AI_TermCfgs 0x2342 // Indicates the list of terminal configurations supported by the channel. -#define DAQmx_PhysicalChan_AI_InputSrcs 0x2FD8 // Indicates the list of input sources supported by the channel. Channels may support using the signal from the I/O connector or one of several calibration signals. -#define DAQmx_PhysicalChan_AI_SensorPower_Types 0x3179 // Indicates the types of power supplied to the sensor supported by this channel. -#define DAQmx_PhysicalChan_AI_SensorPower_VoltageRangeVals 0x317A // Indicates pairs of sensor power voltage ranges supported by this channel. Each pair consists of the low value followed by the high value. -#define DAQmx_PhysicalChan_AI_PowerControl_Voltage 0x316C // Specifies the voltage level for the sensor's power supply. -#define DAQmx_PhysicalChan_AI_PowerControl_Enable 0x316D // Specifies whether to turn on the sensor's power supply. -#define DAQmx_PhysicalChan_AI_PowerControl_Type 0x316E // Specifies the type of power supplied to the sensor. -#define DAQmx_PhysicalChan_AI_SensorPower_OpenChan 0x317C // Indicates whether there is an open channel or undercurrent condition on the channel. -#define DAQmx_PhysicalChan_AI_SensorPower_Overcurrent 0x317D // Indicates whether there is an overcurrent condition on the channel. -#define DAQmx_PhysicalChan_AO_SupportedOutputTypes 0x2FD9 // Indicates the output types supported by the channel. -#define DAQmx_PhysicalChan_AO_SupportedPowerUpOutputTypes 0x304E // Indicates the power up output types supported by the channel. -#define DAQmx_PhysicalChan_AO_TermCfgs 0x29A3 // Indicates the list of terminal configurations supported by the channel. -#define DAQmx_PhysicalChan_AO_ManualControlEnable 0x2A1E // Specifies if you can control the physical channel externally via a manual control located on the device. You cannot simultaneously control a channel manually and with NI-DAQmx. -#define DAQmx_PhysicalChan_AO_ManualControl_ShortDetected 0x2EC3 // Indicates whether the physical channel is currently disabled due to a short detected on the channel. -#define DAQmx_PhysicalChan_AO_ManualControlAmplitude 0x2A1F // Indicates the current value of the front panel amplitude control for the physical channel in volts. -#define DAQmx_PhysicalChan_AO_ManualControlFreq 0x2A20 // Indicates the current value of the front panel frequency control for the physical channel in hertz. +#define +DAQmx_PhysicalChan_AI_SupportedMeasTypes 0x2FD7 // Indicates the measurement types supported by the channel. +#define +DAQmx_PhysicalChan_AI_TermCfgs 0x2342 // Indicates the list of terminal configurations supported by the channel. +#define +DAQmx_PhysicalChan_AI_InputSrcs 0x2FD8 // Indicates the list of input sources supported by the channel. Channels may support using the signal from the I/O connector or one of several calibration signals. +#define +DAQmx_PhysicalChan_AI_SensorPower_Types 0x3179 // Indicates the types of power supplied to the sensor supported by this channel. +#define +DAQmx_PhysicalChan_AI_SensorPower_VoltageRangeVals 0x317A // Indicates pairs of sensor power voltage ranges supported by this channel. Each pair consists of the low value followed by the high value. +#define +DAQmx_PhysicalChan_AI_PowerControl_Voltage 0x316C // Specifies the voltage level for the sensor's power supply. +#define +DAQmx_PhysicalChan_AI_PowerControl_Enable 0x316D // Specifies whether to turn on the sensor's power supply. +#define +DAQmx_PhysicalChan_AI_PowerControl_Type 0x316E // Specifies the type of power supplied to the sensor. +#define +DAQmx_PhysicalChan_AI_SensorPower_OpenChan 0x317C // Indicates whether there is an open channel or undercurrent condition on the channel. +#define +DAQmx_PhysicalChan_AI_SensorPower_Overcurrent 0x317D // Indicates whether there is an overcurrent condition on the channel. +#define +DAQmx_PhysicalChan_AO_SupportedOutputTypes 0x2FD9 // Indicates the output types supported by the channel. +#define +DAQmx_PhysicalChan_AO_SupportedPowerUpOutputTypes 0x304E // Indicates the power up output types supported by the channel. +#define +DAQmx_PhysicalChan_AO_TermCfgs 0x29A3 // Indicates the list of terminal configurations supported by the channel. +#define +DAQmx_PhysicalChan_AO_ManualControlEnable 0x2A1E // Specifies if you can control the physical channel externally via a manual control located on the device. You cannot simultaneously control a channel manually and with NI-DAQmx. +#define +DAQmx_PhysicalChan_AO_ManualControl_ShortDetected 0x2EC3 // Indicates whether the physical channel is currently disabled due to a short detected on the channel. +#define +DAQmx_PhysicalChan_AO_ManualControlAmplitude 0x2A1F // Indicates the current value of the front panel amplitude control for the physical channel in volts. +#define +DAQmx_PhysicalChan_AO_ManualControlFreq 0x2A20 // Indicates the current value of the front panel frequency control for the physical channel in hertz. #define DAQmx_AO_PowerAmp_ChannelEnable 0x3062 // Specifies whether to enable or disable a channel for amplification. This property can also be used to check if a channel is enabled. -#define DAQmx_AO_PowerAmp_ScalingCoeff 0x3063 // Indicates the coefficients of a polynomial equation used to scale from pre-amplified values. -#define DAQmx_AO_PowerAmp_Overcurrent 0x3064 // Indicates if the channel detected an overcurrent condition. -#define DAQmx_AO_PowerAmp_Gain 0x3065 // Indicates the calibrated gain of the channel. -#define DAQmx_AO_PowerAmp_Offset 0x3066 // Indicates the calibrated offset of the channel in volts. -#define DAQmx_PhysicalChan_DI_PortWidth 0x29A4 // Indicates in bits the width of digital input port. -#define DAQmx_PhysicalChan_DI_SampClkSupported 0x29A5 // Indicates if the sample clock timing type is supported for the digital input physical channel. -#define DAQmx_PhysicalChan_DI_SampModes 0x2FE0 // Indicates the sample modes supported by devices that support sample clocked digital input. -#define DAQmx_PhysicalChan_DI_ChangeDetectSupported 0x29A6 // Indicates if the change detection timing type is supported for the digital input physical channel. -#define DAQmx_PhysicalChan_DO_PortWidth 0x29A7 // Indicates in bits the width of digital output port. -#define DAQmx_PhysicalChan_DO_SampClkSupported 0x29A8 // Indicates if the sample clock timing type is supported for the digital output physical channel. -#define DAQmx_PhysicalChan_DO_SampModes 0x2FE1 // Indicates the sample modes supported by devices that support sample clocked digital output. -#define DAQmx_PhysicalChan_CI_SupportedMeasTypes 0x2FDA // Indicates the measurement types supported by the channel. -#define DAQmx_PhysicalChan_CO_SupportedOutputTypes 0x2FDB // Indicates the output types supported by the channel. -#define DAQmx_PhysicalChan_TEDS_MfgID 0x21DA // Indicates the manufacturer ID of the sensor. -#define DAQmx_PhysicalChan_TEDS_ModelNum 0x21DB // Indicates the model number of the sensor. -#define DAQmx_PhysicalChan_TEDS_SerialNum 0x21DC // Indicates the serial number of the sensor. -#define DAQmx_PhysicalChan_TEDS_VersionNum 0x21DD // Indicates the version number of the sensor. -#define DAQmx_PhysicalChan_TEDS_VersionLetter 0x21DE // Indicates the version letter of the sensor. -#define DAQmx_PhysicalChan_TEDS_BitStream 0x21DF // Indicates the TEDS binary bitstream without checksums. -#define DAQmx_PhysicalChan_TEDS_TemplateIDs 0x228F // Indicates the IDs of the templates in the bitstream in BitStream. +#define +DAQmx_AO_PowerAmp_ScalingCoeff 0x3063 // Indicates the coefficients of a polynomial equation used to scale from pre-amplified values. +#define +DAQmx_AO_PowerAmp_Overcurrent 0x3064 // Indicates if the channel detected an overcurrent condition. +#define +DAQmx_AO_PowerAmp_Gain 0x3065 // Indicates the calibrated gain of the channel. +#define +DAQmx_AO_PowerAmp_Offset 0x3066 // Indicates the calibrated offset of the channel in volts. +#define +DAQmx_PhysicalChan_DI_PortWidth 0x29A4 // Indicates in bits the width of digital input port. +#define +DAQmx_PhysicalChan_DI_SampClkSupported 0x29A5 // Indicates if the sample clock timing type is supported for the digital input physical channel. +#define +DAQmx_PhysicalChan_DI_SampModes 0x2FE0 // Indicates the sample modes supported by devices that support sample clocked digital input. +#define +DAQmx_PhysicalChan_DI_ChangeDetectSupported 0x29A6 // Indicates if the change detection timing type is supported for the digital input physical channel. +#define +DAQmx_PhysicalChan_DO_PortWidth 0x29A7 // Indicates in bits the width of digital output port. +#define +DAQmx_PhysicalChan_DO_SampClkSupported 0x29A8 // Indicates if the sample clock timing type is supported for the digital output physical channel. +#define +DAQmx_PhysicalChan_DO_SampModes 0x2FE1 // Indicates the sample modes supported by devices that support sample clocked digital output. +#define +DAQmx_PhysicalChan_CI_SupportedMeasTypes 0x2FDA // Indicates the measurement types supported by the channel. +#define +DAQmx_PhysicalChan_CO_SupportedOutputTypes 0x2FDB // Indicates the output types supported by the channel. +#define +DAQmx_PhysicalChan_TEDS_MfgID 0x21DA // Indicates the manufacturer ID of the sensor. +#define +DAQmx_PhysicalChan_TEDS_ModelNum 0x21DB // Indicates the model number of the sensor. +#define +DAQmx_PhysicalChan_TEDS_SerialNum 0x21DC // Indicates the serial number of the sensor. +#define +DAQmx_PhysicalChan_TEDS_VersionNum 0x21DD // Indicates the version number of the sensor. +#define +DAQmx_PhysicalChan_TEDS_VersionLetter 0x21DE // Indicates the version letter of the sensor. +#define +DAQmx_PhysicalChan_TEDS_BitStream 0x21DF // Indicates the TEDS binary bitstream without checksums. +#define +DAQmx_PhysicalChan_TEDS_TemplateIDs 0x228F // Indicates the IDs of the templates in the bitstream in BitStream. //********** Read Attributes ********** -#define DAQmx_Read_RelativeTo 0x190A // Specifies the point in the buffer at which to begin a read operation. If you also specify an offset with Offset, the read operation begins at that offset relative to the point you select with this property. The default value is DAQmx_Val_CurrReadPos unless you configure a Reference Trigger for the task. If you configure a Reference Trigger, the default value is DAQmx_Val_FirstPretrigSamp. -#define DAQmx_Read_Offset 0x190B // Specifies an offset in samples per channel at which to begin a read operation. This offset is relative to the location you specify with RelativeTo. -#define DAQmx_Read_ChannelsToRead 0x1823 // Specifies a subset of channels in the task from which to read. -#define DAQmx_Read_ReadAllAvailSamp 0x1215 // Specifies whether subsequent read operations read all samples currently available in the buffer or wait for the buffer to become full before reading. NI-DAQmx uses this setting for finite acquisitions and only when the number of samples to read is -1. For continuous acquisitions when the number of samples to read is -1, a read operation always reads all samples currently available in the buffer. -#define DAQmx_Read_AutoStart 0x1826 // Specifies if an NI-DAQmx Read function automatically starts the task if you did not start the task explicitly by using DAQmxStartTask(). The default value is TRUE. When an NI-DAQmx Read function starts a finite acquisition task, it also stops the task after reading the last sample. -#define DAQmx_Read_OverWrite 0x1211 // Specifies whether to overwrite samples in the buffer that you have not yet read. -#define DAQmx_Logging_FilePath 0x2EC4 // Specifies the path to the TDMS file to which you want to log data. If the file path is changed while the task is running, this takes effect on the next sample interval (if Logging.SampsPerFile has been set) or when DAQmx Start New File is called. New file paths can be specified by ending with "\" or "/". Files created after specifying a new file path retain the same name and numbering sequence. -#define DAQmx_Logging_Mode 0x2EC5 // Specifies whether to enable logging and whether to allow reading data while logging. Log mode allows for the best performance. However, you cannot read data while logging if you specify this mode. If you want to read data while logging, specify Log and Read mode. -#define DAQmx_Logging_TDMS_GroupName 0x2EC6 // Specifies the name of the group to configure within the TDMS file for data from this task. If you append data to an existing file and the specified group already exists, NI-DAQmx appends a number symbol and a number to the group name, incrementing that number until finding a group name that does not exist. For example, if you specify a group name of Voltage Task, and that group already exists, NI-DAQmx assigns the gr... -#define DAQmx_Logging_TDMS_Operation 0x2EC7 // Specifies how to open the TDMS file. -#define DAQmx_Logging_Pause 0x2FE3 // Specifies whether logging is paused while a task is executing. If Mode is set to Log and Read mode, this value is taken into consideration on the next call to DAQmx Read, where data is written to disk. If Mode is set to Log Only mode, this value is taken into consideration the next time that data is written to disk. A new TDMS group is written when logging is resumed from a paused state. -#define DAQmx_Logging_SampsPerFile 0x2FE4 // Specifies how many samples to write to each file. When the file reaches the number of samples specified, a new file is created with the naming convention of <filename>_####.tdms, where #### starts at 0001 and increments automatically with each new file. For example, if the file specified is C:\data.tdms, the next file name used is C:\data_0001.tdms. To disable file spanning behavior, set this attribute to ... -#define DAQmx_Logging_FileWriteSize 0x2FC3 // Specifies the size, in samples, in which data will be written to disk. The size must be evenly divisible by the volume sector size, in bytes. -#define DAQmx_Logging_FilePreallocationSize 0x2FC6 // Specifies a size in samples to be used to pre-allocate space on disk. Pre-allocation can improve file I/O performance, especially in situations where multiple files are being written to disk. For finite tasks, the default behavior is to pre-allocate the file based on the number of samples you configure the task to acquire. -#define DAQmx_Read_CurrReadPos 0x1221 // Indicates in samples per channel the current position in the buffer. -#define DAQmx_Read_AvailSampPerChan 0x1223 // Indicates the number of samples available to read per channel. This value is the same for all channels in the task. -#define DAQmx_Read_TotalSampPerChanAcquired 0x192A // Indicates the total number of samples acquired by each channel. NI-DAQmx returns a single value because this value is the same for all channels. For retriggered acquisitions, this value is the cumulative number of samples across all retriggered acquisitions. -#define DAQmx_Read_CommonModeRangeErrorChansExist 0x2A98 // Indicates if the device(s) detected a common mode range violation for any virtual channel in the task. Common mode range violation occurs when the voltage of either the positive terminal or negative terminal to ground are out of range. Reading this property clears the common mode range violation status for all channels in the task. You must read this property before you read Common Mode Range Error Channels. Other... -#define DAQmx_Read_CommonModeRangeErrorChans 0x2A99 // Indicates a list of names of any virtual channels in the task for which the device(s) detected a common mode range violation. You must read Common Mode Range Error Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_ExcitFaultChansExist 0x3088 // Indicates if the device(s) detected an excitation fault condition for any virtual channel in the task. Reading this property clears the excitation fault status for all channels in the task. You must read this property before you read Excitation Fault Channels. Otherwise, you will receive an error. -#define DAQmx_Read_ExcitFaultChans 0x3089 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an excitation fault condition. You must read Excitation Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_OvercurrentChansExist 0x29E6 // Indicates if the device(s) detected an overcurrent condition for any virtual channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. -#define DAQmx_Read_OvercurrentChans 0x29E7 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an overcurrent condition. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. On some devices, you must restart the task for all overcurrent channels to recover. -#define DAQmx_Read_OvertemperatureChansExist 0x3081 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. -#define DAQmx_Read_OvertemperatureChans 0x3082 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_OpenChansExist 0x3100 // Indicates if the device or devices detected an open channel condition in any virtual channel in the task. Reading this property clears the open channel status for all channels in this task. You must read this property before you read Open Channels. Otherwise, you will receive an error. -#define DAQmx_Read_OpenChans 0x3101 // Indicates a list of names of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. -#define DAQmx_Read_OpenChansDetails 0x3102 // Indicates a list of details of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. -#define DAQmx_Read_OpenCurrentLoopChansExist 0x2A09 // Indicates if the device(s) detected an open current loop for any virtual channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_RelativeTo 0x190A // Specifies the point in the buffer at which to begin a read operation. If you also specify an offset with Offset, the read operation begins at that offset relative to the point you select with this property. The default value is DAQmx_Val_CurrReadPos unless you configure a Reference Trigger for the task. If you configure a Reference Trigger, the default value is DAQmx_Val_FirstPretrigSamp. +#define +DAQmx_Read_Offset 0x190B // Specifies an offset in samples per channel at which to begin a read operation. This offset is relative to the location you specify with RelativeTo. +#define +DAQmx_Read_ChannelsToRead 0x1823 // Specifies a subset of channels in the task from which to read. +#define +DAQmx_Read_ReadAllAvailSamp 0x1215 // Specifies whether subsequent read operations read all samples currently available in the buffer or wait for the buffer to become full before reading. NI-DAQmx uses this setting for finite acquisitions and only when the number of samples to read is -1. For continuous acquisitions when the number of samples to read is -1, a read operation always reads all samples currently available in the buffer. +#define +DAQmx_Read_AutoStart 0x1826 // Specifies if an NI-DAQmx Read function automatically starts the task if you did not start the task explicitly by using DAQmxStartTask(). The default value is TRUE. When an NI-DAQmx Read function starts a finite acquisition task, it also stops the task after reading the last sample. +#define +DAQmx_Read_OverWrite 0x1211 // Specifies whether to overwrite samples in the buffer that you have not yet read. +#define +DAQmx_Logging_FilePath 0x2EC4 // Specifies the path to the TDMS file to which you want to log data. If the file path is changed while the task is running, this takes effect on the next sample interval (if Logging.SampsPerFile has been set) or when DAQmx Start New File is called. New file paths can be specified by ending with "\" or "/". Files created after specifying a new file path retain the same name and numbering sequence. +#define +DAQmx_Logging_Mode 0x2EC5 // Specifies whether to enable logging and whether to allow reading data while logging. Log mode allows for the best performance. However, you cannot read data while logging if you specify this mode. If you want to read data while logging, specify Log and Read mode. +#define +DAQmx_Logging_TDMS_GroupName 0x2EC6 // Specifies the name of the group to configure within the TDMS file for data from this task. If you append data to an existing file and the specified group already exists, NI-DAQmx appends a number symbol and a number to the group name, incrementing that number until finding a group name that does not exist. For example, if you specify a group name of Voltage Task, and that group already exists, NI-DAQmx assigns the gr... +#define +DAQmx_Logging_TDMS_Operation 0x2EC7 // Specifies how to open the TDMS file. +#define +DAQmx_Logging_Pause 0x2FE3 // Specifies whether logging is paused while a task is executing. If Mode is set to Log and Read mode, this value is taken into consideration on the next call to DAQmx Read, where data is written to disk. If Mode is set to Log Only mode, this value is taken into consideration the next time that data is written to disk. A new TDMS group is written when logging is resumed from a paused state. +#define +DAQmx_Logging_SampsPerFile 0x2FE4 // Specifies how many samples to write to each file. When the file reaches the number of samples specified, a new file is created with the naming convention of <filename>_####.tdms, where #### starts at 0001 and increments automatically with each new file. For example, if the file specified is C:\data.tdms, the next file name used is C:\data_0001.tdms. To disable file spanning behavior, set this attribute to ... +#define +DAQmx_Logging_FileWriteSize 0x2FC3 // Specifies the size, in samples, in which data will be written to disk. The size must be evenly divisible by the volume sector size, in bytes. +#define +DAQmx_Logging_FilePreallocationSize 0x2FC6 // Specifies a size in samples to be used to pre-allocate space on disk. Pre-allocation can improve file I/O performance, especially in situations where multiple files are being written to disk. For finite tasks, the default behavior is to pre-allocate the file based on the number of samples you configure the task to acquire. +#define +DAQmx_Read_CurrReadPos 0x1221 // Indicates in samples per channel the current position in the buffer. +#define +DAQmx_Read_AvailSampPerChan 0x1223 // Indicates the number of samples available to read per channel. This value is the same for all channels in the task. +#define +DAQmx_Read_TotalSampPerChanAcquired 0x192A // Indicates the total number of samples acquired by each channel. NI-DAQmx returns a single value because this value is the same for all channels. For retriggered acquisitions, this value is the cumulative number of samples across all retriggered acquisitions. +#define +DAQmx_Read_CommonModeRangeErrorChansExist 0x2A98 // Indicates if the device(s) detected a common mode range violation for any virtual channel in the task. Common mode range violation occurs when the voltage of either the positive terminal or negative terminal to ground are out of range. Reading this property clears the common mode range violation status for all channels in the task. You must read this property before you read Common Mode Range Error Channels. Other... +#define +DAQmx_Read_CommonModeRangeErrorChans 0x2A99 // Indicates a list of names of any virtual channels in the task for which the device(s) detected a common mode range violation. You must read Common Mode Range Error Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_ExcitFaultChansExist 0x3088 // Indicates if the device(s) detected an excitation fault condition for any virtual channel in the task. Reading this property clears the excitation fault status for all channels in the task. You must read this property before you read Excitation Fault Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_ExcitFaultChans 0x3089 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an excitation fault condition. You must read Excitation Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_OvercurrentChansExist 0x29E6 // Indicates if the device(s) detected an overcurrent condition for any virtual channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_OvercurrentChans 0x29E7 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an overcurrent condition. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. On some devices, you must restart the task for all overcurrent channels to recover. +#define +DAQmx_Read_OvertemperatureChansExist 0x3081 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_OvertemperatureChans 0x3082 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_OpenChansExist 0x3100 // Indicates if the device or devices detected an open channel condition in any virtual channel in the task. Reading this property clears the open channel status for all channels in this task. You must read this property before you read Open Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_OpenChans 0x3101 // Indicates a list of names of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. +#define +DAQmx_Read_OpenChansDetails 0x3102 // Indicates a list of details of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. +#define +DAQmx_Read_OpenCurrentLoopChansExist 0x2A09 // Indicates if the device(s) detected an open current loop for any virtual channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. #define DAQmx_Read_OpenCurrentLoopChans 0x2A0A // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_OpenThrmcplChansExist 0x2A96 // Indicates if the device(s) detected an open thermocouple connected to any virtual channel in the task. Reading this property clears the open thermocouple status for all channels in the task. You must read this property before you read Open Thermocouple Channels. Otherwise, you will receive an error. -#define DAQmx_Read_OpenThrmcplChans 0x2A97 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open thermcouple. You must read Open Thermocouple Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_OverloadedChansExist 0x2174 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. -#define DAQmx_Read_OverloadedChans 0x2175 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_InputLimitsFaultChansExist 0x318F // Indicates if the device or devices detected a sample that was outside the upper or lower limits configured for each channel in the task. Reading this property clears the input limits fault channel status for all channels in the task. You must read this property before you read Input Limits Fault Channels. Otherwise, you will receive an error. Note: Fault detection applies to both positive and negative inputs. For ... -#define DAQmx_Read_InputLimitsFaultChans 0x3190 // Indicates the virtual channels that have detected samples outside the upper or lower limits configured for each channel in the task. You must read Input Limits Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_PLL_UnlockedChansExist 0x3118 // Indicates whether the PLL is currently locked, or whether it became unlocked during the previous acquisition. Devices may report PLL Unlock either during acquisition or after acquisition. -#define DAQmx_Read_PLL_UnlockedChans 0x3119 // Indicates the channels that had their PLLs unlock. -#define DAQmx_Read_PowerSupplyFaultChansExist 0x3192 // Indicates if the device or devices detected a power supply fault condition in any virtual channel in the task. Reading this property clears the power supply fault status for all channels in this task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. -#define DAQmx_Read_PowerSupplyFaultChans 0x3193 // Indicates the virtual channels that have detected a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_Sync_UnlockedChansExist 0x313D // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. -#define DAQmx_Read_Sync_UnlockedChans 0x313E // Indicates the channels from devices in an unlocked target. -#define DAQmx_Read_AccessoryInsertionOrRemovalDetected 0x2F70 // Indicates if any device(s) in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. -#define DAQmx_Read_DevsWithInsertedOrRemovedAccessories 0x2F71 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. -#define DAQmx_Read_ChangeDetect_HasOverflowed 0x2194 // Indicates if samples were missed because change detection events occurred faster than the device could handle them. Some devices detect overflows differently than others. -#define DAQmx_Read_RawDataWidth 0x217A // Indicates in bytes the size of a raw sample from the task. -#define DAQmx_Read_NumChans 0x217B // Indicates the number of channels that an NI-DAQmx Read function reads from the task. This value is the number of channels in the task or the number of channels you specify with Channels to Read. -#define DAQmx_Read_DigitalLines_BytesPerChan 0x217C // Indicates the number of bytes per channel that NI-DAQmx returns in a sample for line-based reads. If a channel has fewer lines than this number, the extra bytes are FALSE. -#define DAQmx_Read_WaitMode 0x2232 // Specifies how an NI-DAQmx Read function waits for samples to become available. -#define DAQmx_Read_SleepTime 0x22B0 // Specifies in seconds the amount of time to sleep after checking for available samples if Wait Mode is DAQmx_Val_Sleep. +#define +DAQmx_Read_OpenThrmcplChansExist 0x2A96 // Indicates if the device(s) detected an open thermocouple connected to any virtual channel in the task. Reading this property clears the open thermocouple status for all channels in the task. You must read this property before you read Open Thermocouple Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_OpenThrmcplChans 0x2A97 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open thermcouple. You must read Open Thermocouple Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_OverloadedChansExist 0x2174 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_OverloadedChans 0x2175 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_InputLimitsFaultChansExist 0x318F // Indicates if the device or devices detected a sample that was outside the upper or lower limits configured for each channel in the task. Reading this property clears the input limits fault channel status for all channels in the task. You must read this property before you read Input Limits Fault Channels. Otherwise, you will receive an error. Note: Fault detection applies to both positive and negative inputs. For ... +#define +DAQmx_Read_InputLimitsFaultChans 0x3190 // Indicates the virtual channels that have detected samples outside the upper or lower limits configured for each channel in the task. You must read Input Limits Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_PLL_UnlockedChansExist 0x3118 // Indicates whether the PLL is currently locked, or whether it became unlocked during the previous acquisition. Devices may report PLL Unlock either during acquisition or after acquisition. +#define +DAQmx_Read_PLL_UnlockedChans 0x3119 // Indicates the channels that had their PLLs unlock. +#define +DAQmx_Read_PowerSupplyFaultChansExist 0x3192 // Indicates if the device or devices detected a power supply fault condition in any virtual channel in the task. Reading this property clears the power supply fault status for all channels in this task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. +#define +DAQmx_Read_PowerSupplyFaultChans 0x3193 // Indicates the virtual channels that have detected a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_Sync_UnlockedChansExist 0x313D // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. +#define +DAQmx_Read_Sync_UnlockedChans 0x313E // Indicates the channels from devices in an unlocked target. +#define +DAQmx_Read_AccessoryInsertionOrRemovalDetected 0x2F70 // Indicates if any device(s) in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. +#define +DAQmx_Read_DevsWithInsertedOrRemovedAccessories 0x2F71 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Read_ChangeDetect_HasOverflowed 0x2194 // Indicates if samples were missed because change detection events occurred faster than the device could handle them. Some devices detect overflows differently than others. +#define +DAQmx_Read_RawDataWidth 0x217A // Indicates in bytes the size of a raw sample from the task. +#define +DAQmx_Read_NumChans 0x217B // Indicates the number of channels that an NI-DAQmx Read function reads from the task. This value is the number of channels in the task or the number of channels you specify with Channels to Read. +#define +DAQmx_Read_DigitalLines_BytesPerChan 0x217C // Indicates the number of bytes per channel that NI-DAQmx returns in a sample for line-based reads. If a channel has fewer lines than this number, the extra bytes are FALSE. +#define +DAQmx_Read_WaitMode 0x2232 // Specifies how an NI-DAQmx Read function waits for samples to become available. +#define +DAQmx_Read_SleepTime 0x22B0 // Specifies in seconds the amount of time to sleep after checking for available samples if Wait Mode is DAQmx_Val_Sleep. //********** Real-Time Attributes ********** -#define DAQmx_RealTime_ConvLateErrorsToWarnings 0x22EE // Specifies if DAQmxWaitForNextSampleClock(), an NI-DAQmx Read function, and an NI-DAQmx Write function convert late errors to warnings. NI-DAQmx returns no late warnings or errors until the number of warmup iterations you specify with Number Of Warmup Iterations run. -#define DAQmx_RealTime_NumOfWarmupIters 0x22ED // Specifies the number of loop iterations that must occur before DAQmxWaitForNextSampleClock() and an NI-DAQmx Read function return any late warnings or errors. The system needs a number of iterations to stabilize. During this period, a large amount of jitter occurs, potentially causing reads and writes to be late. The default number of warmup iterations is 100. Specify a larger number if needed to stabilize the sys... -#define DAQmx_RealTime_WaitForNextSampClkWaitMode 0x22EF // Specifies how DAQmxWaitForNextSampleClock() waits for the next Sample Clock pulse. -#define DAQmx_RealTime_ReportMissedSamp 0x2319 // Specifies whether an NI-DAQmx Read function returns lateness errors or warnings when it detects missed Sample Clock pulses. This setting does not affect DAQmxWaitForNextSampleClock(). Set this property to TRUE for applications that need to detect lateness without using DAQmxWaitForNextSampleClock(). -#define DAQmx_RealTime_WriteRecoveryMode 0x231A // Specifies how NI-DAQmx attempts to recover after missing a Sample Clock pulse when performing counter writes. +#define +DAQmx_RealTime_ConvLateErrorsToWarnings 0x22EE // Specifies if DAQmxWaitForNextSampleClock(), an NI-DAQmx Read function, and an NI-DAQmx Write function convert late errors to warnings. NI-DAQmx returns no late warnings or errors until the number of warmup iterations you specify with Number Of Warmup Iterations run. +#define +DAQmx_RealTime_NumOfWarmupIters 0x22ED // Specifies the number of loop iterations that must occur before DAQmxWaitForNextSampleClock() and an NI-DAQmx Read function return any late warnings or errors. The system needs a number of iterations to stabilize. During this period, a large amount of jitter occurs, potentially causing reads and writes to be late. The default number of warmup iterations is 100. Specify a larger number if needed to stabilize the sys... +#define +DAQmx_RealTime_WaitForNextSampClkWaitMode 0x22EF // Specifies how DAQmxWaitForNextSampleClock() waits for the next Sample Clock pulse. +#define +DAQmx_RealTime_ReportMissedSamp 0x2319 // Specifies whether an NI-DAQmx Read function returns lateness errors or warnings when it detects missed Sample Clock pulses. This setting does not affect DAQmxWaitForNextSampleClock(). Set this property to TRUE for applications that need to detect lateness without using DAQmxWaitForNextSampleClock(). +#define +DAQmx_RealTime_WriteRecoveryMode 0x231A // Specifies how NI-DAQmx attempts to recover after missing a Sample Clock pulse when performing counter writes. //********** Scale Attributes ********** -#define DAQmx_Scale_Descr 0x1226 // Specifies a description for the scale. -#define DAQmx_Scale_ScaledUnits 0x191B // Specifies the units to use for scaled values. You can use an arbitrary string. -#define DAQmx_Scale_PreScaledUnits 0x18F7 // Specifies the units of the values that you want to scale. -#define DAQmx_Scale_Type 0x1929 // Indicates the method or equation form that the custom scale uses. -#define DAQmx_Scale_Lin_Slope 0x1227 // Specifies the slope, m, in the equation y=mx+b. -#define DAQmx_Scale_Lin_YIntercept 0x1228 // Specifies the y-intercept, b, in the equation y=mx+b. -#define DAQmx_Scale_Map_ScaledMax 0x1229 // Specifies the largest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Maximum Value. Reads coerce samples that are larger than this value to match this value. Writes generate errors for samples that are larger than this value. -#define DAQmx_Scale_Map_PreScaledMax 0x1231 // Specifies the largest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Maximum Value. -#define DAQmx_Scale_Map_ScaledMin 0x1230 // Specifies the smallest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Minimum Value. Reads coerce samples that are smaller than this value to match this value. Writes generate errors for samples that are smaller than this value. -#define DAQmx_Scale_Map_PreScaledMin 0x1232 // Specifies the smallest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Minimum Value. -#define DAQmx_Scale_Poly_ForwardCoeff 0x1234 // Specifies an array of coefficients for the polynomial that converts pre-scaled values to scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define DAQmx_Scale_Poly_ReverseCoeff 0x1235 // Specifies an array of coefficients for the polynomial that converts scaled values to pre-scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9y^3. -#define DAQmx_Scale_Table_ScaledVals 0x1236 // Specifies an array of scaled values. These values map directly to the values in Pre-Scaled Values. -#define DAQmx_Scale_Table_PreScaledVals 0x1237 // Specifies an array of pre-scaled values. These values map directly to the values in Scaled Values. +#define +DAQmx_Scale_Descr 0x1226 // Specifies a description for the scale. +#define +DAQmx_Scale_ScaledUnits 0x191B // Specifies the units to use for scaled values. You can use an arbitrary string. +#define +DAQmx_Scale_PreScaledUnits 0x18F7 // Specifies the units of the values that you want to scale. +#define +DAQmx_Scale_Type 0x1929 // Indicates the method or equation form that the custom scale uses. +#define +DAQmx_Scale_Lin_Slope 0x1227 // Specifies the slope, m, in the equation y=mx+b. +#define +DAQmx_Scale_Lin_YIntercept 0x1228 // Specifies the y-intercept, b, in the equation y=mx+b. +#define +DAQmx_Scale_Map_ScaledMax 0x1229 // Specifies the largest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Maximum Value. Reads coerce samples that are larger than this value to match this value. Writes generate errors for samples that are larger than this value. +#define +DAQmx_Scale_Map_PreScaledMax 0x1231 // Specifies the largest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Maximum Value. +#define +DAQmx_Scale_Map_ScaledMin 0x1230 // Specifies the smallest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Minimum Value. Reads coerce samples that are smaller than this value to match this value. Writes generate errors for samples that are smaller than this value. +#define +DAQmx_Scale_Map_PreScaledMin 0x1232 // Specifies the smallest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Minimum Value. +#define +DAQmx_Scale_Poly_ForwardCoeff 0x1234 // Specifies an array of coefficients for the polynomial that converts pre-scaled values to scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define +DAQmx_Scale_Poly_ReverseCoeff 0x1235 // Specifies an array of coefficients for the polynomial that converts scaled values to pre-scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9y^3. +#define +DAQmx_Scale_Table_ScaledVals 0x1236 // Specifies an array of scaled values. These values map directly to the values in Pre-Scaled Values. +#define +DAQmx_Scale_Table_PreScaledVals 0x1237 // Specifies an array of pre-scaled values. These values map directly to the values in Scaled Values. //********** Switch Channel Attributes ********** -#define DAQmx_SwitchChan_Usage 0x18E4 // (Deprecated) Specifies how you can use the channel. Using this property acts as a safety mechanism to prevent you from connecting two source channels, for example. -#define DAQmx_SwitchChan_AnlgBusSharingEnable 0x2F9E // (Deprecated) Specifies whether to enable sharing of an analog bus line so that multiple switch devices can connect to it simultaneously. For each device that will share the analog bus line, set this property to TRUE to enable sharing on the channel that connects to the analog bus line. Analog bus sharing is disabled by default. -#define DAQmx_SwitchChan_MaxACCarryCurrent 0x0648 // (Deprecated) Indicates in amperes the maximum AC current that the device can carry. -#define DAQmx_SwitchChan_MaxACSwitchCurrent 0x0646 // (Deprecated) Indicates in amperes the maximum AC current that the device can switch. This current is always against an RMS voltage level. -#define DAQmx_SwitchChan_MaxACCarryPwr 0x0642 // (Deprecated) Indicates in watts the maximum AC power that the device can carry. -#define DAQmx_SwitchChan_MaxACSwitchPwr 0x0644 // (Deprecated) Indicates in watts the maximum AC power that the device can switch. -#define DAQmx_SwitchChan_MaxDCCarryCurrent 0x0647 // (Deprecated) Indicates in amperes the maximum DC current that the device can carry. -#define DAQmx_SwitchChan_MaxDCSwitchCurrent 0x0645 // (Deprecated) Indicates in amperes the maximum DC current that the device can switch. This current is always against a DC voltage level. -#define DAQmx_SwitchChan_MaxDCCarryPwr 0x0643 // (Deprecated) Indicates in watts the maximum DC power that the device can carry. -#define DAQmx_SwitchChan_MaxDCSwitchPwr 0x0649 // (Deprecated) Indicates in watts the maximum DC power that the device can switch. +#define +DAQmx_SwitchChan_Usage 0x18E4 // (Deprecated) Specifies how you can use the channel. Using this property acts as a safety mechanism to prevent you from connecting two source channels, for example. +#define +DAQmx_SwitchChan_AnlgBusSharingEnable 0x2F9E // (Deprecated) Specifies whether to enable sharing of an analog bus line so that multiple switch devices can connect to it simultaneously. For each device that will share the analog bus line, set this property to TRUE to enable sharing on the channel that connects to the analog bus line. Analog bus sharing is disabled by default. +#define +DAQmx_SwitchChan_MaxACCarryCurrent 0x0648 // (Deprecated) Indicates in amperes the maximum AC current that the device can carry. +#define +DAQmx_SwitchChan_MaxACSwitchCurrent 0x0646 // (Deprecated) Indicates in amperes the maximum AC current that the device can switch. This current is always against an RMS voltage level. +#define +DAQmx_SwitchChan_MaxACCarryPwr 0x0642 // (Deprecated) Indicates in watts the maximum AC power that the device can carry. +#define +DAQmx_SwitchChan_MaxACSwitchPwr 0x0644 // (Deprecated) Indicates in watts the maximum AC power that the device can switch. +#define +DAQmx_SwitchChan_MaxDCCarryCurrent 0x0647 // (Deprecated) Indicates in amperes the maximum DC current that the device can carry. +#define +DAQmx_SwitchChan_MaxDCSwitchCurrent 0x0645 // (Deprecated) Indicates in amperes the maximum DC current that the device can switch. This current is always against a DC voltage level. +#define +DAQmx_SwitchChan_MaxDCCarryPwr 0x0643 // (Deprecated) Indicates in watts the maximum DC power that the device can carry. +#define +DAQmx_SwitchChan_MaxDCSwitchPwr 0x0649 // (Deprecated) Indicates in watts the maximum DC power that the device can switch. #define DAQmx_SwitchChan_MaxACVoltage 0x0651 // (Deprecated) Indicates in volts the maximum AC RMS voltage that the device can switch. -#define DAQmx_SwitchChan_MaxDCVoltage 0x0650 // (Deprecated) Indicates in volts the maximum DC voltage that the device can switch. -#define DAQmx_SwitchChan_WireMode 0x18E5 // (Deprecated) Indicates the number of wires that the channel switches. -#define DAQmx_SwitchChan_Bandwidth 0x0640 // (Deprecated) Indicates in Hertz the maximum frequency of a signal that can pass through the switch without significant deterioration. -#define DAQmx_SwitchChan_Impedance 0x0641 // (Deprecated) Indicates in ohms the switch impedance. This value is important in the RF domain and should match the impedance of the sources and loads. +#define +DAQmx_SwitchChan_MaxDCVoltage 0x0650 // (Deprecated) Indicates in volts the maximum DC voltage that the device can switch. +#define +DAQmx_SwitchChan_WireMode 0x18E5 // (Deprecated) Indicates the number of wires that the channel switches. +#define +DAQmx_SwitchChan_Bandwidth 0x0640 // (Deprecated) Indicates in Hertz the maximum frequency of a signal that can pass through the switch without significant deterioration. +#define +DAQmx_SwitchChan_Impedance 0x0641 // (Deprecated) Indicates in ohms the switch impedance. This value is important in the RF domain and should match the impedance of the sources and loads. //********** Switch Device Attributes ********** -#define DAQmx_SwitchDev_SettlingTime 0x1244 // (Deprecated) Specifies in seconds the amount of time to wait for the switch to settle (or debounce). NI-DAQmx adds this time to the settling time of the motherboard. Modify this property only if the switch does not settle within the settling time of the motherboard. Refer to device documentation for supported settling times. -#define DAQmx_SwitchDev_AutoConnAnlgBus 0x17DA // (Deprecated) Specifies if NI-DAQmx routes multiplexed channels to the analog bus backplane. Only the SCXI-1127 and SCXI-1128 support this property. -#define DAQmx_SwitchDev_PwrDownLatchRelaysAfterSettling 0x22DB // (Deprecated) Specifies if DAQmxSwitchWaitForSettling() powers down latching relays after waiting for the device to settle. -#define DAQmx_SwitchDev_Settled 0x1243 // (Deprecated) Indicates when Settling Time expires. -#define DAQmx_SwitchDev_RelayList 0x17DC // (Deprecated) Indicates a comma-delimited list of relay names. -#define DAQmx_SwitchDev_NumRelays 0x18E6 // (Deprecated) Indicates the number of relays on the device. This value matches the number of relay names in Relay List. -#define DAQmx_SwitchDev_SwitchChanList 0x18E7 // (Deprecated) Indicates a comma-delimited list of channel names for the current topology of the device. -#define DAQmx_SwitchDev_NumSwitchChans 0x18E8 // (Deprecated) Indicates the number of switch channels for the current topology of the device. This value matches the number of channel names in Switch Channel List. -#define DAQmx_SwitchDev_NumRows 0x18E9 // (Deprecated) Indicates the number of rows on a device in a matrix switch topology. Indicates the number of multiplexed channels on a device in a mux topology. -#define DAQmx_SwitchDev_NumColumns 0x18EA // (Deprecated) Indicates the number of columns on a device in a matrix switch topology. This value is always 1 if the device is in a mux topology. -#define DAQmx_SwitchDev_Topology 0x193D // (Deprecated) Indicates the current topology of the device. This value is one of the topology options in DAQmxSwitchSetTopologyAndReset(). -#define DAQmx_SwitchDev_Temperature 0x301A // (Deprecated) Indicates the current temperature as read by the Switch module in degrees Celsius. Refer to your device documentation for more information. +#define +DAQmx_SwitchDev_SettlingTime 0x1244 // (Deprecated) Specifies in seconds the amount of time to wait for the switch to settle (or debounce). NI-DAQmx adds this time to the settling time of the motherboard. Modify this property only if the switch does not settle within the settling time of the motherboard. Refer to device documentation for supported settling times. +#define +DAQmx_SwitchDev_AutoConnAnlgBus 0x17DA // (Deprecated) Specifies if NI-DAQmx routes multiplexed channels to the analog bus backplane. Only the SCXI-1127 and SCXI-1128 support this property. +#define +DAQmx_SwitchDev_PwrDownLatchRelaysAfterSettling 0x22DB // (Deprecated) Specifies if DAQmxSwitchWaitForSettling() powers down latching relays after waiting for the device to settle. +#define +DAQmx_SwitchDev_Settled 0x1243 // (Deprecated) Indicates when Settling Time expires. +#define +DAQmx_SwitchDev_RelayList 0x17DC // (Deprecated) Indicates a comma-delimited list of relay names. +#define +DAQmx_SwitchDev_NumRelays 0x18E6 // (Deprecated) Indicates the number of relays on the device. This value matches the number of relay names in Relay List. +#define +DAQmx_SwitchDev_SwitchChanList 0x18E7 // (Deprecated) Indicates a comma-delimited list of channel names for the current topology of the device. +#define +DAQmx_SwitchDev_NumSwitchChans 0x18E8 // (Deprecated) Indicates the number of switch channels for the current topology of the device. This value matches the number of channel names in Switch Channel List. +#define +DAQmx_SwitchDev_NumRows 0x18E9 // (Deprecated) Indicates the number of rows on a device in a matrix switch topology. Indicates the number of multiplexed channels on a device in a mux topology. +#define +DAQmx_SwitchDev_NumColumns 0x18EA // (Deprecated) Indicates the number of columns on a device in a matrix switch topology. This value is always 1 if the device is in a mux topology. +#define +DAQmx_SwitchDev_Topology 0x193D // (Deprecated) Indicates the current topology of the device. This value is one of the topology options in DAQmxSwitchSetTopologyAndReset(). +#define +DAQmx_SwitchDev_Temperature 0x301A // (Deprecated) Indicates the current temperature as read by the Switch module in degrees Celsius. Refer to your device documentation for more information. //********** Switch Scan Attributes ********** -#define DAQmx_SwitchScan_BreakMode 0x1247 // (Deprecated) Specifies the action to take between each entry in a scan list. -#define DAQmx_SwitchScan_RepeatMode 0x1248 // (Deprecated) Specifies if the task advances through the scan list multiple times. -#define DAQmx_SwitchScan_WaitingForAdv 0x17D9 // (Deprecated) Indicates if the switch hardware is waiting for an Advance Trigger. If the hardware is waiting, it completed the previous entry in the scan list. +#define +DAQmx_SwitchScan_BreakMode 0x1247 // (Deprecated) Specifies the action to take between each entry in a scan list. +#define +DAQmx_SwitchScan_RepeatMode 0x1248 // (Deprecated) Specifies if the task advances through the scan list multiple times. +#define +DAQmx_SwitchScan_WaitingForAdv 0x17D9 // (Deprecated) Indicates if the switch hardware is waiting for an Advance Trigger. If the hardware is waiting, it completed the previous entry in the scan list. //********** System Attributes ********** -#define DAQmx_Sys_GlobalChans 0x1265 // Indicates an array that contains the names of all global channels saved on the system. -#define DAQmx_Sys_Scales 0x1266 // Indicates an array that contains the names of all custom scales saved on the system. -#define DAQmx_Sys_Tasks 0x1267 // Indicates an array that contains the names of all tasks saved on the system. -#define DAQmx_Sys_DevNames 0x193B // Indicates the names of all devices installed in the system. -#define DAQmx_Sys_NIDAQMajorVersion 0x1272 // Indicates the major portion of the installed version of NI-DAQmx, such as 7 for version 7.0. -#define DAQmx_Sys_NIDAQMinorVersion 0x1923 // Indicates the minor portion of the installed version of NI-DAQmx, such as 0 for version 7.0. -#define DAQmx_Sys_NIDAQUpdateVersion 0x2F22 // Indicates the update portion of the installed version of NI-DAQmx, such as 1 for version 9.0.1. +#define +DAQmx_Sys_GlobalChans 0x1265 // Indicates an array that contains the names of all global channels saved on the system. +#define +DAQmx_Sys_Scales 0x1266 // Indicates an array that contains the names of all custom scales saved on the system. +#define +DAQmx_Sys_Tasks 0x1267 // Indicates an array that contains the names of all tasks saved on the system. +#define +DAQmx_Sys_DevNames 0x193B // Indicates the names of all devices installed in the system. +#define +DAQmx_Sys_NIDAQMajorVersion 0x1272 // Indicates the major portion of the installed version of NI-DAQmx, such as 7 for version 7.0. +#define +DAQmx_Sys_NIDAQMinorVersion 0x1923 // Indicates the minor portion of the installed version of NI-DAQmx, such as 0 for version 7.0. +#define +DAQmx_Sys_NIDAQUpdateVersion 0x2F22 // Indicates the update portion of the installed version of NI-DAQmx, such as 1 for version 9.0.1. //********** Task Attributes ********** -#define DAQmx_Task_Name 0x1276 // Indicates the name of the task. -#define DAQmx_Task_Channels 0x1273 // Indicates the names of all virtual channels in the task. -#define DAQmx_Task_NumChans 0x2181 // Indicates the number of virtual channels in the task. -#define DAQmx_Task_Devices 0x230E // Indicates an array containing the names of all devices in the task. -#define DAQmx_Task_NumDevices 0x29BA // Indicates the number of devices in the task. -#define DAQmx_Task_Complete 0x1274 // Indicates whether the task completed execution. +#define +DAQmx_Task_Name 0x1276 // Indicates the name of the task. +#define +DAQmx_Task_Channels 0x1273 // Indicates the names of all virtual channels in the task. +#define +DAQmx_Task_NumChans 0x2181 // Indicates the number of virtual channels in the task. +#define +DAQmx_Task_Devices 0x230E // Indicates an array containing the names of all devices in the task. +#define +DAQmx_Task_NumDevices 0x29BA // Indicates the number of devices in the task. +#define +DAQmx_Task_Complete 0x1274 // Indicates whether the task completed execution. //********** Timing Attributes ********** -#define DAQmx_SampQuant_SampMode 0x1300 // Specifies if a task acquires or generates a finite number of samples or if it continuously acquires or generates samples. -#define DAQmx_SampQuant_SampPerChan 0x1310 // Specifies the number of samples to acquire or generate for each channel if Sample Mode is DAQmx_Val_FiniteSamps. If Sample Mode is DAQmx_Val_ContSamps, NI-DAQmx uses this value to determine the buffer size. -#define DAQmx_SampTimingType 0x1347 // Specifies the type of sample timing to use for the task. -#define DAQmx_SampClk_Rate 0x1344 // Specifies the sampling sample_rate in samples per channel per second. If you use an external source for the Sample Clock, set this input to the maximum expected sample_rate of that clock. -#define DAQmx_SampClk_MaxRate 0x22C8 // Indicates the maximum Sample Clock sample_rate supported by the task, based on other timing settings. For output tasks, the maximum Sample Clock sample_rate is the maximum sample_rate of the DAC. For input tasks, NI-DAQmx calculates the maximum sampling sample_rate differently for multiplexed devices than simultaneous sampling devices. -#define DAQmx_SampClk_Src 0x1852 // Specifies the terminal of the signal to use as the Sample Clock. -#define DAQmx_SampClk_ActiveEdge 0x1301 // Specifies on which edge of a clock pulse sampling takes place. This property is useful primarily when the signal you use as the Sample Clock is not a periodic clock. -#define DAQmx_SampClk_OverrunBehavior 0x2EFC // Specifies the action to take if Sample Clock edges occur faster than the device can handle them. -#define DAQmx_SampClk_UnderflowBehavior 0x2961 // Specifies the action to take when the onboard memory of the device becomes empty. In either case, the sample clock does not stop. -#define DAQmx_SampClk_TimebaseDiv 0x18EB // Specifies the number of Sample Clock Timebase pulses needed to produce a single Sample Clock pulse. -#define DAQmx_SampClk_Term 0x2F1B // Indicates the name of the internal Sample Clock terminal for the task. This property does not return the name of the Sample Clock source terminal specified with Source. -#define DAQmx_SampClk_Timebase_Rate 0x1303 // Specifies the sample_rate of the Sample Clock Timebase. Some applications require that you specify a sample_rate when you use any signal other than the onboard Sample Clock Timebase. NI-DAQmx requires this sample_rate to calculate other timing parameters. -#define DAQmx_SampClk_Timebase_Src 0x1308 // Specifies the terminal of the signal to use as the Sample Clock Timebase. -#define DAQmx_SampClk_Timebase_ActiveEdge 0x18EC // Specifies on which edge to recognize a Sample Clock Timebase pulse. This property is useful primarily when the signal you use as the Sample Clock Timebase is not a periodic clock. -#define DAQmx_SampClk_Timebase_MasterTimebaseDiv 0x1305 // Specifies the number of pulses of the Master Timebase needed to produce a single pulse of the Sample Clock Timebase. -#define DAQmx_SampClkTimebase_Term 0x2F1C // Indicates the name of the internal Sample Clock Timebase terminal for the task. This property does not return the name of the Sample Clock Timebase source terminal specified with Source. -#define DAQmx_SampClk_DigFltr_Enable 0x221E // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_SampQuant_SampMode 0x1300 // Specifies if a task acquires or generates a finite number of samples or if it continuously acquires or generates samples. +#define +DAQmx_SampQuant_SampPerChan 0x1310 // Specifies the number of samples to acquire or generate for each channel if Sample Mode is DAQmx_Val_FiniteSamps. If Sample Mode is DAQmx_Val_ContSamps, NI-DAQmx uses this value to determine the buffer size. +#define +DAQmx_SampTimingType 0x1347 // Specifies the type of sample timing to use for the task. +#define +DAQmx_SampClk_Rate 0x1344 // Specifies the sampling sample_rate in samples per channel per second. If you use an external source for the Sample Clock, set this input to the maximum expected sample_rate of that clock. +#define +DAQmx_SampClk_MaxRate 0x22C8 // Indicates the maximum Sample Clock sample_rate supported by the task, based on other timing settings. For output tasks, the maximum Sample Clock sample_rate is the maximum sample_rate of the DAC. For input tasks, NI-DAQmx calculates the maximum sampling sample_rate differently for multiplexed devices than simultaneous sampling devices. +#define +DAQmx_SampClk_Src 0x1852 // Specifies the terminal of the signal to use as the Sample Clock. +#define +DAQmx_SampClk_ActiveEdge 0x1301 // Specifies on which edge of a clock pulse sampling takes place. This property is useful primarily when the signal you use as the Sample Clock is not a periodic clock. +#define +DAQmx_SampClk_OverrunBehavior 0x2EFC // Specifies the action to take if Sample Clock edges occur faster than the device can handle them. +#define +DAQmx_SampClk_UnderflowBehavior 0x2961 // Specifies the action to take when the onboard memory of the device becomes empty. In either case, the sample clock does not stop. +#define +DAQmx_SampClk_TimebaseDiv 0x18EB // Specifies the number of Sample Clock Timebase pulses needed to produce a single Sample Clock pulse. +#define +DAQmx_SampClk_Term 0x2F1B // Indicates the name of the internal Sample Clock terminal for the task. This property does not return the name of the Sample Clock source terminal specified with Source. +#define +DAQmx_SampClk_Timebase_Rate 0x1303 // Specifies the sample_rate of the Sample Clock Timebase. Some applications require that you specify a sample_rate when you use any signal other than the onboard Sample Clock Timebase. NI-DAQmx requires this sample_rate to calculate other timing parameters. +#define +DAQmx_SampClk_Timebase_Src 0x1308 // Specifies the terminal of the signal to use as the Sample Clock Timebase. +#define +DAQmx_SampClk_Timebase_ActiveEdge 0x18EC // Specifies on which edge to recognize a Sample Clock Timebase pulse. This property is useful primarily when the signal you use as the Sample Clock Timebase is not a periodic clock. +#define +DAQmx_SampClk_Timebase_MasterTimebaseDiv 0x1305 // Specifies the number of pulses of the Master Timebase needed to produce a single pulse of the Sample Clock Timebase. +#define +DAQmx_SampClkTimebase_Term 0x2F1C // Indicates the name of the internal Sample Clock Timebase terminal for the task. This property does not return the name of the Sample Clock Timebase source terminal specified with Source. +#define +DAQmx_SampClk_DigFltr_Enable 0x221E // Specifies whether to apply the pulse width filter to the signal. #define DAQmx_SampClk_DigFltr_MinPulseWidth 0x221F // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_SampClk_DigFltr_TimebaseSrc 0x2220 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_SampClk_DigFltr_TimebaseRate 0x2221 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_SampClk_DigSync_Enable 0x2222 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_SampClk_WriteWfm_UseInitialWfmDT 0x30FC // Specifies that the value of Rate will be determined by the dt component of the initial DAQmx Write waveform input for Output tasks. -#define DAQmx_Hshk_DelayAfterXfer 0x22C2 // Specifies the number of seconds to wait after a handshake cycle before starting a new handshake cycle. -#define DAQmx_Hshk_StartCond 0x22C3 // Specifies the point in the handshake cycle that the device is in when the task starts. -#define DAQmx_Hshk_SampleInputDataWhen 0x22C4 // Specifies on which edge of the Handshake Trigger an input task latches the data from the peripheral device. -#define DAQmx_ChangeDetect_DI_RisingEdgePhysicalChans 0x2195 // Specifies the names of the digital lines or ports on which to detect rising edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. -#define DAQmx_ChangeDetect_DI_FallingEdgePhysicalChans 0x2196 // Specifies the names of the digital lines or ports on which to detect falling edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. -#define DAQmx_ChangeDetect_DI_Tristate 0x2EFA // Specifies whether to tristate lines specified with Rising Edge Physical Channels and Falling Edge Physical Channels that are not in a virtual channel in the task. If you set this property to TRUE, NI-DAQmx tristates rising/falling edge lines that are not in a virtual channel in the task. If you set this property to FALSE, NI-DAQmx does not modify the configuration of rising/falling edge lines that are not in a vir... -#define DAQmx_OnDemand_SimultaneousAOEnable 0x21A0 // Specifies whether to update all channels in the task simultaneously, rather than updating channels independently when you write a sample to that channel. -#define DAQmx_Implicit_UnderflowBehavior 0x2EFD // Specifies the action to take when the onboard memory of the device becomes empty. -#define DAQmx_AIConv_Rate 0x1848 // Specifies in Hertz the sample_rate at which to clock the analog-to-digital converter. This clock is specific to the analog input section of multiplexed devices. -#define DAQmx_AIConv_MaxRate 0x22C9 // Indicates the maximum convert sample_rate supported by the task, given the current devices and channel count. -#define DAQmx_AIConv_Src 0x1502 // Specifies the terminal of the signal to use as the AI Convert Clock. -#define DAQmx_AIConv_ActiveEdge 0x1853 // Specifies on which edge of the clock pulse an analog-to-digital conversion takes place. -#define DAQmx_AIConv_TimebaseDiv 0x1335 // Specifies the number of AI Convert Clock Timebase pulses needed to produce a single AI Convert Clock pulse. -#define DAQmx_AIConv_Timebase_Src 0x1339 // Specifies the terminal of the signal to use as the AI Convert Clock Timebase. -#define DAQmx_DelayFromSampClk_DelayUnits 0x1304 // Specifies the units of Delay. -#define DAQmx_DelayFromSampClk_Delay 0x1317 // Specifies the amount of time to wait after receiving a Sample Clock edge before beginning to acquire the sample. This value is in the units you specify with Delay Units. -#define DAQmx_AIConv_DigFltr_Enable 0x2EDC // Specifies whether to apply a digital filter to the AI Convert Clock. -#define DAQmx_AIConv_DigFltr_MinPulseWidth 0x2EDD // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AIConv_DigFltr_TimebaseSrc 0x2EDE // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AIConv_DigFltr_TimebaseRate 0x2EDF // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AIConv_DigSync_Enable 0x2EE0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_MasterTimebase_Rate 0x1495 // Specifies the sample_rate of the Master Timebase. -#define DAQmx_MasterTimebase_Src 0x1343 // Specifies the terminal of the signal to use as the Master Timebase. On an E Series device, you can choose only between the onboard 20MHz Timebase or the RTSI7 terminal. -#define DAQmx_RefClk_Rate 0x1315 // Specifies the frequency of the Reference Clock. -#define DAQmx_RefClk_Src 0x1316 // Specifies the terminal of the signal to use as the Reference Clock. -#define DAQmx_SyncPulse_Type 0x3136 // Specifies the type of sync pulse used in the task. -#define DAQmx_SyncPulse_Src 0x223D // Specifies the terminal of the signal to use as the synchronization pulse. The synchronization pulse resets the clock dividers and the ADCs/DACs on the device. -#define DAQmx_SyncPulse_Time_When 0x3137 // Specifies the start time of the sync pulse. -#define DAQmx_SyncPulse_Time_Timescale 0x3138 // Specifies the timescale to be used for timestamps for a sync pulse. -#define DAQmx_SyncPulse_SyncTime 0x223E // Indicates in seconds the delay required to reset the ADCs/DACs after the device receives the synchronization pulse. -#define DAQmx_SyncPulse_MinDelayToStart 0x223F // Specifies in seconds the amount of time that elapses after the master device issues the synchronization pulse before the task starts. -#define DAQmx_SyncPulse_ResetTime 0x2F7C // Indicates in seconds the amount of time required for the ADCs or DACs on the device to reset. When synchronizing devices, query this property on all devices and note the largest reset time. Then, for each device, subtract the value of this property from the largest reset time and set Reset Delay to the resulting value. -#define DAQmx_SyncPulse_ResetDelay 0x2F7D // Specifies in seconds the amount of time to wait after the Synchronization Pulse before resetting the ADCs or DACs on the device. When synchronizing devices, query Reset Time on all devices and note the largest reset time. Then, for each device, subtract the reset time from the largest reset time and set this property to the resulting value. -#define DAQmx_SyncPulse_Term 0x2F85 // Indicates the name of the internal Synchronization Pulse terminal for the task. This property does not return the name of the source terminal. -#define DAQmx_SyncClk_Interval 0x2F7E // Specifies the interval, in Sample Clock periods, between each internal Synchronization Clock pulse. NI-DAQmx uses this pulse for synchronization of triggers between multiple devices at different rates. Refer to device documentation for information about how to calculate this value. -#define DAQmx_SampTimingEngine 0x2A26 // Specifies which timing engine to use for the task. -#define DAQmx_FirstSampTimestamp_Enable 0x3139 // Specifies whether to enable the first sample timestamp. -#define DAQmx_FirstSampTimestamp_Timescale 0x313B // Specifies the timescale to be used for the first sample timestamp. -#define DAQmx_FirstSampTimestamp_Val 0x313A // Indicates the timestamp of the first sample. -#define DAQmx_FirstSampClk_When 0x3182 // Specifies the time of the first sample clock pulse. -#define DAQmx_FirstSampClk_Timescale 0x3183 // Specifies the timescale to be used for the value of When. -#define DAQmx_FirstSampClk_Offset 0x31AA // Specifies, in seconds, the offset to apply to the When value. This offset modifies when the first sample clock occurs and is used to account for known delays in the signal path. +#define +DAQmx_SampClk_DigFltr_TimebaseSrc 0x2220 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_SampClk_DigFltr_TimebaseRate 0x2221 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_SampClk_DigSync_Enable 0x2222 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_SampClk_WriteWfm_UseInitialWfmDT 0x30FC // Specifies that the value of Rate will be determined by the dt component of the initial DAQmx Write waveform input for Output tasks. +#define +DAQmx_Hshk_DelayAfterXfer 0x22C2 // Specifies the number of seconds to wait after a handshake cycle before starting a new handshake cycle. +#define +DAQmx_Hshk_StartCond 0x22C3 // Specifies the point in the handshake cycle that the device is in when the task starts. +#define +DAQmx_Hshk_SampleInputDataWhen 0x22C4 // Specifies on which edge of the Handshake Trigger an input task latches the data from the peripheral device. +#define +DAQmx_ChangeDetect_DI_RisingEdgePhysicalChans 0x2195 // Specifies the names of the digital lines or ports on which to detect rising edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. +#define +DAQmx_ChangeDetect_DI_FallingEdgePhysicalChans 0x2196 // Specifies the names of the digital lines or ports on which to detect falling edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. +#define +DAQmx_ChangeDetect_DI_Tristate 0x2EFA // Specifies whether to tristate lines specified with Rising Edge Physical Channels and Falling Edge Physical Channels that are not in a virtual channel in the task. If you set this property to TRUE, NI-DAQmx tristates rising/falling edge lines that are not in a virtual channel in the task. If you set this property to FALSE, NI-DAQmx does not modify the configuration of rising/falling edge lines that are not in a vir... +#define +DAQmx_OnDemand_SimultaneousAOEnable 0x21A0 // Specifies whether to update all channels in the task simultaneously, rather than updating channels independently when you write a sample to that channel. +#define +DAQmx_Implicit_UnderflowBehavior 0x2EFD // Specifies the action to take when the onboard memory of the device becomes empty. +#define +DAQmx_AIConv_Rate 0x1848 // Specifies in Hertz the sample_rate at which to clock the analog-to-digital converter. This clock is specific to the analog input section of multiplexed devices. +#define +DAQmx_AIConv_MaxRate 0x22C9 // Indicates the maximum convert sample_rate supported by the task, given the current devices and channel count. +#define +DAQmx_AIConv_Src 0x1502 // Specifies the terminal of the signal to use as the AI Convert Clock. +#define +DAQmx_AIConv_ActiveEdge 0x1853 // Specifies on which edge of the clock pulse an analog-to-digital conversion takes place. +#define +DAQmx_AIConv_TimebaseDiv 0x1335 // Specifies the number of AI Convert Clock Timebase pulses needed to produce a single AI Convert Clock pulse. +#define +DAQmx_AIConv_Timebase_Src 0x1339 // Specifies the terminal of the signal to use as the AI Convert Clock Timebase. +#define +DAQmx_DelayFromSampClk_DelayUnits 0x1304 // Specifies the units of Delay. +#define +DAQmx_DelayFromSampClk_Delay 0x1317 // Specifies the amount of time to wait after receiving a Sample Clock edge before beginning to acquire the sample. This value is in the units you specify with Delay Units. +#define +DAQmx_AIConv_DigFltr_Enable 0x2EDC // Specifies whether to apply a digital filter to the AI Convert Clock. +#define +DAQmx_AIConv_DigFltr_MinPulseWidth 0x2EDD // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AIConv_DigFltr_TimebaseSrc 0x2EDE // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AIConv_DigFltr_TimebaseRate 0x2EDF // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AIConv_DigSync_Enable 0x2EE0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_MasterTimebase_Rate 0x1495 // Specifies the sample_rate of the Master Timebase. +#define +DAQmx_MasterTimebase_Src 0x1343 // Specifies the terminal of the signal to use as the Master Timebase. On an E Series device, you can choose only between the onboard 20MHz Timebase or the RTSI7 terminal. +#define +DAQmx_RefClk_Rate 0x1315 // Specifies the frequency of the Reference Clock. +#define +DAQmx_RefClk_Src 0x1316 // Specifies the terminal of the signal to use as the Reference Clock. +#define +DAQmx_SyncPulse_Type 0x3136 // Specifies the type of sync pulse used in the task. +#define +DAQmx_SyncPulse_Src 0x223D // Specifies the terminal of the signal to use as the synchronization pulse. The synchronization pulse resets the clock dividers and the ADCs/DACs on the device. +#define +DAQmx_SyncPulse_Time_When 0x3137 // Specifies the start time of the sync pulse. +#define +DAQmx_SyncPulse_Time_Timescale 0x3138 // Specifies the timescale to be used for timestamps for a sync pulse. +#define +DAQmx_SyncPulse_SyncTime 0x223E // Indicates in seconds the delay required to reset the ADCs/DACs after the device receives the synchronization pulse. +#define +DAQmx_SyncPulse_MinDelayToStart 0x223F // Specifies in seconds the amount of time that elapses after the master device issues the synchronization pulse before the task starts. +#define +DAQmx_SyncPulse_ResetTime 0x2F7C // Indicates in seconds the amount of time required for the ADCs or DACs on the device to reset. When synchronizing devices, query this property on all devices and note the largest reset time. Then, for each device, subtract the value of this property from the largest reset time and set Reset Delay to the resulting value. +#define +DAQmx_SyncPulse_ResetDelay 0x2F7D // Specifies in seconds the amount of time to wait after the Synchronization Pulse before resetting the ADCs or DACs on the device. When synchronizing devices, query Reset Time on all devices and note the largest reset time. Then, for each device, subtract the reset time from the largest reset time and set this property to the resulting value. +#define +DAQmx_SyncPulse_Term 0x2F85 // Indicates the name of the internal Synchronization Pulse terminal for the task. This property does not return the name of the source terminal. +#define +DAQmx_SyncClk_Interval 0x2F7E // Specifies the interval, in Sample Clock periods, between each internal Synchronization Clock pulse. NI-DAQmx uses this pulse for synchronization of triggers between multiple devices at different rates. Refer to device documentation for information about how to calculate this value. +#define +DAQmx_SampTimingEngine 0x2A26 // Specifies which timing engine to use for the task. +#define +DAQmx_FirstSampTimestamp_Enable 0x3139 // Specifies whether to enable the first sample timestamp. +#define +DAQmx_FirstSampTimestamp_Timescale 0x313B // Specifies the timescale to be used for the first sample timestamp. +#define +DAQmx_FirstSampTimestamp_Val 0x313A // Indicates the timestamp of the first sample. +#define +DAQmx_FirstSampClk_When 0x3182 // Specifies the time of the first sample clock pulse. +#define +DAQmx_FirstSampClk_Timescale 0x3183 // Specifies the timescale to be used for the value of When. +#define +DAQmx_FirstSampClk_Offset 0x31AA // Specifies, in seconds, the offset to apply to the When value. This offset modifies when the first sample clock occurs and is used to account for known delays in the signal path. //********** Trigger Attributes ********** -#define DAQmx_StartTrig_Type 0x1393 // Specifies the type of trigger to use to start a task. -#define DAQmx_StartTrig_Term 0x2F1E // Indicates the name of the internal Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define DAQmx_DigEdge_StartTrig_Src 0x1407 // Specifies the name of a terminal where there is a digital signal to use as the source of the Start Trigger. +#define +DAQmx_StartTrig_Type 0x1393 // Specifies the type of trigger to use to start a task. +#define +DAQmx_StartTrig_Term 0x2F1E // Indicates the name of the internal Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define +DAQmx_DigEdge_StartTrig_Src 0x1407 // Specifies the name of a terminal where there is a digital signal to use as the source of the Start Trigger. #define DAQmx_DigEdge_StartTrig_Edge 0x1404 // Specifies on which edge of a digital pulse to start acquiring or generating samples. -#define DAQmx_DigEdge_StartTrig_DigFltr_Enable 0x2223 // Specifies whether to apply a digital filter to the trigger signal. -#define DAQmx_DigEdge_StartTrig_DigFltr_MinPulseWidth 0x2224 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_DigEdge_StartTrig_DigFltr_TimebaseSrc 0x2225 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_DigEdge_StartTrig_DigFltr_TimebaseRate 0x2226 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_DigEdge_StartTrig_DigSync_Enable 0x2227 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. If you set this property to TRUE, the device does not recognize and act upon the trigger until the next pulse of the internal timebase. -#define DAQmx_DigPattern_StartTrig_Src 0x1410 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. -#define DAQmx_DigPattern_StartTrig_Pattern 0x2186 // Specifies the digital pattern that must be met for the Start Trigger to occur. -#define DAQmx_DigPattern_StartTrig_When 0x1411 // Specifies whether the Start Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define DAQmx_AnlgEdge_StartTrig_Src 0x1398 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. -#define DAQmx_AnlgEdge_StartTrig_Slope 0x1397 // Specifies on which slope of the trigger signal to start acquiring or generating samples. -#define DAQmx_AnlgEdge_StartTrig_Lvl 0x1396 // Specifies at what threshold in the units of the measurement or generation to start acquiring or generating samples. Use Slope to specify on which slope to trigger on this threshold. -#define DAQmx_AnlgEdge_StartTrig_Hyst 0x1395 // Specifies a hysteresis level in the units of the measurement or generation. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hyste... -#define DAQmx_AnlgEdge_StartTrig_Coupling 0x2233 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgEdge_StartTrig_DigFltr_Enable 0x2EE1 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define DAQmx_AnlgEdge_StartTrig_DigFltr_MinPulseWidth 0x2EE2 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseSrc 0x2EE3 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseRate 0x2EE4 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgEdge_StartTrig_DigSync_Enable 0x2EE5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_AnlgMultiEdge_StartTrig_Srcs 0x3121 // Specifies a list and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_StartTrig_Slopes 0x3122 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_StartTrig_Lvls 0x3123 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_StartTrig_Hysts 0x3124 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Start.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Start.AnlgMultiEdge.Lvls minus the hysteresis. If Start.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Start.AnlgEdge... -#define DAQmx_AnlgMultiEdge_StartTrig_Couplings 0x3125 // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgWin_StartTrig_Src 0x1400 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. -#define DAQmx_AnlgWin_StartTrig_When 0x1401 // Specifies whether the task starts acquiring or generating samples when the signal enters or leaves the window you specify with Bottom and Top. -#define DAQmx_AnlgWin_StartTrig_Top 0x1403 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. -#define DAQmx_AnlgWin_StartTrig_Btm 0x1402 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. -#define DAQmx_AnlgWin_StartTrig_Coupling 0x2234 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgWin_StartTrig_DigFltr_Enable 0x2EFF // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define DAQmx_AnlgWin_StartTrig_DigFltr_MinPulseWidth 0x2F00 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseSrc 0x2F01 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseRate 0x2F02 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgWin_StartTrig_DigSync_Enable 0x2F03 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_StartTrig_TrigWhen 0x304D // Specifies when to trigger the start trigger. -#define DAQmx_StartTrig_Timescale 0x3036 // Specifies the timescale to be used for timestamps used in a time trigger. -#define DAQmx_StartTrig_TimestampEnable 0x314A // Specifies whether the start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define DAQmx_StartTrig_TimestampTimescale 0x312D // Specifies the start trigger timestamp timescale. -#define DAQmx_StartTrig_TimestampVal 0x314B // Indicates the start trigger timestamp value. -#define DAQmx_StartTrig_Delay 0x1856 // Specifies an amount of time to wait after the Start Trigger is received before acquiring or generating the first sample. This value is in the units you specify with Delay Units. -#define DAQmx_StartTrig_DelayUnits 0x18C8 // Specifies the units of Delay. -#define DAQmx_StartTrig_Retriggerable 0x190F // Specifies whether a finite task resets and waits for another Start Trigger after the task completes. When you set this property to TRUE, the device performs a finite acquisition or generation each time the Start Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring or generating signals. -#define DAQmx_StartTrig_TrigWin 0x311A // Specifies the period of time in seconds after the task starts during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples for any triggers detected. If no triggers are detected during the entire period, then no data will be returned. Ensure the period of time specified covers the entire time... -#define DAQmx_StartTrig_RetriggerWin 0x311B // Specifies the period of time in seconds after each trigger during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples that it already started. Ensure the period of time specified covers the entire time span desired for retrigger detection to avoid missed triggers. Specifying a Retrigger Win... -#define DAQmx_StartTrig_MaxNumTrigsToDetect 0x311C // Specifies the maximum number of times the task will detect a start trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number of ... -#define DAQmx_RefTrig_Type 0x1419 // Specifies the type of trigger to use to mark a reference point for the measurement. -#define DAQmx_RefTrig_PretrigSamples 0x1445 // Specifies the minimum number of pretrigger samples to acquire from each channel before recognizing the reference trigger. Post-trigger samples per channel are equal to Samples Per Channel minus the number of pretrigger samples per channel. -#define DAQmx_RefTrig_Term 0x2F1F // Indicates the name of the internal Reference Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define DAQmx_DigEdge_RefTrig_Src 0x1434 // Specifies the name of a terminal where there is a digital signal to use as the source of the Reference Trigger. -#define DAQmx_DigEdge_RefTrig_Edge 0x1430 // Specifies on what edge of a digital pulse the Reference Trigger occurs. +#define +DAQmx_DigEdge_StartTrig_DigFltr_Enable 0x2223 // Specifies whether to apply a digital filter to the trigger signal. +#define +DAQmx_DigEdge_StartTrig_DigFltr_MinPulseWidth 0x2224 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_DigEdge_StartTrig_DigFltr_TimebaseSrc 0x2225 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_DigEdge_StartTrig_DigFltr_TimebaseRate 0x2226 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_DigEdge_StartTrig_DigSync_Enable 0x2227 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. If you set this property to TRUE, the device does not recognize and act upon the trigger until the next pulse of the internal timebase. +#define +DAQmx_DigPattern_StartTrig_Src 0x1410 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. +#define +DAQmx_DigPattern_StartTrig_Pattern 0x2186 // Specifies the digital pattern that must be met for the Start Trigger to occur. +#define +DAQmx_DigPattern_StartTrig_When 0x1411 // Specifies whether the Start Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define +DAQmx_AnlgEdge_StartTrig_Src 0x1398 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. +#define +DAQmx_AnlgEdge_StartTrig_Slope 0x1397 // Specifies on which slope of the trigger signal to start acquiring or generating samples. +#define +DAQmx_AnlgEdge_StartTrig_Lvl 0x1396 // Specifies at what threshold in the units of the measurement or generation to start acquiring or generating samples. Use Slope to specify on which slope to trigger on this threshold. +#define +DAQmx_AnlgEdge_StartTrig_Hyst 0x1395 // Specifies a hysteresis level in the units of the measurement or generation. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hyste... +#define +DAQmx_AnlgEdge_StartTrig_Coupling 0x2233 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgEdge_StartTrig_DigFltr_Enable 0x2EE1 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define +DAQmx_AnlgEdge_StartTrig_DigFltr_MinPulseWidth 0x2EE2 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseSrc 0x2EE3 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseRate 0x2EE4 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgEdge_StartTrig_DigSync_Enable 0x2EE5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_AnlgMultiEdge_StartTrig_Srcs 0x3121 // Specifies a list and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_StartTrig_Slopes 0x3122 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_StartTrig_Lvls 0x3123 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_StartTrig_Hysts 0x3124 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Start.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Start.AnlgMultiEdge.Lvls minus the hysteresis. If Start.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Start.AnlgEdge... +#define +DAQmx_AnlgMultiEdge_StartTrig_Couplings 0x3125 // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgWin_StartTrig_Src 0x1400 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. +#define +DAQmx_AnlgWin_StartTrig_When 0x1401 // Specifies whether the task starts acquiring or generating samples when the signal enters or leaves the window you specify with Bottom and Top. +#define +DAQmx_AnlgWin_StartTrig_Top 0x1403 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. +#define +DAQmx_AnlgWin_StartTrig_Btm 0x1402 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. +#define +DAQmx_AnlgWin_StartTrig_Coupling 0x2234 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgWin_StartTrig_DigFltr_Enable 0x2EFF // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define +DAQmx_AnlgWin_StartTrig_DigFltr_MinPulseWidth 0x2F00 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseSrc 0x2F01 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseRate 0x2F02 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgWin_StartTrig_DigSync_Enable 0x2F03 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_StartTrig_TrigWhen 0x304D // Specifies when to trigger the start trigger. +#define +DAQmx_StartTrig_Timescale 0x3036 // Specifies the timescale to be used for timestamps used in a time trigger. +#define +DAQmx_StartTrig_TimestampEnable 0x314A // Specifies whether the start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define +DAQmx_StartTrig_TimestampTimescale 0x312D // Specifies the start trigger timestamp timescale. +#define +DAQmx_StartTrig_TimestampVal 0x314B // Indicates the start trigger timestamp value. +#define +DAQmx_StartTrig_Delay 0x1856 // Specifies an amount of time to wait after the Start Trigger is received before acquiring or generating the first sample. This value is in the units you specify with Delay Units. +#define +DAQmx_StartTrig_DelayUnits 0x18C8 // Specifies the units of Delay. +#define +DAQmx_StartTrig_Retriggerable 0x190F // Specifies whether a finite task resets and waits for another Start Trigger after the task completes. When you set this property to TRUE, the device performs a finite acquisition or generation each time the Start Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring or generating signals. +#define +DAQmx_StartTrig_TrigWin 0x311A // Specifies the period of time in seconds after the task starts during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples for any triggers detected. If no triggers are detected during the entire period, then no data will be returned. Ensure the period of time specified covers the entire time... +#define +DAQmx_StartTrig_RetriggerWin 0x311B // Specifies the period of time in seconds after each trigger during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples that it already started. Ensure the period of time specified covers the entire time span desired for retrigger detection to avoid missed triggers. Specifying a Retrigger Win... +#define +DAQmx_StartTrig_MaxNumTrigsToDetect 0x311C // Specifies the maximum number of times the task will detect a start trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number of ... +#define +DAQmx_RefTrig_Type 0x1419 // Specifies the type of trigger to use to mark a reference point for the measurement. +#define +DAQmx_RefTrig_PretrigSamples 0x1445 // Specifies the minimum number of pretrigger samples to acquire from each channel before recognizing the reference trigger. Post-trigger samples per channel are equal to Samples Per Channel minus the number of pretrigger samples per channel. +#define +DAQmx_RefTrig_Term 0x2F1F // Indicates the name of the internal Reference Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define +DAQmx_DigEdge_RefTrig_Src 0x1434 // Specifies the name of a terminal where there is a digital signal to use as the source of the Reference Trigger. +#define +DAQmx_DigEdge_RefTrig_Edge 0x1430 // Specifies on what edge of a digital pulse the Reference Trigger occurs. #define DAQmx_DigEdge_RefTrig_DigFltr_Enable 0x2ED7 // Specifies whether to apply a digital filter to the trigger signal. -#define DAQmx_DigEdge_RefTrig_DigFltr_MinPulseWidth 0x2ED8 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_DigEdge_RefTrig_DigFltr_TimebaseSrc 0x2ED9 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_DigEdge_RefTrig_DigFltr_TimebaseRate 0x2EDA // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_DigEdge_RefTrig_DigSync_Enable 0x2EDB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_DigPattern_RefTrig_Src 0x1437 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. -#define DAQmx_DigPattern_RefTrig_Pattern 0x2187 // Specifies the digital pattern that must be met for the Reference Trigger to occur. -#define DAQmx_DigPattern_RefTrig_When 0x1438 // Specifies whether the Reference Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define DAQmx_AnlgEdge_RefTrig_Src 0x1424 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. -#define DAQmx_AnlgEdge_RefTrig_Slope 0x1423 // Specifies on which slope of the source signal the Reference Trigger occurs. -#define DAQmx_AnlgEdge_RefTrig_Lvl 0x1422 // Specifies in the units of the measurement the threshold at which the Reference Trigger occurs. Use Slope to specify on which slope to trigger at this threshold. -#define DAQmx_AnlgEdge_RefTrig_Hyst 0x1421 // Specifies a hysteresis level in the units of the measurement. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hysteresis. -#define DAQmx_AnlgEdge_RefTrig_Coupling 0x2235 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgEdge_RefTrig_DigFltr_Enable 0x2EE6 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define DAQmx_AnlgEdge_RefTrig_DigFltr_MinPulseWidth 0x2EE7 // Specifies in seconds the minimum pulse width thefilter recognizes. -#define DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseSrc 0x2EE8 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseRate 0x2EE9 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgEdge_RefTrig_DigSync_Enable 0x2EEA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_AnlgMultiEdge_RefTrig_Srcs 0x3126 // Specifies a List and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_RefTrig_Slopes 0x3127 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_RefTrig_Lvls 0x3128 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgMultiEdge_RefTrig_Hysts 0x3129 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Ref.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Ref.AnlgMultiEdge.Lvls minus the hysteresis. If Ref.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Ref.AnlgEdge.Lvl plu... -#define DAQmx_AnlgMultiEdge_RefTrig_Couplings 0x312A // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define DAQmx_AnlgWin_RefTrig_Src 0x1426 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. -#define DAQmx_AnlgWin_RefTrig_When 0x1427 // Specifies whether the Reference Trigger occurs when the source signal enters the window or when it leaves the window. Use Bottom and Top to specify the window. -#define DAQmx_AnlgWin_RefTrig_Top 0x1429 // Specifies the upper limit of the window. Specify this value in the units of the measurement. -#define DAQmx_AnlgWin_RefTrig_Btm 0x1428 // Specifies the lower limit of the window. Specify this value in the units of the measurement. -#define DAQmx_AnlgWin_RefTrig_Coupling 0x1857 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgWin_RefTrig_DigFltr_Enable 0x2EEB // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define DAQmx_AnlgWin_RefTrig_DigFltr_MinPulseWidth 0x2EEC // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseSrc 0x2EED // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseRate 0x2EEE // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgWin_RefTrig_DigSync_Enable 0x2EEF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_RefTrig_AutoTrigEnable 0x2EC1 // Specifies whether to send a software trigger to the device when a hardware trigger is no longer active in order to prevent a timeout. -#define DAQmx_RefTrig_AutoTriggered 0x2EC2 // Indicates whether a completed acquisition was triggered by the auto trigger. If an acquisition has not completed after the task starts, this property returns FALSE. This property is only applicable when Enable is TRUE. -#define DAQmx_RefTrig_TimestampEnable 0x312E // Specifies whether the reference trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define DAQmx_RefTrig_TimestampTimescale 0x3130 // Specifies the reference trigger timestamp timescale. -#define DAQmx_RefTrig_TimestampVal 0x312F // Indicates the reference trigger timestamp value. -#define DAQmx_RefTrig_Delay 0x1483 // Specifies in seconds the time to wait after the device receives the Reference Trigger before switching from pretrigger to posttrigger samples. -#define DAQmx_RefTrig_Retriggerable 0x311D // Specifies whether a finite task resets, acquires pretrigger samples, and waits for another Reference Trigger after the task completes. When you set this property to TRUE, the device will acquire post-trigger samples, reset, and acquire pretrigger samples each time the Reference Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring signals. -#define DAQmx_RefTrig_TrigWin 0x311E // Specifies the duration in seconds after the task starts during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. If no triggers are detected during the entire period, then no data will be returned. Specifying a Trigger Window of -1 causes the window to be infinite. -#define DAQmx_RefTrig_RetriggerWin 0x311F // Specifies the duration in seconds after each trigger during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. Specifying a Retrigger Window of -1 causes the window to be infinite. -#define DAQmx_RefTrig_MaxNumTrigsToDetect 0x3120 // Specifies the maximum number of times the task will detect a reference trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number... -#define DAQmx_AdvTrig_Type 0x1365 // (Deprecated) Specifies the type of trigger to use to advance to the next entry in a switch scan list. -#define DAQmx_DigEdge_AdvTrig_Src 0x1362 // (Deprecated) Specifies the name of a terminal where there is a digital signal to use as the source of the Advance Trigger. -#define DAQmx_DigEdge_AdvTrig_Edge 0x1360 // (Deprecated) Specifies on which edge of a digital signal to advance to the next entry in a scan list. -#define DAQmx_DigEdge_AdvTrig_DigFltr_Enable 0x2238 // (Deprecated) Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_HshkTrig_Type 0x22B7 // Specifies the type of Handshake Trigger to use. -#define DAQmx_Interlocked_HshkTrig_Src 0x22B8 // Specifies the source terminal of the Handshake Trigger. -#define DAQmx_Interlocked_HshkTrig_AssertedLvl 0x22B9 // Specifies the asserted level of the Handshake Trigger. +#define +DAQmx_DigEdge_RefTrig_DigFltr_MinPulseWidth 0x2ED8 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_DigEdge_RefTrig_DigFltr_TimebaseSrc 0x2ED9 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_DigEdge_RefTrig_DigFltr_TimebaseRate 0x2EDA // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_DigEdge_RefTrig_DigSync_Enable 0x2EDB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_DigPattern_RefTrig_Src 0x1437 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. +#define +DAQmx_DigPattern_RefTrig_Pattern 0x2187 // Specifies the digital pattern that must be met for the Reference Trigger to occur. +#define +DAQmx_DigPattern_RefTrig_When 0x1438 // Specifies whether the Reference Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define +DAQmx_AnlgEdge_RefTrig_Src 0x1424 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. +#define +DAQmx_AnlgEdge_RefTrig_Slope 0x1423 // Specifies on which slope of the source signal the Reference Trigger occurs. +#define +DAQmx_AnlgEdge_RefTrig_Lvl 0x1422 // Specifies in the units of the measurement the threshold at which the Reference Trigger occurs. Use Slope to specify on which slope to trigger at this threshold. +#define +DAQmx_AnlgEdge_RefTrig_Hyst 0x1421 // Specifies a hysteresis level in the units of the measurement. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hysteresis. +#define +DAQmx_AnlgEdge_RefTrig_Coupling 0x2235 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgEdge_RefTrig_DigFltr_Enable 0x2EE6 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define +DAQmx_AnlgEdge_RefTrig_DigFltr_MinPulseWidth 0x2EE7 // Specifies in seconds the minimum pulse width thefilter recognizes. +#define +DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseSrc 0x2EE8 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseRate 0x2EE9 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgEdge_RefTrig_DigSync_Enable 0x2EEA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_AnlgMultiEdge_RefTrig_Srcs 0x3126 // Specifies a List and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_RefTrig_Slopes 0x3127 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_RefTrig_Lvls 0x3128 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgMultiEdge_RefTrig_Hysts 0x3129 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Ref.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Ref.AnlgMultiEdge.Lvls minus the hysteresis. If Ref.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Ref.AnlgEdge.Lvl plu... +#define +DAQmx_AnlgMultiEdge_RefTrig_Couplings 0x312A // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define +DAQmx_AnlgWin_RefTrig_Src 0x1426 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. +#define +DAQmx_AnlgWin_RefTrig_When 0x1427 // Specifies whether the Reference Trigger occurs when the source signal enters the window or when it leaves the window. Use Bottom and Top to specify the window. +#define +DAQmx_AnlgWin_RefTrig_Top 0x1429 // Specifies the upper limit of the window. Specify this value in the units of the measurement. +#define +DAQmx_AnlgWin_RefTrig_Btm 0x1428 // Specifies the lower limit of the window. Specify this value in the units of the measurement. +#define +DAQmx_AnlgWin_RefTrig_Coupling 0x1857 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgWin_RefTrig_DigFltr_Enable 0x2EEB // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define +DAQmx_AnlgWin_RefTrig_DigFltr_MinPulseWidth 0x2EEC // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseSrc 0x2EED // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseRate 0x2EEE // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgWin_RefTrig_DigSync_Enable 0x2EEF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_RefTrig_AutoTrigEnable 0x2EC1 // Specifies whether to send a software trigger to the device when a hardware trigger is no longer active in order to prevent a timeout. +#define +DAQmx_RefTrig_AutoTriggered 0x2EC2 // Indicates whether a completed acquisition was triggered by the auto trigger. If an acquisition has not completed after the task starts, this property returns FALSE. This property is only applicable when Enable is TRUE. +#define +DAQmx_RefTrig_TimestampEnable 0x312E // Specifies whether the reference trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define +DAQmx_RefTrig_TimestampTimescale 0x3130 // Specifies the reference trigger timestamp timescale. +#define +DAQmx_RefTrig_TimestampVal 0x312F // Indicates the reference trigger timestamp value. +#define +DAQmx_RefTrig_Delay 0x1483 // Specifies in seconds the time to wait after the device receives the Reference Trigger before switching from pretrigger to posttrigger samples. +#define +DAQmx_RefTrig_Retriggerable 0x311D // Specifies whether a finite task resets, acquires pretrigger samples, and waits for another Reference Trigger after the task completes. When you set this property to TRUE, the device will acquire post-trigger samples, reset, and acquire pretrigger samples each time the Reference Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring signals. +#define +DAQmx_RefTrig_TrigWin 0x311E // Specifies the duration in seconds after the task starts during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. If no triggers are detected during the entire period, then no data will be returned. Specifying a Trigger Window of -1 causes the window to be infinite. +#define +DAQmx_RefTrig_RetriggerWin 0x311F // Specifies the duration in seconds after each trigger during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. Specifying a Retrigger Window of -1 causes the window to be infinite. +#define +DAQmx_RefTrig_MaxNumTrigsToDetect 0x3120 // Specifies the maximum number of times the task will detect a reference trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number... +#define +DAQmx_AdvTrig_Type 0x1365 // (Deprecated) Specifies the type of trigger to use to advance to the next entry in a switch scan list. +#define +DAQmx_DigEdge_AdvTrig_Src 0x1362 // (Deprecated) Specifies the name of a terminal where there is a digital signal to use as the source of the Advance Trigger. +#define +DAQmx_DigEdge_AdvTrig_Edge 0x1360 // (Deprecated) Specifies on which edge of a digital signal to advance to the next entry in a scan list. +#define +DAQmx_DigEdge_AdvTrig_DigFltr_Enable 0x2238 // (Deprecated) Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_HshkTrig_Type 0x22B7 // Specifies the type of Handshake Trigger to use. +#define +DAQmx_Interlocked_HshkTrig_Src 0x22B8 // Specifies the source terminal of the Handshake Trigger. +#define +DAQmx_Interlocked_HshkTrig_AssertedLvl 0x22B9 // Specifies the asserted level of the Handshake Trigger. #define DAQmx_PauseTrig_Type 0x1366 // Specifies the type of trigger to use to pause a task. -#define DAQmx_PauseTrig_Term 0x2F20 // Indicates the name of the internal Pause Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define DAQmx_AnlgLvl_PauseTrig_Src 0x1370 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. -#define DAQmx_AnlgLvl_PauseTrig_When 0x1371 // Specifies whether the task pauses above or below the threshold you specify with Level. -#define DAQmx_AnlgLvl_PauseTrig_Lvl 0x1369 // Specifies the threshold at which to pause the task. Specify this value in the units of the measurement or generation. Use Pause When to specify whether the task pauses above or below this threshold. -#define DAQmx_AnlgLvl_PauseTrig_Hyst 0x1368 // Specifies a hysteresis level in the units of the measurement or generation. If Pause When is DAQmx_Val_AboveLvl, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Pause When is DAQmx_Val_BelowLvl, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hys... -#define DAQmx_AnlgLvl_PauseTrig_Coupling 0x2236 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgLvl_PauseTrig_DigFltr_Enable 0x2EF0 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define DAQmx_AnlgLvl_PauseTrig_DigFltr_MinPulseWidth 0x2EF1 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseSrc 0x2EF2 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseRate 0x2EF3 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgLvl_PauseTrig_DigSync_Enable 0x2EF4 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_AnlgWin_PauseTrig_Src 0x1373 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. -#define DAQmx_AnlgWin_PauseTrig_When 0x1374 // Specifies whether the task pauses while the trigger signal is inside or outside the window you specify with Bottom and Top. -#define DAQmx_AnlgWin_PauseTrig_Top 0x1376 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. -#define DAQmx_AnlgWin_PauseTrig_Btm 0x1375 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. -#define DAQmx_AnlgWin_PauseTrig_Coupling 0x2237 // Specifies the coupling for the source signal of the terminal if the source is a terminal rather than a virtual channel. -#define DAQmx_AnlgWin_PauseTrig_DigFltr_Enable 0x2EF5 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define DAQmx_AnlgWin_PauseTrig_DigFltr_MinPulseWidth 0x2EF6 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseSrc 0x2EF7 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseRate 0x2EF8 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_AnlgWin_PauseTrig_DigSync_Enable 0x2EF9 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_DigLvl_PauseTrig_Src 0x1379 // Specifies the name of a terminal where there is a digital signal to use as the source of the Pause Trigger. -#define DAQmx_DigLvl_PauseTrig_When 0x1380 // Specifies whether the task pauses while the signal is high or low. -#define DAQmx_DigLvl_PauseTrig_DigFltr_Enable 0x2228 // Specifies whether to apply a digital filter to the trigger signal. -#define DAQmx_DigLvl_PauseTrig_DigFltr_MinPulseWidth 0x2229 // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseSrc 0x222A // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseRate 0x222B // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_DigLvl_PauseTrig_DigSync_Enable 0x222C // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_DigPattern_PauseTrig_Src 0x216F // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the lines within the port are in ascending order. -#define DAQmx_DigPattern_PauseTrig_Pattern 0x2188 // Specifies the digital pattern that must be met for the Pause Trigger to occur. -#define DAQmx_DigPattern_PauseTrig_When 0x2170 // Specifies if the Pause Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define DAQmx_ArmStartTrig_Type 0x1414 // Specifies the type of trigger to use to arm the task for a Start Trigger. If you configure an Arm Start Trigger, the task does not respond to a Start Trigger until the device receives the Arm Start Trigger. -#define DAQmx_ArmStart_Term 0x2F7F // Indicates the name of the internal Arm Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define DAQmx_DigEdge_ArmStartTrig_Src 0x1417 // Specifies the name of a terminal where there is a digital signal to use as the source of the Arm Start Trigger. -#define DAQmx_DigEdge_ArmStartTrig_Edge 0x1415 // Specifies on which edge of a digital signal to arm the task for a Start Trigger. -#define DAQmx_DigEdge_ArmStartTrig_DigFltr_Enable 0x222D // Specifies whether to apply the pulse width filter to the signal. -#define DAQmx_DigEdge_ArmStartTrig_DigFltr_MinPulseWidth 0x222E // Specifies in seconds the minimum pulse width the filter recognizes. -#define DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseSrc 0x222F // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseRate 0x2230 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define DAQmx_DigEdge_ArmStartTrig_DigSync_Enable 0x2231 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define DAQmx_ArmStartTrig_TrigWhen 0x3131 // Specifies when to trigger the arm start trigger. -#define DAQmx_ArmStartTrig_Timescale 0x3132 // Specifies the timescale to be used for timestamps used in an arm start time trigger. -#define DAQmx_ArmStartTrig_TimestampEnable 0x3133 // Specifies whether the arm start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define DAQmx_ArmStartTrig_TimestampTimescale 0x3135 // Specifies the arm start trigger timestamp timescale. -#define DAQmx_ArmStartTrig_TimestampVal 0x3134 // Indicates the arm start trigger timestamp value. -#define DAQmx_Trigger_SyncType 0x2F80 // Specifies the role of the device in a synchronized system. Setting this value to DAQmx_Val_Master or DAQmx_Val_Slave enables trigger skew correction. If you enable trigger skew correction, set this property to DAQmx_Val_Master on only one device, and set this property to DAQmx_Val_Slave on the other devices. +#define +DAQmx_PauseTrig_Term 0x2F20 // Indicates the name of the internal Pause Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define +DAQmx_AnlgLvl_PauseTrig_Src 0x1370 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. +#define +DAQmx_AnlgLvl_PauseTrig_When 0x1371 // Specifies whether the task pauses above or below the threshold you specify with Level. +#define +DAQmx_AnlgLvl_PauseTrig_Lvl 0x1369 // Specifies the threshold at which to pause the task. Specify this value in the units of the measurement or generation. Use Pause When to specify whether the task pauses above or below this threshold. +#define +DAQmx_AnlgLvl_PauseTrig_Hyst 0x1368 // Specifies a hysteresis level in the units of the measurement or generation. If Pause When is DAQmx_Val_AboveLvl, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Pause When is DAQmx_Val_BelowLvl, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hys... +#define +DAQmx_AnlgLvl_PauseTrig_Coupling 0x2236 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgLvl_PauseTrig_DigFltr_Enable 0x2EF0 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define +DAQmx_AnlgLvl_PauseTrig_DigFltr_MinPulseWidth 0x2EF1 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseSrc 0x2EF2 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseRate 0x2EF3 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgLvl_PauseTrig_DigSync_Enable 0x2EF4 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_AnlgWin_PauseTrig_Src 0x1373 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. +#define +DAQmx_AnlgWin_PauseTrig_When 0x1374 // Specifies whether the task pauses while the trigger signal is inside or outside the window you specify with Bottom and Top. +#define +DAQmx_AnlgWin_PauseTrig_Top 0x1376 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. +#define +DAQmx_AnlgWin_PauseTrig_Btm 0x1375 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. +#define +DAQmx_AnlgWin_PauseTrig_Coupling 0x2237 // Specifies the coupling for the source signal of the terminal if the source is a terminal rather than a virtual channel. +#define +DAQmx_AnlgWin_PauseTrig_DigFltr_Enable 0x2EF5 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define +DAQmx_AnlgWin_PauseTrig_DigFltr_MinPulseWidth 0x2EF6 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseSrc 0x2EF7 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define +DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseRate 0x2EF8 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_AnlgWin_PauseTrig_DigSync_Enable 0x2EF9 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_DigLvl_PauseTrig_Src 0x1379 // Specifies the name of a terminal where there is a digital signal to use as the source of the Pause Trigger. +#define +DAQmx_DigLvl_PauseTrig_When 0x1380 // Specifies whether the task pauses while the signal is high or low. +#define +DAQmx_DigLvl_PauseTrig_DigFltr_Enable 0x2228 // Specifies whether to apply a digital filter to the trigger signal. +#define +DAQmx_DigLvl_PauseTrig_DigFltr_MinPulseWidth 0x2229 // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseSrc 0x222A // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseRate 0x222B // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_DigLvl_PauseTrig_DigSync_Enable 0x222C // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_DigPattern_PauseTrig_Src 0x216F // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the lines within the port are in ascending order. +#define +DAQmx_DigPattern_PauseTrig_Pattern 0x2188 // Specifies the digital pattern that must be met for the Pause Trigger to occur. +#define +DAQmx_DigPattern_PauseTrig_When 0x2170 // Specifies if the Pause Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define +DAQmx_ArmStartTrig_Type 0x1414 // Specifies the type of trigger to use to arm the task for a Start Trigger. If you configure an Arm Start Trigger, the task does not respond to a Start Trigger until the device receives the Arm Start Trigger. +#define +DAQmx_ArmStart_Term 0x2F7F // Indicates the name of the internal Arm Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define +DAQmx_DigEdge_ArmStartTrig_Src 0x1417 // Specifies the name of a terminal where there is a digital signal to use as the source of the Arm Start Trigger. +#define +DAQmx_DigEdge_ArmStartTrig_Edge 0x1415 // Specifies on which edge of a digital signal to arm the task for a Start Trigger. +#define +DAQmx_DigEdge_ArmStartTrig_DigFltr_Enable 0x222D // Specifies whether to apply the pulse width filter to the signal. +#define +DAQmx_DigEdge_ArmStartTrig_DigFltr_MinPulseWidth 0x222E // Specifies in seconds the minimum pulse width the filter recognizes. +#define +DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseSrc 0x222F // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define +DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseRate 0x2230 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define +DAQmx_DigEdge_ArmStartTrig_DigSync_Enable 0x2231 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define +DAQmx_ArmStartTrig_TrigWhen 0x3131 // Specifies when to trigger the arm start trigger. +#define +DAQmx_ArmStartTrig_Timescale 0x3132 // Specifies the timescale to be used for timestamps used in an arm start time trigger. +#define +DAQmx_ArmStartTrig_TimestampEnable 0x3133 // Specifies whether the arm start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define +DAQmx_ArmStartTrig_TimestampTimescale 0x3135 // Specifies the arm start trigger timestamp timescale. +#define +DAQmx_ArmStartTrig_TimestampVal 0x3134 // Indicates the arm start trigger timestamp value. +#define +DAQmx_Trigger_SyncType 0x2F80 // Specifies the role of the device in a synchronized system. Setting this value to DAQmx_Val_Master or DAQmx_Val_Slave enables trigger skew correction. If you enable trigger skew correction, set this property to DAQmx_Val_Master on only one device, and set this property to DAQmx_Val_Slave on the other devices. //********** Watchdog Attributes ********** -#define DAQmx_Watchdog_Timeout 0x21A9 // Specifies in seconds the amount of time until the watchdog timer expires. A value of -1 means the internal timer never expires. Set this input to -1 if you use an Expiration Trigger to expire the watchdog task. -#define DAQmx_WatchdogExpirTrig_Type 0x21A3 // Specifies the type of trigger to use to expire a watchdog task. -#define DAQmx_WatchdogExpirTrig_TrigOnNetworkConnLoss 0x305D // Specifies the watchdog timer behavior when the network connection is lost between the host and the chassis. If set to true, the watchdog timer expires when the chassis detects the loss of network connection. +#define +DAQmx_Watchdog_Timeout 0x21A9 // Specifies in seconds the amount of time until the watchdog timer expires. A value of -1 means the internal timer never expires. Set this input to -1 if you use an Expiration Trigger to expire the watchdog task. +#define +DAQmx_WatchdogExpirTrig_Type 0x21A3 // Specifies the type of trigger to use to expire a watchdog task. +#define +DAQmx_WatchdogExpirTrig_TrigOnNetworkConnLoss 0x305D // Specifies the watchdog timer behavior when the network connection is lost between the host and the chassis. If set to true, the watchdog timer expires when the chassis detects the loss of network connection. #define DAQmx_DigEdge_WatchdogExpirTrig_Src 0x21A4 // Specifies the name of a terminal where a digital signal exists to use as the source of the Expiration Trigger. -#define DAQmx_DigEdge_WatchdogExpirTrig_Edge 0x21A5 // Specifies on which edge of a digital signal to expire the watchdog task. -#define DAQmx_Watchdog_DO_ExpirState 0x21A7 // Specifies the state to which to set the digital physical channels when the watchdog task expires. You cannot modify the expiration state of dedicated digital input physical channels. -#define DAQmx_Watchdog_AO_OutputType 0x305E // Specifies the output type of the analog output physical channels when the watchdog task expires. -#define DAQmx_Watchdog_AO_ExpirState 0x305F // Specifies the state to set the analog output physical channels when the watchdog task expires. -#define DAQmx_Watchdog_CO_ExpirState 0x3060 // Specifies the state to set the counter output channel terminal when the watchdog task expires. -#define DAQmx_Watchdog_HasExpired 0x21A8 // Indicates if the watchdog timer expired. You can read this property only while the task is running. +#define +DAQmx_DigEdge_WatchdogExpirTrig_Edge 0x21A5 // Specifies on which edge of a digital signal to expire the watchdog task. +#define +DAQmx_Watchdog_DO_ExpirState 0x21A7 // Specifies the state to which to set the digital physical channels when the watchdog task expires. You cannot modify the expiration state of dedicated digital input physical channels. +#define +DAQmx_Watchdog_AO_OutputType 0x305E // Specifies the output type of the analog output physical channels when the watchdog task expires. +#define +DAQmx_Watchdog_AO_ExpirState 0x305F // Specifies the state to set the analog output physical channels when the watchdog task expires. +#define +DAQmx_Watchdog_CO_ExpirState 0x3060 // Specifies the state to set the counter output channel terminal when the watchdog task expires. +#define +DAQmx_Watchdog_HasExpired 0x21A8 // Indicates if the watchdog timer expired. You can read this property only while the task is running. //********** Write Attributes ********** -#define DAQmx_Write_RelativeTo 0x190C // Specifies the point in the buffer at which to write data. If you also specify an offset with Offset, the write operation begins at that offset relative to this point you select with this property. -#define DAQmx_Write_Offset 0x190D // Specifies in samples per channel an offset at which a write operation begins. This offset is relative to the location you specify with Relative To. -#define DAQmx_Write_RegenMode 0x1453 // Specifies whether to allow NI-DAQmx to generate the same data multiple times. -#define DAQmx_Write_CurrWritePos 0x1458 // Indicates the position in the buffer of the next sample to generate. This value is identical for all channels in the task. -#define DAQmx_Write_OvercurrentChansExist 0x29E8 // Indicates if the device(s) detected an overcurrent condition for any channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. -#define DAQmx_Write_OvercurrentChans 0x29E9 // Indicates a list of names of any virtual channels in the task for which an overcurrent condition has been detected. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_OvertemperatureChansExist 0x2A84 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. -#define DAQmx_Write_OvertemperatureChans 0x3083 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. The list of names may be empty if the device cannot determine the source of the overtemperature. -#define DAQmx_Write_ExternalOvervoltageChansExist 0x30BB // Indicates if the device(s) detected an External Overvoltage condition for any channel in the task. Reading this property clears the External Overvoltage status for all channels in the task. You must read this property before you read External OvervoltageChans. Otherwise, you will receive an error. -#define DAQmx_Write_ExternalOvervoltageChans 0x30BC // Indicates a list of names of any virtual channels in the task for which an External Overvoltage condition has been detected. You must read External OvervoltageChansExist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_OverloadedChansExist 0x3084 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. -#define DAQmx_Write_OverloadedChans 0x3085 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_OpenCurrentLoopChansExist 0x29EA // Indicates if the device(s) detected an open current loop for any channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. -#define DAQmx_Write_OpenCurrentLoopChans 0x29EB // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_PowerSupplyFaultChansExist 0x29EC // Indicates if the device(s) detected a power supply fault for any channel in the task. Reading this property clears the power supply fault status for all channels in the task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. -#define DAQmx_Write_PowerSupplyFaultChans 0x29ED // Indicates a list of names of any virtual channels in the task that have a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_Sync_UnlockedChansExist 0x313F // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. -#define DAQmx_Write_Sync_UnlockedChans 0x3140 // Indicates the channels from devices in an unlocked target. -#define DAQmx_Write_SpaceAvail 0x1460 // Indicates in samples per channel the amount of available space in the buffer. -#define DAQmx_Write_TotalSampPerChanGenerated 0x192B // Indicates the total number of samples generated by each channel in the task. This value is identical for all channels in the task. -#define DAQmx_Write_AccessoryInsertionOrRemovalDetected 0x3053 // Indicates if any devices in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. -#define DAQmx_Write_DevsWithInsertedOrRemovedAccessories 0x3054 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. -#define DAQmx_Write_RawDataWidth 0x217D // Indicates in bytes the required size of a raw sample to write to the task. -#define DAQmx_Write_NumChans 0x217E // Indicates the number of channels that an NI-DAQmx Write function writes to the task. This value is the number of channels in the task. -#define DAQmx_Write_WaitMode 0x22B1 // Specifies how an NI-DAQmx Write function waits for space to become available in the buffer. -#define DAQmx_Write_SleepTime 0x22B2 // Specifies in seconds the amount of time to sleep after checking for available buffer space if Wait Mode is DAQmx_Val_Sleep. -#define DAQmx_Write_DigitalLines_BytesPerChan 0x217F // Indicates the number of Boolean values expected per channel in a sample for line-based writes. This property is determined by the channel in the task with the most digital lines. If a channel has fewer lines than this number, NI-DAQmx ignores the extra Boolean values. +#define +DAQmx_Write_RelativeTo 0x190C // Specifies the point in the buffer at which to write data. If you also specify an offset with Offset, the write operation begins at that offset relative to this point you select with this property. +#define +DAQmx_Write_Offset 0x190D // Specifies in samples per channel an offset at which a write operation begins. This offset is relative to the location you specify with Relative To. +#define +DAQmx_Write_RegenMode 0x1453 // Specifies whether to allow NI-DAQmx to generate the same data multiple times. +#define +DAQmx_Write_CurrWritePos 0x1458 // Indicates the position in the buffer of the next sample to generate. This value is identical for all channels in the task. +#define +DAQmx_Write_OvercurrentChansExist 0x29E8 // Indicates if the device(s) detected an overcurrent condition for any channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. +#define +DAQmx_Write_OvercurrentChans 0x29E9 // Indicates a list of names of any virtual channels in the task for which an overcurrent condition has been detected. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_OvertemperatureChansExist 0x2A84 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. +#define +DAQmx_Write_OvertemperatureChans 0x3083 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. The list of names may be empty if the device cannot determine the source of the overtemperature. +#define +DAQmx_Write_ExternalOvervoltageChansExist 0x30BB // Indicates if the device(s) detected an External Overvoltage condition for any channel in the task. Reading this property clears the External Overvoltage status for all channels in the task. You must read this property before you read External OvervoltageChans. Otherwise, you will receive an error. +#define +DAQmx_Write_ExternalOvervoltageChans 0x30BC // Indicates a list of names of any virtual channels in the task for which an External Overvoltage condition has been detected. You must read External OvervoltageChansExist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_OverloadedChansExist 0x3084 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. +#define +DAQmx_Write_OverloadedChans 0x3085 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_OpenCurrentLoopChansExist 0x29EA // Indicates if the device(s) detected an open current loop for any channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. +#define +DAQmx_Write_OpenCurrentLoopChans 0x29EB // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_PowerSupplyFaultChansExist 0x29EC // Indicates if the device(s) detected a power supply fault for any channel in the task. Reading this property clears the power supply fault status for all channels in the task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. +#define +DAQmx_Write_PowerSupplyFaultChans 0x29ED // Indicates a list of names of any virtual channels in the task that have a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_Sync_UnlockedChansExist 0x313F // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. +#define +DAQmx_Write_Sync_UnlockedChans 0x3140 // Indicates the channels from devices in an unlocked target. +#define +DAQmx_Write_SpaceAvail 0x1460 // Indicates in samples per channel the amount of available space in the buffer. +#define +DAQmx_Write_TotalSampPerChanGenerated 0x192B // Indicates the total number of samples generated by each channel in the task. This value is identical for all channels in the task. +#define +DAQmx_Write_AccessoryInsertionOrRemovalDetected 0x3053 // Indicates if any devices in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. +#define +DAQmx_Write_DevsWithInsertedOrRemovedAccessories 0x3054 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. +#define +DAQmx_Write_RawDataWidth 0x217D // Indicates in bytes the required size of a raw sample to write to the task. +#define +DAQmx_Write_NumChans 0x217E // Indicates the number of channels that an NI-DAQmx Write function writes to the task. This value is the number of channels in the task. +#define +DAQmx_Write_WaitMode 0x22B1 // Specifies how an NI-DAQmx Write function waits for space to become available in the buffer. +#define +DAQmx_Write_SleepTime 0x22B2 // Specifies in seconds the amount of time to sleep after checking for available buffer space if Wait Mode is DAQmx_Val_Sleep. +#define +DAQmx_Write_DigitalLines_BytesPerChan 0x217F // Indicates the number of Boolean values expected per channel in a sample for line-based writes. This property is determined by the channel in the task with the most digital lines. If a channel has fewer lines than this number, NI-DAQmx ignores the extra Boolean values. // For backwards compatibility, the DAQmx_ReadWaitMode has to be defined because this was the original spelling // that has been later on corrected. -#define DAQmx_ReadWaitMode DAQmx_Read_WaitMode +#define +DAQmx_ReadWaitMode DAQmx_Read_WaitMode /****************************************************************************** *** NI-DAQmx Values ********************************************************** @@ -1304,164 +2447,249 @@ typedef uInt32 CalHandle; /******************************************************/ //*** Values for the Mode parameter of DAQmxTaskControl *** -#define DAQmx_Val_Task_Start 0 // Start -#define DAQmx_Val_Task_Stop 1 // Stop -#define DAQmx_Val_Task_Verify 2 // Verify -#define DAQmx_Val_Task_Commit 3 // Commit -#define DAQmx_Val_Task_Reserve 4 // Reserve -#define DAQmx_Val_Task_Unreserve 5 // Unreserve -#define DAQmx_Val_Task_Abort 6 // Abort +#define +DAQmx_Val_Task_Start 0 // Start +#define +DAQmx_Val_Task_Stop 1 // Stop +#define +DAQmx_Val_Task_Verify 2 // Verify +#define +DAQmx_Val_Task_Commit 3 // Commit +#define +DAQmx_Val_Task_Reserve 4 // Reserve +#define +DAQmx_Val_Task_Unreserve 5 // Unreserve +#define +DAQmx_Val_Task_Abort 6 // Abort //*** Values for the Options parameter of the event registration functions -#define DAQmx_Val_SynchronousEventCallbacks (1<<0) // Synchronous callbacks +#define +DAQmx_Val_SynchronousEventCallbacks (1<<0) // Synchronous callbacks //*** Values for the everyNsamplesEventType parameter of DAQmxRegisterEveryNSamplesEvent *** -#define DAQmx_Val_Acquired_Into_Buffer 1 // Acquired Into Buffer -#define DAQmx_Val_Transferred_From_Buffer 2 // Transferred From Buffer +#define +DAQmx_Val_Acquired_Into_Buffer 1 // Acquired Into Buffer +#define +DAQmx_Val_Transferred_From_Buffer 2 // Transferred From Buffer //*** Values for the Action parameter of DAQmxControlWatchdogTask *** -#define DAQmx_Val_ResetTimer 0 // Reset Timer -#define DAQmx_Val_ClearExpiration 1 // Clear Expiration +#define +DAQmx_Val_ResetTimer 0 // Reset Timer +#define +DAQmx_Val_ClearExpiration 1 // Clear Expiration //*** Values for the Line Grouping parameter of DAQmxCreateDIChan and DAQmxCreateDOChan *** -#define DAQmx_Val_ChanPerLine 0 // One Channel For Each Line -#define DAQmx_Val_ChanForAllLines 1 // One Channel For All Lines +#define +DAQmx_Val_ChanPerLine 0 // One Channel For Each Line +#define +DAQmx_Val_ChanForAllLines 1 // One Channel For All Lines //*** Values for the Fill Mode parameter of DAQmxReadAnalogF64, DAQmxReadBinaryI16, DAQmxReadBinaryU16, DAQmxReadBinaryI32, DAQmxReadBinaryU32, // DAQmxReadDigitalU8, DAQmxReadDigitalU32, DAQmxReadDigitalLines *** //*** Values for the Data Layout parameter of DAQmxWriteAnalogF64, DAQmxWriteBinaryI16, DAQmxWriteDigitalU8, DAQmxWriteDigitalU32, DAQmxWriteDigitalLines *** -#define DAQmx_Val_GroupByChannel 0 // Group by Channel -#define DAQmx_Val_GroupByScanNumber 1 // Group by Scan Number +#define +DAQmx_Val_GroupByChannel 0 // Group by Channel +#define +DAQmx_Val_GroupByScanNumber 1 // Group by Scan Number //*** Values for the Signal Modifiers parameter of DAQmxConnectTerms ***/ -#define DAQmx_Val_DoNotInvertPolarity 0 // Do not invert polarity -#define DAQmx_Val_InvertPolarity 1 // Invert polarity +#define +DAQmx_Val_DoNotInvertPolarity 0 // Do not invert polarity +#define +DAQmx_Val_InvertPolarity 1 // Invert polarity //*** Values for the Action paramter of DAQmxCloseExtCal *** -#define DAQmx_Val_Action_Commit 0 // Commit -#define DAQmx_Val_Action_Cancel 1 // Cancel +#define +DAQmx_Val_Action_Commit 0 // Commit +#define +DAQmx_Val_Action_Cancel 1 // Cancel //*** Values for the Trigger ID parameter of DAQmxSendSoftwareTrigger *** -#define DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger +#define +DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger //*** Value set for the ActiveEdge parameter of DAQmxCfgSampClkTiming and DAQmxCfgPipelinedSampClkTiming *** -#define DAQmx_Val_Rising 10280 // Rising -#define DAQmx_Val_Falling 10171 // Falling +#define +DAQmx_Val_Rising 10280 // Rising +#define +DAQmx_Val_Falling 10171 // Falling //*** Value set SwitchPathType *** //*** Value set for the output Path Status parameter of DAQmxSwitchFindPath *** -#define DAQmx_Val_PathStatus_Available 10431 // Path Available -#define DAQmx_Val_PathStatus_AlreadyExists 10432 // Path Already Exists -#define DAQmx_Val_PathStatus_Unsupported 10433 // Path Unsupported -#define DAQmx_Val_PathStatus_ChannelInUse 10434 // Channel In Use -#define DAQmx_Val_PathStatus_SourceChannelConflict 10435 // Channel Source Conflict -#define DAQmx_Val_PathStatus_ChannelReservedForRouting 10436 // Channel Reserved for Routing +#define +DAQmx_Val_PathStatus_Available 10431 // Path Available +#define +DAQmx_Val_PathStatus_AlreadyExists 10432 // Path Already Exists +#define +DAQmx_Val_PathStatus_Unsupported 10433 // Path Unsupported +#define +DAQmx_Val_PathStatus_ChannelInUse 10434 // Channel In Use +#define +DAQmx_Val_PathStatus_SourceChannelConflict 10435 // Channel Source Conflict +#define +DAQmx_Val_PathStatus_ChannelReservedForRouting 10436 // Channel Reserved for Routing //*** Value set for the Units parameter of DAQmxCreateAIThrmcplChan, DAQmxCreateAIRTDChan, DAQmxCreateAIThrmstrChanIex, DAQmxCreateAIThrmstrChanVex and DAQmxCreateAITempBuiltInSensorChan *** -#define DAQmx_Val_DegC 10143 // Deg C -#define DAQmx_Val_DegF 10144 // Deg F -#define DAQmx_Val_Kelvins 10325 // Kelvins -#define DAQmx_Val_DegR 10145 // Deg R +#define +DAQmx_Val_DegC 10143 // Deg C +#define +DAQmx_Val_DegF 10144 // Deg F +#define +DAQmx_Val_Kelvins 10325 // Kelvins +#define +DAQmx_Val_DegR 10145 // Deg R //*** Value set for the state parameter of DAQmxSetDigitalPowerUpStates *** -#define DAQmx_Val_High 10192 // High -#define DAQmx_Val_Low 10214 // Low -#define DAQmx_Val_Tristate 10310 // Tristate +#define +DAQmx_Val_High 10192 // High +#define +DAQmx_Val_Low 10214 // Low +#define +DAQmx_Val_Tristate 10310 // Tristate //*** Value set for the state parameter of DAQmxSetDigitalPullUpPullDownStates *** -#define DAQmx_Val_PullUp 15950 // Pull Up -#define DAQmx_Val_PullDown 15951 // Pull Down +#define +DAQmx_Val_PullUp 15950 // Pull Up +#define +DAQmx_Val_PullDown 15951 // Pull Down //*** Value set for the channelType parameter of DAQmxSetAnalogPowerUpStates & DAQmxGetAnalogPowerUpStates *** -#define DAQmx_Val_ChannelVoltage 0 // Voltage Channel -#define DAQmx_Val_ChannelCurrent 1 // Current Channel -#define DAQmx_Val_ChannelHighImpedance 2 // High-Impedance Channel +#define +DAQmx_Val_ChannelVoltage 0 // Voltage Channel +#define +DAQmx_Val_ChannelCurrent 1 // Current Channel +#define +DAQmx_Val_ChannelHighImpedance 2 // High-Impedance Channel //*** Value set RelayPos *** //*** Value set for the state parameter of DAQmxSwitchGetSingleRelayPos and DAQmxSwitchGetMultiRelayPos *** -#define DAQmx_Val_Open 10437 // Open -#define DAQmx_Val_Closed 10438 // Closed +#define +DAQmx_Val_Open 10437 // Open +#define +DAQmx_Val_Closed 10438 // Closed //*** Value set for the inputCalSource parameter of DAQmxAdjust1540Cal *** -#define DAQmx_Val_Loopback0 0 // Loopback 0 degree shift -#define DAQmx_Val_Loopback180 1 // Loopback 180 degree shift -#define DAQmx_Val_Ground 2 // Ground +#define +DAQmx_Val_Loopback0 0 // Loopback 0 degree shift +#define +DAQmx_Val_Loopback180 1 // Loopback 180 degree shift +#define +DAQmx_Val_Ground 2 // Ground //*** Value set for calibration mode for 4339 Calibration functions *** -#define DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Voltage 10322 // Voltage #define DAQmx_Val_Bridge 15908 // Bridge //*** Value set for output type for 4322 Calibration functions *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_Current 10134 // Current +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Current 10134 // Current //*** Value set for terminal configuration for 4463 calibration functions *** -#define DAQmx_Val_Diff 10106 // Differential -#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define +DAQmx_Val_Diff 10106 // Differential +#define +DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Value set for the calibration mode for the 4480 Calibration functions *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_Charge 16105 // Charge +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Charge 16105 // Charge //*** Value set for shunt resistor select for Strain and Bridge Shunt Calibration functions *** -#define DAQmx_Val_A 12513 // A -#define DAQmx_Val_B 12514 // B +#define +DAQmx_Val_A 12513 // A +#define +DAQmx_Val_B 12514 // B //*** Value set for Force IEPE functions *** -#define DAQmx_Val_Newtons 15875 // Newtons -#define DAQmx_Val_Pounds 15876 // Pounds -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Newtons 15875 // Newtons +#define +DAQmx_Val_Pounds 15876 // Pounds +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Value set for DAQmxWaitForValidTimestamp *** -#define DAQmx_Val_StartTrigger 12491 // Start Trigger -#define DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger -#define DAQmx_Val_ArmStartTrigger 14641 // Arm Start Trigger -#define DAQmx_Val_FirstSampleTimestamp 16130 // First Sample Timestamp +#define +DAQmx_Val_StartTrigger 12491 // Start Trigger +#define +DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger +#define +DAQmx_Val_ArmStartTrigger 14641 // Arm Start Trigger +#define +DAQmx_Val_FirstSampleTimestamp 16130 // First Sample Timestamp //*** Value for the Terminal Config parameter of DAQmxCreateAIVoltageChan, DAQmxCreateAICurrentChan and DAQmxCreateAIVoltageChanWithExcit *** -#define DAQmx_Val_Cfg_Default -1 // Default +#define +DAQmx_Val_Cfg_Default -1 // Default //*** Value for the Shunt Resistor Location parameter of DAQmxCreateAICurrentChan *** -#define DAQmx_Val_Default -1 // Default +#define +DAQmx_Val_Default -1 // Default //*** Value for the Timeout parameter of DAQmxWaitUntilTaskDone -#define DAQmx_Val_WaitInfinitely -1.0 +#define +DAQmx_Val_WaitInfinitely -1.0 //*** Value for the Number of Samples per Channel parameter of DAQmxReadAnalogF64, DAQmxReadBinaryI16, DAQmxReadBinaryU16, // DAQmxReadBinaryI32, DAQmxReadBinaryU32, DAQmxReadDigitalU8, DAQmxReadDigitalU32, // DAQmxReadDigitalLines, DAQmxReadCounterF64, DAQmxReadCounterU32 and DAQmxReadRaw *** -#define DAQmx_Val_Auto -1 +#define +DAQmx_Val_Auto -1 // Value set for the Options parameter of DAQmxSaveTask, DAQmxSaveGlobalChan and DAQmxSaveScale -#define DAQmx_Val_Save_Overwrite (1<<0) -#define DAQmx_Val_Save_AllowInteractiveEditing (1<<1) -#define DAQmx_Val_Save_AllowInteractiveDeletion (1<<2) +#define +DAQmx_Val_Save_Overwrite (1<<0) +#define +DAQmx_Val_Save_AllowInteractiveEditing (1<<1) +#define +DAQmx_Val_Save_AllowInteractiveDeletion (1<<2) //*** Values for the Trigger Usage parameter - set of trigger types a device may support //*** Values for TriggerUsageTypeBits -#define DAQmx_Val_Bit_TriggerUsageTypes_Advance (1<<0) // Device supports advance triggers -#define DAQmx_Val_Bit_TriggerUsageTypes_Pause (1<<1) // Device supports pause triggers -#define DAQmx_Val_Bit_TriggerUsageTypes_Reference (1<<2) // Device supports reference triggers -#define DAQmx_Val_Bit_TriggerUsageTypes_Start (1<<3) // Device supports start triggers -#define DAQmx_Val_Bit_TriggerUsageTypes_Handshake (1<<4) // Device supports handshake triggers -#define DAQmx_Val_Bit_TriggerUsageTypes_ArmStart (1<<5) // Device supports arm start triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_Advance (1<<0) // Device supports advance triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_Pause (1<<1) // Device supports pause triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_Reference (1<<2) // Device supports reference triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_Start (1<<3) // Device supports start triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_Handshake (1<<4) // Device supports handshake triggers +#define +DAQmx_Val_Bit_TriggerUsageTypes_ArmStart (1<<5) // Device supports arm start triggers //*** Values for the Coupling Types parameter - set of coupling types a device may support //*** Values for CouplingTypeBits -#define DAQmx_Val_Bit_CouplingTypes_AC (1<<0) // Device supports AC coupling -#define DAQmx_Val_Bit_CouplingTypes_DC (1<<1) // Device supports DC coupling -#define DAQmx_Val_Bit_CouplingTypes_Ground (1<<2) // Device supports ground coupling -#define DAQmx_Val_Bit_CouplingTypes_HFReject (1<<3) // Device supports High Frequency Reject coupling -#define DAQmx_Val_Bit_CouplingTypes_LFReject (1<<4) // Device supports Low Frequency Reject coupling -#define DAQmx_Val_Bit_CouplingTypes_NoiseReject (1<<5) // Device supports Noise Reject coupling +#define +DAQmx_Val_Bit_CouplingTypes_AC (1<<0) // Device supports AC coupling +#define +DAQmx_Val_Bit_CouplingTypes_DC (1<<1) // Device supports DC coupling +#define +DAQmx_Val_Bit_CouplingTypes_Ground (1<<2) // Device supports ground coupling +#define +DAQmx_Val_Bit_CouplingTypes_HFReject (1<<3) // Device supports High Frequency Reject coupling +#define +DAQmx_Val_Bit_CouplingTypes_LFReject (1<<4) // Device supports Low Frequency Reject coupling +#define +DAQmx_Val_Bit_CouplingTypes_NoiseReject (1<<5) // Device supports Noise Reject coupling //*** Values for DAQmx_PhysicalChan_AI_TermCfgs and DAQmx_PhysicalChan_AO_TermCfgs //*** Value set TerminalConfigurationBits *** -#define DAQmx_Val_Bit_TermCfg_RSE (1<<0) // RSE terminal configuration -#define DAQmx_Val_Bit_TermCfg_NRSE (1<<1) // NRSE terminal configuration -#define DAQmx_Val_Bit_TermCfg_Diff (1<<2) // Differential terminal configuration -#define DAQmx_Val_Bit_TermCfg_PseudoDIFF (1<<3) // Pseudodifferential terminal configuration +#define +DAQmx_Val_Bit_TermCfg_RSE (1<<0) // RSE terminal configuration +#define +DAQmx_Val_Bit_TermCfg_NRSE (1<<1) // NRSE terminal configuration +#define +DAQmx_Val_Bit_TermCfg_Diff (1<<2) // Differential terminal configuration +#define +DAQmx_Val_Bit_TermCfg_PseudoDIFF (1<<3) // Pseudodifferential terminal configuration /******************************************************/ @@ -1470,84 +2698,134 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_AI_ACExcit_WireMode *** //*** Value set ACExcitWireMode *** -#define DAQmx_Val_4Wire 4 // 4-Wire +#define +DAQmx_Val_4Wire 4 // 4-Wire #define DAQmx_Val_5Wire 5 // 5-Wire -#define DAQmx_Val_6Wire 6 // 6-Wire +#define +DAQmx_Val_6Wire 6 // 6-Wire //*** Values for DAQmx_AI_ADCTimingMode *** //*** Value set ADCTimingMode *** -#define DAQmx_Val_Automatic 16097 // Automatic -#define DAQmx_Val_HighResolution 10195 // High Resolution -#define DAQmx_Val_HighSpeed 14712 // High Speed -#define DAQmx_Val_Best50HzRejection 14713 // Best 50 Hz Rejection -#define DAQmx_Val_Best60HzRejection 14714 // Best 60 Hz Rejection -#define DAQmx_Val_Custom 10137 // Custom +#define +DAQmx_Val_Automatic 16097 // Automatic +#define +DAQmx_Val_HighResolution 10195 // High Resolution +#define +DAQmx_Val_HighSpeed 14712 // High Speed +#define +DAQmx_Val_Best50HzRejection 14713 // Best 50 Hz Rejection +#define +DAQmx_Val_Best60HzRejection 14714 // Best 60 Hz Rejection +#define +DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_MeasType *** //*** Values for DAQmx_Dev_AI_SupportedMeasTypes *** //*** Values for DAQmx_PhysicalChan_AI_SupportedMeasTypes *** //*** Value set AIMeasurementType *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_VoltageRMS 10350 // Voltage RMS -#define DAQmx_Val_Current 10134 // Current -#define DAQmx_Val_CurrentRMS 10351 // Current RMS -#define DAQmx_Val_Voltage_CustomWithExcitation 10323 // More:Voltage:Custom with Excitation -#define DAQmx_Val_Bridge 15908 // More:Bridge (V/V) -#define DAQmx_Val_Freq_Voltage 10181 // Frequency -#define DAQmx_Val_Resistance 10278 // Resistance -#define DAQmx_Val_Temp_TC 10303 // Temperature:Thermocouple -#define DAQmx_Val_Temp_Thrmstr 10302 // Temperature:Thermistor -#define DAQmx_Val_Temp_RTD 10301 // Temperature:RTD -#define DAQmx_Val_Temp_BuiltInSensor 10311 // Temperature:Built-in Sensor -#define DAQmx_Val_Strain_Gage 10300 // Strain Gage -#define DAQmx_Val_Rosette_Strain_Gage 15980 // Rosette Strain Gage -#define DAQmx_Val_Position_LVDT 10352 // Position:LVDT -#define DAQmx_Val_Position_RVDT 10353 // Position:RVDT -#define DAQmx_Val_Position_EddyCurrentProximityProbe 14835 // Position:Eddy Current Proximity Probe -#define DAQmx_Val_Accelerometer 10356 // Accelerometer -#define DAQmx_Val_Acceleration_Charge 16104 // Acceleration:Charge -#define DAQmx_Val_Acceleration_4WireDCVoltage 16106 // Acceleration:4 Wire DC Voltage -#define DAQmx_Val_Velocity_IEPESensor 15966 // Velocity:IEPE Sensor -#define DAQmx_Val_Force_Bridge 15899 // Force:Bridge -#define DAQmx_Val_Force_IEPESensor 15895 // Force:IEPE Sensor -#define DAQmx_Val_Pressure_Bridge 15902 // Pressure:Bridge -#define DAQmx_Val_SoundPressure_Microphone 10354 // Sound Pressure:Microphone -#define DAQmx_Val_Torque_Bridge 15905 // Torque:Bridge -#define DAQmx_Val_TEDS_Sensor 12531 // TEDS Sensor -#define DAQmx_Val_Charge 16105 // Charge +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_VoltageRMS 10350 // Voltage RMS +#define +DAQmx_Val_Current 10134 // Current +#define +DAQmx_Val_CurrentRMS 10351 // Current RMS +#define +DAQmx_Val_Voltage_CustomWithExcitation 10323 // More:Voltage:Custom with Excitation +#define +DAQmx_Val_Bridge 15908 // More:Bridge (V/V) +#define +DAQmx_Val_Freq_Voltage 10181 // Frequency +#define +DAQmx_Val_Resistance 10278 // Resistance +#define +DAQmx_Val_Temp_TC 10303 // Temperature:Thermocouple +#define +DAQmx_Val_Temp_Thrmstr 10302 // Temperature:Thermistor +#define +DAQmx_Val_Temp_RTD 10301 // Temperature:RTD +#define +DAQmx_Val_Temp_BuiltInSensor 10311 // Temperature:Built-in Sensor +#define +DAQmx_Val_Strain_Gage 10300 // Strain Gage +#define +DAQmx_Val_Rosette_Strain_Gage 15980 // Rosette Strain Gage +#define +DAQmx_Val_Position_LVDT 10352 // Position:LVDT +#define +DAQmx_Val_Position_RVDT 10353 // Position:RVDT +#define +DAQmx_Val_Position_EddyCurrentProximityProbe 14835 // Position:Eddy Current Proximity Probe +#define +DAQmx_Val_Accelerometer 10356 // Accelerometer +#define +DAQmx_Val_Acceleration_Charge 16104 // Acceleration:Charge +#define +DAQmx_Val_Acceleration_4WireDCVoltage 16106 // Acceleration:4 Wire DC Voltage +#define +DAQmx_Val_Velocity_IEPESensor 15966 // Velocity:IEPE Sensor +#define +DAQmx_Val_Force_Bridge 15899 // Force:Bridge +#define +DAQmx_Val_Force_IEPESensor 15895 // Force:IEPE Sensor +#define +DAQmx_Val_Pressure_Bridge 15902 // Pressure:Bridge +#define +DAQmx_Val_SoundPressure_Microphone 10354 // Sound Pressure:Microphone +#define +DAQmx_Val_Torque_Bridge 15905 // Torque:Bridge +#define +DAQmx_Val_TEDS_Sensor 12531 // TEDS Sensor +#define +DAQmx_Val_Charge 16105 // Charge //*** Values for DAQmx_AO_IdleOutputBehavior *** //*** Value set AOIdleOutputBehavior *** -#define DAQmx_Val_ZeroVolts 12526 // Zero Volts -#define DAQmx_Val_HighImpedance 12527 // High-Impedance -#define DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value +#define +DAQmx_Val_ZeroVolts 12526 // Zero Volts +#define +DAQmx_Val_HighImpedance 12527 // High-Impedance +#define +DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value //*** Values for DAQmx_AO_OutputType *** //*** Values for DAQmx_Dev_AO_SupportedOutputTypes *** //*** Values for DAQmx_PhysicalChan_AO_SupportedOutputTypes *** //*** Value set AOOutputChannelType *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_Current 10134 // Current -#define DAQmx_Val_FuncGen 14750 // Function Generation +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Current 10134 // Current +#define +DAQmx_Val_FuncGen 14750 // Function Generation //*** Values for DAQmx_AI_Accel_Charge_SensitivityUnits *** //*** Value set AccelChargeSensitivityUnits *** -#define DAQmx_Val_PicoCoulombsPerG 16099 // PicoCoulombs per g -#define DAQmx_Val_PicoCoulombsPerMetersPerSecondSquared 16100 // PicoCoulombs per m/s^2 -#define DAQmx_Val_PicoCoulombsPerInchesPerSecondSquared 16101 // PicoCoulombs per in/s^2 +#define +DAQmx_Val_PicoCoulombsPerG 16099 // PicoCoulombs per g +#define +DAQmx_Val_PicoCoulombsPerMetersPerSecondSquared 16100 // PicoCoulombs per m/s^2 +#define +DAQmx_Val_PicoCoulombsPerInchesPerSecondSquared 16101 // PicoCoulombs per in/s^2 //*** Values for DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits *** //*** Values for DAQmx_AI_Accel_SensitivityUnits *** //*** Value set AccelSensitivityUnits1 *** -#define DAQmx_Val_mVoltsPerG 12509 // mVolts/g -#define DAQmx_Val_VoltsPerG 12510 // Volts/g +#define +DAQmx_Val_mVoltsPerG 12509 // mVolts/g +#define +DAQmx_Val_VoltsPerG 12510 // Volts/g //*** Values for DAQmx_AI_Accel_Units *** //*** Value set AccelUnits2 *** -#define DAQmx_Val_AccelUnit_g 10186 // g -#define DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 -#define DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 +#define +DAQmx_Val_AccelUnit_g 10186 // g +#define +DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 +#define +DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 #define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Dev_AI_SampModes *** @@ -1558,163 +2836,257 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_PhysicalChan_DO_SampModes *** //*** Values for DAQmx_SampQuant_SampMode *** //*** Value set AcquisitionType *** -#define DAQmx_Val_FiniteSamps 10178 // Finite Samples -#define DAQmx_Val_ContSamps 10123 // Continuous Samples -#define DAQmx_Val_HWTimedSinglePoint 12522 // Hardware Timed Single Point +#define +DAQmx_Val_FiniteSamps 10178 // Finite Samples +#define +DAQmx_Val_ContSamps 10123 // Continuous Samples +#define +DAQmx_Val_HWTimedSinglePoint 12522 // Hardware Timed Single Point //*** Values for DAQmx_AnlgLvl_PauseTrig_When *** //*** Value set ActiveLevel *** -#define DAQmx_Val_AboveLvl 10093 // Above Level -#define DAQmx_Val_BelowLvl 10107 // Below Level +#define +DAQmx_Val_AboveLvl 10093 // Above Level +#define +DAQmx_Val_BelowLvl 10107 // Below Level //*** Values for DAQmx_AI_RVDT_Units *** //*** Value set AngleUnits1 *** -#define DAQmx_Val_Degrees 10146 // Degrees -#define DAQmx_Val_Radians 10273 // Radians -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Degrees 10146 // Degrees +#define +DAQmx_Val_Radians 10273 // Radians +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_AngEncoder_Units *** //*** Value set AngleUnits2 *** -#define DAQmx_Val_Degrees 10146 // Degrees -#define DAQmx_Val_Radians 10273 // Radians -#define DAQmx_Val_Ticks 10304 // Ticks -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Degrees 10146 // Degrees +#define +DAQmx_Val_Radians 10273 // Radians +#define +DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Velocity_AngEncoder_Units *** //*** Value set AngularVelocityUnits *** -#define DAQmx_Val_RPM 16080 // RPM -#define DAQmx_Val_RadiansPerSecond 16081 // Radians/s -#define DAQmx_Val_DegreesPerSecond 16082 // Degrees/s -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_RPM 16080 // RPM +#define +DAQmx_Val_RadiansPerSecond 16081 // Radians/s +#define +DAQmx_Val_DegreesPerSecond 16082 // Degrees/s +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_AutoZeroMode *** //*** Value set AutoZeroType1 *** -#define DAQmx_Val_None 10230 // None -#define DAQmx_Val_Once 10244 // Once -#define DAQmx_Val_EverySample 10164 // Every Sample +#define +DAQmx_Val_None 10230 // None +#define +DAQmx_Val_Once 10244 // Once +#define +DAQmx_Val_EverySample 10164 // Every Sample //*** Values for DAQmx_SwitchScan_BreakMode *** //*** Value set BreakMode *** -#define DAQmx_Val_NoAction 10227 // No Action -#define DAQmx_Val_BreakBeforeMake 10110 // Break Before Make +#define +DAQmx_Val_NoAction 10227 // No Action +#define +DAQmx_Val_BreakBeforeMake 10110 // Break Before Make //*** Values for DAQmx_AI_Bridge_Cfg *** //*** Value set BridgeConfiguration1 *** -#define DAQmx_Val_FullBridge 10182 // Full Bridge -#define DAQmx_Val_HalfBridge 10187 // Half Bridge -#define DAQmx_Val_QuarterBridge 10270 // Quarter Bridge -#define DAQmx_Val_NoBridge 10228 // No Bridge +#define +DAQmx_Val_FullBridge 10182 // Full Bridge +#define +DAQmx_Val_HalfBridge 10187 // Half Bridge +#define +DAQmx_Val_QuarterBridge 10270 // Quarter Bridge +#define +DAQmx_Val_NoBridge 10228 // No Bridge //*** Values for DAQmx_AI_Bridge_ElectricalUnits *** //*** Value set BridgeElectricalUnits *** -#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define +DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define +DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt //*** Values for DAQmx_AI_Bridge_PhysicalUnits *** //*** Value set BridgePhysicalUnits *** -#define DAQmx_Val_Newtons 15875 // Newtons -#define DAQmx_Val_Pounds 15876 // Pounds -#define DAQmx_Val_KilogramForce 15877 // kgf -#define DAQmx_Val_Pascals 10081 // Pascals -#define DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define DAQmx_Val_Bar 15880 // bar -#define DAQmx_Val_NewtonMeters 15881 // Nm -#define DAQmx_Val_InchOunces 15882 // oz-in -#define DAQmx_Val_InchPounds 15883 // lb-in -#define DAQmx_Val_FootPounds 15884 // lb-ft +#define +DAQmx_Val_Newtons 15875 // Newtons +#define +DAQmx_Val_Pounds 15876 // Pounds +#define +DAQmx_Val_KilogramForce 15877 // kgf +#define +DAQmx_Val_Pascals 10081 // Pascals +#define +DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define +DAQmx_Val_Bar 15880 // bar +#define +DAQmx_Val_NewtonMeters 15881 // Nm +#define +DAQmx_Val_InchOunces 15882 // oz-in +#define +DAQmx_Val_InchPounds 15883 // lb-in +#define +DAQmx_Val_FootPounds 15884 // lb-ft //*** Values for DAQmx_AI_Bridge_Units *** //*** Value set BridgeUnits *** -#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define +DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_Dev_BusType *** //*** Value set BusType *** -#define DAQmx_Val_PCI 12582 // PCI -#define DAQmx_Val_PCIe 13612 // PCIe -#define DAQmx_Val_PXI 12583 // PXI -#define DAQmx_Val_PXIe 14706 // PXIe -#define DAQmx_Val_SCXI 12584 // SCXI -#define DAQmx_Val_SCC 14707 // SCC -#define DAQmx_Val_PCCard 12585 // PCCard -#define DAQmx_Val_USB 12586 // USB +#define +DAQmx_Val_PCI 12582 // PCI +#define +DAQmx_Val_PCIe 13612 // PCIe +#define +DAQmx_Val_PXI 12583 // PXI +#define +DAQmx_Val_PXIe 14706 // PXIe +#define +DAQmx_Val_SCXI 12584 // SCXI +#define +DAQmx_Val_SCC 14707 // SCC +#define +DAQmx_Val_PCCard 12585 // PCCard +#define +DAQmx_Val_USB 12586 // USB #define DAQmx_Val_CompactDAQ 14637 // CompactDAQ -#define DAQmx_Val_CompactRIO 16143 // CompactRIO -#define DAQmx_Val_TCPIP 14828 // TCP/IP -#define DAQmx_Val_Unknown 12588 // Unknown -#define DAQmx_Val_SwitchBlock 15870 // SwitchBlock +#define +DAQmx_Val_CompactRIO 16143 // CompactRIO +#define +DAQmx_Val_TCPIP 14828 // TCP/IP +#define +DAQmx_Val_Unknown 12588 // Unknown +#define +DAQmx_Val_SwitchBlock 15870 // SwitchBlock //*** Values for DAQmx_CI_MeasType *** //*** Values for DAQmx_Dev_CI_SupportedMeasTypes *** //*** Values for DAQmx_PhysicalChan_CI_SupportedMeasTypes *** //*** Value set CIMeasurementType *** -#define DAQmx_Val_CountEdges 10125 // Count Edges -#define DAQmx_Val_Freq 10179 // Frequency -#define DAQmx_Val_Period 10256 // Period -#define DAQmx_Val_PulseWidth 10359 // Pulse Width -#define DAQmx_Val_SemiPeriod 10289 // Semi Period -#define DAQmx_Val_PulseFrequency 15864 // Pulse Frequency -#define DAQmx_Val_PulseTime 15865 // Pulse Time -#define DAQmx_Val_PulseTicks 15866 // Pulse Ticks -#define DAQmx_Val_DutyCycle 16070 // Duty Cycle -#define DAQmx_Val_Position_AngEncoder 10360 // Position:Angular Encoder -#define DAQmx_Val_Position_LinEncoder 10361 // Position:Linear Encoder -#define DAQmx_Val_Velocity_AngEncoder 16078 // Velocity:Angular Encoder -#define DAQmx_Val_Velocity_LinEncoder 16079 // Velocity:Linear Encoder -#define DAQmx_Val_TwoEdgeSep 10267 // Two Edge Separation -#define DAQmx_Val_GPS_Timestamp 10362 // GPS Timestamp +#define +DAQmx_Val_CountEdges 10125 // Count Edges +#define +DAQmx_Val_Freq 10179 // Frequency +#define +DAQmx_Val_Period 10256 // Period +#define +DAQmx_Val_PulseWidth 10359 // Pulse Width +#define +DAQmx_Val_SemiPeriod 10289 // Semi Period +#define +DAQmx_Val_PulseFrequency 15864 // Pulse Frequency +#define +DAQmx_Val_PulseTime 15865 // Pulse Time +#define +DAQmx_Val_PulseTicks 15866 // Pulse Ticks +#define +DAQmx_Val_DutyCycle 16070 // Duty Cycle +#define +DAQmx_Val_Position_AngEncoder 10360 // Position:Angular Encoder +#define +DAQmx_Val_Position_LinEncoder 10361 // Position:Linear Encoder +#define +DAQmx_Val_Velocity_AngEncoder 16078 // Velocity:Angular Encoder +#define +DAQmx_Val_Velocity_LinEncoder 16079 // Velocity:Linear Encoder +#define +DAQmx_Val_TwoEdgeSep 10267 // Two Edge Separation +#define +DAQmx_Val_GPS_Timestamp 10362 // GPS Timestamp //*** Values for DAQmx_AI_Thrmcpl_CJCSrc *** //*** Value set CJCSource1 *** -#define DAQmx_Val_BuiltIn 10200 // Built-In -#define DAQmx_Val_ConstVal 10116 // Constant Value -#define DAQmx_Val_Chan 10113 // Channel +#define +DAQmx_Val_BuiltIn 10200 // Built-In +#define +DAQmx_Val_ConstVal 10116 // Constant Value +#define +DAQmx_Val_Chan 10113 // Channel //*** Values for DAQmx_CO_OutputType *** //*** Values for DAQmx_Dev_CO_SupportedOutputTypes *** //*** Values for DAQmx_PhysicalChan_CO_SupportedOutputTypes *** //*** Value set COOutputType *** -#define DAQmx_Val_Pulse_Time 10269 // Pulse:Time -#define DAQmx_Val_Pulse_Freq 10119 // Pulse:Frequency -#define DAQmx_Val_Pulse_Ticks 10268 // Pulse:Ticks +#define +DAQmx_Val_Pulse_Time 10269 // Pulse:Time +#define +DAQmx_Val_Pulse_Freq 10119 // Pulse:Frequency +#define +DAQmx_Val_Pulse_Ticks 10268 // Pulse:Ticks //*** Values for DAQmx_ChanType *** //*** Value set ChannelType *** -#define DAQmx_Val_AI 10100 // Analog Input -#define DAQmx_Val_AO 10102 // Analog Output -#define DAQmx_Val_DI 10151 // Digital Input -#define DAQmx_Val_DO 10153 // Digital Output -#define DAQmx_Val_CI 10131 // Counter Input -#define DAQmx_Val_CO 10132 // Counter Output +#define +DAQmx_Val_AI 10100 // Analog Input +#define +DAQmx_Val_AO 10102 // Analog Output +#define +DAQmx_Val_DI 10151 // Digital Input +#define +DAQmx_Val_DO 10153 // Digital Output +#define +DAQmx_Val_CI 10131 // Counter Input +#define +DAQmx_Val_CO 10132 // Counter Output //*** Values for DAQmx_CO_ConstrainedGenMode *** //*** Value set ConstrainedGenMode *** -#define DAQmx_Val_Unconstrained 14708 // Unconstrained -#define DAQmx_Val_FixedHighFreq 14709 // Fixed High Frequency -#define DAQmx_Val_FixedLowFreq 14710 // Fixed Low Frequency -#define DAQmx_Val_Fixed50PercentDutyCycle 14711 // Fixed 50 Percent Duty Cycle +#define +DAQmx_Val_Unconstrained 14708 // Unconstrained +#define +DAQmx_Val_FixedHighFreq 14709 // Fixed High Frequency +#define +DAQmx_Val_FixedLowFreq 14710 // Fixed Low Frequency +#define +DAQmx_Val_Fixed50PercentDutyCycle 14711 // Fixed 50 Percent Duty Cycle //*** Values for DAQmx_CI_CountEdges_Dir *** //*** Value set CountDirection1 *** -#define DAQmx_Val_CountUp 10128 // Count Up -#define DAQmx_Val_CountDown 10124 // Count Down -#define DAQmx_Val_ExtControlled 10326 // Externally Controlled +#define +DAQmx_Val_CountUp 10128 // Count Up +#define +DAQmx_Val_CountDown 10124 // Count Down +#define +DAQmx_Val_ExtControlled 10326 // Externally Controlled //*** Values for DAQmx_CI_Freq_MeasMeth *** //*** Values for DAQmx_CI_Period_MeasMeth *** //*** Value set CounterFrequencyMethod *** -#define DAQmx_Val_LowFreq1Ctr 10105 // Low Frequency with 1 Counter -#define DAQmx_Val_HighFreq2Ctr 10157 // High Frequency with 2 Counters -#define DAQmx_Val_LargeRng2Ctr 10205 // Large Range with 2 Counters -#define DAQmx_Val_DynAvg 16065 // Dynamic Averaging +#define +DAQmx_Val_LowFreq1Ctr 10105 // Low Frequency with 1 Counter +#define +DAQmx_Val_HighFreq2Ctr 10157 // High Frequency with 2 Counters +#define +DAQmx_Val_LargeRng2Ctr 10205 // Large Range with 2 Counters +#define +DAQmx_Val_DynAvg 16065 // Dynamic Averaging //*** Values for DAQmx_AI_Coupling *** //*** Value set Coupling1 *** -#define DAQmx_Val_AC 10045 // AC -#define DAQmx_Val_DC 10050 // DC -#define DAQmx_Val_GND 10066 // GND +#define +DAQmx_Val_AC 10045 // AC +#define +DAQmx_Val_DC 10050 // DC +#define +DAQmx_Val_GND 10066 // GND //*** Values for DAQmx_AnlgEdge_StartTrig_Coupling *** //*** Values for DAQmx_AnlgMultiEdge_StartTrig_Couplings *** @@ -1725,41 +3097,56 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_AnlgLvl_PauseTrig_Coupling *** //*** Values for DAQmx_AnlgWin_PauseTrig_Coupling *** //*** Value set Coupling2 *** -#define DAQmx_Val_AC 10045 // AC -#define DAQmx_Val_DC 10050 // DC +#define +DAQmx_Val_AC 10045 // AC +#define +DAQmx_Val_DC 10050 // DC //*** Values for DAQmx_AI_CurrentShunt_Loc *** //*** Value set CurrentShuntResistorLocation1 *** -#define DAQmx_Val_Internal 10200 // Internal -#define DAQmx_Val_External 10167 // External +#define +DAQmx_Val_Internal 10200 // Internal +#define +DAQmx_Val_External 10167 // External //*** Values for DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc *** //*** Value set BridgeShuntCalSource *** #define DAQmx_Val_BuiltIn 10200 // Built-In -#define DAQmx_Val_UserProvided 10167 // User Provided +#define +DAQmx_Val_UserProvided 10167 // User Provided //*** Values for DAQmx_AI_Charge_Units *** //*** Value set ChargeUnits *** -#define DAQmx_Val_Coulombs 16102 // Coulombs -#define DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Coulombs 16102 // Coulombs +#define +DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Current_Units *** //*** Values for DAQmx_AI_Current_ACRMS_Units *** //*** Values for DAQmx_AO_Current_Units *** //*** Value set CurrentUnits1 *** -#define DAQmx_Val_Amps 10342 // Amps -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_Amps 10342 // Amps +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Value set CurrentUnits2 *** -#define DAQmx_Val_Amps 10342 // Amps -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Amps 10342 // Amps +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_RawSampJustification *** //*** Value set DataJustification1 *** -#define DAQmx_Val_RightJustified 10279 // Right-Justified -#define DAQmx_Val_LeftJustified 10209 // Left-Justified +#define +DAQmx_Val_RightJustified 10279 // Right-Justified +#define +DAQmx_Val_LeftJustified 10209 // Left-Justified //*** Values for DAQmx_AI_DataXferMech *** //*** Values for DAQmx_AO_DataXferMech *** @@ -1768,67 +3155,95 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_CI_DataXferMech *** //*** Values for DAQmx_CO_DataXferMech *** //*** Value set DataTransferMechanism *** -#define DAQmx_Val_DMA 10054 // DMA -#define DAQmx_Val_Interrupts 10204 // Interrupts -#define DAQmx_Val_ProgrammedIO 10264 // Programmed I/O -#define DAQmx_Val_USBbulk 12590 // USB Bulk +#define +DAQmx_Val_DMA 10054 // DMA +#define +DAQmx_Val_Interrupts 10204 // Interrupts +#define +DAQmx_Val_ProgrammedIO 10264 // Programmed I/O +#define +DAQmx_Val_USBbulk 12590 // USB Bulk //*** Values for DAQmx_Exported_RdyForXferEvent_DeassertCond *** //*** Value set DeassertCondition *** -#define DAQmx_Val_OnbrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full -#define DAQmx_Val_OnbrdMemFull 10236 // Onboard Memory Full -#define DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold +#define +DAQmx_Val_OnbrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full +#define +DAQmx_Val_OnbrdMemFull 10236 // Onboard Memory Full +#define +DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold //*** Values for DAQmx_DO_OutputDriveType *** //*** Value set DigitalDriveType *** -#define DAQmx_Val_ActiveDrive 12573 // Active Drive -#define DAQmx_Val_OpenCollector 12574 // Open Collector +#define +DAQmx_Val_ActiveDrive 12573 // Active Drive +#define +DAQmx_Val_OpenCollector 12574 // Open Collector //*** Values for DAQmx_DO_LineStates_StartState *** //*** Values for DAQmx_DO_LineStates_PausedState *** //*** Values for DAQmx_DO_LineStates_DoneState *** //*** Values for DAQmx_Watchdog_DO_ExpirState *** //*** Value set DigitalLineState *** -#define DAQmx_Val_High 10192 // High -#define DAQmx_Val_Low 10214 // Low -#define DAQmx_Val_Tristate 10310 // Tristate -#define DAQmx_Val_NoChange 10160 // No Change +#define +DAQmx_Val_High 10192 // High +#define +DAQmx_Val_Low 10214 // Low +#define +DAQmx_Val_Tristate 10310 // Tristate +#define +DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_DigPattern_StartTrig_When *** //*** Values for DAQmx_DigPattern_RefTrig_When *** //*** Values for DAQmx_DigPattern_PauseTrig_When *** //*** Value set DigitalPatternCondition1 *** -#define DAQmx_Val_PatternMatches 10254 // Pattern Matches -#define DAQmx_Val_PatternDoesNotMatch 10253 // Pattern Does Not Match +#define +DAQmx_Val_PatternMatches 10254 // Pattern Matches +#define +DAQmx_Val_PatternDoesNotMatch 10253 // Pattern Does Not Match //*** Values for DAQmx_StartTrig_DelayUnits *** //*** Value set DigitalWidthUnits1 *** -#define DAQmx_Val_SampClkPeriods 10286 // Sample Clock Periods -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_SampClkPeriods 10286 // Sample Clock Periods +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Ticks 10304 // Ticks //*** Values for DAQmx_DelayFromSampClk_DelayUnits *** //*** Value set DigitalWidthUnits2 *** -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Ticks 10304 // Ticks //*** Values for DAQmx_Exported_AdvTrig_Pulse_WidthUnits *** //*** Value set DigitalWidthUnits3 *** -#define DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Seconds 10364 // Seconds //*** Values for DAQmx_AI_FilterDelayUnits *** //*** Values for DAQmx_AO_FilterDelayUnits *** //*** Value set DigitalWidthUnits4 *** -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_SampleClkPeriods 10286 // Sample Clock Periods +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_SampleClkPeriods 10286 // Sample Clock Periods //*** Values for DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits *** //*** Value set EddyCurrentProxProbeSensitivityUnits *** -#define DAQmx_Val_mVoltsPerMil 14836 // mVolts/mil -#define DAQmx_Val_VoltsPerMil 14837 // Volts/mil -#define DAQmx_Val_mVoltsPerMillimeter 14838 // mVolts/mMeter -#define DAQmx_Val_VoltsPerMillimeter 14839 // Volts/mMeter -#define DAQmx_Val_mVoltsPerMicron 14840 // mVolts/micron +#define +DAQmx_Val_mVoltsPerMil 14836 // mVolts/mil +#define +DAQmx_Val_VoltsPerMil 14837 // Volts/mil +#define +DAQmx_Val_mVoltsPerMillimeter 14838 // mVolts/mMeter +#define +DAQmx_Val_VoltsPerMillimeter 14839 // Volts/mMeter +#define +DAQmx_Val_mVoltsPerMicron 14840 // mVolts/micron //*** Values for DAQmx_CI_Freq_StartingEdge *** //*** Values for DAQmx_CI_Period_StartingEdge *** @@ -1853,141 +3268,205 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_DigEdge_ArmStartTrig_Edge *** //*** Values for DAQmx_DigEdge_WatchdogExpirTrig_Edge *** //*** Value set Edge1 *** -#define DAQmx_Val_Rising 10280 // Rising -#define DAQmx_Val_Falling 10171 // Falling +#define +DAQmx_Val_Rising 10280 // Rising +#define +DAQmx_Val_Falling 10171 // Falling //*** Values for DAQmx_CI_Encoder_DecodingType *** //*** Values for DAQmx_CI_Velocity_Encoder_DecodingType *** //*** Value set EncoderType2 *** -#define DAQmx_Val_X1 10090 // X1 -#define DAQmx_Val_X2 10091 // X2 -#define DAQmx_Val_X4 10092 // X4 -#define DAQmx_Val_TwoPulseCounting 10313 // Two Pulse Counting +#define +DAQmx_Val_X1 10090 // X1 +#define +DAQmx_Val_X2 10091 // X2 +#define +DAQmx_Val_X4 10092 // X4 +#define +DAQmx_Val_TwoPulseCounting 10313 // Two Pulse Counting //*** Values for DAQmx_CI_Encoder_ZIndexPhase *** //*** Value set EncoderZIndexPhase1 *** -#define DAQmx_Val_AHighBHigh 10040 // A High B High -#define DAQmx_Val_AHighBLow 10041 // A High B Low -#define DAQmx_Val_ALowBHigh 10042 // A Low B High -#define DAQmx_Val_ALowBLow 10043 // A Low B Low +#define +DAQmx_Val_AHighBHigh 10040 // A High B High +#define +DAQmx_Val_AHighBLow 10041 // A High B Low +#define +DAQmx_Val_ALowBHigh 10042 // A Low B High +#define +DAQmx_Val_ALowBLow 10043 // A Low B Low //*** Values for DAQmx_AI_Excit_DCorAC *** //*** Value set ExcitationDCorAC *** #define DAQmx_Val_DC 10050 // DC -#define DAQmx_Val_AC 10045 // AC +#define +DAQmx_Val_AC 10045 // AC //*** Values for DAQmx_AI_Excit_Src *** //*** Value set ExcitationSource *** -#define DAQmx_Val_Internal 10200 // Internal -#define DAQmx_Val_External 10167 // External -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_Internal 10200 // Internal +#define +DAQmx_Val_External 10167 // External +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Excit_VoltageOrCurrent *** //*** Value set ExcitationVoltageOrCurrent *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_Current 10134 // Current +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Current 10134 // Current //*** Values for DAQmx_Exported_CtrOutEvent_OutputBehavior *** //*** Value set ExportActions2 *** -#define DAQmx_Val_Pulse 10265 // Pulse -#define DAQmx_Val_Toggle 10307 // Toggle +#define +DAQmx_Val_Pulse 10265 // Pulse +#define +DAQmx_Val_Toggle 10307 // Toggle //*** Values for DAQmx_Exported_SampClk_OutputBehavior *** //*** Value set ExportActions3 *** -#define DAQmx_Val_Pulse 10265 // Pulse -#define DAQmx_Val_Lvl 10210 // Level +#define +DAQmx_Val_Pulse 10265 // Pulse +#define +DAQmx_Val_Lvl 10210 // Level //*** Values for DAQmx_Exported_HshkEvent_OutputBehavior *** //*** Value set ExportActions5 *** -#define DAQmx_Val_Interlocked 12549 // Interlocked -#define DAQmx_Val_Pulse 10265 // Pulse +#define +DAQmx_Val_Interlocked 12549 // Interlocked +#define +DAQmx_Val_Pulse 10265 // Pulse //*** Values for DAQmx_AI_DigFltr_Type *** //*** Values for DAQmx_AI_DigFltr_Types *** //*** Value set FilterType2 *** -#define DAQmx_Val_Lowpass 16071 // Lowpass -#define DAQmx_Val_Highpass 16072 // Highpass -#define DAQmx_Val_Bandpass 16073 // Bandpass -#define DAQmx_Val_Notch 16074 // Notch -#define DAQmx_Val_Custom 10137 // Custom +#define +DAQmx_Val_Lowpass 16071 // Lowpass +#define +DAQmx_Val_Highpass 16072 // Highpass +#define +DAQmx_Val_Bandpass 16073 // Bandpass +#define +DAQmx_Val_Notch 16074 // Notch +#define +DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_DigFltr_Response *** //*** Value set FilterResponse *** -#define DAQmx_Val_ConstantGroupDelay 16075 // Constant Group Delay -#define DAQmx_Val_Butterworth 16076 // Butterworth -#define DAQmx_Val_Elliptical 16077 // Elliptical -#define DAQmx_Val_HardwareDefined 10191 // Hardware Defined +#define +DAQmx_Val_ConstantGroupDelay 16075 // Constant Group Delay +#define +DAQmx_Val_Butterworth 16076 // Butterworth +#define +DAQmx_Val_Elliptical 16077 // Elliptical +#define +DAQmx_Val_HardwareDefined 10191 // Hardware Defined //*** Values for DAQmx_AI_Filter_Response *** //*** Value set FilterResponse1 *** -#define DAQmx_Val_Comb 16152 // Comb -#define DAQmx_Val_Bessel 16153 // Bessel -#define DAQmx_Val_Brickwall 16155 // Brickwall -#define DAQmx_Val_Butterworth 16076 // Butterworth +#define +DAQmx_Val_Comb 16152 // Comb +#define +DAQmx_Val_Bessel 16153 // Bessel +#define +DAQmx_Val_Brickwall 16155 // Brickwall +#define +DAQmx_Val_Butterworth 16076 // Butterworth //*** Values for DAQmx_AI_Force_IEPESensor_SensitivityUnits *** //*** Value set ForceIEPESensorSensitivityUnits *** -#define DAQmx_Val_mVoltsPerNewton 15891 // mVolts/N -#define DAQmx_Val_mVoltsPerPound 15892 // mVolts/lb +#define +DAQmx_Val_mVoltsPerNewton 15891 // mVolts/N +#define +DAQmx_Val_mVoltsPerPound 15892 // mVolts/lb //*** Values for DAQmx_AI_Force_Units *** //*** Value set ForceUnits *** -#define DAQmx_Val_Newtons 15875 // Newtons -#define DAQmx_Val_Pounds 15876 // Pounds -#define DAQmx_Val_KilogramForce 15877 // kgf -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Newtons 15875 // Newtons +#define +DAQmx_Val_Pounds 15876 // Pounds +#define +DAQmx_Val_KilogramForce 15877 // kgf +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Freq_Units *** //*** Value set FrequencyUnits *** -#define DAQmx_Val_Hz 10373 // Hz -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Hz 10373 // Hz +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Pulse_Freq_Units *** //*** Values for DAQmx_CO_Pulse_Freq_Units *** //*** Value set FrequencyUnits2 *** -#define DAQmx_Val_Hz 10373 // Hz +#define +DAQmx_Val_Hz 10373 // Hz //*** Values for DAQmx_CI_Freq_Units *** //*** Value set FrequencyUnits3 *** -#define DAQmx_Val_Hz 10373 // Hz -#define DAQmx_Val_Ticks 10304 // Ticks -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Hz 10373 // Hz +#define +DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AO_FuncGen_Type *** //*** Value set FuncGenType *** -#define DAQmx_Val_Sine 14751 // Sine -#define DAQmx_Val_Triangle 14752 // Triangle -#define DAQmx_Val_Square 14753 // Square -#define DAQmx_Val_Sawtooth 14754 // Sawtooth +#define +DAQmx_Val_Sine 14751 // Sine +#define +DAQmx_Val_Triangle 14752 // Triangle +#define +DAQmx_Val_Square 14753 // Square +#define +DAQmx_Val_Sawtooth 14754 // Sawtooth //*** Values for DAQmx_CI_GPS_SyncMethod *** //*** Value set GpsSignalType1 *** -#define DAQmx_Val_IRIGB 10070 // IRIG-B -#define DAQmx_Val_PPS 10080 // PPS -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_IRIGB 10070 // IRIG-B +#define +DAQmx_Val_PPS 10080 // PPS +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_Hshk_StartCond *** //*** Value set HandshakeStartCondition *** -#define DAQmx_Val_Immediate 10198 // Immediate -#define DAQmx_Val_WaitForHandshakeTriggerAssert 12550 // Wait For Handshake Trigger Assert -#define DAQmx_Val_WaitForHandshakeTriggerDeassert 12551 // Wait For Handshake Trigger Deassert +#define +DAQmx_Val_Immediate 10198 // Immediate +#define +DAQmx_Val_WaitForHandshakeTriggerAssert 12550 // Wait For Handshake Trigger Assert +#define +DAQmx_Val_WaitForHandshakeTriggerDeassert 12551 // Wait For Handshake Trigger Deassert //*** Values for DAQmx_AI_DataXferReqCond *** //*** Values for DAQmx_DI_DataXferReqCond *** //*** Values for DAQmx_CI_DataXferReqCond *** //*** Value set InputDataTransferCondition *** -#define DAQmx_Val_OnBrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full -#define DAQmx_Val_OnBrdMemNotEmpty 10241 // Onboard Memory Not Empty +#define +DAQmx_Val_OnBrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full +#define +DAQmx_Val_OnBrdMemNotEmpty 10241 // Onboard Memory Not Empty #define DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold -#define DAQmx_Val_WhenAcqComplete 12546 // When Acquisition Complete +#define +DAQmx_Val_WhenAcqComplete 12546 // When Acquisition Complete //*** Values for DAQmx_AI_TermCfg *** //*** Value set InputTermCfg *** -#define DAQmx_Val_RSE 10083 // RSE -#define DAQmx_Val_NRSE 10078 // NRSE -#define DAQmx_Val_Diff 10106 // Differential -#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define +DAQmx_Val_RSE 10083 // RSE +#define +DAQmx_Val_NRSE 10078 // NRSE +#define +DAQmx_Val_Diff 10106 // Differential +#define +DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Values for DAQmx_CI_Freq_TermCfg *** //*** Values for DAQmx_CI_Period_TermCfg *** @@ -2009,27 +3488,38 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_CI_Pulse_Time_TermCfg *** //*** Values for DAQmx_CI_Pulse_Ticks_TermCfg *** //*** Value set InputTermCfg2 *** -#define DAQmx_Val_Diff 10106 // Differential -#define DAQmx_Val_RSE 10083 // RSE +#define +DAQmx_Val_Diff 10106 // Differential +#define +DAQmx_Val_RSE 10083 // RSE //*** Values for DAQmx_AI_LVDT_SensitivityUnits *** //*** Value set LVDTSensitivityUnits1 *** -#define DAQmx_Val_mVoltsPerVoltPerMillimeter 12506 // mVolts/Volt/mMeter -#define DAQmx_Val_mVoltsPerVoltPerMilliInch 12505 // mVolts/Volt/0.001 Inch +#define +DAQmx_Val_mVoltsPerVoltPerMillimeter 12506 // mVolts/Volt/mMeter +#define +DAQmx_Val_mVoltsPerVoltPerMilliInch 12505 // mVolts/Volt/0.001 Inch //*** Values for DAQmx_AI_LVDT_Units *** //*** Values for DAQmx_AI_EddyCurrentProxProbe_Units *** //*** Value set LengthUnits2 *** -#define DAQmx_Val_Meters 10219 // Meters -#define DAQmx_Val_Inches 10379 // Inches -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Meters 10219 // Meters +#define +DAQmx_Val_Inches 10379 // Inches +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_LinEncoder_Units *** //*** Value set LengthUnits3 *** -#define DAQmx_Val_Meters 10219 // Meters -#define DAQmx_Val_Inches 10379 // Inches -#define DAQmx_Val_Ticks 10304 // Ticks -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Meters 10219 // Meters +#define +DAQmx_Val_Inches 10379 // Inches +#define +DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_CountEdges_GateWhen *** //*** Values for DAQmx_CI_OutputState *** @@ -2040,67 +3530,98 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_Interlocked_HshkTrig_AssertedLvl *** //*** Values for DAQmx_DigLvl_PauseTrig_When *** //*** Value set Level1 *** -#define DAQmx_Val_High 10192 // High -#define DAQmx_Val_Low 10214 // Low +#define +DAQmx_Val_High 10192 // High +#define +DAQmx_Val_Low 10214 // Low //*** Values for DAQmx_Logging_Mode *** //*** Value set LoggingMode *** -#define DAQmx_Val_Off 10231 // Off -#define DAQmx_Val_Log 15844 // Log -#define DAQmx_Val_LogAndRead 15842 // Log and Read +#define +DAQmx_Val_Off 10231 // Off +#define +DAQmx_Val_Log 15844 // Log +#define +DAQmx_Val_LogAndRead 15842 // Log and Read //*** Values for DAQmx_Logging_TDMS_Operation *** //*** Value set LoggingOperation *** -#define DAQmx_Val_Open 10437 // Open -#define DAQmx_Val_OpenOrCreate 15846 // Open or Create -#define DAQmx_Val_CreateOrReplace 15847 // Create or Replace -#define DAQmx_Val_Create 15848 // Create +#define +DAQmx_Val_Open 10437 // Open +#define +DAQmx_Val_OpenOrCreate 15846 // Open or Create +#define +DAQmx_Val_CreateOrReplace 15847 // Create or Replace +#define +DAQmx_Val_Create 15848 // Create //*** Values for DAQmx_DI_LogicFamily *** //*** Values for DAQmx_DO_LogicFamily *** //*** Value set LogicFamily *** -#define DAQmx_Val_2point5V 14620 // 2.5 V -#define DAQmx_Val_3point3V 14621 // 3.3 V -#define DAQmx_Val_5V 14619 // 5.0 V +#define +DAQmx_Val_2point5V 14620 // 2.5 V +#define +DAQmx_Val_3point3V 14621 // 3.3 V +#define +DAQmx_Val_5V 14619 // 5.0 V //*** Values for DAQmx_AIConv_Timebase_Src *** //*** Value set MIOAIConvertTbSrc *** -#define DAQmx_Val_SameAsSampTimebase 10284 // Same as Sample Timebase -#define DAQmx_Val_SameAsMasterTimebase 10282 // Same as Master Timebase -#define DAQmx_Val_100MHzTimebase 15857 // 100 MHz Timebase -#define DAQmx_Val_80MHzTimebase 14636 // 80 MHz Timebase -#define DAQmx_Val_20MHzTimebase 12537 // 20 MHz Timebase -#define DAQmx_Val_8MHzTimebase 16023 // 8 MHz Timebase +#define +DAQmx_Val_SameAsSampTimebase 10284 // Same as Sample Timebase +#define +DAQmx_Val_SameAsMasterTimebase 10282 // Same as Master Timebase +#define +DAQmx_Val_100MHzTimebase 15857 // 100 MHz Timebase +#define +DAQmx_Val_80MHzTimebase 14636 // 80 MHz Timebase +#define +DAQmx_Val_20MHzTimebase 12537 // 20 MHz Timebase +#define +DAQmx_Val_8MHzTimebase 16023 // 8 MHz Timebase //*** Values for DAQmx_AO_FuncGen_ModulationType *** //*** Value set ModulationType *** -#define DAQmx_Val_AM 14756 // AM -#define DAQmx_Val_FM 14757 // FM -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_AM 14756 // AM +#define +DAQmx_Val_FM 14757 // FM +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_AO_DataXferReqCond *** //*** Values for DAQmx_DO_DataXferReqCond *** //*** Values for DAQmx_CO_DataXferReqCond *** //*** Value set OutputDataTransferCondition *** -#define DAQmx_Val_OnBrdMemEmpty 10235 // Onboard Memory Empty -#define DAQmx_Val_OnBrdMemHalfFullOrLess 10239 // Onboard Memory Half Full or Less -#define DAQmx_Val_OnBrdMemNotFull 10242 // Onboard Memory Less than Full +#define +DAQmx_Val_OnBrdMemEmpty 10235 // Onboard Memory Empty +#define +DAQmx_Val_OnBrdMemHalfFullOrLess 10239 // Onboard Memory Half Full or Less +#define +DAQmx_Val_OnBrdMemNotFull 10242 // Onboard Memory Less than Full //*** Values for DAQmx_AO_TermCfg *** //*** Value set OutputTermCfg *** -#define DAQmx_Val_RSE 10083 // RSE -#define DAQmx_Val_Diff 10106 // Differential -#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define +DAQmx_Val_RSE 10083 // RSE +#define +DAQmx_Val_Diff 10106 // Differential +#define +DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Values for DAQmx_SampClk_OverrunBehavior *** //*** Value set OverflowBehavior *** -#define DAQmx_Val_StopTaskAndError 15862 // Stop Task And Error -#define DAQmx_Val_IgnoreOverruns 15863 // Ignore Overruns +#define +DAQmx_Val_StopTaskAndError 15862 // Stop Task And Error +#define +DAQmx_Val_IgnoreOverruns 15863 // Ignore Overruns //*** Values for DAQmx_Read_OverWrite *** //*** Value set OverwriteMode1 *** -#define DAQmx_Val_OverwriteUnreadSamps 10252 // Overwrite Unread Samples -#define DAQmx_Val_DoNotOverwriteUnreadSamps 10159 // Do Not Overwrite Unread Samples +#define +DAQmx_Val_OverwriteUnreadSamps 10252 // Overwrite Unread Samples +#define +DAQmx_Val_DoNotOverwriteUnreadSamps 10159 // Do Not Overwrite Unread Samples //*** Values for DAQmx_Exported_AIConvClk_Pulse_Polarity *** //*** Values for DAQmx_Exported_SampClk_Pulse_Polarity *** @@ -2117,301 +3638,469 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl *** //*** Values for DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl *** //*** Value set Polarity2 *** -#define DAQmx_Val_ActiveHigh 10095 // Active High -#define DAQmx_Val_ActiveLow 10096 // Active Low +#define +DAQmx_Val_ActiveHigh 10095 // Active High +#define +DAQmx_Val_ActiveLow 10096 // Active Low //*** Values for DAQmx_AI_Pressure_Units *** //*** Value set PressureUnits *** #define DAQmx_Val_Pascals 10081 // Pascals -#define DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define DAQmx_Val_Bar 15880 // bar -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define +DAQmx_Val_Bar 15880 // bar +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Dev_ProductCategory *** //*** Value set ProductCategory *** -#define DAQmx_Val_MSeriesDAQ 14643 // M Series DAQ -#define DAQmx_Val_XSeriesDAQ 15858 // X Series DAQ -#define DAQmx_Val_ESeriesDAQ 14642 // E Series DAQ -#define DAQmx_Val_SSeriesDAQ 14644 // S Series DAQ -#define DAQmx_Val_BSeriesDAQ 14662 // B Series DAQ -#define DAQmx_Val_SCSeriesDAQ 14645 // SC Series DAQ -#define DAQmx_Val_USBDAQ 14646 // USB DAQ -#define DAQmx_Val_AOSeries 14647 // AO Series -#define DAQmx_Val_DigitalIO 14648 // Digital I/O -#define DAQmx_Val_TIOSeries 14661 // TIO Series -#define DAQmx_Val_DynamicSignalAcquisition 14649 // Dynamic Signal Acquisition -#define DAQmx_Val_Switches 14650 // Switches -#define DAQmx_Val_CompactDAQChassis 14658 // CompactDAQ Chassis -#define DAQmx_Val_CompactRIOChassis 16144 // CompactRIO Chassis -#define DAQmx_Val_CSeriesModule 14659 // C Series Module -#define DAQmx_Val_SCXIModule 14660 // SCXI Module -#define DAQmx_Val_SCCConnectorBlock 14704 // SCC Connector Block -#define DAQmx_Val_SCCModule 14705 // SCC Module -#define DAQmx_Val_NIELVIS 14755 // NI ELVIS -#define DAQmx_Val_NetworkDAQ 14829 // Network DAQ -#define DAQmx_Val_SCExpress 15886 // SC Express -#define DAQmx_Val_FieldDAQ 16151 // FieldDAQ -#define DAQmx_Val_Unknown 12588 // Unknown +#define +DAQmx_Val_MSeriesDAQ 14643 // M Series DAQ +#define +DAQmx_Val_XSeriesDAQ 15858 // X Series DAQ +#define +DAQmx_Val_ESeriesDAQ 14642 // E Series DAQ +#define +DAQmx_Val_SSeriesDAQ 14644 // S Series DAQ +#define +DAQmx_Val_BSeriesDAQ 14662 // B Series DAQ +#define +DAQmx_Val_SCSeriesDAQ 14645 // SC Series DAQ +#define +DAQmx_Val_USBDAQ 14646 // USB DAQ +#define +DAQmx_Val_AOSeries 14647 // AO Series +#define +DAQmx_Val_DigitalIO 14648 // Digital I/O +#define +DAQmx_Val_TIOSeries 14661 // TIO Series +#define +DAQmx_Val_DynamicSignalAcquisition 14649 // Dynamic Signal Acquisition +#define +DAQmx_Val_Switches 14650 // Switches +#define +DAQmx_Val_CompactDAQChassis 14658 // CompactDAQ Chassis +#define +DAQmx_Val_CompactRIOChassis 16144 // CompactRIO Chassis +#define +DAQmx_Val_CSeriesModule 14659 // C Series Module +#define +DAQmx_Val_SCXIModule 14660 // SCXI Module +#define +DAQmx_Val_SCCConnectorBlock 14704 // SCC Connector Block +#define +DAQmx_Val_SCCModule 14705 // SCC Module +#define +DAQmx_Val_NIELVIS 14755 // NI ELVIS +#define +DAQmx_Val_NetworkDAQ 14829 // Network DAQ +#define +DAQmx_Val_SCExpress 15886 // SC Express +#define +DAQmx_Val_FieldDAQ 16151 // FieldDAQ +#define +DAQmx_Val_Unknown 12588 // Unknown //*** Values for DAQmx_AI_RTD_Type *** //*** Value set RTDType1 *** -#define DAQmx_Val_Pt3750 12481 // Pt3750 -#define DAQmx_Val_Pt3851 10071 // Pt3851 -#define DAQmx_Val_Pt3911 12482 // Pt3911 -#define DAQmx_Val_Pt3916 10069 // Pt3916 -#define DAQmx_Val_Pt3920 10053 // Pt3920 -#define DAQmx_Val_Pt3928 12483 // Pt3928 -#define DAQmx_Val_Custom 10137 // Custom +#define +DAQmx_Val_Pt3750 12481 // Pt3750 +#define +DAQmx_Val_Pt3851 10071 // Pt3851 +#define +DAQmx_Val_Pt3911 12482 // Pt3911 +#define +DAQmx_Val_Pt3916 10069 // Pt3916 +#define +DAQmx_Val_Pt3920 10053 // Pt3920 +#define +DAQmx_Val_Pt3928 12483 // Pt3928 +#define +DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_RVDT_SensitivityUnits *** //*** Value set RVDTSensitivityUnits1 *** -#define DAQmx_Val_mVoltsPerVoltPerDegree 12507 // mVolts/Volt/Degree -#define DAQmx_Val_mVoltsPerVoltPerRadian 12508 // mVolts/Volt/Radian +#define +DAQmx_Val_mVoltsPerVoltPerDegree 12507 // mVolts/Volt/Degree +#define +DAQmx_Val_mVoltsPerVoltPerRadian 12508 // mVolts/Volt/Radian //*** Values for DAQmx_AI_RawDataCompressionType *** //*** Value set RawDataCompressionType *** -#define DAQmx_Val_None 10230 // None -#define DAQmx_Val_LosslessPacking 12555 // Lossless Packing -#define DAQmx_Val_LossyLSBRemoval 12556 // Lossy LSB Removal +#define +DAQmx_Val_None 10230 // None +#define +DAQmx_Val_LosslessPacking 12555 // Lossless Packing +#define +DAQmx_Val_LossyLSBRemoval 12556 // Lossy LSB Removal //*** Values for DAQmx_Read_RelativeTo *** //*** Value set ReadRelativeTo *** -#define DAQmx_Val_FirstSample 10424 // First Sample -#define DAQmx_Val_CurrReadPos 10425 // Current Read Position -#define DAQmx_Val_RefTrig 10426 // Reference Trigger -#define DAQmx_Val_FirstPretrigSamp 10427 // First Pretrigger Sample -#define DAQmx_Val_MostRecentSamp 10428 // Most Recent Sample +#define +DAQmx_Val_FirstSample 10424 // First Sample +#define +DAQmx_Val_CurrReadPos 10425 // Current Read Position +#define +DAQmx_Val_RefTrig 10426 // Reference Trigger +#define +DAQmx_Val_FirstPretrigSamp 10427 // First Pretrigger Sample +#define +DAQmx_Val_MostRecentSamp 10428 // Most Recent Sample //*** Values for DAQmx_Write_RegenMode *** //*** Value set RegenerationMode1 *** -#define DAQmx_Val_AllowRegen 10097 // Allow Regeneration -#define DAQmx_Val_DoNotAllowRegen 10158 // Do Not Allow Regeneration +#define +DAQmx_Val_AllowRegen 10097 // Allow Regeneration +#define +DAQmx_Val_DoNotAllowRegen 10158 // Do Not Allow Regeneration //*** Values for DAQmx_AI_ResistanceCfg *** //*** Value set ResistanceConfiguration *** -#define DAQmx_Val_2Wire 2 // 2-Wire -#define DAQmx_Val_3Wire 3 // 3-Wire -#define DAQmx_Val_4Wire 4 // 4-Wire +#define +DAQmx_Val_2Wire 2 // 2-Wire +#define +DAQmx_Val_3Wire 3 // 3-Wire +#define +DAQmx_Val_4Wire 4 // 4-Wire //*** Values for DAQmx_AI_Resistance_Units *** //*** Value set ResistanceUnits1 *** -#define DAQmx_Val_Ohms 10384 // Ohms +#define +DAQmx_Val_Ohms 10384 // Ohms #define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Value set ResistanceUnits2 *** -#define DAQmx_Val_Ohms 10384 // Ohms -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Ohms 10384 // Ohms +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_ResolutionUnits *** //*** Values for DAQmx_AO_ResolutionUnits *** //*** Value set ResolutionType1 *** -#define DAQmx_Val_Bits 10109 // Bits +#define +DAQmx_Val_Bits 10109 // Bits //*** Value set SCXI1124Range *** -#define DAQmx_Val_SCXI1124Range0to1V 14629 // 0V to 1V -#define DAQmx_Val_SCXI1124Range0to5V 14630 // 0V to 5V -#define DAQmx_Val_SCXI1124Range0to10V 14631 // 0V to 10V -#define DAQmx_Val_SCXI1124RangeNeg1to1V 14632 // -1V to 1V -#define DAQmx_Val_SCXI1124RangeNeg5to5V 14633 // -5V to 5V -#define DAQmx_Val_SCXI1124RangeNeg10to10V 14634 // -10V to 10V -#define DAQmx_Val_SCXI1124Range0to20mA 14635 // 0mA to 20mA +#define +DAQmx_Val_SCXI1124Range0to1V 14629 // 0V to 1V +#define +DAQmx_Val_SCXI1124Range0to5V 14630 // 0V to 5V +#define +DAQmx_Val_SCXI1124Range0to10V 14631 // 0V to 10V +#define +DAQmx_Val_SCXI1124RangeNeg1to1V 14632 // -1V to 1V +#define +DAQmx_Val_SCXI1124RangeNeg5to5V 14633 // -5V to 5V +#define +DAQmx_Val_SCXI1124RangeNeg10to10V 14634 // -10V to 10V +#define +DAQmx_Val_SCXI1124Range0to20mA 14635 // 0mA to 20mA //*** Values for DAQmx_DI_AcquireOn *** //*** Values for DAQmx_DO_GenerateOn *** //*** Value set SampleClockActiveOrInactiveEdgeSelection *** -#define DAQmx_Val_SampClkActiveEdge 14617 // Sample Clock Active Edge -#define DAQmx_Val_SampClkInactiveEdge 14618 // Sample Clock Inactive Edge +#define +DAQmx_Val_SampClkActiveEdge 14617 // Sample Clock Active Edge +#define +DAQmx_Val_SampClkInactiveEdge 14618 // Sample Clock Inactive Edge //*** Values for DAQmx_Hshk_SampleInputDataWhen *** //*** Value set SampleInputDataWhen *** -#define DAQmx_Val_HandshakeTriggerAsserts 12552 // Handshake Trigger Asserts -#define DAQmx_Val_HandshakeTriggerDeasserts 12553 // Handshake Trigger Deasserts +#define +DAQmx_Val_HandshakeTriggerAsserts 12552 // Handshake Trigger Asserts +#define +DAQmx_Val_HandshakeTriggerDeasserts 12553 // Handshake Trigger Deasserts //*** Values for DAQmx_SampTimingType *** //*** Value set SampleTimingType *** -#define DAQmx_Val_SampClk 10388 // Sample Clock -#define DAQmx_Val_BurstHandshake 12548 // Burst Handshake -#define DAQmx_Val_Handshake 10389 // Handshake -#define DAQmx_Val_Implicit 10451 // Implicit -#define DAQmx_Val_OnDemand 10390 // On Demand -#define DAQmx_Val_ChangeDetection 12504 // Change Detection -#define DAQmx_Val_PipelinedSampClk 14668 // Pipelined Sample Clock +#define +DAQmx_Val_SampClk 10388 // Sample Clock +#define +DAQmx_Val_BurstHandshake 12548 // Burst Handshake +#define +DAQmx_Val_Handshake 10389 // Handshake +#define +DAQmx_Val_Implicit 10451 // Implicit +#define +DAQmx_Val_OnDemand 10390 // On Demand +#define +DAQmx_Val_ChangeDetection 12504 // Change Detection +#define +DAQmx_Val_PipelinedSampClk 14668 // Pipelined Sample Clock //*** Values for DAQmx_Scale_Type *** //*** Value set ScaleType *** -#define DAQmx_Val_Linear 10447 // Linear -#define DAQmx_Val_MapRanges 10448 // Map Ranges -#define DAQmx_Val_Polynomial 10449 // Polynomial -#define DAQmx_Val_Table 10450 // Table +#define +DAQmx_Val_Linear 10447 // Linear +#define +DAQmx_Val_MapRanges 10448 // Map Ranges +#define +DAQmx_Val_Polynomial 10449 // Polynomial +#define +DAQmx_Val_Table 10450 // Table //*** Values for DAQmx_AI_Thrmcpl_ScaleType *** //*** Value set ScaleType2 *** -#define DAQmx_Val_Polynomial 10449 // Polynomial -#define DAQmx_Val_Table 10450 // Table +#define +DAQmx_Val_Polynomial 10449 // Polynomial +#define +DAQmx_Val_Table 10450 // Table //*** Values for DAQmx_AI_ChanCal_ScaleType *** //*** Value set ScaleType3 *** -#define DAQmx_Val_Polynomial 10449 // Polynomial -#define DAQmx_Val_Table 10450 // Table -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_Polynomial 10449 // Polynomial +#define +DAQmx_Val_Table 10450 // Table +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Bridge_ScaleType *** //*** Value set ScaleType4 *** -#define DAQmx_Val_None 10230 // None -#define DAQmx_Val_TwoPointLinear 15898 // Two-Point Linear -#define DAQmx_Val_Table 10450 // Table -#define DAQmx_Val_Polynomial 10449 // Polynomial +#define +DAQmx_Val_None 10230 // None +#define +DAQmx_Val_TwoPointLinear 15898 // Two-Point Linear +#define +DAQmx_Val_Table 10450 // Table +#define +DAQmx_Val_Polynomial 10449 // Polynomial //*** Values for DAQmx_AI_SensorPower_Cfg *** //*** Value set SensorPowerCfg *** -#define DAQmx_Val_NoChange 10160 // No Change -#define DAQmx_Val_Enabled 16145 // Enabled -#define DAQmx_Val_Disabled 16146 // Disabled +#define +DAQmx_Val_NoChange 10160 // No Change +#define +DAQmx_Val_Enabled 16145 // Enabled +#define +DAQmx_Val_Disabled 16146 // Disabled //*** Values for DAQmx_AI_SensorPower_Type *** //*** Values for DAQmx_PhysicalChan_AI_SensorPower_Types *** //*** Values for DAQmx_PhysicalChan_AI_PowerControl_Type *** //*** Value set SensorPowerType *** -#define DAQmx_Val_DC 10050 // DC -#define DAQmx_Val_AC 10045 // AC -#define DAQmx_Val_BipolarDC 16147 // BipolarDC +#define +DAQmx_Val_DC 10050 // DC +#define +DAQmx_Val_AC 10045 // AC +#define +DAQmx_Val_BipolarDC 16147 // BipolarDC //*** Values for DAQmx_AI_Bridge_ShuntCal_Select *** //*** Value set ShuntCalSelect *** -#define DAQmx_Val_A 12513 // A -#define DAQmx_Val_B 12514 // B -#define DAQmx_Val_AandB 12515 // A and B +#define +DAQmx_Val_A 12513 // A +#define +DAQmx_Val_B 12514 // B +#define +DAQmx_Val_AandB 12515 // A and B //*** Value set ShuntElementLocation *** -#define DAQmx_Val_R1 12465 // R1 -#define DAQmx_Val_R2 12466 // R2 -#define DAQmx_Val_R3 12467 // R3 -#define DAQmx_Val_R4 14813 // R4 -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_R1 12465 // R1 +#define +DAQmx_Val_R2 12466 // R2 +#define +DAQmx_Val_R3 12467 // R3 +#define +DAQmx_Val_R4 14813 // R4 +#define +DAQmx_Val_None 10230 // None //*** Value set Signal *** #define DAQmx_Val_AIConvertClock 12484 // AI Convert Clock -#define DAQmx_Val_10MHzRefClock 12536 // 10MHz Reference Clock -#define DAQmx_Val_20MHzTimebaseClock 12486 // 20MHz Timebase Clock -#define DAQmx_Val_SampleClock 12487 // Sample Clock -#define DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger -#define DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger -#define DAQmx_Val_StartTrigger 12491 // Start Trigger -#define DAQmx_Val_AdvCmpltEvent 12492 // Advance Complete Event -#define DAQmx_Val_AIHoldCmpltEvent 12493 // AI Hold Complete Event -#define DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event -#define DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event -#define DAQmx_Val_WDTExpiredEvent 12512 // Watchdog Timer Expired Event +#define +DAQmx_Val_10MHzRefClock 12536 // 10MHz Reference Clock +#define +DAQmx_Val_20MHzTimebaseClock 12486 // 20MHz Timebase Clock +#define +DAQmx_Val_SampleClock 12487 // Sample Clock +#define +DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger +#define +DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger +#define +DAQmx_Val_StartTrigger 12491 // Start Trigger +#define +DAQmx_Val_AdvCmpltEvent 12492 // Advance Complete Event +#define +DAQmx_Val_AIHoldCmpltEvent 12493 // AI Hold Complete Event +#define +DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event +#define +DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event +#define +DAQmx_Val_WDTExpiredEvent 12512 // Watchdog Timer Expired Event //*** Value set Signal2 *** -#define DAQmx_Val_SampleCompleteEvent 12530 // Sample Complete Event -#define DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event -#define DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event -#define DAQmx_Val_SampleClock 12487 // Sample Clock +#define +DAQmx_Val_SampleCompleteEvent 12530 // Sample Complete Event +#define +DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event +#define +DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event +#define +DAQmx_Val_SampleClock 12487 // Sample Clock //*** Values for DAQmx_AnlgEdge_StartTrig_Slope *** //*** Values for DAQmx_AnlgMultiEdge_StartTrig_Slopes *** //*** Values for DAQmx_AnlgEdge_RefTrig_Slope *** //*** Values for DAQmx_AnlgMultiEdge_RefTrig_Slopes *** //*** Value set Slope1 *** -#define DAQmx_Val_RisingSlope 10280 // Rising -#define DAQmx_Val_FallingSlope 10171 // Falling +#define +DAQmx_Val_RisingSlope 10280 // Rising +#define +DAQmx_Val_FallingSlope 10171 // Falling //*** Values for DAQmx_AI_SoundPressure_Units *** //*** Value set SoundPressureUnits1 *** -#define DAQmx_Val_Pascals 10081 // Pascals -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Pascals 10081 // Pascals +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Lowpass_SwitchCap_ClkSrc *** //*** Values for DAQmx_AO_DAC_Ref_Src *** //*** Values for DAQmx_AO_DAC_Offset_Src *** //*** Value set SourceSelection *** -#define DAQmx_Val_Internal 10200 // Internal -#define DAQmx_Val_External 10167 // External +#define +DAQmx_Val_Internal 10200 // Internal +#define +DAQmx_Val_External 10167 // External //*** Values for DAQmx_AI_StrainGage_Cfg *** //*** Value set StrainGageBridgeType1 *** -#define DAQmx_Val_FullBridgeI 10183 // Full Bridge I -#define DAQmx_Val_FullBridgeII 10184 // Full Bridge II -#define DAQmx_Val_FullBridgeIII 10185 // Full Bridge III -#define DAQmx_Val_HalfBridgeI 10188 // Half Bridge I -#define DAQmx_Val_HalfBridgeII 10189 // Half Bridge II -#define DAQmx_Val_QuarterBridgeI 10271 // Quarter Bridge I -#define DAQmx_Val_QuarterBridgeII 10272 // Quarter Bridge II +#define +DAQmx_Val_FullBridgeI 10183 // Full Bridge I +#define +DAQmx_Val_FullBridgeII 10184 // Full Bridge II +#define +DAQmx_Val_FullBridgeIII 10185 // Full Bridge III +#define +DAQmx_Val_HalfBridgeI 10188 // Half Bridge I +#define +DAQmx_Val_HalfBridgeII 10189 // Half Bridge II +#define +DAQmx_Val_QuarterBridgeI 10271 // Quarter Bridge I +#define +DAQmx_Val_QuarterBridgeII 10272 // Quarter Bridge II //*** Values for DAQmx_AI_RosetteStrainGage_RosetteType *** //*** Value set StrainGageRosetteType *** -#define DAQmx_Val_RectangularRosette 15968 // Rectangular Rosette -#define DAQmx_Val_DeltaRosette 15969 // Delta Rosette -#define DAQmx_Val_TeeRosette 15970 // Tee Rosette +#define +DAQmx_Val_RectangularRosette 15968 // Rectangular Rosette +#define +DAQmx_Val_DeltaRosette 15969 // Delta Rosette +#define +DAQmx_Val_TeeRosette 15970 // Tee Rosette //*** Values for DAQmx_AI_RosetteStrainGage_RosetteMeasType *** //*** Value set StrainGageRosetteMeasurementType *** -#define DAQmx_Val_PrincipalStrain1 15971 // Principal Strain 1 -#define DAQmx_Val_PrincipalStrain2 15972 // Principal Strain 2 -#define DAQmx_Val_PrincipalStrainAngle 15973 // Principal Strain Angle -#define DAQmx_Val_CartesianStrainX 15974 // Cartesian Strain X -#define DAQmx_Val_CartesianStrainY 15975 // Cartesian Strain Y -#define DAQmx_Val_CartesianShearStrainXY 15976 // Cartesian Shear Strain XY -#define DAQmx_Val_MaxShearStrain 15977 // Maximum Shear Strain -#define DAQmx_Val_MaxShearStrainAngle 15978 // Maximum Shear Strain Angle +#define +DAQmx_Val_PrincipalStrain1 15971 // Principal Strain 1 +#define +DAQmx_Val_PrincipalStrain2 15972 // Principal Strain 2 +#define +DAQmx_Val_PrincipalStrainAngle 15973 // Principal Strain Angle +#define +DAQmx_Val_CartesianStrainX 15974 // Cartesian Strain X +#define +DAQmx_Val_CartesianStrainY 15975 // Cartesian Strain Y +#define +DAQmx_Val_CartesianShearStrainXY 15976 // Cartesian Shear Strain XY +#define +DAQmx_Val_MaxShearStrain 15977 // Maximum Shear Strain +#define +DAQmx_Val_MaxShearStrainAngle 15978 // Maximum Shear Strain Angle //*** Values for DAQmx_AI_Strain_Units *** //*** Value set StrainUnits1 *** -#define DAQmx_Val_Strain 10299 // Strain -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Strain 10299 // Strain +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_SwitchScan_RepeatMode *** //*** Value set SwitchScanRepeatMode *** -#define DAQmx_Val_Finite 10172 // Finite -#define DAQmx_Val_Cont 10117 // Continuous +#define +DAQmx_Val_Finite 10172 // Finite +#define +DAQmx_Val_Cont 10117 // Continuous //*** Values for DAQmx_SwitchChan_Usage *** //*** Value set SwitchUsageTypes *** -#define DAQmx_Val_Source 10439 // Source -#define DAQmx_Val_Load 10440 // Load -#define DAQmx_Val_ReservedForRouting 10441 // Reserved for Routing +#define +DAQmx_Val_Source 10439 // Source +#define +DAQmx_Val_Load 10440 // Load +#define +DAQmx_Val_ReservedForRouting 10441 // Reserved for Routing //*** Values for DAQmx_SyncPulse_Type *** //*** Value set SyncPulseType *** -#define DAQmx_Val_Onboard 16128 // Onboard -#define DAQmx_Val_DigEdge 10150 // Digital Edge -#define DAQmx_Val_Time 15996 // Time +#define +DAQmx_Val_Onboard 16128 // Onboard +#define +DAQmx_Val_DigEdge 10150 // Digital Edge +#define +DAQmx_Val_Time 15996 // Time //*** Values for DAQmx_Trigger_SyncType *** //*** Value set SyncType *** #define DAQmx_Val_None 10230 // None -#define DAQmx_Val_Master 15888 // Master -#define DAQmx_Val_Slave 15889 // Slave +#define +DAQmx_Val_Master 15888 // Master +#define +DAQmx_Val_Slave 15889 // Slave //*** Values for DAQmx_Chan_SyncUnlockBehavior *** //*** Value set SyncUnlockBehavior *** -#define DAQmx_Val_StopTaskAndError 15862 // Stop Task and Error -#define DAQmx_Val_IgnoreLostSyncLock 16129 // Ignore Lost Sync Lock +#define +DAQmx_Val_StopTaskAndError 15862 // Stop Task and Error +#define +DAQmx_Val_IgnoreLostSyncLock 16129 // Ignore Lost Sync Lock //*** Value set TEDSUnits *** -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AI_Temp_Units *** //*** Value set TemperatureUnits1 *** -#define DAQmx_Val_DegC 10143 // Deg C -#define DAQmx_Val_DegF 10144 // Deg F -#define DAQmx_Val_Kelvins 10325 // Kelvins -#define DAQmx_Val_DegR 10145 // Deg R -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_DegC 10143 // Deg C +#define +DAQmx_Val_DegF 10144 // Deg F +#define +DAQmx_Val_Kelvins 10325 // Kelvins +#define +DAQmx_Val_DegR 10145 // Deg R +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Thrmcpl_Type *** //*** Value set ThermocoupleType1 *** -#define DAQmx_Val_J_Type_TC 10072 // J -#define DAQmx_Val_K_Type_TC 10073 // K -#define DAQmx_Val_N_Type_TC 10077 // N -#define DAQmx_Val_R_Type_TC 10082 // R -#define DAQmx_Val_S_Type_TC 10085 // S -#define DAQmx_Val_T_Type_TC 10086 // T -#define DAQmx_Val_B_Type_TC 10047 // B -#define DAQmx_Val_E_Type_TC 10055 // E +#define +DAQmx_Val_J_Type_TC 10072 // J +#define +DAQmx_Val_K_Type_TC 10073 // K +#define +DAQmx_Val_N_Type_TC 10077 // N +#define +DAQmx_Val_R_Type_TC 10082 // R +#define +DAQmx_Val_S_Type_TC 10085 // S +#define +DAQmx_Val_T_Type_TC 10086 // T +#define +DAQmx_Val_B_Type_TC 10047 // B +#define +DAQmx_Val_E_Type_TC 10055 // E //*** Values for DAQmx_SyncPulse_Time_Timescale *** //*** Values for DAQmx_FirstSampTimestamp_Timescale *** @@ -2422,222 +4111,342 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_ArmStartTrig_Timescale *** //*** Values for DAQmx_ArmStartTrig_TimestampTimescale *** //*** Value set Timescale2 *** -#define DAQmx_Val_HostTime 16126 // Host Time -#define DAQmx_Val_IODeviceTime 16127 // I/O Device Time +#define +DAQmx_Val_HostTime 16126 // Host Time +#define +DAQmx_Val_IODeviceTime 16127 // I/O Device Time //*** Values for DAQmx_CI_Timestamp_Units *** //*** Value set TimeUnits *** -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Pulse_Time_Units *** //*** Values for DAQmx_CO_Pulse_Time_Units *** //*** Value set TimeUnits2 *** -#define DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Seconds 10364 // Seconds //*** Values for DAQmx_CI_Period_Units *** //*** Values for DAQmx_CI_PulseWidth_Units *** //*** Values for DAQmx_CI_TwoEdgeSep_Units *** //*** Values for DAQmx_CI_SemiPeriod_Units *** //*** Value set TimeUnits3 *** -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_Ticks 10304 // Ticks -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Value set TimingResponseMode *** -#define DAQmx_Val_SingleCycle 14613 // Single-cycle -#define DAQmx_Val_Multicycle 14614 // Multicycle +#define +DAQmx_Val_SingleCycle 14613 // Single-cycle +#define +DAQmx_Val_Multicycle 14614 // Multicycle //*** Values for DAQmx_AI_Torque_Units *** //*** Value set TorqueUnits *** -#define DAQmx_Val_NewtonMeters 15881 // Nm -#define DAQmx_Val_InchOunces 15882 // oz-in -#define DAQmx_Val_InchPounds 15883 // lb-in -#define DAQmx_Val_FootPounds 15884 // lb-ft -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_NewtonMeters 15881 // Nm +#define +DAQmx_Val_InchOunces 15882 // oz-in +#define +DAQmx_Val_InchPounds 15883 // lb-in +#define +DAQmx_Val_FootPounds 15884 // lb-ft +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_ArmStartTrig_Type *** //*** Values for DAQmx_WatchdogExpirTrig_Type *** //*** Value set TriggerType4 *** -#define DAQmx_Val_DigEdge 10150 // Digital Edge -#define DAQmx_Val_Time 15996 // Time -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_DigEdge 10150 // Digital Edge +#define +DAQmx_Val_Time 15996 // Time +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_AdvTrig_Type *** //*** Value set TriggerType5 *** -#define DAQmx_Val_DigEdge 10150 // Digital Edge -#define DAQmx_Val_Software 10292 // Software -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_DigEdge 10150 // Digital Edge +#define +DAQmx_Val_Software 10292 // Software +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_PauseTrig_Type *** //*** Value set TriggerType6 *** -#define DAQmx_Val_AnlgLvl 10101 // Analog Level -#define DAQmx_Val_AnlgWin 10103 // Analog Window -#define DAQmx_Val_DigLvl 10152 // Digital Level -#define DAQmx_Val_DigPattern 10398 // Digital Pattern -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_AnlgLvl 10101 // Analog Level +#define +DAQmx_Val_AnlgWin 10103 // Analog Window +#define +DAQmx_Val_DigLvl 10152 // Digital Level +#define +DAQmx_Val_DigPattern 10398 // Digital Pattern +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_RefTrig_Type *** //*** Value set TriggerType8 *** -#define DAQmx_Val_AnlgEdge 10099 // Analog Edge -#define DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge -#define DAQmx_Val_DigEdge 10150 // Digital Edge -#define DAQmx_Val_DigPattern 10398 // Digital Pattern +#define +DAQmx_Val_AnlgEdge 10099 // Analog Edge +#define +DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge +#define +DAQmx_Val_DigEdge 10150 // Digital Edge +#define +DAQmx_Val_DigPattern 10398 // Digital Pattern #define DAQmx_Val_AnlgWin 10103 // Analog Window -#define DAQmx_Val_Time 15996 // Time -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_Time 15996 // Time +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_HshkTrig_Type *** //*** Value set TriggerType9 *** -#define DAQmx_Val_Interlocked 12549 // Interlocked -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_Interlocked 12549 // Interlocked +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_StartTrig_Type *** //*** Value set TriggerType10 *** -#define DAQmx_Val_AnlgEdge 10099 // Analog Edge -#define DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge -#define DAQmx_Val_DigEdge 10150 // Digital Edge -#define DAQmx_Val_DigPattern 10398 // Digital Pattern -#define DAQmx_Val_AnlgWin 10103 // Analog Window -#define DAQmx_Val_Time 15996 // Time -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_AnlgEdge 10099 // Analog Edge +#define +DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge +#define +DAQmx_Val_DigEdge 10150 // Digital Edge +#define +DAQmx_Val_DigPattern 10398 // Digital Pattern +#define +DAQmx_Val_AnlgWin 10103 // Analog Window +#define +DAQmx_Val_Time 15996 // Time +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_SampClk_UnderflowBehavior *** //*** Values for DAQmx_Implicit_UnderflowBehavior *** //*** Value set UnderflowBehavior *** -#define DAQmx_Val_HaltOutputAndError 14615 // Halt Output and Error -#define DAQmx_Val_PauseUntilDataAvailable 14616 // Pause until Data Available +#define +DAQmx_Val_HaltOutputAndError 14615 // Halt Output and Error +#define +DAQmx_Val_PauseUntilDataAvailable 14616 // Pause until Data Available //*** Values for DAQmx_Scale_PreScaledUnits *** //*** Value set UnitsPreScaled *** -#define DAQmx_Val_Volts 10348 // Volts -#define DAQmx_Val_Amps 10342 // Amps -#define DAQmx_Val_DegF 10144 // Deg F -#define DAQmx_Val_DegC 10143 // Deg C -#define DAQmx_Val_DegR 10145 // Deg R -#define DAQmx_Val_Kelvins 10325 // Kelvins -#define DAQmx_Val_Strain 10299 // Strain -#define DAQmx_Val_Ohms 10384 // Ohms -#define DAQmx_Val_Hz 10373 // Hz -#define DAQmx_Val_Seconds 10364 // Seconds -#define DAQmx_Val_Meters 10219 // Meters -#define DAQmx_Val_Inches 10379 // Inches -#define DAQmx_Val_Degrees 10146 // Degrees -#define DAQmx_Val_Radians 10273 // Radians -#define DAQmx_Val_Ticks 10304 // Ticks -#define DAQmx_Val_RPM 16080 // RPM -#define DAQmx_Val_RadiansPerSecond 16081 // Radians/s -#define DAQmx_Val_DegreesPerSecond 16082 // Degrees/s -#define DAQmx_Val_g 10186 // g -#define DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 -#define DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 -#define DAQmx_Val_MetersPerSecond 15959 // m/s -#define DAQmx_Val_InchesPerSecond 15960 // in/s -#define DAQmx_Val_Pascals 10081 // Pascals -#define DAQmx_Val_Newtons 15875 // Newtons -#define DAQmx_Val_Pounds 15876 // Pounds -#define DAQmx_Val_KilogramForce 15877 // kgf -#define DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define DAQmx_Val_Bar 15880 // bar -#define DAQmx_Val_NewtonMeters 15881 // Nm -#define DAQmx_Val_InchOunces 15882 // oz-in -#define DAQmx_Val_InchPounds 15883 // lb-in -#define DAQmx_Val_FootPounds 15884 // lb-ft -#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt -#define DAQmx_Val_Coulombs 16102 // Coulombs +#define +DAQmx_Val_Volts 10348 // Volts +#define +DAQmx_Val_Amps 10342 // Amps +#define +DAQmx_Val_DegF 10144 // Deg F +#define +DAQmx_Val_DegC 10143 // Deg C +#define +DAQmx_Val_DegR 10145 // Deg R +#define +DAQmx_Val_Kelvins 10325 // Kelvins +#define +DAQmx_Val_Strain 10299 // Strain +#define +DAQmx_Val_Ohms 10384 // Ohms +#define +DAQmx_Val_Hz 10373 // Hz +#define +DAQmx_Val_Seconds 10364 // Seconds +#define +DAQmx_Val_Meters 10219 // Meters +#define +DAQmx_Val_Inches 10379 // Inches +#define +DAQmx_Val_Degrees 10146 // Degrees +#define +DAQmx_Val_Radians 10273 // Radians +#define +DAQmx_Val_Ticks 10304 // Ticks +#define +DAQmx_Val_RPM 16080 // RPM +#define +DAQmx_Val_RadiansPerSecond 16081 // Radians/s +#define +DAQmx_Val_DegreesPerSecond 16082 // Degrees/s +#define +DAQmx_Val_g 10186 // g +#define +DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 +#define +DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 +#define +DAQmx_Val_MetersPerSecond 15959 // m/s +#define +DAQmx_Val_InchesPerSecond 15960 // in/s +#define +DAQmx_Val_Pascals 10081 // Pascals +#define +DAQmx_Val_Newtons 15875 // Newtons +#define +DAQmx_Val_Pounds 15876 // Pounds +#define +DAQmx_Val_KilogramForce 15877 // kgf +#define +DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define +DAQmx_Val_Bar 15880 // bar +#define +DAQmx_Val_NewtonMeters 15881 // Nm +#define +DAQmx_Val_InchOunces 15882 // oz-in +#define +DAQmx_Val_InchPounds 15883 // lb-in +#define +DAQmx_Val_FootPounds 15884 // lb-ft +#define +DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define +DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define +DAQmx_Val_Coulombs 16102 // Coulombs #define DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AI_Velocity_IEPESensor_SensitivityUnits *** //*** Value set VelocityIEPESensorSensitivityUnits *** -#define DAQmx_Val_MillivoltsPerMillimeterPerSecond 15963 // mVolts/mm/s -#define DAQmx_Val_MilliVoltsPerInchPerSecond 15964 // mVolts/in/s +#define +DAQmx_Val_MillivoltsPerMillimeterPerSecond 15963 // mVolts/mm/s +#define +DAQmx_Val_MilliVoltsPerInchPerSecond 15964 // mVolts/in/s //*** Values for DAQmx_AI_Velocity_Units *** //*** Values for DAQmx_CI_Velocity_LinEncoder_Units *** //*** Value set VelocityUnits *** -#define DAQmx_Val_MetersPerSecond 15959 // m/s -#define DAQmx_Val_InchesPerSecond 15960 // in/s -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_MetersPerSecond 15959 // m/s +#define +DAQmx_Val_InchesPerSecond 15960 // in/s +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Voltage_Units *** //*** Values for DAQmx_AI_Voltage_ACRMS_Units *** //*** Value set VoltageUnits1 *** -#define DAQmx_Val_Volts 10348 // Volts -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define DAQmx_Val_FromTEDS 12516 // From TEDS +#define +DAQmx_Val_Volts 10348 // Volts +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AO_Voltage_Units *** //*** Value set VoltageUnits2 *** -#define DAQmx_Val_Volts 10348 // Volts -#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define +DAQmx_Val_Volts 10348 // Volts +#define +DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Read_WaitMode *** //*** Value set WaitMode *** -#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define DAQmx_Val_Poll 12524 // Poll -#define DAQmx_Val_Yield 12525 // Yield -#define DAQmx_Val_Sleep 12547 // Sleep +#define +DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define +DAQmx_Val_Poll 12524 // Poll +#define +DAQmx_Val_Yield 12525 // Yield +#define +DAQmx_Val_Sleep 12547 // Sleep //*** Values for DAQmx_Write_WaitMode *** //*** Value set WaitMode2 *** -#define DAQmx_Val_Poll 12524 // Poll -#define DAQmx_Val_Yield 12525 // Yield -#define DAQmx_Val_Sleep 12547 // Sleep +#define +DAQmx_Val_Poll 12524 // Poll +#define +DAQmx_Val_Yield 12525 // Yield +#define +DAQmx_Val_Sleep 12547 // Sleep //*** Values for DAQmx_RealTime_WaitForNextSampClkWaitMode *** //*** Value set WaitMode3 *** -#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define DAQmx_Val_Poll 12524 // Poll +#define +DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define +DAQmx_Val_Poll 12524 // Poll //*** Values for DAQmx_RealTime_WriteRecoveryMode *** //*** Value set WaitMode4 *** -#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define DAQmx_Val_Poll 12524 // Poll +#define +DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define +DAQmx_Val_Poll 12524 // Poll //*** Values for DAQmx_Watchdog_AO_OutputType *** //*** Value set WatchdogAOExpirState *** -#define DAQmx_Val_Voltage 10322 // Voltage -#define DAQmx_Val_Current 10134 // Current -#define DAQmx_Val_NoChange 10160 // No Change +#define +DAQmx_Val_Voltage 10322 // Voltage +#define +DAQmx_Val_Current 10134 // Current +#define +DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_Watchdog_CO_ExpirState *** //*** Value set WatchdogCOExpirState *** -#define DAQmx_Val_Low 10214 // Low -#define DAQmx_Val_High 10192 // High -#define DAQmx_Val_NoChange 10160 // No Change +#define +DAQmx_Val_Low 10214 // Low +#define +DAQmx_Val_High 10192 // High +#define +DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_AnlgWin_StartTrig_When *** //*** Values for DAQmx_AnlgWin_RefTrig_When *** //*** Value set WindowTriggerCondition1 *** -#define DAQmx_Val_EnteringWin 10163 // Entering Window -#define DAQmx_Val_LeavingWin 10208 // Leaving Window +#define +DAQmx_Val_EnteringWin 10163 // Entering Window +#define +DAQmx_Val_LeavingWin 10208 // Leaving Window //*** Values for DAQmx_AnlgWin_PauseTrig_When *** //*** Value set WindowTriggerCondition2 *** -#define DAQmx_Val_InsideWin 10199 // Inside Window -#define DAQmx_Val_OutsideWin 10251 // Outside Window +#define +DAQmx_Val_InsideWin 10199 // Inside Window +#define +DAQmx_Val_OutsideWin 10251 // Outside Window //*** Value set WriteBasicTEDSOptions *** -#define DAQmx_Val_WriteToEEPROM 12538 // Write To EEPROM -#define DAQmx_Val_WriteToPROM 12539 // Write To PROM Once -#define DAQmx_Val_DoNotWrite 12540 // Do Not Write +#define +DAQmx_Val_WriteToEEPROM 12538 // Write To EEPROM +#define +DAQmx_Val_WriteToPROM 12539 // Write To PROM Once +#define +DAQmx_Val_DoNotWrite 12540 // Do Not Write //*** Values for DAQmx_Write_RelativeTo *** //*** Value set WriteRelativeTo *** -#define DAQmx_Val_FirstSample 10424 // First Sample -#define DAQmx_Val_CurrWritePos 10430 // Current Write Position +#define +DAQmx_Val_FirstSample 10424 // First Sample +#define +DAQmx_Val_CurrWritePos 10430 // Current Write Position //*** Values for DAQmx_AI_Excit_IdleOutputBehavior *** //*** Value set ExcitationIdleOutputBehavior *** -#define DAQmx_Val_ZeroVoltsOrAmps 12526 // Zero Volts or Amps -#define DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value +#define +DAQmx_Val_ZeroVoltsOrAmps 12526 // Zero Volts or Amps +#define +DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value //*** Values for DAQmx_CI_SampClkOverrunBehavior *** //*** Value set SampClkOverrunBehavior *** -#define DAQmx_Val_RepeatedData 16062 // Repeated Data -#define DAQmx_Val_SentinelValue 16063 // Sentinel Value +#define +DAQmx_Val_RepeatedData 16062 // Repeated Data +#define +DAQmx_Val_SentinelValue 16063 // Sentinel Value //*** Values for DAQmx_CI_Freq_LogicLvlBehavior *** //*** Values for DAQmx_CI_Period_LogicLvlBehavior *** @@ -2659,13 +4468,17 @@ typedef uInt32 CalHandle; //*** Values for DAQmx_CI_Pulse_Time_LogicLvlBehavior *** //*** Values for DAQmx_CI_Pulse_Ticks_LogicLvlBehavior *** //*** Value set LogicLvlBehavior *** -#define DAQmx_Val_LogicLevelPullUp 16064 // Logic Level Pull-up -#define DAQmx_Val_None 10230 // None +#define +DAQmx_Val_LogicLevelPullUp 16064 // Logic Level Pull-up +#define +DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Excit_Sense *** //*** Value set Sense *** -#define DAQmx_Val_Local 16095 // Local -#define DAQmx_Val_Remote 16096 // Remote +#define +DAQmx_Val_Local 16095 // Local +#define +DAQmx_Val_Remote 16096 // Remote /****************************************************************************** @@ -2723,25 +4536,25 @@ int32 __CFUNC DAQmxCreateAIThrmstrChanVex (TaskHandle taskHandle, const c int32 __CFUNC DAQmxCreateAIFreqVoltageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 thresholdLevel, float64 hysteresis, const char customScaleName[]); int32 __CFUNC DAQmxCreateAIResistanceChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateAIStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 initialBridgeVoltage, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIRosetteStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal,float64 gageFactor, float64 nominalGageResistance,float64 poissonRatio,float64 leadWireResistance); -int32 __CFUNC DAQmxCreateAIForceBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIRosetteStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance); +int32 __CFUNC DAQmxCreateAIForceBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIForceBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIForceBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIForceBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIForceBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgeTwoPointLinChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgeTwoPointLinChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIBridgeChan (TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIBridgeChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const char customScaleName[]); int32 __CFUNC DAQmxCreateAIVoltageChanWithExcit(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]); int32 __CFUNC DAQmxCreateAITempBuiltInSensorChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 units); int32 __CFUNC DAQmxCreateAIAccelChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); @@ -2765,10 +4578,10 @@ int32 __CFUNC DAQmxCreateTEDSAIThrmstrChanIex(TaskHandle taskHandle, const c int32 __CFUNC DAQmxCreateTEDSAIThrmstrChanVex(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 r1); int32 __CFUNC DAQmxCreateTEDSAIResistanceChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIStrainGageChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 initialBridgeVoltage, float64 leadWireResistance, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIForceBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIPressureBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAITorqueBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIBridgeChan (TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIForceBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIPressureBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAITorqueBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIBridgeChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIVoltageChanWithExcit(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIAccelChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIForceIEPEChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); @@ -3013,191 +4826,372 @@ int32 __CFUNC DAQmxSwitchDisconnectMulti (const char connectionList[], b int32 __CFUNC DAQmxSwitchDisconnectAll (const char deviceName[], bool32 waitForSettling); // Switch Topologies -#define DAQmx_Val_Switch_Topology_Configured_Topology "Configured Topology" // Configured Topology -#define DAQmx_Val_Switch_Topology_1127_1_Wire_64x1_Mux "1127/1-Wire 64x1 Mux" // 1127/1-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_1127_2_Wire_32x1_Mux "1127/2-Wire 32x1 Mux" // 1127/2-Wire 32x1 Mux -#define DAQmx_Val_Switch_Topology_1127_2_Wire_4x8_Matrix "1127/2-Wire 4x8 Matrix" // 1127/2-Wire 4x8 Matrix -#define DAQmx_Val_Switch_Topology_1127_4_Wire_16x1_Mux "1127/4-Wire 16x1 Mux" // 1127/4-Wire 16x1 Mux -#define DAQmx_Val_Switch_Topology_1127_Independent "1127/Independent" // 1127/Independent -#define DAQmx_Val_Switch_Topology_1128_1_Wire_64x1_Mux "1128/1-Wire 64x1 Mux" // 1128/1-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_1128_2_Wire_32x1_Mux "1128/2-Wire 32x1 Mux" // 1128/2-Wire 32x1 Mux -#define DAQmx_Val_Switch_Topology_1128_2_Wire_4x8_Matrix "1128/2-Wire 4x8 Matrix" // 1128/2-Wire 4x8 Matrix -#define DAQmx_Val_Switch_Topology_1128_4_Wire_16x1_Mux "1128/4-Wire 16x1 Mux" // 1128/4-Wire 16x1 Mux -#define DAQmx_Val_Switch_Topology_1128_Independent "1128/Independent" // 1128/Independent -#define DAQmx_Val_Switch_Topology_1129_2_Wire_16x16_Matrix "1129/2-Wire 16x16 Matrix" // 1129/2-Wire 16x16 Matrix -#define DAQmx_Val_Switch_Topology_1129_2_Wire_8x32_Matrix "1129/2-Wire 8x32 Matrix" // 1129/2-Wire 8x32 Matrix -#define DAQmx_Val_Switch_Topology_1129_2_Wire_4x64_Matrix "1129/2-Wire 4x64 Matrix" // 1129/2-Wire 4x64 Matrix -#define DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_8x16_Matrix "1129/2-Wire Dual 8x16 Matrix" // 1129/2-Wire Dual 8x16 Matrix -#define DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_4x32_Matrix "1129/2-Wire Dual 4x32 Matrix" // 1129/2-Wire Dual 4x32 Matrix -#define DAQmx_Val_Switch_Topology_1129_2_Wire_Quad_4x16_Matrix "1129/2-Wire Quad 4x16 Matrix" // 1129/2-Wire Quad 4x16 Matrix -#define DAQmx_Val_Switch_Topology_1130_1_Wire_256x1_Mux "1130/1-Wire 256x1 Mux" // 1130/1-Wire 256x1 Mux -#define DAQmx_Val_Switch_Topology_1130_1_Wire_Dual_128x1_Mux "1130/1-Wire Dual 128x1 Mux" // 1130/1-Wire Dual 128x1 Mux -#define DAQmx_Val_Switch_Topology_1130_2_Wire_128x1_Mux "1130/2-Wire 128x1 Mux" // 1130/2-Wire 128x1 Mux -#define DAQmx_Val_Switch_Topology_1130_4_Wire_64x1_Mux "1130/4-Wire 64x1 Mux" // 1130/4-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_1130_1_Wire_4x64_Matrix "1130/1-Wire 4x64 Matrix" // 1130/1-Wire 4x64 Matrix -#define DAQmx_Val_Switch_Topology_1130_1_Wire_8x32_Matrix "1130/1-Wire 8x32 Matrix" // 1130/1-Wire 8x32 Matrix -#define DAQmx_Val_Switch_Topology_1130_1_Wire_Octal_32x1_Mux "1130/1-Wire Octal 32x1 Mux" // 1130/1-Wire Octal 32x1 Mux -#define DAQmx_Val_Switch_Topology_1130_1_Wire_Quad_64x1_Mux "1130/1-Wire Quad 64x1 Mux" // 1130/1-Wire Quad 64x1 Mux -#define DAQmx_Val_Switch_Topology_1130_1_Wire_Sixteen_16x1_Mux "1130/1-Wire Sixteen 16x1 Mux" // 1130/1-Wire Sixteen 16x1 Mux -#define DAQmx_Val_Switch_Topology_1130_2_Wire_4x32_Matrix "1130/2-Wire 4x32 Matrix" // 1130/2-Wire 4x32 Matrix -#define DAQmx_Val_Switch_Topology_1130_2_Wire_Octal_16x1_Mux "1130/2-Wire Octal 16x1 Mux" // 1130/2-Wire Octal 16x1 Mux -#define DAQmx_Val_Switch_Topology_1130_2_Wire_Quad_32x1_Mux "1130/2-Wire Quad 32x1 Mux" // 1130/2-Wire Quad 32x1 Mux -#define DAQmx_Val_Switch_Topology_1130_4_Wire_Quad_16x1_Mux "1130/4-Wire Quad 16x1 Mux" // 1130/4-Wire Quad 16x1 Mux -#define DAQmx_Val_Switch_Topology_1130_Independent "1130/Independent" // 1130/Independent -#define DAQmx_Val_Switch_Topology_1160_16_SPDT "1160/16-SPDT" // 1160/16-SPDT -#define DAQmx_Val_Switch_Topology_1161_8_SPDT "1161/8-SPDT" // 1161/8-SPDT +#define +DAQmx_Val_Switch_Topology_Configured_Topology "Configured Topology" // Configured Topology +#define +DAQmx_Val_Switch_Topology_1127_1_Wire_64x1_Mux "1127/1-Wire 64x1 Mux" // 1127/1-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_1127_2_Wire_32x1_Mux "1127/2-Wire 32x1 Mux" // 1127/2-Wire 32x1 Mux +#define +DAQmx_Val_Switch_Topology_1127_2_Wire_4x8_Matrix "1127/2-Wire 4x8 Matrix" // 1127/2-Wire 4x8 Matrix +#define +DAQmx_Val_Switch_Topology_1127_4_Wire_16x1_Mux "1127/4-Wire 16x1 Mux" // 1127/4-Wire 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1127_Independent "1127/Independent" // 1127/Independent +#define +DAQmx_Val_Switch_Topology_1128_1_Wire_64x1_Mux "1128/1-Wire 64x1 Mux" // 1128/1-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_1128_2_Wire_32x1_Mux "1128/2-Wire 32x1 Mux" // 1128/2-Wire 32x1 Mux +#define +DAQmx_Val_Switch_Topology_1128_2_Wire_4x8_Matrix "1128/2-Wire 4x8 Matrix" // 1128/2-Wire 4x8 Matrix +#define +DAQmx_Val_Switch_Topology_1128_4_Wire_16x1_Mux "1128/4-Wire 16x1 Mux" // 1128/4-Wire 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1128_Independent "1128/Independent" // 1128/Independent +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_16x16_Matrix "1129/2-Wire 16x16 Matrix" // 1129/2-Wire 16x16 Matrix +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_8x32_Matrix "1129/2-Wire 8x32 Matrix" // 1129/2-Wire 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_4x64_Matrix "1129/2-Wire 4x64 Matrix" // 1129/2-Wire 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_8x16_Matrix "1129/2-Wire Dual 8x16 Matrix" // 1129/2-Wire Dual 8x16 Matrix +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_4x32_Matrix "1129/2-Wire Dual 4x32 Matrix" // 1129/2-Wire Dual 4x32 Matrix +#define +DAQmx_Val_Switch_Topology_1129_2_Wire_Quad_4x16_Matrix "1129/2-Wire Quad 4x16 Matrix" // 1129/2-Wire Quad 4x16 Matrix +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_256x1_Mux "1130/1-Wire 256x1 Mux" // 1130/1-Wire 256x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_Dual_128x1_Mux "1130/1-Wire Dual 128x1 Mux" // 1130/1-Wire Dual 128x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_2_Wire_128x1_Mux "1130/2-Wire 128x1 Mux" // 1130/2-Wire 128x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_4_Wire_64x1_Mux "1130/4-Wire 64x1 Mux" // 1130/4-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_4x64_Matrix "1130/1-Wire 4x64 Matrix" // 1130/1-Wire 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_8x32_Matrix "1130/1-Wire 8x32 Matrix" // 1130/1-Wire 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_Octal_32x1_Mux "1130/1-Wire Octal 32x1 Mux" // 1130/1-Wire Octal 32x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_Quad_64x1_Mux "1130/1-Wire Quad 64x1 Mux" // 1130/1-Wire Quad 64x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_1_Wire_Sixteen_16x1_Mux "1130/1-Wire Sixteen 16x1 Mux" // 1130/1-Wire Sixteen 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_2_Wire_4x32_Matrix "1130/2-Wire 4x32 Matrix" // 1130/2-Wire 4x32 Matrix +#define +DAQmx_Val_Switch_Topology_1130_2_Wire_Octal_16x1_Mux "1130/2-Wire Octal 16x1 Mux" // 1130/2-Wire Octal 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_2_Wire_Quad_32x1_Mux "1130/2-Wire Quad 32x1 Mux" // 1130/2-Wire Quad 32x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_4_Wire_Quad_16x1_Mux "1130/4-Wire Quad 16x1 Mux" // 1130/4-Wire Quad 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1130_Independent "1130/Independent" // 1130/Independent +#define +DAQmx_Val_Switch_Topology_1160_16_SPDT "1160/16-SPDT" // 1160/16-SPDT +#define +DAQmx_Val_Switch_Topology_1161_8_SPDT "1161/8-SPDT" // 1161/8-SPDT #define DAQmx_Val_Switch_Topology_1163R_Octal_4x1_Mux "1163R/Octal 4x1 Mux" // 1163R/Octal 4x1 Mux -#define DAQmx_Val_Switch_Topology_1166_32_SPDT "1166/32-SPDT" // 1166/32-SPDT -#define DAQmx_Val_Switch_Topology_1166_16_DPDT "1166/16-DPDT" // 1166/16-DPDT -#define DAQmx_Val_Switch_Topology_1167_Independent "1167/Independent" // 1167/Independent -#define DAQmx_Val_Switch_Topology_1169_100_SPST "1169/100-SPST" // 1169/100-SPST -#define DAQmx_Val_Switch_Topology_1169_50_DPST "1169/50-DPST" // 1169/50-DPST -#define DAQmx_Val_Switch_Topology_1175_1_Wire_196x1_Mux "1175/1-Wire 196x1 Mux" // 1175/1-Wire 196x1 Mux -#define DAQmx_Val_Switch_Topology_1175_2_Wire_98x1_Mux "1175/2-Wire 98x1 Mux" // 1175/2-Wire 98x1 Mux -#define DAQmx_Val_Switch_Topology_1175_2_Wire_95x1_Mux "1175/2-Wire 95x1 Mux" // 1175/2-Wire 95x1 Mux -#define DAQmx_Val_Switch_Topology_1190_Quad_4x1_Mux "1190/Quad 4x1 Mux" // 1190/Quad 4x1 Mux -#define DAQmx_Val_Switch_Topology_1191_Quad_4x1_Mux "1191/Quad 4x1 Mux" // 1191/Quad 4x1 Mux -#define DAQmx_Val_Switch_Topology_1192_8_SPDT "1192/8-SPDT" // 1192/8-SPDT -#define DAQmx_Val_Switch_Topology_1193_32x1_Mux "1193/32x1 Mux" // 1193/32x1 Mux -#define DAQmx_Val_Switch_Topology_1193_Dual_16x1_Mux "1193/Dual 16x1 Mux" // 1193/Dual 16x1 Mux -#define DAQmx_Val_Switch_Topology_1193_Quad_8x1_Mux "1193/Quad 8x1 Mux" // 1193/Quad 8x1 Mux -#define DAQmx_Val_Switch_Topology_1193_16x1_Terminated_Mux "1193/16x1 Terminated Mux" // 1193/16x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_1193_Dual_8x1_Terminated_Mux "1193/Dual 8x1 Terminated Mux" // 1193/Dual 8x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_1193_Quad_4x1_Terminated_Mux "1193/Quad 4x1 Terminated Mux" // 1193/Quad 4x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_1193_Independent "1193/Independent" // 1193/Independent -#define DAQmx_Val_Switch_Topology_1194_Quad_4x1_Mux "1194/Quad 4x1 Mux" // 1194/Quad 4x1 Mux -#define DAQmx_Val_Switch_Topology_1195_Quad_4x1_Mux "1195/Quad 4x1 Mux" // 1195/Quad 4x1 Mux -#define DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Mux "2501/1-Wire 48x1 Mux" // 2501/1-Wire 48x1 Mux -#define DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Amplified_Mux "2501/1-Wire 48x1 Amplified Mux" // 2501/1-Wire 48x1 Amplified Mux -#define DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Mux "2501/2-Wire 24x1 Mux" // 2501/2-Wire 24x1 Mux -#define DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Amplified_Mux "2501/2-Wire 24x1 Amplified Mux" // 2501/2-Wire 24x1 Amplified Mux -#define DAQmx_Val_Switch_Topology_2501_2_Wire_Dual_12x1_Mux "2501/2-Wire Dual 12x1 Mux" // 2501/2-Wire Dual 12x1 Mux -#define DAQmx_Val_Switch_Topology_2501_2_Wire_Quad_6x1_Mux "2501/2-Wire Quad 6x1 Mux" // 2501/2-Wire Quad 6x1 Mux -#define DAQmx_Val_Switch_Topology_2501_2_Wire_4x6_Matrix "2501/2-Wire 4x6 Matrix" // 2501/2-Wire 4x6 Matrix -#define DAQmx_Val_Switch_Topology_2501_4_Wire_12x1_Mux "2501/4-Wire 12x1 Mux" // 2501/4-Wire 12x1 Mux -#define DAQmx_Val_Switch_Topology_2503_1_Wire_48x1_Mux "2503/1-Wire 48x1 Mux" // 2503/1-Wire 48x1 Mux -#define DAQmx_Val_Switch_Topology_2503_2_Wire_24x1_Mux "2503/2-Wire 24x1 Mux" // 2503/2-Wire 24x1 Mux -#define DAQmx_Val_Switch_Topology_2503_2_Wire_Dual_12x1_Mux "2503/2-Wire Dual 12x1 Mux" // 2503/2-Wire Dual 12x1 Mux -#define DAQmx_Val_Switch_Topology_2503_2_Wire_Quad_6x1_Mux "2503/2-Wire Quad 6x1 Mux" // 2503/2-Wire Quad 6x1 Mux -#define DAQmx_Val_Switch_Topology_2503_2_Wire_4x6_Matrix "2503/2-Wire 4x6 Matrix" // 2503/2-Wire 4x6 Matrix -#define DAQmx_Val_Switch_Topology_2503_4_Wire_12x1_Mux "2503/4-Wire 12x1 Mux" // 2503/4-Wire 12x1 Mux -#define DAQmx_Val_Switch_Topology_2510_Independent "2510/Independent" // 2510/Independent -#define DAQmx_Val_Switch_Topology_2512_Independent "2512/Independent" // 2512/Independent -#define DAQmx_Val_Switch_Topology_2514_Independent "2514/Independent" // 2514/Independent -#define DAQmx_Val_Switch_Topology_2515_Independent "2515/Independent" // 2515/Independent -#define DAQmx_Val_Switch_Topology_2520_80_SPST "2520/80-SPST" // 2520/80-SPST -#define DAQmx_Val_Switch_Topology_2521_40_DPST "2521/40-DPST" // 2521/40-DPST -#define DAQmx_Val_Switch_Topology_2522_53_SPDT "2522/53-SPDT" // 2522/53-SPDT -#define DAQmx_Val_Switch_Topology_2523_26_DPDT "2523/26-DPDT" // 2523/26-DPDT -#define DAQmx_Val_Switch_Topology_2527_1_Wire_64x1_Mux "2527/1-Wire 64x1 Mux" // 2527/1-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_2527_1_Wire_Dual_32x1_Mux "2527/1-Wire Dual 32x1 Mux" // 2527/1-Wire Dual 32x1 Mux -#define DAQmx_Val_Switch_Topology_2527_2_Wire_32x1_Mux "2527/2-Wire 32x1 Mux" // 2527/2-Wire 32x1 Mux -#define DAQmx_Val_Switch_Topology_2527_2_Wire_Dual_16x1_Mux "2527/2-Wire Dual 16x1 Mux" // 2527/2-Wire Dual 16x1 Mux -#define DAQmx_Val_Switch_Topology_2527_4_Wire_16x1_Mux "2527/4-Wire 16x1 Mux" // 2527/4-Wire 16x1 Mux -#define DAQmx_Val_Switch_Topology_2527_Independent "2527/Independent" // 2527/Independent -#define DAQmx_Val_Switch_Topology_2529_2_Wire_8x16_Matrix "2529/2-Wire 8x16 Matrix" // 2529/2-Wire 8x16 Matrix +#define +DAQmx_Val_Switch_Topology_1166_32_SPDT "1166/32-SPDT" // 1166/32-SPDT +#define +DAQmx_Val_Switch_Topology_1166_16_DPDT "1166/16-DPDT" // 1166/16-DPDT +#define +DAQmx_Val_Switch_Topology_1167_Independent "1167/Independent" // 1167/Independent +#define +DAQmx_Val_Switch_Topology_1169_100_SPST "1169/100-SPST" // 1169/100-SPST +#define +DAQmx_Val_Switch_Topology_1169_50_DPST "1169/50-DPST" // 1169/50-DPST +#define +DAQmx_Val_Switch_Topology_1175_1_Wire_196x1_Mux "1175/1-Wire 196x1 Mux" // 1175/1-Wire 196x1 Mux +#define +DAQmx_Val_Switch_Topology_1175_2_Wire_98x1_Mux "1175/2-Wire 98x1 Mux" // 1175/2-Wire 98x1 Mux +#define +DAQmx_Val_Switch_Topology_1175_2_Wire_95x1_Mux "1175/2-Wire 95x1 Mux" // 1175/2-Wire 95x1 Mux +#define +DAQmx_Val_Switch_Topology_1190_Quad_4x1_Mux "1190/Quad 4x1 Mux" // 1190/Quad 4x1 Mux +#define +DAQmx_Val_Switch_Topology_1191_Quad_4x1_Mux "1191/Quad 4x1 Mux" // 1191/Quad 4x1 Mux +#define +DAQmx_Val_Switch_Topology_1192_8_SPDT "1192/8-SPDT" // 1192/8-SPDT +#define +DAQmx_Val_Switch_Topology_1193_32x1_Mux "1193/32x1 Mux" // 1193/32x1 Mux +#define +DAQmx_Val_Switch_Topology_1193_Dual_16x1_Mux "1193/Dual 16x1 Mux" // 1193/Dual 16x1 Mux +#define +DAQmx_Val_Switch_Topology_1193_Quad_8x1_Mux "1193/Quad 8x1 Mux" // 1193/Quad 8x1 Mux +#define +DAQmx_Val_Switch_Topology_1193_16x1_Terminated_Mux "1193/16x1 Terminated Mux" // 1193/16x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_1193_Dual_8x1_Terminated_Mux "1193/Dual 8x1 Terminated Mux" // 1193/Dual 8x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_1193_Quad_4x1_Terminated_Mux "1193/Quad 4x1 Terminated Mux" // 1193/Quad 4x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_1193_Independent "1193/Independent" // 1193/Independent +#define +DAQmx_Val_Switch_Topology_1194_Quad_4x1_Mux "1194/Quad 4x1 Mux" // 1194/Quad 4x1 Mux +#define +DAQmx_Val_Switch_Topology_1195_Quad_4x1_Mux "1195/Quad 4x1 Mux" // 1195/Quad 4x1 Mux +#define +DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Mux "2501/1-Wire 48x1 Mux" // 2501/1-Wire 48x1 Mux +#define +DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Amplified_Mux "2501/1-Wire 48x1 Amplified Mux" // 2501/1-Wire 48x1 Amplified Mux +#define +DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Mux "2501/2-Wire 24x1 Mux" // 2501/2-Wire 24x1 Mux +#define +DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Amplified_Mux "2501/2-Wire 24x1 Amplified Mux" // 2501/2-Wire 24x1 Amplified Mux +#define +DAQmx_Val_Switch_Topology_2501_2_Wire_Dual_12x1_Mux "2501/2-Wire Dual 12x1 Mux" // 2501/2-Wire Dual 12x1 Mux +#define +DAQmx_Val_Switch_Topology_2501_2_Wire_Quad_6x1_Mux "2501/2-Wire Quad 6x1 Mux" // 2501/2-Wire Quad 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2501_2_Wire_4x6_Matrix "2501/2-Wire 4x6 Matrix" // 2501/2-Wire 4x6 Matrix +#define +DAQmx_Val_Switch_Topology_2501_4_Wire_12x1_Mux "2501/4-Wire 12x1 Mux" // 2501/4-Wire 12x1 Mux +#define +DAQmx_Val_Switch_Topology_2503_1_Wire_48x1_Mux "2503/1-Wire 48x1 Mux" // 2503/1-Wire 48x1 Mux +#define +DAQmx_Val_Switch_Topology_2503_2_Wire_24x1_Mux "2503/2-Wire 24x1 Mux" // 2503/2-Wire 24x1 Mux +#define +DAQmx_Val_Switch_Topology_2503_2_Wire_Dual_12x1_Mux "2503/2-Wire Dual 12x1 Mux" // 2503/2-Wire Dual 12x1 Mux +#define +DAQmx_Val_Switch_Topology_2503_2_Wire_Quad_6x1_Mux "2503/2-Wire Quad 6x1 Mux" // 2503/2-Wire Quad 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2503_2_Wire_4x6_Matrix "2503/2-Wire 4x6 Matrix" // 2503/2-Wire 4x6 Matrix +#define +DAQmx_Val_Switch_Topology_2503_4_Wire_12x1_Mux "2503/4-Wire 12x1 Mux" // 2503/4-Wire 12x1 Mux +#define +DAQmx_Val_Switch_Topology_2510_Independent "2510/Independent" // 2510/Independent +#define +DAQmx_Val_Switch_Topology_2512_Independent "2512/Independent" // 2512/Independent +#define +DAQmx_Val_Switch_Topology_2514_Independent "2514/Independent" // 2514/Independent +#define +DAQmx_Val_Switch_Topology_2515_Independent "2515/Independent" // 2515/Independent +#define +DAQmx_Val_Switch_Topology_2520_80_SPST "2520/80-SPST" // 2520/80-SPST +#define +DAQmx_Val_Switch_Topology_2521_40_DPST "2521/40-DPST" // 2521/40-DPST +#define +DAQmx_Val_Switch_Topology_2522_53_SPDT "2522/53-SPDT" // 2522/53-SPDT +#define +DAQmx_Val_Switch_Topology_2523_26_DPDT "2523/26-DPDT" // 2523/26-DPDT +#define +DAQmx_Val_Switch_Topology_2527_1_Wire_64x1_Mux "2527/1-Wire 64x1 Mux" // 2527/1-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_2527_1_Wire_Dual_32x1_Mux "2527/1-Wire Dual 32x1 Mux" // 2527/1-Wire Dual 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2527_2_Wire_32x1_Mux "2527/2-Wire 32x1 Mux" // 2527/2-Wire 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2527_2_Wire_Dual_16x1_Mux "2527/2-Wire Dual 16x1 Mux" // 2527/2-Wire Dual 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2527_4_Wire_16x1_Mux "2527/4-Wire 16x1 Mux" // 2527/4-Wire 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2527_Independent "2527/Independent" // 2527/Independent +#define +DAQmx_Val_Switch_Topology_2529_2_Wire_8x16_Matrix "2529/2-Wire 8x16 Matrix" // 2529/2-Wire 8x16 Matrix #define DAQmx_Val_Switch_Topology_2529_2_Wire_4x32_Matrix "2529/2-Wire 4x32 Matrix" // 2529/2-Wire 4x32 Matrix -#define DAQmx_Val_Switch_Topology_2529_2_Wire_Dual_4x16_Matrix "2529/2-Wire Dual 4x16 Matrix" // 2529/2-Wire Dual 4x16 Matrix -#define DAQmx_Val_Switch_Topology_2530_1_Wire_128x1_Mux "2530/1-Wire 128x1 Mux" // 2530/1-Wire 128x1 Mux -#define DAQmx_Val_Switch_Topology_2530_1_Wire_Dual_64x1_Mux "2530/1-Wire Dual 64x1 Mux" // 2530/1-Wire Dual 64x1 Mux -#define DAQmx_Val_Switch_Topology_2530_2_Wire_64x1_Mux "2530/2-Wire 64x1 Mux" // 2530/2-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_2530_4_Wire_32x1_Mux "2530/4-Wire 32x1 Mux" // 2530/4-Wire 32x1 Mux -#define DAQmx_Val_Switch_Topology_2530_1_Wire_4x32_Matrix "2530/1-Wire 4x32 Matrix" // 2530/1-Wire 4x32 Matrix -#define DAQmx_Val_Switch_Topology_2530_1_Wire_8x16_Matrix "2530/1-Wire 8x16 Matrix" // 2530/1-Wire 8x16 Matrix -#define DAQmx_Val_Switch_Topology_2530_1_Wire_Octal_16x1_Mux "2530/1-Wire Octal 16x1 Mux" // 2530/1-Wire Octal 16x1 Mux -#define DAQmx_Val_Switch_Topology_2530_1_Wire_Quad_32x1_Mux "2530/1-Wire Quad 32x1 Mux" // 2530/1-Wire Quad 32x1 Mux -#define DAQmx_Val_Switch_Topology_2530_2_Wire_4x16_Matrix "2530/2-Wire 4x16 Matrix" // 2530/2-Wire 4x16 Matrix -#define DAQmx_Val_Switch_Topology_2530_2_Wire_Dual_32x1_Mux "2530/2-Wire Dual 32x1 Mux" // 2530/2-Wire Dual 32x1 Mux -#define DAQmx_Val_Switch_Topology_2530_2_Wire_Quad_16x1_Mux "2530/2-Wire Quad 16x1 Mux" // 2530/2-Wire Quad 16x1 Mux -#define DAQmx_Val_Switch_Topology_2530_4_Wire_Dual_16x1_Mux "2530/4-Wire Dual 16x1 Mux" // 2530/4-Wire Dual 16x1 Mux -#define DAQmx_Val_Switch_Topology_2530_Independent "2530/Independent" // 2530/Independent -#define DAQmx_Val_Switch_Topology_2531_1_Wire_4x128_Matrix "2531/1-Wire 4x128 Matrix" // 2531/1-Wire 4x128 Matrix -#define DAQmx_Val_Switch_Topology_2531_1_Wire_8x64_Matrix "2531/1-Wire 8x64 Matrix" // 2531/1-Wire 8x64 Matrix -#define DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_4x64_Matrix "2531/1-Wire Dual 4x64 Matrix" // 2531/1-Wire Dual 4x64 Matrix -#define DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_8x32_Matrix "2531/1-Wire Dual 8x32 Matrix" // 2531/1-Wire Dual 8x32 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_16x32_Matrix "2532/1-Wire 16x32 Matrix" // 2532/1-Wire 16x32 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_4x128_Matrix "2532/1-Wire 4x128 Matrix" // 2532/1-Wire 4x128 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_8x64_Matrix "2532/1-Wire 8x64 Matrix" // 2532/1-Wire 8x64 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_16x16_Matrix "2532/1-Wire Dual 16x16 Matrix" // 2532/1-Wire Dual 16x16 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_4x64_Matrix "2532/1-Wire Dual 4x64 Matrix" // 2532/1-Wire Dual 4x64 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_8x32_Matrix "2532/1-Wire Dual 8x32 Matrix" // 2532/1-Wire Dual 8x32 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_Quad_4x32_Matrix "2532/1-Wire Quad 4x32 Matrix" // 2532/1-Wire Quad 4x32 Matrix -#define DAQmx_Val_Switch_Topology_2532_1_Wire_Sixteen_2x16_Matrix "2532/1-Wire Sixteen 2x16 Matrix" // 2532/1-Wire Sixteen 2x16 Matrix -#define DAQmx_Val_Switch_Topology_2532_2_Wire_16x16_Matrix "2532/2-Wire 16x16 Matrix" // 2532/2-Wire 16x16 Matrix -#define DAQmx_Val_Switch_Topology_2532_2_Wire_4x64_Matrix "2532/2-Wire 4x64 Matrix" // 2532/2-Wire 4x64 Matrix -#define DAQmx_Val_Switch_Topology_2532_2_Wire_8x32_Matrix "2532/2-Wire 8x32 Matrix" // 2532/2-Wire 8x32 Matrix -#define DAQmx_Val_Switch_Topology_2532_2_Wire_Dual_4x32_Matrix "2532/2-Wire Dual 4x32 Matrix" // 2532/2-Wire Dual 4x32 Matrix -#define DAQmx_Val_Switch_Topology_2533_1_Wire_4x64_Matrix "2533/1-Wire 4x64 Matrix" // 2533/1-Wire 4x64 Matrix -#define DAQmx_Val_Switch_Topology_2534_1_Wire_8x32_Matrix "2534/1-Wire 8x32 Matrix" // 2534/1-Wire 8x32 Matrix -#define DAQmx_Val_Switch_Topology_2535_1_Wire_4x136_Matrix "2535/1-Wire 4x136 Matrix" // 2535/1-Wire 4x136 Matrix -#define DAQmx_Val_Switch_Topology_2536_1_Wire_8x68_Matrix "2536/1-Wire 8x68 Matrix" // 2536/1-Wire 8x68 Matrix -#define DAQmx_Val_Switch_Topology_2540_1_Wire_8x9_Matrix "2540/1-Wire 8x9 Matrix" // 2540/1-Wire 8x9 Matrix -#define DAQmx_Val_Switch_Topology_2541_1_Wire_8x12_Matrix "2541/1-Wire 8x12 Matrix" // 2541/1-Wire 8x12 Matrix -#define DAQmx_Val_Switch_Topology_2542_Quad_2x1_Terminated_Mux "2542/Quad 2x1 Terminated Mux" // 2542/Quad 2x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2543_Dual_4x1_Terminated_Mux "2543/Dual 4x1 Terminated Mux" // 2543/Dual 4x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2544_8x1_Terminated_Mux "2544/8x1 Terminated Mux" // 2544/8x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2545_4x1_Terminated_Mux "2545/4x1 Terminated Mux" // 2545/4x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2546_Dual_4x1_Mux "2546/Dual 4x1 Mux" // 2546/Dual 4x1 Mux -#define DAQmx_Val_Switch_Topology_2547_8x1_Mux "2547/8x1 Mux" // 2547/8x1 Mux -#define DAQmx_Val_Switch_Topology_2548_4_SPDT "2548/4-SPDT" // 2548/4-SPDT -#define DAQmx_Val_Switch_Topology_2549_Terminated_2_SPDT "2549/Terminated 2-SPDT" // 2549/Terminated 2-SPDT -#define DAQmx_Val_Switch_Topology_2554_4x1_Mux "2554/4x1 Mux" // 2554/4x1 Mux -#define DAQmx_Val_Switch_Topology_2555_4x1_Terminated_Mux "2555/4x1 Terminated Mux" // 2555/4x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2556_Dual_4x1_Mux "2556/Dual 4x1 Mux" // 2556/Dual 4x1 Mux -#define DAQmx_Val_Switch_Topology_2557_8x1_Mux "2557/8x1 Mux" // 2557/8x1 Mux -#define DAQmx_Val_Switch_Topology_2558_4_SPDT "2558/4-SPDT" // 2558/4-SPDT +#define +DAQmx_Val_Switch_Topology_2529_2_Wire_Dual_4x16_Matrix "2529/2-Wire Dual 4x16 Matrix" // 2529/2-Wire Dual 4x16 Matrix +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_128x1_Mux "2530/1-Wire 128x1 Mux" // 2530/1-Wire 128x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_Dual_64x1_Mux "2530/1-Wire Dual 64x1 Mux" // 2530/1-Wire Dual 64x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_2_Wire_64x1_Mux "2530/2-Wire 64x1 Mux" // 2530/2-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_4_Wire_32x1_Mux "2530/4-Wire 32x1 Mux" // 2530/4-Wire 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_4x32_Matrix "2530/1-Wire 4x32 Matrix" // 2530/1-Wire 4x32 Matrix +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_8x16_Matrix "2530/1-Wire 8x16 Matrix" // 2530/1-Wire 8x16 Matrix +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_Octal_16x1_Mux "2530/1-Wire Octal 16x1 Mux" // 2530/1-Wire Octal 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_1_Wire_Quad_32x1_Mux "2530/1-Wire Quad 32x1 Mux" // 2530/1-Wire Quad 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_2_Wire_4x16_Matrix "2530/2-Wire 4x16 Matrix" // 2530/2-Wire 4x16 Matrix +#define +DAQmx_Val_Switch_Topology_2530_2_Wire_Dual_32x1_Mux "2530/2-Wire Dual 32x1 Mux" // 2530/2-Wire Dual 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_2_Wire_Quad_16x1_Mux "2530/2-Wire Quad 16x1 Mux" // 2530/2-Wire Quad 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_4_Wire_Dual_16x1_Mux "2530/4-Wire Dual 16x1 Mux" // 2530/4-Wire Dual 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2530_Independent "2530/Independent" // 2530/Independent +#define +DAQmx_Val_Switch_Topology_2531_1_Wire_4x128_Matrix "2531/1-Wire 4x128 Matrix" // 2531/1-Wire 4x128 Matrix +#define +DAQmx_Val_Switch_Topology_2531_1_Wire_8x64_Matrix "2531/1-Wire 8x64 Matrix" // 2531/1-Wire 8x64 Matrix +#define +DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_4x64_Matrix "2531/1-Wire Dual 4x64 Matrix" // 2531/1-Wire Dual 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_8x32_Matrix "2531/1-Wire Dual 8x32 Matrix" // 2531/1-Wire Dual 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_16x32_Matrix "2532/1-Wire 16x32 Matrix" // 2532/1-Wire 16x32 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_4x128_Matrix "2532/1-Wire 4x128 Matrix" // 2532/1-Wire 4x128 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_8x64_Matrix "2532/1-Wire 8x64 Matrix" // 2532/1-Wire 8x64 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_16x16_Matrix "2532/1-Wire Dual 16x16 Matrix" // 2532/1-Wire Dual 16x16 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_4x64_Matrix "2532/1-Wire Dual 4x64 Matrix" // 2532/1-Wire Dual 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_8x32_Matrix "2532/1-Wire Dual 8x32 Matrix" // 2532/1-Wire Dual 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_Quad_4x32_Matrix "2532/1-Wire Quad 4x32 Matrix" // 2532/1-Wire Quad 4x32 Matrix +#define +DAQmx_Val_Switch_Topology_2532_1_Wire_Sixteen_2x16_Matrix "2532/1-Wire Sixteen 2x16 Matrix" // 2532/1-Wire Sixteen 2x16 Matrix +#define +DAQmx_Val_Switch_Topology_2532_2_Wire_16x16_Matrix "2532/2-Wire 16x16 Matrix" // 2532/2-Wire 16x16 Matrix +#define +DAQmx_Val_Switch_Topology_2532_2_Wire_4x64_Matrix "2532/2-Wire 4x64 Matrix" // 2532/2-Wire 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_2532_2_Wire_8x32_Matrix "2532/2-Wire 8x32 Matrix" // 2532/2-Wire 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_2532_2_Wire_Dual_4x32_Matrix "2532/2-Wire Dual 4x32 Matrix" // 2532/2-Wire Dual 4x32 Matrix +#define +DAQmx_Val_Switch_Topology_2533_1_Wire_4x64_Matrix "2533/1-Wire 4x64 Matrix" // 2533/1-Wire 4x64 Matrix +#define +DAQmx_Val_Switch_Topology_2534_1_Wire_8x32_Matrix "2534/1-Wire 8x32 Matrix" // 2534/1-Wire 8x32 Matrix +#define +DAQmx_Val_Switch_Topology_2535_1_Wire_4x136_Matrix "2535/1-Wire 4x136 Matrix" // 2535/1-Wire 4x136 Matrix +#define +DAQmx_Val_Switch_Topology_2536_1_Wire_8x68_Matrix "2536/1-Wire 8x68 Matrix" // 2536/1-Wire 8x68 Matrix +#define +DAQmx_Val_Switch_Topology_2540_1_Wire_8x9_Matrix "2540/1-Wire 8x9 Matrix" // 2540/1-Wire 8x9 Matrix +#define +DAQmx_Val_Switch_Topology_2541_1_Wire_8x12_Matrix "2541/1-Wire 8x12 Matrix" // 2541/1-Wire 8x12 Matrix +#define +DAQmx_Val_Switch_Topology_2542_Quad_2x1_Terminated_Mux "2542/Quad 2x1 Terminated Mux" // 2542/Quad 2x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2543_Dual_4x1_Terminated_Mux "2543/Dual 4x1 Terminated Mux" // 2543/Dual 4x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2544_8x1_Terminated_Mux "2544/8x1 Terminated Mux" // 2544/8x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2545_4x1_Terminated_Mux "2545/4x1 Terminated Mux" // 2545/4x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2546_Dual_4x1_Mux "2546/Dual 4x1 Mux" // 2546/Dual 4x1 Mux +#define +DAQmx_Val_Switch_Topology_2547_8x1_Mux "2547/8x1 Mux" // 2547/8x1 Mux +#define +DAQmx_Val_Switch_Topology_2548_4_SPDT "2548/4-SPDT" // 2548/4-SPDT +#define +DAQmx_Val_Switch_Topology_2549_Terminated_2_SPDT "2549/Terminated 2-SPDT" // 2549/Terminated 2-SPDT +#define +DAQmx_Val_Switch_Topology_2554_4x1_Mux "2554/4x1 Mux" // 2554/4x1 Mux +#define +DAQmx_Val_Switch_Topology_2555_4x1_Terminated_Mux "2555/4x1 Terminated Mux" // 2555/4x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2556_Dual_4x1_Mux "2556/Dual 4x1 Mux" // 2556/Dual 4x1 Mux +#define +DAQmx_Val_Switch_Topology_2557_8x1_Mux "2557/8x1 Mux" // 2557/8x1 Mux +#define +DAQmx_Val_Switch_Topology_2558_4_SPDT "2558/4-SPDT" // 2558/4-SPDT #define DAQmx_Val_Switch_Topology_2559_Terminated_2_SPDT "2559/Terminated 2-SPDT" // 2559/Terminated 2-SPDT -#define DAQmx_Val_Switch_Topology_2564_16_SPST "2564/16-SPST" // 2564/16-SPST -#define DAQmx_Val_Switch_Topology_2564_8_DPST "2564/8-DPST" // 2564/8-DPST -#define DAQmx_Val_Switch_Topology_2565_16_SPST "2565/16-SPST" // 2565/16-SPST -#define DAQmx_Val_Switch_Topology_2566_16_SPDT "2566/16-SPDT" // 2566/16-SPDT -#define DAQmx_Val_Switch_Topology_2566_8_DPDT "2566/8-DPDT" // 2566/8-DPDT -#define DAQmx_Val_Switch_Topology_2567_Independent "2567/Independent" // 2567/Independent -#define DAQmx_Val_Switch_Topology_2568_31_SPST "2568/31-SPST" // 2568/31-SPST -#define DAQmx_Val_Switch_Topology_2568_15_DPST "2568/15-DPST" // 2568/15-DPST -#define DAQmx_Val_Switch_Topology_2569_100_SPST "2569/100-SPST" // 2569/100-SPST -#define DAQmx_Val_Switch_Topology_2569_50_DPST "2569/50-DPST" // 2569/50-DPST -#define DAQmx_Val_Switch_Topology_2570_40_SPDT "2570/40-SPDT" // 2570/40-SPDT -#define DAQmx_Val_Switch_Topology_2570_20_DPDT "2570/20-DPDT" // 2570/20-DPDT -#define DAQmx_Val_Switch_Topology_2571_66_SPDT "2571/66-SPDT" // 2571/66-SPDT -#define DAQmx_Val_Switch_Topology_2575_1_Wire_196x1_Mux "2575/1-Wire 196x1 Mux" // 2575/1-Wire 196x1 Mux -#define DAQmx_Val_Switch_Topology_2575_2_Wire_98x1_Mux "2575/2-Wire 98x1 Mux" // 2575/2-Wire 98x1 Mux -#define DAQmx_Val_Switch_Topology_2575_2_Wire_95x1_Mux "2575/2-Wire 95x1 Mux" // 2575/2-Wire 95x1 Mux -#define DAQmx_Val_Switch_Topology_2576_2_Wire_64x1_Mux "2576/2-Wire 64x1 Mux" // 2576/2-Wire 64x1 Mux -#define DAQmx_Val_Switch_Topology_2576_2_Wire_Dual_32x1_Mux "2576/2-Wire Dual 32x1 Mux" // 2576/2-Wire Dual 32x1 Mux -#define DAQmx_Val_Switch_Topology_2576_2_Wire_Octal_8x1_Mux "2576/2-Wire Octal 8x1 Mux" // 2576/2-Wire Octal 8x1 Mux -#define DAQmx_Val_Switch_Topology_2576_2_Wire_Quad_16x1_Mux "2576/2-Wire Quad 16x1 Mux" // 2576/2-Wire Quad 16x1 Mux -#define DAQmx_Val_Switch_Topology_2576_2_Wire_Sixteen_4x1_Mux "2576/2-Wire Sixteen 4x1 Mux" // 2576/2-Wire Sixteen 4x1 Mux -#define DAQmx_Val_Switch_Topology_2576_Independent "2576/Independent" // 2576/Independent -#define DAQmx_Val_Switch_Topology_2584_1_Wire_12x1_Mux "2584/1-Wire 12x1 Mux" // 2584/1-Wire 12x1 Mux -#define DAQmx_Val_Switch_Topology_2584_1_Wire_Dual_6x1_Mux "2584/1-Wire Dual 6x1 Mux" // 2584/1-Wire Dual 6x1 Mux -#define DAQmx_Val_Switch_Topology_2584_2_Wire_6x1_Mux "2584/2-Wire 6x1 Mux" // 2584/2-Wire 6x1 Mux -#define DAQmx_Val_Switch_Topology_2584_Independent "2584/Independent" // 2584/Independent -#define DAQmx_Val_Switch_Topology_2585_1_Wire_10x1_Mux "2585/1-Wire 10x1 Mux" // 2585/1-Wire 10x1 Mux -#define DAQmx_Val_Switch_Topology_2586_10_SPST "2586/10-SPST" // 2586/10-SPST -#define DAQmx_Val_Switch_Topology_2586_5_DPST "2586/5-DPST" // 2586/5-DPST -#define DAQmx_Val_Switch_Topology_2590_4x1_Mux "2590/4x1 Mux" // 2590/4x1 Mux -#define DAQmx_Val_Switch_Topology_2591_4x1_Mux "2591/4x1 Mux" // 2591/4x1 Mux -#define DAQmx_Val_Switch_Topology_2593_16x1_Mux "2593/16x1 Mux" // 2593/16x1 Mux -#define DAQmx_Val_Switch_Topology_2593_Dual_8x1_Mux "2593/Dual 8x1 Mux" // 2593/Dual 8x1 Mux -#define DAQmx_Val_Switch_Topology_2593_8x1_Terminated_Mux "2593/8x1 Terminated Mux" // 2593/8x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2593_Dual_4x1_Terminated_Mux "2593/Dual 4x1 Terminated Mux" // 2593/Dual 4x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2593_Independent "2593/Independent" // 2593/Independent -#define DAQmx_Val_Switch_Topology_2594_4x1_Mux "2594/4x1 Mux" // 2594/4x1 Mux -#define DAQmx_Val_Switch_Topology_2595_4x1_Mux "2595/4x1 Mux" // 2595/4x1 Mux -#define DAQmx_Val_Switch_Topology_2596_Dual_6x1_Mux "2596/Dual 6x1 Mux" // 2596/Dual 6x1 Mux -#define DAQmx_Val_Switch_Topology_2597_6x1_Terminated_Mux "2597/6x1 Terminated Mux" // 2597/6x1 Terminated Mux -#define DAQmx_Val_Switch_Topology_2598_Dual_Transfer "2598/Dual Transfer" // 2598/Dual Transfer -#define DAQmx_Val_Switch_Topology_2599_2_SPDT "2599/2-SPDT" // 2599/2-SPDT -#define DAQmx_Val_Switch_Topology_2720_Independent "2720/Independent" // 2720/Independent -#define DAQmx_Val_Switch_Topology_2722_Independent "2722/Independent" // 2722/Independent -#define DAQmx_Val_Switch_Topology_2725_Independent "2725/Independent" // 2725/Independent -#define DAQmx_Val_Switch_Topology_2727_Independent "2727/Independent" // 2727/Independent -#define DAQmx_Val_Switch_Topology_2790_Independent "2790/Independent" // 2790/Independent -#define DAQmx_Val_Switch_Topology_2796_Dual_6x1_Mux "2796/Dual 6x1 Mux" // 2796/Dual 6x1 Mux -#define DAQmx_Val_Switch_Topology_2797_6x1_Terminated_Mux "2797/6x1 Terminated Mux" // 2797/6x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2564_16_SPST "2564/16-SPST" // 2564/16-SPST +#define +DAQmx_Val_Switch_Topology_2564_8_DPST "2564/8-DPST" // 2564/8-DPST +#define +DAQmx_Val_Switch_Topology_2565_16_SPST "2565/16-SPST" // 2565/16-SPST +#define +DAQmx_Val_Switch_Topology_2566_16_SPDT "2566/16-SPDT" // 2566/16-SPDT +#define +DAQmx_Val_Switch_Topology_2566_8_DPDT "2566/8-DPDT" // 2566/8-DPDT +#define +DAQmx_Val_Switch_Topology_2567_Independent "2567/Independent" // 2567/Independent +#define +DAQmx_Val_Switch_Topology_2568_31_SPST "2568/31-SPST" // 2568/31-SPST +#define +DAQmx_Val_Switch_Topology_2568_15_DPST "2568/15-DPST" // 2568/15-DPST +#define +DAQmx_Val_Switch_Topology_2569_100_SPST "2569/100-SPST" // 2569/100-SPST +#define +DAQmx_Val_Switch_Topology_2569_50_DPST "2569/50-DPST" // 2569/50-DPST +#define +DAQmx_Val_Switch_Topology_2570_40_SPDT "2570/40-SPDT" // 2570/40-SPDT +#define +DAQmx_Val_Switch_Topology_2570_20_DPDT "2570/20-DPDT" // 2570/20-DPDT +#define +DAQmx_Val_Switch_Topology_2571_66_SPDT "2571/66-SPDT" // 2571/66-SPDT +#define +DAQmx_Val_Switch_Topology_2575_1_Wire_196x1_Mux "2575/1-Wire 196x1 Mux" // 2575/1-Wire 196x1 Mux +#define +DAQmx_Val_Switch_Topology_2575_2_Wire_98x1_Mux "2575/2-Wire 98x1 Mux" // 2575/2-Wire 98x1 Mux +#define +DAQmx_Val_Switch_Topology_2575_2_Wire_95x1_Mux "2575/2-Wire 95x1 Mux" // 2575/2-Wire 95x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_2_Wire_64x1_Mux "2576/2-Wire 64x1 Mux" // 2576/2-Wire 64x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_2_Wire_Dual_32x1_Mux "2576/2-Wire Dual 32x1 Mux" // 2576/2-Wire Dual 32x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_2_Wire_Octal_8x1_Mux "2576/2-Wire Octal 8x1 Mux" // 2576/2-Wire Octal 8x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_2_Wire_Quad_16x1_Mux "2576/2-Wire Quad 16x1 Mux" // 2576/2-Wire Quad 16x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_2_Wire_Sixteen_4x1_Mux "2576/2-Wire Sixteen 4x1 Mux" // 2576/2-Wire Sixteen 4x1 Mux +#define +DAQmx_Val_Switch_Topology_2576_Independent "2576/Independent" // 2576/Independent +#define +DAQmx_Val_Switch_Topology_2584_1_Wire_12x1_Mux "2584/1-Wire 12x1 Mux" // 2584/1-Wire 12x1 Mux +#define +DAQmx_Val_Switch_Topology_2584_1_Wire_Dual_6x1_Mux "2584/1-Wire Dual 6x1 Mux" // 2584/1-Wire Dual 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2584_2_Wire_6x1_Mux "2584/2-Wire 6x1 Mux" // 2584/2-Wire 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2584_Independent "2584/Independent" // 2584/Independent +#define +DAQmx_Val_Switch_Topology_2585_1_Wire_10x1_Mux "2585/1-Wire 10x1 Mux" // 2585/1-Wire 10x1 Mux +#define +DAQmx_Val_Switch_Topology_2586_10_SPST "2586/10-SPST" // 2586/10-SPST +#define +DAQmx_Val_Switch_Topology_2586_5_DPST "2586/5-DPST" // 2586/5-DPST +#define +DAQmx_Val_Switch_Topology_2590_4x1_Mux "2590/4x1 Mux" // 2590/4x1 Mux +#define +DAQmx_Val_Switch_Topology_2591_4x1_Mux "2591/4x1 Mux" // 2591/4x1 Mux +#define +DAQmx_Val_Switch_Topology_2593_16x1_Mux "2593/16x1 Mux" // 2593/16x1 Mux +#define +DAQmx_Val_Switch_Topology_2593_Dual_8x1_Mux "2593/Dual 8x1 Mux" // 2593/Dual 8x1 Mux +#define +DAQmx_Val_Switch_Topology_2593_8x1_Terminated_Mux "2593/8x1 Terminated Mux" // 2593/8x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2593_Dual_4x1_Terminated_Mux "2593/Dual 4x1 Terminated Mux" // 2593/Dual 4x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2593_Independent "2593/Independent" // 2593/Independent +#define +DAQmx_Val_Switch_Topology_2594_4x1_Mux "2594/4x1 Mux" // 2594/4x1 Mux +#define +DAQmx_Val_Switch_Topology_2595_4x1_Mux "2595/4x1 Mux" // 2595/4x1 Mux +#define +DAQmx_Val_Switch_Topology_2596_Dual_6x1_Mux "2596/Dual 6x1 Mux" // 2596/Dual 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2597_6x1_Terminated_Mux "2597/6x1 Terminated Mux" // 2597/6x1 Terminated Mux +#define +DAQmx_Val_Switch_Topology_2598_Dual_Transfer "2598/Dual Transfer" // 2598/Dual Transfer +#define +DAQmx_Val_Switch_Topology_2599_2_SPDT "2599/2-SPDT" // 2599/2-SPDT +#define +DAQmx_Val_Switch_Topology_2720_Independent "2720/Independent" // 2720/Independent +#define +DAQmx_Val_Switch_Topology_2722_Independent "2722/Independent" // 2722/Independent +#define +DAQmx_Val_Switch_Topology_2725_Independent "2725/Independent" // 2725/Independent +#define +DAQmx_Val_Switch_Topology_2727_Independent "2727/Independent" // 2727/Independent +#define +DAQmx_Val_Switch_Topology_2790_Independent "2790/Independent" // 2790/Independent +#define +DAQmx_Val_Switch_Topology_2796_Dual_6x1_Mux "2796/Dual 6x1 Mux" // 2796/Dual 6x1 Mux +#define +DAQmx_Val_Switch_Topology_2797_6x1_Terminated_Mux "2797/6x1 Terminated Mux" // 2797/6x1 Terminated Mux #define DAQmx_Val_Switch_Topology_2798_Dual_Transfer "2798/Dual Transfer" // 2798/Dual Transfer -#define DAQmx_Val_Switch_Topology_2799_2_SPDT "2799/2-SPDT" // 2799/2-SPDT +#define +DAQmx_Val_Switch_Topology_2799_2_SPDT "2799/2-SPDT" // 2799/2-SPDT int32 __CFUNC DAQmxSwitchSetTopologyAndReset (const char deviceName[], const char newTopology[]); @@ -3492,7 +5486,7 @@ int32 __CFUNC DAQmxGet9269CalAdjustPoints(CalHandle calHandle, int32* adjust int32 __CFUNC DAQmxSetup9269Cal(CalHandle calHandle, const char channelNames[], int32 value); int32 __CFUNC DAQmxAdjust9269Cal(CalHandle calHandle, const char channelNames[], float64 value); int32 __CFUNC DAQmxGet9775CalAdjustPoints(CalHandle calHandle, uInt32 coupling, float64* adjustmentPoints, uInt32 bufferSize); -int32 __CFUNC DAQmxAdjust9775Cal(CalHandle calHandle, const char channelNames[], float64 value, uInt32 coupling); +int32 __CFUNC DAQmxAdjust9775Cal(CalHandle calHandle, const char channelNames[], float64 value, uInt32 coupling); int32 __CFUNC DAQmxSetup1102Cal (CalHandle calHandle, const char channelName[], float64 gain); int32 __CFUNC DAQmxAdjust1102Cal (CalHandle calHandle, float64 refVoltage, float64 measOutput); @@ -3598,7 +5592,7 @@ int32 __CFUNC_C DAQmxGetAnalogPowerUpStates (const char deviceName[], const int32 __CFUNC_C DAQmxGetAnalogPowerUpStatesWithOutputType(const char channelNames[], float64 stateArray[], int32 channelTypeArray[], uInt32 *arraySizePtr); int32 __CFUNC DAQmxSetDigitalLogicFamilyPowerUpState(const char deviceName[], int32 logicFamily); int32 __CFUNC DAQmxGetDigitalLogicFamilyPowerUpState(const char deviceName[], int32* logicFamily); -int32 __CFUNC DAQmxAddNetworkDevice(const char IPAddress[],const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize); +int32 __CFUNC DAQmxAddNetworkDevice(const char IPAddress[], const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize); int32 __CFUNC DAQmxDeleteNetworkDevice(const char deviceName[]); int32 __CFUNC DAQmxReserveNetworkDevice(const char deviceName[], bool32 overrideReservation); int32 __CFUNC DAQmxUnreserveNetworkDevice(const char deviceName[]); @@ -7864,1876 +9858,3671 @@ int32 __CFUNC DAQmxResetSampClkTimingResponseMode(TaskHandle taskHandle); *** NI-DAQmx Error Codes ***************************************************** ******************************************************************************/ -#define DAQmxSuccess (0) +#define +DAQmxSuccess (0) -#define DAQmxFailed(error) ((error)<0) +#define +DAQmxFailed(error) ((error)<0) // Error and Warning Codes -#define DAQmxErrorDebugSessionNotAllowedTimingSourceRegistered (-209880) -#define DAQmxErrorDebugSessionNotAllowedWhenLogging (-209879) -#define DAQmxErrorDebugSessionNotAllowedEventRegistered (-209878) -#define DAQmxErrorInvalidTargetTaskForDebugSession (-209877) -#define DAQmxErrorFunctionNotSupportedForDevice (-209876) -#define DAQmxErrorMultipleTargetTasksFoundForDebugSession (-209875) -#define DAQmxErrorTargetTaskNotFoundForDebugSession (-209874) -#define DAQmxErrorOperationNotSupportedInDebugSession (-209873) -#define DAQmxErrorOperationNotPermittedInMonitorModeForDebugSession (-209872) -#define DAQmxErrorGetActiveDevPrptyFailedDueToDifftVals (-209871) -#define DAQmxErrorTaskAlreadyRegisteredATimingSource (-209870) -#define DAQmxErrorFilterNotSupportedOnHWRev (-209869) -#define DAQmxErrorSensorPowerSupplyVoltageLevel (-209868) -#define DAQmxErrorSensorPowerSupply (-209867) -#define DAQmxErrorInvalidScanlist (-209866) -#define DAQmxErrorTimeResourceCannotBeRouted (-209865) -#define DAQmxErrorInvalidResetDelayRequested (-209864) -#define DAQmxErrorExceededTotalTimetriggersAvailable (-209863) -#define DAQmxErrorExceededTotalTimestampsAvailable (-209862) -#define DAQmxErrorNoSynchronizationProtocolRunning (-209861) -#define DAQmxErrorConflictingCoherencyRequirements (-209860) -#define DAQmxErrorNoSharedTimescale (-209859) +#define +DAQmxErrorDebugSessionNotAllowedTimingSourceRegistered (-209880) +#define +DAQmxErrorDebugSessionNotAllowedWhenLogging (-209879) +#define +DAQmxErrorDebugSessionNotAllowedEventRegistered (-209878) +#define +DAQmxErrorInvalidTargetTaskForDebugSession (-209877) +#define +DAQmxErrorFunctionNotSupportedForDevice (-209876) +#define +DAQmxErrorMultipleTargetTasksFoundForDebugSession (-209875) +#define +DAQmxErrorTargetTaskNotFoundForDebugSession (-209874) +#define +DAQmxErrorOperationNotSupportedInDebugSession (-209873) +#define +DAQmxErrorOperationNotPermittedInMonitorModeForDebugSession (-209872) +#define +DAQmxErrorGetActiveDevPrptyFailedDueToDifftVals (-209871) +#define +DAQmxErrorTaskAlreadyRegisteredATimingSource (-209870) +#define +DAQmxErrorFilterNotSupportedOnHWRev (-209869) +#define +DAQmxErrorSensorPowerSupplyVoltageLevel (-209868) +#define +DAQmxErrorSensorPowerSupply (-209867) +#define +DAQmxErrorInvalidScanlist (-209866) +#define +DAQmxErrorTimeResourceCannotBeRouted (-209865) +#define +DAQmxErrorInvalidResetDelayRequested (-209864) +#define +DAQmxErrorExceededTotalTimetriggersAvailable (-209863) +#define +DAQmxErrorExceededTotalTimestampsAvailable (-209862) +#define +DAQmxErrorNoSynchronizationProtocolRunning (-209861) +#define +DAQmxErrorConflictingCoherencyRequirements (-209860) +#define +DAQmxErrorNoSharedTimescale (-209859) #define DAQmxErrorInvalidFieldDAQBankName (-209858) -#define DAQmxErrorDeviceDoesNotSupportHWTSP (-209857) -#define DAQmxErrorBankTypeDoesNotMatchBankTypeInDestination (-209856) -#define DAQmxErrorInvalidFieldDAQBankNumberSpecd (-209855) -#define DAQmxErrorUnsupportedSimulatedBankForSimulatedFieldDAQ (-209854) -#define DAQmxErrorFieldDAQBankSimMustMatchFieldDAQSim (-209853) -#define DAQmxErrorDevNoLongerSupportedWithinDAQmxAPI (-209852) -#define DAQmxErrorTimingEngineDoesNotSupportOnBoardMemory (-209851) -#define DAQmxErrorDuplicateTaskCrossProject (-209850) -#define DAQmxErrorTimeStartTriggerBeforeArmStartTrigger (-209849) -#define DAQmxErrorTimeTriggerCannotBeSet (-209848) -#define DAQmxErrorInvalidTriggerWindowValue (-209847) -#define DAQmxErrorCannotQueryPropertyBeforeOrDuringAcquisition (-209846) -#define DAQmxErrorSampleClockTimebaseNotSupported (-209845) -#define DAQmxErrorTimestampNotYetReceived (-209844) -#define DAQmxErrorTimeTriggerNotSupported (-209843) -#define DAQmxErrorTimestampNotEnabled (-209842) -#define DAQmxErrorTimeTriggersInconsistent (-209841) -#define DAQmxErrorTriggerConfiguredIsInThePast (-209840) -#define DAQmxErrorTriggerConfiguredIsTooFarFromCurrentTime (-209839) -#define DAQmxErrorSynchronizationLockLost (-209838) -#define DAQmxErrorInconsistentTimescales (-209837) -#define DAQmxErrorCannotSynchronizeDevices (-209836) -#define DAQmxErrorAssociatedChansHaveAttributeConflictWithMultipleMaxMinRanges (-209835) -#define DAQmxErrorSampleRateNumChansOrAttributeValues (-209834) +#define +DAQmxErrorDeviceDoesNotSupportHWTSP (-209857) +#define +DAQmxErrorBankTypeDoesNotMatchBankTypeInDestination (-209856) +#define +DAQmxErrorInvalidFieldDAQBankNumberSpecd (-209855) +#define +DAQmxErrorUnsupportedSimulatedBankForSimulatedFieldDAQ (-209854) +#define +DAQmxErrorFieldDAQBankSimMustMatchFieldDAQSim (-209853) +#define +DAQmxErrorDevNoLongerSupportedWithinDAQmxAPI (-209852) +#define +DAQmxErrorTimingEngineDoesNotSupportOnBoardMemory (-209851) +#define +DAQmxErrorDuplicateTaskCrossProject (-209850) +#define +DAQmxErrorTimeStartTriggerBeforeArmStartTrigger (-209849) +#define +DAQmxErrorTimeTriggerCannotBeSet (-209848) +#define +DAQmxErrorInvalidTriggerWindowValue (-209847) +#define +DAQmxErrorCannotQueryPropertyBeforeOrDuringAcquisition (-209846) +#define +DAQmxErrorSampleClockTimebaseNotSupported (-209845) +#define +DAQmxErrorTimestampNotYetReceived (-209844) +#define +DAQmxErrorTimeTriggerNotSupported (-209843) +#define +DAQmxErrorTimestampNotEnabled (-209842) +#define +DAQmxErrorTimeTriggersInconsistent (-209841) +#define +DAQmxErrorTriggerConfiguredIsInThePast (-209840) +#define +DAQmxErrorTriggerConfiguredIsTooFarFromCurrentTime (-209839) +#define +DAQmxErrorSynchronizationLockLost (-209838) +#define +DAQmxErrorInconsistentTimescales (-209837) +#define +DAQmxErrorCannotSynchronizeDevices (-209836) +#define +DAQmxErrorAssociatedChansHaveAttributeConflictWithMultipleMaxMinRanges (-209835) +#define +DAQmxErrorSampleRateNumChansOrAttributeValues (-209834) #define DAQmxErrorWaitForValidTimestampNotSupported (-209833) -#define DAQmxErrorTrigWinTimeoutExpired (-209832) -#define DAQmxErrorInvalidTriggerCfgForDevice (-209831) -#define DAQmxErrorInvalidDataTransferMechanismForDevice (-209830) -#define DAQmxErrorInputFIFOOverflow3 (-209829) -#define DAQmxErrorTooManyDevicesForAnalogMultiEdgeTrigCDAQ (-209828) -#define DAQmxErrorTooManyTriggersTypesSpecifiedInTask (-209827) -#define DAQmxErrorMismatchedMultiTriggerConfigValues (-209826) -#define DAQmxErrorInconsistentAODACRangeAcrossTasks (-209825) -#define DAQmxErrorInconsistentDTToWrite (-209824) -#define DAQmxErrorFunctionObsolete (-209823) -#define DAQmxErrorNegativeDurationNotSupported (-209822) -#define DAQmxErrorDurationTooSmall (-209821) -#define DAQmxErrorDurationTooLong (-209820) -#define DAQmxErrorDurationBasedNotSupportedForSpecifiedTimingMode (-209819) -#define DAQmxErrorInvalidLEDState (-209818) -#define DAQmxErrorWatchdogStatesNotUniform (-209817) -#define DAQmxErrorSelfTestFailedPowerSupplyOutOfTolerance (-209816) -#define DAQmxErrorHWTSPMultiSampleWrite (-209815) -#define DAQmxErrorOnboardRegenExceedsChannelLimit (-209814) -#define DAQmxErrorWatchdogChannelExpirationStateNotSpecified (-209813) -#define DAQmxErrorInvalidShuntSourceForCalibration (-209812) -#define DAQmxErrorInvalidShuntSelectForCalibration (-209811) -#define DAQmxErrorInvalidShuntCalibrationConfiguration (-209810) -#define DAQmxErrorBufferedOperationsNotSupportedOnChannelStandalone (-209809) +#define +DAQmxErrorTrigWinTimeoutExpired (-209832) +#define +DAQmxErrorInvalidTriggerCfgForDevice (-209831) +#define +DAQmxErrorInvalidDataTransferMechanismForDevice (-209830) +#define +DAQmxErrorInputFIFOOverflow3 (-209829) +#define +DAQmxErrorTooManyDevicesForAnalogMultiEdgeTrigCDAQ (-209828) +#define +DAQmxErrorTooManyTriggersTypesSpecifiedInTask (-209827) +#define +DAQmxErrorMismatchedMultiTriggerConfigValues (-209826) +#define +DAQmxErrorInconsistentAODACRangeAcrossTasks (-209825) +#define +DAQmxErrorInconsistentDTToWrite (-209824) +#define +DAQmxErrorFunctionObsolete (-209823) +#define +DAQmxErrorNegativeDurationNotSupported (-209822) +#define +DAQmxErrorDurationTooSmall (-209821) +#define +DAQmxErrorDurationTooLong (-209820) +#define +DAQmxErrorDurationBasedNotSupportedForSpecifiedTimingMode (-209819) +#define +DAQmxErrorInvalidLEDState (-209818) +#define +DAQmxErrorWatchdogStatesNotUniform (-209817) +#define +DAQmxErrorSelfTestFailedPowerSupplyOutOfTolerance (-209816) +#define +DAQmxErrorHWTSPMultiSampleWrite (-209815) +#define +DAQmxErrorOnboardRegenExceedsChannelLimit (-209814) +#define +DAQmxErrorWatchdogChannelExpirationStateNotSpecified (-209813) +#define +DAQmxErrorInvalidShuntSourceForCalibration (-209812) +#define +DAQmxErrorInvalidShuntSelectForCalibration (-209811) +#define +DAQmxErrorInvalidShuntCalibrationConfiguration (-209810) +#define +DAQmxErrorBufferedOperationsNotSupportedOnChannelStandalone (-209809) #define DAQmxErrorFeatureNotAvailableOnAccessory (-209808) -#define DAQmxErrorInconsistentThreshVoltageAcrossTerminals (-209807) -#define DAQmxErrorDAQmxIsNotInstalledOnTarget (-209806) -#define DAQmxErrorCOCannotKeepUpInHWTimedSinglePoint (-209805) -#define DAQmxErrorWaitForNextSampClkDetected3OrMoreSampClks (-209803) -#define DAQmxErrorWaitForNextSampClkDetectedMissedSampClk (-209802) -#define DAQmxErrorWriteNotCompleteBeforeSampClk (-209801) -#define DAQmxErrorReadNotCompleteBeforeSampClk (-209800) -#define DAQmxErrorInconsistentDigitalFilteringAcrossTerminals (-201510) -#define DAQmxErrorInconsistentPullUpCfgAcrossTerminals (-201509) -#define DAQmxErrorInconsistentTermCfgAcrossTerminals (-201508) -#define DAQmxErrorVCXODCMBecameUnlocked (-201507) -#define DAQmxErrorPLLDACUpdateFailed (-201506) -#define DAQmxErrorNoCabledDevice (-201505) -#define DAQmxErrorLostRefClk (-201504) -#define DAQmxErrorCantUseAITimingEngineWithCounters (-201503) -#define DAQmxErrorDACOffsetValNotSet (-201502) -#define DAQmxErrorCalAdjustRefValOutOfRange (-201501) -#define DAQmxErrorChansForCalAdjustMustPerformSetContext (-201500) -#define DAQmxErrorGetCalDataInvalidForCalMode (-201499) -#define DAQmxErrorNoIEPEWithACNotAllowed (-201498) -#define DAQmxErrorSetupCalNeededBeforeGetCalDataPoints (-201497) -#define DAQmxErrorVoltageNotCalibrated (-201496) -#define DAQmxErrorMissingRangeForCalibration (-201495) -#define DAQmxErrorMultipleChansNotSupportedDuringCalAdjust (-201494) +#define +DAQmxErrorInconsistentThreshVoltageAcrossTerminals (-209807) +#define +DAQmxErrorDAQmxIsNotInstalledOnTarget (-209806) +#define +DAQmxErrorCOCannotKeepUpInHWTimedSinglePoint (-209805) +#define +DAQmxErrorWaitForNextSampClkDetected3OrMoreSampClks (-209803) +#define +DAQmxErrorWaitForNextSampClkDetectedMissedSampClk (-209802) +#define +DAQmxErrorWriteNotCompleteBeforeSampClk (-209801) +#define +DAQmxErrorReadNotCompleteBeforeSampClk (-209800) +#define +DAQmxErrorInconsistentDigitalFilteringAcrossTerminals (-201510) +#define +DAQmxErrorInconsistentPullUpCfgAcrossTerminals (-201509) +#define +DAQmxErrorInconsistentTermCfgAcrossTerminals (-201508) +#define +DAQmxErrorVCXODCMBecameUnlocked (-201507) +#define +DAQmxErrorPLLDACUpdateFailed (-201506) +#define +DAQmxErrorNoCabledDevice (-201505) +#define +DAQmxErrorLostRefClk (-201504) +#define +DAQmxErrorCantUseAITimingEngineWithCounters (-201503) +#define +DAQmxErrorDACOffsetValNotSet (-201502) +#define +DAQmxErrorCalAdjustRefValOutOfRange (-201501) +#define +DAQmxErrorChansForCalAdjustMustPerformSetContext (-201500) +#define +DAQmxErrorGetCalDataInvalidForCalMode (-201499) +#define +DAQmxErrorNoIEPEWithACNotAllowed (-201498) +#define +DAQmxErrorSetupCalNeededBeforeGetCalDataPoints (-201497) +#define +DAQmxErrorVoltageNotCalibrated (-201496) +#define +DAQmxErrorMissingRangeForCalibration (-201495) +#define +DAQmxErrorMultipleChansNotSupportedDuringCalAdjust (-201494) #define DAQmxErrorShuntCalFailedOutOfRange (-201493) -#define DAQmxErrorOperationNotSupportedOnSimulatedDevice (-201492) -#define DAQmxErrorFirmwareVersionSameAsInstalledVersion (-201491) -#define DAQmxErrorFirmwareVersionOlderThanInstalledVersion (-201490) -#define DAQmxErrorFirmwareUpdateInvalidState (-201489) -#define DAQmxErrorFirmwareUpdateInvalidID (-201488) -#define DAQmxErrorFirmwareUpdateAutomaticManagementEnabled (-201487) -#define DAQmxErrorSetupCalibrationNotCalled (-201486) -#define DAQmxErrorCalMeasuredDataSizeVsActualDataSizeMismatch (-201485) -#define DAQmxErrorCDAQMissingDSAMasterForChanExpansion (-201484) -#define DAQmxErrorCDAQMasterNotFoundForChanExpansion (-201483) -#define DAQmxErrorAllChansShouldBeProvidedForCalibration (-201482) -#define DAQmxErrorMustSpecifyExpirationStateForAllLinesInRange (-201481) -#define DAQmxErrorOpenSessionExists (-201480) -#define DAQmxErrorCannotQueryTerminalForSWArmStart (-201479) -#define DAQmxErrorChassisWatchdogTimerExpired (-201478) -#define DAQmxErrorCantReserveWatchdogTaskWhileOtherTasksReserved (-201477) -#define DAQmxErrorCantReserveTaskWhileWatchdogTaskReserving (-201476) -#define DAQmxErrorAuxPowerSourceRequired (-201475) -#define DAQmxErrorDeviceNotSupportedOnLocalSystem (-201474) -#define DAQmxErrorOneTimestampChannelRequiredForCombinedNavigationRead (-201472) -#define DAQmxErrorMultDevsMultPhysChans (-201471) -#define DAQmxErrorInvalidCalAdjustmentPointValues (-201470) -#define DAQmxErrorDifferentDigitizerFromCommunicator (-201469) -#define DAQmxErrorCDAQSyncMasterClockNotPresent (-201468) +#define +DAQmxErrorOperationNotSupportedOnSimulatedDevice (-201492) +#define +DAQmxErrorFirmwareVersionSameAsInstalledVersion (-201491) +#define +DAQmxErrorFirmwareVersionOlderThanInstalledVersion (-201490) +#define +DAQmxErrorFirmwareUpdateInvalidState (-201489) +#define +DAQmxErrorFirmwareUpdateInvalidID (-201488) +#define +DAQmxErrorFirmwareUpdateAutomaticManagementEnabled (-201487) +#define +DAQmxErrorSetupCalibrationNotCalled (-201486) +#define +DAQmxErrorCalMeasuredDataSizeVsActualDataSizeMismatch (-201485) +#define +DAQmxErrorCDAQMissingDSAMasterForChanExpansion (-201484) +#define +DAQmxErrorCDAQMasterNotFoundForChanExpansion (-201483) +#define +DAQmxErrorAllChansShouldBeProvidedForCalibration (-201482) +#define +DAQmxErrorMustSpecifyExpirationStateForAllLinesInRange (-201481) +#define +DAQmxErrorOpenSessionExists (-201480) +#define +DAQmxErrorCannotQueryTerminalForSWArmStart (-201479) +#define +DAQmxErrorChassisWatchdogTimerExpired (-201478) +#define +DAQmxErrorCantReserveWatchdogTaskWhileOtherTasksReserved (-201477) +#define +DAQmxErrorCantReserveTaskWhileWatchdogTaskReserving (-201476) +#define +DAQmxErrorAuxPowerSourceRequired (-201475) +#define +DAQmxErrorDeviceNotSupportedOnLocalSystem (-201474) +#define +DAQmxErrorOneTimestampChannelRequiredForCombinedNavigationRead (-201472) +#define +DAQmxErrorMultDevsMultPhysChans (-201471) +#define +DAQmxErrorInvalidCalAdjustmentPointValues (-201470) +#define +DAQmxErrorDifferentDigitizerFromCommunicator (-201469) +#define +DAQmxErrorCDAQSyncMasterClockNotPresent (-201468) #define DAQmxErrorAssociatedChansHaveConflictingProps (-201467) -#define DAQmxErrorAutoConfigBetweenMultipleDeviceStatesInvalid (-201466) -#define DAQmxErrorAutoConfigOfOfflineDevicesInvalid (-201465) -#define DAQmxErrorExternalFIFOFault (-201464) -#define DAQmxErrorConnectionsNotReciprocal (-201463) -#define DAQmxErrorInvalidOutputToInputCDAQSyncConnection (-201462) -#define DAQmxErrorReferenceClockNotPresent (-201461) -#define DAQmxErrorBlankStringExpansionFoundNoSupportedCDAQSyncConnectionDevices (-201460) -#define DAQmxErrorNoDevicesSupportCDAQSyncConnections (-201459) -#define DAQmxErrorInvalidCDAQSyncTimeoutValue (-201458) -#define DAQmxErrorCDAQSyncConnectionToSamePort (-201457) -#define DAQmxErrorDevsWithoutCommonSyncConnectionStrategy (-201456) -#define DAQmxErrorNoCDAQSyncBetweenPhysAndSimulatedDevs (-201455) -#define DAQmxErrorUnableToContainCards (-201454) -#define DAQmxErrorFindDisconnectedBetweenPhysAndSimDeviceStatesInvalid (-201453) -#define DAQmxErrorOperationAborted (-201452) -#define DAQmxErrorTwoPortsRequired (-201451) -#define DAQmxErrorDeviceDoesNotSupportCDAQSyncConnections (-201450) -#define DAQmxErrorInvalidcDAQSyncPortConnectionFormat (-201449) -#define DAQmxErrorRosetteMeasurementsNotSpecified (-201448) -#define DAQmxErrorInvalidNumOfPhysChansForDeltaRosette (-201447) -#define DAQmxErrorInvalidNumOfPhysChansForTeeRosette (-201446) -#define DAQmxErrorRosetteStrainChanNamesNeeded (-201445) -#define DAQmxErrorMultideviceWithOnDemandTiming (-201444) -#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency3 (-201443) +#define +DAQmxErrorAutoConfigBetweenMultipleDeviceStatesInvalid (-201466) +#define +DAQmxErrorAutoConfigOfOfflineDevicesInvalid (-201465) +#define +DAQmxErrorExternalFIFOFault (-201464) +#define +DAQmxErrorConnectionsNotReciprocal (-201463) +#define +DAQmxErrorInvalidOutputToInputCDAQSyncConnection (-201462) +#define +DAQmxErrorReferenceClockNotPresent (-201461) +#define +DAQmxErrorBlankStringExpansionFoundNoSupportedCDAQSyncConnectionDevices (-201460) +#define +DAQmxErrorNoDevicesSupportCDAQSyncConnections (-201459) +#define +DAQmxErrorInvalidCDAQSyncTimeoutValue (-201458) +#define +DAQmxErrorCDAQSyncConnectionToSamePort (-201457) +#define +DAQmxErrorDevsWithoutCommonSyncConnectionStrategy (-201456) +#define +DAQmxErrorNoCDAQSyncBetweenPhysAndSimulatedDevs (-201455) +#define +DAQmxErrorUnableToContainCards (-201454) +#define +DAQmxErrorFindDisconnectedBetweenPhysAndSimDeviceStatesInvalid (-201453) +#define +DAQmxErrorOperationAborted (-201452) +#define +DAQmxErrorTwoPortsRequired (-201451) +#define +DAQmxErrorDeviceDoesNotSupportCDAQSyncConnections (-201450) +#define +DAQmxErrorInvalidcDAQSyncPortConnectionFormat (-201449) +#define +DAQmxErrorRosetteMeasurementsNotSpecified (-201448) +#define +DAQmxErrorInvalidNumOfPhysChansForDeltaRosette (-201447) +#define +DAQmxErrorInvalidNumOfPhysChansForTeeRosette (-201446) +#define +DAQmxErrorRosetteStrainChanNamesNeeded (-201445) +#define +DAQmxErrorMultideviceWithOnDemandTiming (-201444) +#define +DAQmxErrorFREQOUTCannotProduceDesiredFrequency3 (-201443) #define DAQmxErrorTwoEdgeSeparationSameTerminalSameEdge (-201442) -#define DAQmxErrorDontMixSyncPulseAndSampClkTimebaseOn449x (-201441) -#define DAQmxErrorNeitherRefClkNorSampClkTimebaseConfiguredForDSASync (-201440) -#define DAQmxErrorRetriggeringFiniteCONotAllowed (-201439) -#define DAQmxErrorDeviceRebootedFromWDTTimeout (-201438) -#define DAQmxErrorTimeoutValueExceedsMaximum (-201437) -#define DAQmxErrorSharingDifferentWireModes (-201436) -#define DAQmxErrorCantPrimeWithEmptyBuffer (-201435) -#define DAQmxErrorConfigFailedBecauseWatchdogExpired (-201434) -#define DAQmxErrorWriteFailedBecauseWatchdogChangedLineDirection (-201433) -#define DAQmxErrorMultipleSubsytemCalibration (-201432) -#define DAQmxErrorIncorrectChannelForOffsetAdjustment (-201431) -#define DAQmxErrorInvalidNumRefVoltagesToWrite (-201430) -#define DAQmxErrorStartTrigDelayWithDSAModule (-201429) -#define DAQmxErrorMoreThanOneSyncPulseDetected (-201428) -#define DAQmxErrorDevNotSupportedWithinDAQmxAPI (-201427) -#define DAQmxErrorDevsWithoutSyncStrategies (-201426) -#define DAQmxErrorDevsWithoutCommonSyncStrategy (-201425) -#define DAQmxErrorSyncStrategiesCannotSync (-201424) -#define DAQmxErrorChassisCommunicationInterrupted (-201423) -#define DAQmxErrorUnknownCardPowerProfileInCarrier (-201422) -#define DAQmxErrorAttrNotSupportedOnAccessory (-201421) -#define DAQmxErrorNetworkDeviceReservedByAnotherHost (-201420) -#define DAQmxErrorIncorrectFirmwareFileUploaded (-201419) -#define DAQmxErrorInvalidFirmwareFileUploaded (-201418) +#define +DAQmxErrorDontMixSyncPulseAndSampClkTimebaseOn449x (-201441) +#define +DAQmxErrorNeitherRefClkNorSampClkTimebaseConfiguredForDSASync (-201440) +#define +DAQmxErrorRetriggeringFiniteCONotAllowed (-201439) +#define +DAQmxErrorDeviceRebootedFromWDTTimeout (-201438) +#define +DAQmxErrorTimeoutValueExceedsMaximum (-201437) +#define +DAQmxErrorSharingDifferentWireModes (-201436) +#define +DAQmxErrorCantPrimeWithEmptyBuffer (-201435) +#define +DAQmxErrorConfigFailedBecauseWatchdogExpired (-201434) +#define +DAQmxErrorWriteFailedBecauseWatchdogChangedLineDirection (-201433) +#define +DAQmxErrorMultipleSubsytemCalibration (-201432) +#define +DAQmxErrorIncorrectChannelForOffsetAdjustment (-201431) +#define +DAQmxErrorInvalidNumRefVoltagesToWrite (-201430) +#define +DAQmxErrorStartTrigDelayWithDSAModule (-201429) +#define +DAQmxErrorMoreThanOneSyncPulseDetected (-201428) +#define +DAQmxErrorDevNotSupportedWithinDAQmxAPI (-201427) +#define +DAQmxErrorDevsWithoutSyncStrategies (-201426) +#define +DAQmxErrorDevsWithoutCommonSyncStrategy (-201425) +#define +DAQmxErrorSyncStrategiesCannotSync (-201424) +#define +DAQmxErrorChassisCommunicationInterrupted (-201423) +#define +DAQmxErrorUnknownCardPowerProfileInCarrier (-201422) +#define +DAQmxErrorAttrNotSupportedOnAccessory (-201421) +#define +DAQmxErrorNetworkDeviceReservedByAnotherHost (-201420) +#define +DAQmxErrorIncorrectFirmwareFileUploaded (-201419) +#define +DAQmxErrorInvalidFirmwareFileUploaded (-201418) #define DAQmxErrorInTimerTimeoutOnArm (-201417) -#define DAQmxErrorCantExceedSlotRelayDriveLimit (-201416) -#define DAQmxErrorModuleUnsupportedFor9163 (-201415) -#define DAQmxErrorConnectionsNotSupported (-201414) -#define DAQmxErrorAccessoryNotPresent (-201413) -#define DAQmxErrorSpecifiedAccessoryChannelsNotPresentOnDevice (-201412) -#define DAQmxErrorConnectionsNotSupportedOnAccessory (-201411) -#define DAQmxErrorRateTooFastForHWTSP (-201410) -#define DAQmxErrorDelayFromSampleClockOutOfRangeForHWTSP (-201409) -#define DAQmxErrorAveragingWhenNotInternalHWTSP (-201408) -#define DAQmxErrorAttributeNotSupportedUnlessHWTSP (-201407) -#define DAQmxErrorFiveVoltDetectFailed (-201406) -#define DAQmxErrorAnalogBusStateInconsistent (-201405) -#define DAQmxErrorCardDetectedDoesNotMatchExpectedCard (-201404) -#define DAQmxErrorLoggingStartNewFileNotCalled (-201403) -#define DAQmxErrorLoggingSampsPerFileNotDivisible (-201402) -#define DAQmxErrorRetrievingNetworkDeviceProperties (-201401) -#define DAQmxErrorFilePreallocationFailed (-201400) -#define DAQmxErrorModuleMismatchInSameTimedTask (-201399) -#define DAQmxErrorInvalidAttributeValuePossiblyDueToOtherAttributeValues (-201398) -#define DAQmxErrorChangeDetectionStoppedToPreventDeviceHang (-201397) -#define DAQmxErrorFilterDelayRemovalNotPosssibleWithAnalogTrigger (-201396) -#define DAQmxErrorNonbufferedOrNoChannels (-201395) -#define DAQmxErrorTristateLogicLevelNotSpecdForEntirePort (-201394) -#define DAQmxErrorTristateLogicLevelNotSupportedOnDigOutChan (-201393) +#define +DAQmxErrorCantExceedSlotRelayDriveLimit (-201416) +#define +DAQmxErrorModuleUnsupportedFor9163 (-201415) +#define +DAQmxErrorConnectionsNotSupported (-201414) +#define +DAQmxErrorAccessoryNotPresent (-201413) +#define +DAQmxErrorSpecifiedAccessoryChannelsNotPresentOnDevice (-201412) +#define +DAQmxErrorConnectionsNotSupportedOnAccessory (-201411) +#define +DAQmxErrorRateTooFastForHWTSP (-201410) +#define +DAQmxErrorDelayFromSampleClockOutOfRangeForHWTSP (-201409) +#define +DAQmxErrorAveragingWhenNotInternalHWTSP (-201408) +#define +DAQmxErrorAttributeNotSupportedUnlessHWTSP (-201407) +#define +DAQmxErrorFiveVoltDetectFailed (-201406) +#define +DAQmxErrorAnalogBusStateInconsistent (-201405) +#define +DAQmxErrorCardDetectedDoesNotMatchExpectedCard (-201404) +#define +DAQmxErrorLoggingStartNewFileNotCalled (-201403) +#define +DAQmxErrorLoggingSampsPerFileNotDivisible (-201402) +#define +DAQmxErrorRetrievingNetworkDeviceProperties (-201401) +#define +DAQmxErrorFilePreallocationFailed (-201400) +#define +DAQmxErrorModuleMismatchInSameTimedTask (-201399) +#define +DAQmxErrorInvalidAttributeValuePossiblyDueToOtherAttributeValues (-201398) +#define +DAQmxErrorChangeDetectionStoppedToPreventDeviceHang (-201397) +#define +DAQmxErrorFilterDelayRemovalNotPosssibleWithAnalogTrigger (-201396) +#define +DAQmxErrorNonbufferedOrNoChannels (-201395) +#define +DAQmxErrorTristateLogicLevelNotSpecdForEntirePort (-201394) +#define +DAQmxErrorTristateLogicLevelNotSupportedOnDigOutChan (-201393) #define DAQmxErrorTristateLogicLevelNotSupported (-201392) -#define DAQmxErrorIncompleteGainAndCouplingCalAdjustment (-201391) -#define DAQmxErrorNetworkStatusConnectionLost (-201390) -#define DAQmxErrorModuleChangeDuringConnectionLoss (-201389) -#define DAQmxErrorNetworkDeviceNotReservedByHost (-201388) -#define DAQmxErrorDuplicateCalibrationAdjustmentInput (-201387) -#define DAQmxErrorSelfCalFailedContactTechSupport (-201386) -#define DAQmxErrorSelfCalFailedToConverge (-201385) -#define DAQmxErrorUnsupportedSimulatedModuleForSimulatedChassis (-201384) -#define DAQmxErrorLoggingWriteSizeTooBig (-201383) -#define DAQmxErrorLoggingWriteSizeNotDivisible (-201382) -#define DAQmxErrorMyDAQPowerRailFault (-201381) -#define DAQmxErrorDeviceDoesNotSupportThisOperation (-201380) -#define DAQmxErrorNetworkDevicesNotSupportedOnThisPlatform (-201379) -#define DAQmxErrorUnknownFirmwareVersion (-201378) -#define DAQmxErrorFirmwareIsUpdating (-201377) -#define DAQmxErrorAccessoryEEPROMIsCorrupt (-201376) -#define DAQmxErrorThrmcplLeadOffsetNullingCalNotSupported (-201375) -#define DAQmxErrorSelfCalFailedTryExtCal (-201374) -#define DAQmxErrorOutputP2PNotSupportedWithMultithreadedScripts (-201373) -#define DAQmxErrorThrmcplCalibrationChannelsOpen (-201372) -#define DAQmxErrorMDNSServiceInstanceAlreadyInUse (-201371) -#define DAQmxErrorIPAddressAlreadyInUse (-201370) -#define DAQmxErrorHostnameAlreadyInUse (-201369) -#define DAQmxErrorInvalidNumberOfCalAdjustmentPoints (-201368) +#define +DAQmxErrorIncompleteGainAndCouplingCalAdjustment (-201391) +#define +DAQmxErrorNetworkStatusConnectionLost (-201390) +#define +DAQmxErrorModuleChangeDuringConnectionLoss (-201389) +#define +DAQmxErrorNetworkDeviceNotReservedByHost (-201388) +#define +DAQmxErrorDuplicateCalibrationAdjustmentInput (-201387) +#define +DAQmxErrorSelfCalFailedContactTechSupport (-201386) +#define +DAQmxErrorSelfCalFailedToConverge (-201385) +#define +DAQmxErrorUnsupportedSimulatedModuleForSimulatedChassis (-201384) +#define +DAQmxErrorLoggingWriteSizeTooBig (-201383) +#define +DAQmxErrorLoggingWriteSizeNotDivisible (-201382) +#define +DAQmxErrorMyDAQPowerRailFault (-201381) +#define +DAQmxErrorDeviceDoesNotSupportThisOperation (-201380) +#define +DAQmxErrorNetworkDevicesNotSupportedOnThisPlatform (-201379) +#define +DAQmxErrorUnknownFirmwareVersion (-201378) +#define +DAQmxErrorFirmwareIsUpdating (-201377) +#define +DAQmxErrorAccessoryEEPROMIsCorrupt (-201376) +#define +DAQmxErrorThrmcplLeadOffsetNullingCalNotSupported (-201375) +#define +DAQmxErrorSelfCalFailedTryExtCal (-201374) +#define +DAQmxErrorOutputP2PNotSupportedWithMultithreadedScripts (-201373) +#define +DAQmxErrorThrmcplCalibrationChannelsOpen (-201372) +#define +DAQmxErrorMDNSServiceInstanceAlreadyInUse (-201371) +#define +DAQmxErrorIPAddressAlreadyInUse (-201370) +#define +DAQmxErrorHostnameAlreadyInUse (-201369) +#define +DAQmxErrorInvalidNumberOfCalAdjustmentPoints (-201368) #define DAQmxErrorFilterOrDigitalSyncInternalSignal (-201367) -#define DAQmxErrorBadDDSSource (-201366) -#define DAQmxErrorOnboardRegenWithMoreThan16Channels (-201365) -#define DAQmxErrorTriggerTooFast (-201364) -#define DAQmxErrorMinMaxOutsideTableRange (-201363) -#define DAQmxErrorChannelExpansionWithInvalidAnalogTriggerDevice (-201362) -#define DAQmxErrorSyncPulseSrcInvalidForTask (-201361) -#define DAQmxErrorInvalidCarrierSlotNumberSpecd (-201360) -#define DAQmxErrorCardsMustBeInSameCarrier (-201359) -#define DAQmxErrorCardDevCarrierSimMustMatch (-201358) -#define DAQmxErrorDevMustHaveAtLeastOneCard (-201357) -#define DAQmxErrorCardTopologyError (-201356) -#define DAQmxErrorExceededCarrierPowerLimit (-201355) -#define DAQmxErrorCardsIncompatible (-201354) -#define DAQmxErrorAnalogBusNotValid (-201353) -#define DAQmxErrorReservationConflict (-201352) -#define DAQmxErrorMemMappedOnDemandNotSupported (-201351) -#define DAQmxErrorSlaveWithNoStartTriggerConfigured (-201350) -#define DAQmxErrorChannelExpansionWithDifferentTriggerDevices (-201349) -#define DAQmxErrorCounterSyncAndRetriggered (-201348) -#define DAQmxErrorNoExternalSyncPulseDetected (-201347) -#define DAQmxErrorSlaveAndNoExternalSyncPulse (-201346) -#define DAQmxErrorCustomTimingRequiredForAttribute (-201345) -#define DAQmxErrorCustomTimingModeNotSet (-201344) -#define DAQmxErrorAccessoryPowerTripped (-201343) +#define +DAQmxErrorBadDDSSource (-201366) +#define +DAQmxErrorOnboardRegenWithMoreThan16Channels (-201365) +#define +DAQmxErrorTriggerTooFast (-201364) +#define +DAQmxErrorMinMaxOutsideTableRange (-201363) +#define +DAQmxErrorChannelExpansionWithInvalidAnalogTriggerDevice (-201362) +#define +DAQmxErrorSyncPulseSrcInvalidForTask (-201361) +#define +DAQmxErrorInvalidCarrierSlotNumberSpecd (-201360) +#define +DAQmxErrorCardsMustBeInSameCarrier (-201359) +#define +DAQmxErrorCardDevCarrierSimMustMatch (-201358) +#define +DAQmxErrorDevMustHaveAtLeastOneCard (-201357) +#define +DAQmxErrorCardTopologyError (-201356) +#define +DAQmxErrorExceededCarrierPowerLimit (-201355) +#define +DAQmxErrorCardsIncompatible (-201354) +#define +DAQmxErrorAnalogBusNotValid (-201353) +#define +DAQmxErrorReservationConflict (-201352) +#define +DAQmxErrorMemMappedOnDemandNotSupported (-201351) +#define +DAQmxErrorSlaveWithNoStartTriggerConfigured (-201350) +#define +DAQmxErrorChannelExpansionWithDifferentTriggerDevices (-201349) +#define +DAQmxErrorCounterSyncAndRetriggered (-201348) +#define +DAQmxErrorNoExternalSyncPulseDetected (-201347) +#define +DAQmxErrorSlaveAndNoExternalSyncPulse (-201346) +#define +DAQmxErrorCustomTimingRequiredForAttribute (-201345) +#define +DAQmxErrorCustomTimingModeNotSet (-201344) +#define +DAQmxErrorAccessoryPowerTripped (-201343) #define DAQmxErrorUnsupportedAccessory (-201342) -#define DAQmxErrorInvalidAccessoryChange (-201341) -#define DAQmxErrorFirmwareRequiresUpgrade (-201340) -#define DAQmxErrorFastExternalTimebaseNotSupportedForDevice (-201339) -#define DAQmxErrorInvalidShuntLocationForCalibration (-201338) -#define DAQmxErrorDeviceNameTooLong (-201337) -#define DAQmxErrorBridgeScalesUnsupported (-201336) -#define DAQmxErrorMismatchedElecPhysValues (-201335) -#define DAQmxErrorLinearRequiresUniquePoints (-201334) -#define DAQmxErrorMissingRequiredScalingParameter (-201333) -#define DAQmxErrorLoggingNotSupportOnOutputTasks (-201332) -#define DAQmxErrorMemoryMappedHardwareTimedNonBufferedUnsupported (-201331) -#define DAQmxErrorCannotUpdatePulseTrainWithAutoIncrementEnabled (-201330) -#define DAQmxErrorHWTimedSinglePointAndDataXferNotDMA (-201329) -#define DAQmxErrorSCCSecondStageEmpty (-201328) -#define DAQmxErrorSCCInvalidDualStageCombo (-201327) -#define DAQmxErrorSCCInvalidSecondStage (-201326) -#define DAQmxErrorSCCInvalidFirstStage (-201325) -#define DAQmxErrorCounterMultipleSampleClockedChannels (-201324) -#define DAQmxError2CounterMeasurementModeAndSampleClocked (-201323) -#define DAQmxErrorCantHaveBothMemMappedAndNonMemMappedTasks (-201322) -#define DAQmxErrorMemMappedDataReadByAnotherProcess (-201321) -#define DAQmxErrorRetriggeringInvalidForGivenSettings (-201320) -#define DAQmxErrorAIOverrun (-201319) -#define DAQmxErrorCOOverrun (-201318) +#define +DAQmxErrorInvalidAccessoryChange (-201341) +#define +DAQmxErrorFirmwareRequiresUpgrade (-201340) +#define +DAQmxErrorFastExternalTimebaseNotSupportedForDevice (-201339) +#define +DAQmxErrorInvalidShuntLocationForCalibration (-201338) +#define +DAQmxErrorDeviceNameTooLong (-201337) +#define +DAQmxErrorBridgeScalesUnsupported (-201336) +#define +DAQmxErrorMismatchedElecPhysValues (-201335) +#define +DAQmxErrorLinearRequiresUniquePoints (-201334) +#define +DAQmxErrorMissingRequiredScalingParameter (-201333) +#define +DAQmxErrorLoggingNotSupportOnOutputTasks (-201332) +#define +DAQmxErrorMemoryMappedHardwareTimedNonBufferedUnsupported (-201331) +#define +DAQmxErrorCannotUpdatePulseTrainWithAutoIncrementEnabled (-201330) +#define +DAQmxErrorHWTimedSinglePointAndDataXferNotDMA (-201329) +#define +DAQmxErrorSCCSecondStageEmpty (-201328) +#define +DAQmxErrorSCCInvalidDualStageCombo (-201327) +#define +DAQmxErrorSCCInvalidSecondStage (-201326) +#define +DAQmxErrorSCCInvalidFirstStage (-201325) +#define +DAQmxErrorCounterMultipleSampleClockedChannels (-201324) +#define +DAQmxError2CounterMeasurementModeAndSampleClocked (-201323) +#define +DAQmxErrorCantHaveBothMemMappedAndNonMemMappedTasks (-201322) +#define +DAQmxErrorMemMappedDataReadByAnotherProcess (-201321) +#define +DAQmxErrorRetriggeringInvalidForGivenSettings (-201320) +#define +DAQmxErrorAIOverrun (-201319) +#define +DAQmxErrorCOOverrun (-201318) #define DAQmxErrorCounterMultipleBufferedChannels (-201317) -#define DAQmxErrorInvalidTimebaseForCOHWTSP (-201316) -#define DAQmxErrorWriteBeforeEvent (-201315) -#define DAQmxErrorCIOverrun (-201314) -#define DAQmxErrorCounterNonResponsiveAndReset (-201313) -#define DAQmxErrorMeasTypeOrChannelNotSupportedForLogging (-201312) -#define DAQmxErrorFileAlreadyOpenedForWrite (-201311) -#define DAQmxErrorTdmsNotFound (-201310) -#define DAQmxErrorGenericFileIO (-201309) -#define DAQmxErrorFiniteSTCCounterNotSupportedForLogging (-201308) -#define DAQmxErrorMeasurementTypeNotSupportedForLogging (-201307) -#define DAQmxErrorFileAlreadyOpened (-201306) -#define DAQmxErrorDiskFull (-201305) -#define DAQmxErrorFilePathInvalid (-201304) -#define DAQmxErrorFileVersionMismatch (-201303) -#define DAQmxErrorFileWriteProtected (-201302) -#define DAQmxErrorReadNotSupportedForLoggingMode (-201301) -#define DAQmxErrorAttributeNotSupportedWhenLogging (-201300) -#define DAQmxErrorLoggingModeNotSupportedNonBuffered (-201299) -#define DAQmxErrorPropertyNotSupportedWithConflictingProperty (-201298) -#define DAQmxErrorParallelSSHOnConnector1 (-201297) -#define DAQmxErrorCOOnlyImplicitSampleTimingTypeSupported (-201296) -#define DAQmxErrorCalibrationFailedAOOutOfRange (-201295) -#define DAQmxErrorCalibrationFailedAIOutOfRange (-201294) -#define DAQmxErrorCalPWMLinearityFailed (-201293) +#define +DAQmxErrorInvalidTimebaseForCOHWTSP (-201316) +#define +DAQmxErrorWriteBeforeEvent (-201315) +#define +DAQmxErrorCIOverrun (-201314) +#define +DAQmxErrorCounterNonResponsiveAndReset (-201313) +#define +DAQmxErrorMeasTypeOrChannelNotSupportedForLogging (-201312) +#define +DAQmxErrorFileAlreadyOpenedForWrite (-201311) +#define +DAQmxErrorTdmsNotFound (-201310) +#define +DAQmxErrorGenericFileIO (-201309) +#define +DAQmxErrorFiniteSTCCounterNotSupportedForLogging (-201308) +#define +DAQmxErrorMeasurementTypeNotSupportedForLogging (-201307) +#define +DAQmxErrorFileAlreadyOpened (-201306) +#define +DAQmxErrorDiskFull (-201305) +#define +DAQmxErrorFilePathInvalid (-201304) +#define +DAQmxErrorFileVersionMismatch (-201303) +#define +DAQmxErrorFileWriteProtected (-201302) +#define +DAQmxErrorReadNotSupportedForLoggingMode (-201301) +#define +DAQmxErrorAttributeNotSupportedWhenLogging (-201300) +#define +DAQmxErrorLoggingModeNotSupportedNonBuffered (-201299) +#define +DAQmxErrorPropertyNotSupportedWithConflictingProperty (-201298) +#define +DAQmxErrorParallelSSHOnConnector1 (-201297) +#define +DAQmxErrorCOOnlyImplicitSampleTimingTypeSupported (-201296) +#define +DAQmxErrorCalibrationFailedAOOutOfRange (-201295) +#define +DAQmxErrorCalibrationFailedAIOutOfRange (-201294) +#define +DAQmxErrorCalPWMLinearityFailed (-201293) #define DAQmxErrorOverrunUnderflowConfigurationCombo (-201292) -#define DAQmxErrorCannotWriteToFiniteCOTask (-201291) -#define DAQmxErrorNetworkDAQInvalidWEPKeyLength (-201290) -#define DAQmxErrorCalInputsShortedNotSupported (-201289) -#define DAQmxErrorCannotSetPropertyWhenTaskIsReserved (-201288) -#define DAQmxErrorMinus12VFuseBlown (-201287) -#define DAQmxErrorPlus12VFuseBlown (-201286) -#define DAQmxErrorPlus5VFuseBlown (-201285) -#define DAQmxErrorPlus3VFuseBlown (-201284) -#define DAQmxErrorDeviceSerialPortError (-201283) -#define DAQmxErrorPowerUpStateMachineNotDone (-201282) -#define DAQmxErrorTooManyTriggersSpecifiedInTask (-201281) -#define DAQmxErrorVerticalOffsetNotSupportedOnDevice (-201280) -#define DAQmxErrorInvalidCouplingForMeasurementType (-201279) -#define DAQmxErrorDigitalLineUpdateTooFastForDevice (-201278) -#define DAQmxErrorCertificateIsTooBigToTransfer (-201277) -#define DAQmxErrorOnlyPEMOrDERCertiticatesAccepted (-201276) -#define DAQmxErrorCalCouplingNotSupported (-201275) -#define DAQmxErrorDeviceNotSupportedIn64Bit (-201274) -#define DAQmxErrorNetworkDeviceInUse (-201273) -#define DAQmxErrorInvalidIPv4AddressFormat (-201272) -#define DAQmxErrorNetworkProductTypeMismatch (-201271) -#define DAQmxErrorOnlyPEMCertificatesAccepted (-201270) -#define DAQmxErrorCalibrationRequiresPrototypingBoardEnabled (-201269) -#define DAQmxErrorAllCurrentLimitingResourcesAlreadyTaken (-201268) +#define +DAQmxErrorCannotWriteToFiniteCOTask (-201291) +#define +DAQmxErrorNetworkDAQInvalidWEPKeyLength (-201290) +#define +DAQmxErrorCalInputsShortedNotSupported (-201289) +#define +DAQmxErrorCannotSetPropertyWhenTaskIsReserved (-201288) +#define +DAQmxErrorMinus12VFuseBlown (-201287) +#define +DAQmxErrorPlus12VFuseBlown (-201286) +#define +DAQmxErrorPlus5VFuseBlown (-201285) +#define +DAQmxErrorPlus3VFuseBlown (-201284) +#define +DAQmxErrorDeviceSerialPortError (-201283) +#define +DAQmxErrorPowerUpStateMachineNotDone (-201282) +#define +DAQmxErrorTooManyTriggersSpecifiedInTask (-201281) +#define +DAQmxErrorVerticalOffsetNotSupportedOnDevice (-201280) +#define +DAQmxErrorInvalidCouplingForMeasurementType (-201279) +#define +DAQmxErrorDigitalLineUpdateTooFastForDevice (-201278) +#define +DAQmxErrorCertificateIsTooBigToTransfer (-201277) +#define +DAQmxErrorOnlyPEMOrDERCertiticatesAccepted (-201276) +#define +DAQmxErrorCalCouplingNotSupported (-201275) +#define +DAQmxErrorDeviceNotSupportedIn64Bit (-201274) +#define +DAQmxErrorNetworkDeviceInUse (-201273) +#define +DAQmxErrorInvalidIPv4AddressFormat (-201272) +#define +DAQmxErrorNetworkProductTypeMismatch (-201271) +#define +DAQmxErrorOnlyPEMCertificatesAccepted (-201270) +#define +DAQmxErrorCalibrationRequiresPrototypingBoardEnabled (-201269) +#define +DAQmxErrorAllCurrentLimitingResourcesAlreadyTaken (-201268) #define DAQmxErrorUserDefInfoStringBadLength (-201267) -#define DAQmxErrorPropertyNotFound (-201266) -#define DAQmxErrorOverVoltageProtectionActivated (-201265) -#define DAQmxErrorScaledIQWaveformTooLarge (-201264) -#define DAQmxErrorFirmwareFailedToDownload (-201263) -#define DAQmxErrorPropertyNotSupportedForBusType (-201262) -#define DAQmxErrorChangeRateWhileRunningCouldNotBeCompleted (-201261) -#define DAQmxErrorCannotQueryManualControlAttribute (-201260) -#define DAQmxErrorInvalidNetworkConfiguration (-201259) -#define DAQmxErrorInvalidWirelessConfiguration (-201258) -#define DAQmxErrorInvalidWirelessCountryCode (-201257) -#define DAQmxErrorInvalidWirelessChannel (-201256) -#define DAQmxErrorNetworkEEPROMHasChanged (-201255) -#define DAQmxErrorNetworkSerialNumberMismatch (-201254) -#define DAQmxErrorNetworkStatusDown (-201253) -#define DAQmxErrorNetworkTargetUnreachable (-201252) -#define DAQmxErrorNetworkTargetNotFound (-201251) -#define DAQmxErrorNetworkStatusTimedOut (-201250) -#define DAQmxErrorInvalidWirelessSecuritySelection (-201249) -#define DAQmxErrorNetworkDeviceConfigurationLocked (-201248) -#define DAQmxErrorNetworkDAQDeviceNotSupported (-201247) -#define DAQmxErrorNetworkDAQCannotCreateEmptySleeve (-201246) -#define DAQmxErrorUserDefInfoStringTooLong (-201245) -#define DAQmxErrorModuleTypeDoesNotMatchModuleTypeInDestination (-201244) -#define DAQmxErrorInvalidTEDSInterfaceAddress (-201243) +#define +DAQmxErrorPropertyNotFound (-201266) +#define +DAQmxErrorOverVoltageProtectionActivated (-201265) +#define +DAQmxErrorScaledIQWaveformTooLarge (-201264) +#define +DAQmxErrorFirmwareFailedToDownload (-201263) +#define +DAQmxErrorPropertyNotSupportedForBusType (-201262) +#define +DAQmxErrorChangeRateWhileRunningCouldNotBeCompleted (-201261) +#define +DAQmxErrorCannotQueryManualControlAttribute (-201260) +#define +DAQmxErrorInvalidNetworkConfiguration (-201259) +#define +DAQmxErrorInvalidWirelessConfiguration (-201258) +#define +DAQmxErrorInvalidWirelessCountryCode (-201257) +#define +DAQmxErrorInvalidWirelessChannel (-201256) +#define +DAQmxErrorNetworkEEPROMHasChanged (-201255) +#define +DAQmxErrorNetworkSerialNumberMismatch (-201254) +#define +DAQmxErrorNetworkStatusDown (-201253) +#define +DAQmxErrorNetworkTargetUnreachable (-201252) +#define +DAQmxErrorNetworkTargetNotFound (-201251) +#define +DAQmxErrorNetworkStatusTimedOut (-201250) +#define +DAQmxErrorInvalidWirelessSecuritySelection (-201249) +#define +DAQmxErrorNetworkDeviceConfigurationLocked (-201248) +#define +DAQmxErrorNetworkDAQDeviceNotSupported (-201247) +#define +DAQmxErrorNetworkDAQCannotCreateEmptySleeve (-201246) +#define +DAQmxErrorUserDefInfoStringTooLong (-201245) +#define +DAQmxErrorModuleTypeDoesNotMatchModuleTypeInDestination (-201244) +#define +DAQmxErrorInvalidTEDSInterfaceAddress (-201243) #define DAQmxErrorDevDoesNotSupportSCXIComm (-201242) -#define DAQmxErrorSCXICommDevConnector0MustBeCabledToModule (-201241) -#define DAQmxErrorSCXIModuleDoesNotSupportDigitizationMode (-201240) -#define DAQmxErrorDevDoesNotSupportMultiplexedSCXIDigitizationMode (-201239) -#define DAQmxErrorDevOrDevPhysChanDoesNotSupportSCXIDigitization (-201238) -#define DAQmxErrorInvalidPhysChanName (-201237) -#define DAQmxErrorSCXIChassisCommModeInvalid (-201236) -#define DAQmxErrorRequiredDependencyNotFound (-201235) -#define DAQmxErrorInvalidStorage (-201234) -#define DAQmxErrorInvalidObject (-201233) -#define DAQmxErrorStorageAlteredPriorToSave (-201232) -#define DAQmxErrorTaskDoesNotReferenceLocalChannel (-201231) -#define DAQmxErrorReferencedDevSimMustMatchTarget (-201230) -#define DAQmxErrorProgrammedIOFailsBecauseOfWatchdogTimer (-201229) -#define DAQmxErrorWatchdogTimerFailsBecauseOfProgrammedIO (-201228) -#define DAQmxErrorCantUseThisTimingEngineWithAPort (-201227) -#define DAQmxErrorProgrammedIOConflict (-201226) -#define DAQmxErrorChangeDetectionIncompatibleWithProgrammedIO (-201225) -#define DAQmxErrorTristateNotEnoughLines (-201224) -#define DAQmxErrorTristateConflict (-201223) -#define DAQmxErrorGenerateOrFiniteWaitExpectedBeforeBreakBlock (-201222) -#define DAQmxErrorBreakBlockNotAllowedInLoop (-201221) -#define DAQmxErrorClearTriggerNotAllowedInBreakBlock (-201220) -#define DAQmxErrorNestingNotAllowedInBreakBlock (-201219) -#define DAQmxErrorIfElseBlockNotAllowedInBreakBlock (-201218) +#define +DAQmxErrorSCXICommDevConnector0MustBeCabledToModule (-201241) +#define +DAQmxErrorSCXIModuleDoesNotSupportDigitizationMode (-201240) +#define +DAQmxErrorDevDoesNotSupportMultiplexedSCXIDigitizationMode (-201239) +#define +DAQmxErrorDevOrDevPhysChanDoesNotSupportSCXIDigitization (-201238) +#define +DAQmxErrorInvalidPhysChanName (-201237) +#define +DAQmxErrorSCXIChassisCommModeInvalid (-201236) +#define +DAQmxErrorRequiredDependencyNotFound (-201235) +#define +DAQmxErrorInvalidStorage (-201234) +#define +DAQmxErrorInvalidObject (-201233) +#define +DAQmxErrorStorageAlteredPriorToSave (-201232) +#define +DAQmxErrorTaskDoesNotReferenceLocalChannel (-201231) +#define +DAQmxErrorReferencedDevSimMustMatchTarget (-201230) +#define +DAQmxErrorProgrammedIOFailsBecauseOfWatchdogTimer (-201229) +#define +DAQmxErrorWatchdogTimerFailsBecauseOfProgrammedIO (-201228) +#define +DAQmxErrorCantUseThisTimingEngineWithAPort (-201227) +#define +DAQmxErrorProgrammedIOConflict (-201226) +#define +DAQmxErrorChangeDetectionIncompatibleWithProgrammedIO (-201225) +#define +DAQmxErrorTristateNotEnoughLines (-201224) +#define +DAQmxErrorTristateConflict (-201223) +#define +DAQmxErrorGenerateOrFiniteWaitExpectedBeforeBreakBlock (-201222) +#define +DAQmxErrorBreakBlockNotAllowedInLoop (-201221) +#define +DAQmxErrorClearTriggerNotAllowedInBreakBlock (-201220) +#define +DAQmxErrorNestingNotAllowedInBreakBlock (-201219) +#define +DAQmxErrorIfElseBlockNotAllowedInBreakBlock (-201218) #define DAQmxErrorRepeatUntilTriggerLoopNotAllowedInBreakBlock (-201217) -#define DAQmxErrorWaitUntilTriggerNotAllowedInBreakBlock (-201216) -#define DAQmxErrorMarkerPosInvalidInBreakBlock (-201215) -#define DAQmxErrorInvalidWaitDurationInBreakBlock (-201214) -#define DAQmxErrorInvalidSubsetLengthInBreakBlock (-201213) -#define DAQmxErrorInvalidWaveformLengthInBreakBlock (-201212) -#define DAQmxErrorInvalidWaitDurationBeforeBreakBlock (-201211) -#define DAQmxErrorInvalidSubsetLengthBeforeBreakBlock (-201210) -#define DAQmxErrorInvalidWaveformLengthBeforeBreakBlock (-201209) -#define DAQmxErrorSampleRateTooHighForADCTimingMode (-201208) -#define DAQmxErrorActiveDevNotSupportedWithMultiDevTask (-201207) -#define DAQmxErrorRealDevAndSimDevNotSupportedInSameTask (-201206) -#define DAQmxErrorRTSISimMustMatchDevSim (-201205) -#define DAQmxErrorBridgeShuntCaNotSupported (-201204) -#define DAQmxErrorStrainShuntCaNotSupported (-201203) -#define DAQmxErrorGainTooLargeForGainCalConst (-201202) -#define DAQmxErrorOffsetTooLargeForOffsetCalConst (-201201) -#define DAQmxErrorElvisPrototypingBoardRemoved (-201200) -#define DAQmxErrorElvis2PowerRailFault (-201199) -#define DAQmxErrorElvis2PhysicalChansFault (-201198) -#define DAQmxErrorElvis2PhysicalChansThermalEvent (-201197) -#define DAQmxErrorRXBitErrorRateLimitExceeded (-201196) -#define DAQmxErrorPHYBitErrorRateLimitExceeded (-201195) -#define DAQmxErrorTwoPartAttributeCalledOutOfOrder (-201194) -#define DAQmxErrorInvalidSCXIChassisAddress (-201193) +#define +DAQmxErrorWaitUntilTriggerNotAllowedInBreakBlock (-201216) +#define +DAQmxErrorMarkerPosInvalidInBreakBlock (-201215) +#define +DAQmxErrorInvalidWaitDurationInBreakBlock (-201214) +#define +DAQmxErrorInvalidSubsetLengthInBreakBlock (-201213) +#define +DAQmxErrorInvalidWaveformLengthInBreakBlock (-201212) +#define +DAQmxErrorInvalidWaitDurationBeforeBreakBlock (-201211) +#define +DAQmxErrorInvalidSubsetLengthBeforeBreakBlock (-201210) +#define +DAQmxErrorInvalidWaveformLengthBeforeBreakBlock (-201209) +#define +DAQmxErrorSampleRateTooHighForADCTimingMode (-201208) +#define +DAQmxErrorActiveDevNotSupportedWithMultiDevTask (-201207) +#define +DAQmxErrorRealDevAndSimDevNotSupportedInSameTask (-201206) +#define +DAQmxErrorRTSISimMustMatchDevSim (-201205) +#define +DAQmxErrorBridgeShuntCaNotSupported (-201204) +#define +DAQmxErrorStrainShuntCaNotSupported (-201203) +#define +DAQmxErrorGainTooLargeForGainCalConst (-201202) +#define +DAQmxErrorOffsetTooLargeForOffsetCalConst (-201201) +#define +DAQmxErrorElvisPrototypingBoardRemoved (-201200) +#define +DAQmxErrorElvis2PowerRailFault (-201199) +#define +DAQmxErrorElvis2PhysicalChansFault (-201198) +#define +DAQmxErrorElvis2PhysicalChansThermalEvent (-201197) +#define +DAQmxErrorRXBitErrorRateLimitExceeded (-201196) +#define +DAQmxErrorPHYBitErrorRateLimitExceeded (-201195) +#define +DAQmxErrorTwoPartAttributeCalledOutOfOrder (-201194) +#define +DAQmxErrorInvalidSCXIChassisAddress (-201193) #define DAQmxErrorCouldNotConnectToRemoteMXS (-201192) -#define DAQmxErrorExcitationStateRequiredForAttributes (-201191) -#define DAQmxErrorDeviceNotUsableUntilUSBReplug (-201190) -#define DAQmxErrorInputFIFOOverflowDuringCalibrationOnFullSpeedUSB (-201189) -#define DAQmxErrorInputFIFOOverflowDuringCalibration (-201188) -#define DAQmxErrorCJCChanConflictsWithNonThermocoupleChan (-201187) -#define DAQmxErrorCommDeviceForPXIBackplaneNotInRightmostSlot (-201186) -#define DAQmxErrorCommDeviceForPXIBackplaneNotInSameChassis (-201185) -#define DAQmxErrorCommDeviceForPXIBackplaneNotPXI (-201184) -#define DAQmxErrorInvalidCalExcitFrequency (-201183) -#define DAQmxErrorInvalidCalExcitVoltage (-201182) -#define DAQmxErrorInvalidAIInputSrc (-201181) -#define DAQmxErrorInvalidCalInputRef (-201180) -#define DAQmxErrordBReferenceValueNotGreaterThanZero (-201179) -#define DAQmxErrorSampleClockRateIsTooFastForSampleClockTiming (-201178) -#define DAQmxErrorDeviceNotUsableUntilColdStart (-201177) -#define DAQmxErrorSampleClockRateIsTooFastForBurstTiming (-201176) -#define DAQmxErrorDevImportFailedAssociatedResourceIDsNotSupported (-201175) -#define DAQmxErrorSCXI1600ImportNotSupported (-201174) -#define DAQmxErrorPowerSupplyConfigurationFailed (-201173) -#define DAQmxErrorIEPEWithDCNotAllowed (-201172) -#define DAQmxErrorMinTempForThermocoupleTypeOutsideAccuracyForPolyScaling (-201171) -#define DAQmxErrorDevImportFailedNoDeviceToOverwriteAndSimulationNotSupported (-201170) -#define DAQmxErrorDevImportFailedDeviceNotSupportedOnDestination (-201169) -#define DAQmxErrorFirmwareIsTooOld (-201168) +#define +DAQmxErrorExcitationStateRequiredForAttributes (-201191) +#define +DAQmxErrorDeviceNotUsableUntilUSBReplug (-201190) +#define +DAQmxErrorInputFIFOOverflowDuringCalibrationOnFullSpeedUSB (-201189) +#define +DAQmxErrorInputFIFOOverflowDuringCalibration (-201188) +#define +DAQmxErrorCJCChanConflictsWithNonThermocoupleChan (-201187) +#define +DAQmxErrorCommDeviceForPXIBackplaneNotInRightmostSlot (-201186) +#define +DAQmxErrorCommDeviceForPXIBackplaneNotInSameChassis (-201185) +#define +DAQmxErrorCommDeviceForPXIBackplaneNotPXI (-201184) +#define +DAQmxErrorInvalidCalExcitFrequency (-201183) +#define +DAQmxErrorInvalidCalExcitVoltage (-201182) +#define +DAQmxErrorInvalidAIInputSrc (-201181) +#define +DAQmxErrorInvalidCalInputRef (-201180) +#define +DAQmxErrordBReferenceValueNotGreaterThanZero (-201179) +#define +DAQmxErrorSampleClockRateIsTooFastForSampleClockTiming (-201178) +#define +DAQmxErrorDeviceNotUsableUntilColdStart (-201177) +#define +DAQmxErrorSampleClockRateIsTooFastForBurstTiming (-201176) +#define +DAQmxErrorDevImportFailedAssociatedResourceIDsNotSupported (-201175) +#define +DAQmxErrorSCXI1600ImportNotSupported (-201174) +#define +DAQmxErrorPowerSupplyConfigurationFailed (-201173) +#define +DAQmxErrorIEPEWithDCNotAllowed (-201172) +#define +DAQmxErrorMinTempForThermocoupleTypeOutsideAccuracyForPolyScaling (-201171) +#define +DAQmxErrorDevImportFailedNoDeviceToOverwriteAndSimulationNotSupported (-201170) +#define +DAQmxErrorDevImportFailedDeviceNotSupportedOnDestination (-201169) +#define +DAQmxErrorFirmwareIsTooOld (-201168) #define DAQmxErrorFirmwareCouldntUpdate (-201167) -#define DAQmxErrorFirmwareIsCorrupt (-201166) -#define DAQmxErrorFirmwareTooNew (-201165) -#define DAQmxErrorSampClockCannotBeExportedFromExternalSampClockSrc (-201164) -#define DAQmxErrorPhysChanReservedForInputWhenDesiredForOutput (-201163) -#define DAQmxErrorPhysChanReservedForOutputWhenDesiredForInput (-201162) -#define DAQmxErrorSpecifiedCDAQSlotNotEmpty (-201161) -#define DAQmxErrorDeviceDoesNotSupportSimulation (-201160) -#define DAQmxErrorInvalidCDAQSlotNumberSpecd (-201159) -#define DAQmxErrorCSeriesModSimMustMatchCDAQChassisSim (-201158) -#define DAQmxErrorSCCCabledDevMustNotBeSimWhenSCCCarrierIsNotSim (-201157) -#define DAQmxErrorSCCModSimMustMatchSCCCarrierSim (-201156) -#define DAQmxErrorSCXIModuleDoesNotSupportSimulation (-201155) -#define DAQmxErrorSCXICableDevMustNotBeSimWhenModIsNotSim (-201154) -#define DAQmxErrorSCXIDigitizerSimMustNotBeSimWhenModIsNotSim (-201153) -#define DAQmxErrorSCXIModSimMustMatchSCXIChassisSim (-201152) -#define DAQmxErrorSimPXIDevReqSlotAndChassisSpecd (-201151) -#define DAQmxErrorSimDevConflictWithRealDev (-201150) -#define DAQmxErrorInsufficientDataForCalibration (-201149) -#define DAQmxErrorTriggerChannelMustBeEnabled (-201148) -#define DAQmxErrorCalibrationDataConflictCouldNotBeResolved (-201147) -#define DAQmxErrorSoftwareTooNewForSelfCalibrationData (-201146) -#define DAQmxErrorSoftwareTooNewForExtCalibrationData (-201145) -#define DAQmxErrorSelfCalibrationDataTooNewForSoftware (-201144) -#define DAQmxErrorExtCalibrationDataTooNewForSoftware (-201143) +#define +DAQmxErrorFirmwareIsCorrupt (-201166) +#define +DAQmxErrorFirmwareTooNew (-201165) +#define +DAQmxErrorSampClockCannotBeExportedFromExternalSampClockSrc (-201164) +#define +DAQmxErrorPhysChanReservedForInputWhenDesiredForOutput (-201163) +#define +DAQmxErrorPhysChanReservedForOutputWhenDesiredForInput (-201162) +#define +DAQmxErrorSpecifiedCDAQSlotNotEmpty (-201161) +#define +DAQmxErrorDeviceDoesNotSupportSimulation (-201160) +#define +DAQmxErrorInvalidCDAQSlotNumberSpecd (-201159) +#define +DAQmxErrorCSeriesModSimMustMatchCDAQChassisSim (-201158) +#define +DAQmxErrorSCCCabledDevMustNotBeSimWhenSCCCarrierIsNotSim (-201157) +#define +DAQmxErrorSCCModSimMustMatchSCCCarrierSim (-201156) +#define +DAQmxErrorSCXIModuleDoesNotSupportSimulation (-201155) +#define +DAQmxErrorSCXICableDevMustNotBeSimWhenModIsNotSim (-201154) +#define +DAQmxErrorSCXIDigitizerSimMustNotBeSimWhenModIsNotSim (-201153) +#define +DAQmxErrorSCXIModSimMustMatchSCXIChassisSim (-201152) +#define +DAQmxErrorSimPXIDevReqSlotAndChassisSpecd (-201151) +#define +DAQmxErrorSimDevConflictWithRealDev (-201150) +#define +DAQmxErrorInsufficientDataForCalibration (-201149) +#define +DAQmxErrorTriggerChannelMustBeEnabled (-201148) +#define +DAQmxErrorCalibrationDataConflictCouldNotBeResolved (-201147) +#define +DAQmxErrorSoftwareTooNewForSelfCalibrationData (-201146) +#define +DAQmxErrorSoftwareTooNewForExtCalibrationData (-201145) +#define +DAQmxErrorSelfCalibrationDataTooNewForSoftware (-201144) +#define +DAQmxErrorExtCalibrationDataTooNewForSoftware (-201143) #define DAQmxErrorSoftwareTooNewForEEPROM (-201142) -#define DAQmxErrorEEPROMTooNewForSoftware (-201141) -#define DAQmxErrorSoftwareTooNewForHardware (-201140) -#define DAQmxErrorHardwareTooNewForSoftware (-201139) -#define DAQmxErrorTaskCannotRestartFirstSampNotAvailToGenerate (-201138) -#define DAQmxErrorOnlyUseStartTrigSrcPrptyWithDevDataLines (-201137) -#define DAQmxErrorOnlyUsePauseTrigSrcPrptyWithDevDataLines (-201136) -#define DAQmxErrorOnlyUseRefTrigSrcPrptyWithDevDataLines (-201135) -#define DAQmxErrorPauseTrigDigPatternSizeDoesNotMatchSrcSize (-201134) -#define DAQmxErrorLineConflictCDAQ (-201133) -#define DAQmxErrorCannotWriteBeyondFinalFiniteSample (-201132) -#define DAQmxErrorRefAndStartTriggerSrcCantBeSame (-201131) -#define DAQmxErrorMemMappingIncompatibleWithPhysChansInTask (-201130) -#define DAQmxErrorOutputDriveTypeMemMappingConflict (-201129) -#define DAQmxErrorCASchematiceviceIndexInvalid (-201128) -#define DAQmxErrorRatiometricDevicesMustUseExcitationForScaling (-201127) -#define DAQmxErrorPropertyRequiresPerDeviceCfg (-201126) -#define DAQmxErrorAICouplingAndAIInputSourceConflict (-201125) -#define DAQmxErrorOnlyOneTaskCanPerformDOMemoryMappingAtATime (-201124) -#define DAQmxErrorTooManyChansForAnalogRefTrigCDAQ (-201123) -#define DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingType (-201122) -#define DAQmxErrorCPUNotSupportedRequireSSE (-201121) -#define DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingResponseMode (-201120) -#define DAQmxErrorConflictingNextWriteIsLastAndRegenModeProperties (-201119) -#define DAQmxErrorMStudioOperationDoesNotSupportDeviceContext (-201118) +#define +DAQmxErrorEEPROMTooNewForSoftware (-201141) +#define +DAQmxErrorSoftwareTooNewForHardware (-201140) +#define +DAQmxErrorHardwareTooNewForSoftware (-201139) +#define +DAQmxErrorTaskCannotRestartFirstSampNotAvailToGenerate (-201138) +#define +DAQmxErrorOnlyUseStartTrigSrcPrptyWithDevDataLines (-201137) +#define +DAQmxErrorOnlyUsePauseTrigSrcPrptyWithDevDataLines (-201136) +#define +DAQmxErrorOnlyUseRefTrigSrcPrptyWithDevDataLines (-201135) +#define +DAQmxErrorPauseTrigDigPatternSizeDoesNotMatchSrcSize (-201134) +#define +DAQmxErrorLineConflictCDAQ (-201133) +#define +DAQmxErrorCannotWriteBeyondFinalFiniteSample (-201132) +#define +DAQmxErrorRefAndStartTriggerSrcCantBeSame (-201131) +#define +DAQmxErrorMemMappingIncompatibleWithPhysChansInTask (-201130) +#define +DAQmxErrorOutputDriveTypeMemMappingConflict (-201129) +#define +DAQmxErrorCASchematiceviceIndexInvalid (-201128) +#define +DAQmxErrorRatiometricDevicesMustUseExcitationForScaling (-201127) +#define +DAQmxErrorPropertyRequiresPerDeviceCfg (-201126) +#define +DAQmxErrorAICouplingAndAIInputSourceConflict (-201125) +#define +DAQmxErrorOnlyOneTaskCanPerformDOMemoryMappingAtATime (-201124) +#define +DAQmxErrorTooManyChansForAnalogRefTrigCDAQ (-201123) +#define +DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingType (-201122) +#define +DAQmxErrorCPUNotSupportedRequireSSE (-201121) +#define +DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingResponseMode (-201120) +#define +DAQmxErrorConflictingNextWriteIsLastAndRegenModeProperties (-201119) +#define +DAQmxErrorMStudioOperationDoesNotSupportDeviceContext (-201118) #define DAQmxErrorPropertyValueInChannelExpansionContextInvalid (-201117) -#define DAQmxErrorHWTimedNonBufferedAONotSupported (-201116) -#define DAQmxErrorWaveformLengthNotMultOfQuantum (-201115) -#define DAQmxErrorDSAExpansionMixedBoardsWrongOrderInPXIChassis (-201114) -#define DAQmxErrorPowerLevelTooLowForOOK (-201113) -#define DAQmxErrorDeviceComponentTestFailure (-201112) -#define DAQmxErrorUserDefinedWfmWithOOKUnsupported (-201111) -#define DAQmxErrorInvalidDigitalModulationUserDefinedWaveform (-201110) -#define DAQmxErrorBothRefInAndRefOutEnabled (-201109) -#define DAQmxErrorBothAnalogAndDigitalModulationEnabled (-201108) -#define DAQmxErrorBufferedOpsNotSupportedInSpecdSlotForCDAQ (-201107) -#define DAQmxErrorPhysChanNotSupportedInSpecdSlotForCDAQ (-201106) -#define DAQmxErrorResourceReservedWithConflictingSettings (-201105) -#define DAQmxErrorInconsistentAnalogTrigSettingsCDAQ (-201104) -#define DAQmxErrorTooManyChansForAnalogPauseTrigCDAQ (-201103) -#define DAQmxErrorAnalogTrigNotFirstInScanListCDAQ (-201102) -#define DAQmxErrorTooManyChansGivenTimingType (-201101) -#define DAQmxErrorSampClkTimebaseDivWithExtSampClk (-201100) -#define DAQmxErrorCantSaveTaskWithPerDeviceTimingProperties (-201099) -#define DAQmxErrorConflictingAutoZeroMode (-201098) -#define DAQmxErrorSampClkRateNotSupportedWithEAREnabled (-201097) -#define DAQmxErrorSampClkTimebaseRateNotSpecd (-201096) -#define DAQmxErrorSessionCorruptedByDLLReload (-201095) -#define DAQmxErrorActiveDevNotSupportedWithChanExpansion (-201094) -#define DAQmxErrorSampClkRateInvalid (-201093) +#define +DAQmxErrorHWTimedNonBufferedAONotSupported (-201116) +#define +DAQmxErrorWaveformLengthNotMultOfQuantum (-201115) +#define +DAQmxErrorDSAExpansionMixedBoardsWrongOrderInPXIChassis (-201114) +#define +DAQmxErrorPowerLevelTooLowForOOK (-201113) +#define +DAQmxErrorDeviceComponentTestFailure (-201112) +#define +DAQmxErrorUserDefinedWfmWithOOKUnsupported (-201111) +#define +DAQmxErrorInvalidDigitalModulationUserDefinedWaveform (-201110) +#define +DAQmxErrorBothRefInAndRefOutEnabled (-201109) +#define +DAQmxErrorBothAnalogAndDigitalModulationEnabled (-201108) +#define +DAQmxErrorBufferedOpsNotSupportedInSpecdSlotForCDAQ (-201107) +#define +DAQmxErrorPhysChanNotSupportedInSpecdSlotForCDAQ (-201106) +#define +DAQmxErrorResourceReservedWithConflictingSettings (-201105) +#define +DAQmxErrorInconsistentAnalogTrigSettingsCDAQ (-201104) +#define +DAQmxErrorTooManyChansForAnalogPauseTrigCDAQ (-201103) +#define +DAQmxErrorAnalogTrigNotFirstInScanListCDAQ (-201102) +#define +DAQmxErrorTooManyChansGivenTimingType (-201101) +#define +DAQmxErrorSampClkTimebaseDivWithExtSampClk (-201100) +#define +DAQmxErrorCantSaveTaskWithPerDeviceTimingProperties (-201099) +#define +DAQmxErrorConflictingAutoZeroMode (-201098) +#define +DAQmxErrorSampClkRateNotSupportedWithEAREnabled (-201097) +#define +DAQmxErrorSampClkTimebaseRateNotSpecd (-201096) +#define +DAQmxErrorSessionCorruptedByDLLReload (-201095) +#define +DAQmxErrorActiveDevNotSupportedWithChanExpansion (-201094) +#define +DAQmxErrorSampClkRateInvalid (-201093) #define DAQmxErrorExtSyncPulseSrcCannotBeExported (-201092) -#define DAQmxErrorSyncPulseMinDelayToStartNeededForExtSyncPulseSrc (-201091) -#define DAQmxErrorSyncPulseSrcInvalid (-201090) -#define DAQmxErrorSampClkTimebaseRateInvalid (-201089) -#define DAQmxErrorSampClkTimebaseSrcInvalid (-201088) -#define DAQmxErrorSampClkRateMustBeSpecd (-201087) -#define DAQmxErrorInvalidAttributeName (-201086) -#define DAQmxErrorCJCChanNameMustBeSetWhenCJCSrcIsScannableChan (-201085) -#define DAQmxErrorHiddenChanMissingInChansPropertyInCfgFile (-201084) -#define DAQmxErrorChanNamesNotSpecdInCfgFile (-201083) -#define DAQmxErrorDuplicateHiddenChanNamesInCfgFile (-201082) -#define DAQmxErrorDuplicateChanNameInCfgFile (-201081) -#define DAQmxErrorInvalidSCCModuleForSlotSpecd (-201080) -#define DAQmxErrorInvalidSCCSlotNumberSpecd (-201079) -#define DAQmxErrorInvalidSectionIdentifier (-201078) -#define DAQmxErrorInvalidSectionName (-201077) -#define DAQmxErrorDAQmxVersionNotSupported (-201076) -#define DAQmxErrorSWObjectsFoundInFile (-201075) -#define DAQmxErrorHWObjectsFoundInFile (-201074) -#define DAQmxErrorLocalChannelSpecdWithNoParentTask (-201073) -#define DAQmxErrorTaskReferencesMissingLocalChannel (-201072) -#define DAQmxErrorTaskReferencesLocalChannelFromOtherTask (-201071) -#define DAQmxErrorTaskMissingChannelProperty (-201070) -#define DAQmxErrorInvalidLocalChanName (-201069) -#define DAQmxErrorInvalidEscapeCharacterInString (-201068) +#define +DAQmxErrorSyncPulseMinDelayToStartNeededForExtSyncPulseSrc (-201091) +#define +DAQmxErrorSyncPulseSrcInvalid (-201090) +#define +DAQmxErrorSampClkTimebaseRateInvalid (-201089) +#define +DAQmxErrorSampClkTimebaseSrcInvalid (-201088) +#define +DAQmxErrorSampClkRateMustBeSpecd (-201087) +#define +DAQmxErrorInvalidAttributeName (-201086) +#define +DAQmxErrorCJCChanNameMustBeSetWhenCJCSrcIsScannableChan (-201085) +#define +DAQmxErrorHiddenChanMissingInChansPropertyInCfgFile (-201084) +#define +DAQmxErrorChanNamesNotSpecdInCfgFile (-201083) +#define +DAQmxErrorDuplicateHiddenChanNamesInCfgFile (-201082) +#define +DAQmxErrorDuplicateChanNameInCfgFile (-201081) +#define +DAQmxErrorInvalidSCCModuleForSlotSpecd (-201080) +#define +DAQmxErrorInvalidSCCSlotNumberSpecd (-201079) +#define +DAQmxErrorInvalidSectionIdentifier (-201078) +#define +DAQmxErrorInvalidSectionName (-201077) +#define +DAQmxErrorDAQmxVersionNotSupported (-201076) +#define +DAQmxErrorSWObjectsFoundInFile (-201075) +#define +DAQmxErrorHWObjectsFoundInFile (-201074) +#define +DAQmxErrorLocalChannelSpecdWithNoParentTask (-201073) +#define +DAQmxErrorTaskReferencesMissingLocalChannel (-201072) +#define +DAQmxErrorTaskReferencesLocalChannelFromOtherTask (-201071) +#define +DAQmxErrorTaskMissingChannelProperty (-201070) +#define +DAQmxErrorInvalidLocalChanName (-201069) +#define +DAQmxErrorInvalidEscapeCharacterInString (-201068) #define DAQmxErrorInvalidTableIdentifier (-201067) -#define DAQmxErrorValueFoundInInvalidColumn (-201066) -#define DAQmxErrorMissingStartOfTable (-201065) -#define DAQmxErrorFileMissingRequiredDAQmxHeader (-201064) -#define DAQmxErrorDeviceIDDoesNotMatch (-201063) -#define DAQmxErrorBufferedOperationsNotSupportedOnSelectedLines (-201062) -#define DAQmxErrorPropertyConflictsWithScale (-201061) -#define DAQmxErrorInvalidINIFileSyntax (-201060) -#define DAQmxErrorDeviceInfoFailedPXIChassisNotIdentified (-201059) -#define DAQmxErrorInvalidHWProductNumber (-201058) -#define DAQmxErrorInvalidHWProductType (-201057) -#define DAQmxErrorInvalidNumericFormatSpecd (-201056) -#define DAQmxErrorDuplicatePropertyInObject (-201055) -#define DAQmxErrorInvalidEnumValueSpecd (-201054) -#define DAQmxErrorTEDSSensorPhysicalChannelConflict (-201053) -#define DAQmxErrorTooManyPhysicalChansForTEDSInterfaceSpecd (-201052) -#define DAQmxErrorIncapableTEDSInterfaceControllingDeviceSpecd (-201051) -#define DAQmxErrorSCCCarrierSpecdIsMissing (-201050) -#define DAQmxErrorIncapableSCCDigitizingDeviceSpecd (-201049) -#define DAQmxErrorAccessorySettingNotApplicable (-201048) -#define DAQmxErrorDeviceAndConnectorSpecdAlreadyOccupied (-201047) -#define DAQmxErrorIllegalAccessoryTypeForDeviceSpecd (-201046) -#define DAQmxErrorInvalidDeviceConnectorNumberSpecd (-201045) -#define DAQmxErrorInvalidAccessoryName (-201044) -#define DAQmxErrorMoreThanOneMatchForSpecdDevice (-201043) +#define +DAQmxErrorValueFoundInInvalidColumn (-201066) +#define +DAQmxErrorMissingStartOfTable (-201065) +#define +DAQmxErrorFileMissingRequiredDAQmxHeader (-201064) +#define +DAQmxErrorDeviceIDDoesNotMatch (-201063) +#define +DAQmxErrorBufferedOperationsNotSupportedOnSelectedLines (-201062) +#define +DAQmxErrorPropertyConflictsWithScale (-201061) +#define +DAQmxErrorInvalidINIFileSyntax (-201060) +#define +DAQmxErrorDeviceInfoFailedPXIChassisNotIdentified (-201059) +#define +DAQmxErrorInvalidHWProductNumber (-201058) +#define +DAQmxErrorInvalidHWProductType (-201057) +#define +DAQmxErrorInvalidNumericFormatSpecd (-201056) +#define +DAQmxErrorDuplicatePropertyInObject (-201055) +#define +DAQmxErrorInvalidEnumValueSpecd (-201054) +#define +DAQmxErrorTEDSSensorPhysicalChannelConflict (-201053) +#define +DAQmxErrorTooManyPhysicalChansForTEDSInterfaceSpecd (-201052) +#define +DAQmxErrorIncapableTEDSInterfaceControllingDeviceSpecd (-201051) +#define +DAQmxErrorSCCCarrierSpecdIsMissing (-201050) +#define +DAQmxErrorIncapableSCCDigitizingDeviceSpecd (-201049) +#define +DAQmxErrorAccessorySettingNotApplicable (-201048) +#define +DAQmxErrorDeviceAndConnectorSpecdAlreadyOccupied (-201047) +#define +DAQmxErrorIllegalAccessoryTypeForDeviceSpecd (-201046) +#define +DAQmxErrorInvalidDeviceConnectorNumberSpecd (-201045) +#define +DAQmxErrorInvalidAccessoryName (-201044) +#define +DAQmxErrorMoreThanOneMatchForSpecdDevice (-201043) #define DAQmxErrorNoMatchForSpecdDevice (-201042) -#define DAQmxErrorProductTypeAndProductNumberConflict (-201041) -#define DAQmxErrorExtraPropertyDetectedInSpecdObject (-201040) -#define DAQmxErrorRequiredPropertyMissing (-201039) -#define DAQmxErrorCantSetAuthorForLocalChan (-201038) -#define DAQmxErrorInvalidTimeValue (-201037) -#define DAQmxErrorInvalidTimeFormat (-201036) -#define DAQmxErrorDigDevChansSpecdInModeOtherThanParallel (-201035) -#define DAQmxErrorCascadeDigitizationModeNotSupported (-201034) -#define DAQmxErrorSpecdSlotAlreadyOccupied (-201033) -#define DAQmxErrorInvalidSCXISlotNumberSpecd (-201032) -#define DAQmxErrorAddressAlreadyInUse (-201031) -#define DAQmxErrorSpecdDeviceDoesNotSupportRTSI (-201030) -#define DAQmxErrorSpecdDeviceIsAlreadyOnRTSIBus (-201029) -#define DAQmxErrorIdentifierInUse (-201028) -#define DAQmxErrorWaitForNextSampleClockOrReadDetected3OrMoreMissedSampClks (-201027) -#define DAQmxErrorHWTimedAndDataXferPIO (-201026) -#define DAQmxErrorNonBufferedAndHWTimed (-201025) -#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriodPolled (-201024) -#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod2 (-201023) -#define DAQmxErrorCOCannotKeepUpInHWTimedSinglePointPolled (-201022) -#define DAQmxErrorWriteRecoveryCannotKeepUpInHWTimedSinglePoint (-201021) -#define DAQmxErrorNoChangeDetectionOnSelectedLineForDevice (-201020) -#define DAQmxErrorSMIOPauseTriggersNotSupportedWithChannelExpansion (-201019) -#define DAQmxErrorClockMasterForExternalClockNotLongestPipeline (-201018) +#define +DAQmxErrorProductTypeAndProductNumberConflict (-201041) +#define +DAQmxErrorExtraPropertyDetectedInSpecdObject (-201040) +#define +DAQmxErrorRequiredPropertyMissing (-201039) +#define +DAQmxErrorCantSetAuthorForLocalChan (-201038) +#define +DAQmxErrorInvalidTimeValue (-201037) +#define +DAQmxErrorInvalidTimeFormat (-201036) +#define +DAQmxErrorDigDevChansSpecdInModeOtherThanParallel (-201035) +#define +DAQmxErrorCascadeDigitizationModeNotSupported (-201034) +#define +DAQmxErrorSpecdSlotAlreadyOccupied (-201033) +#define +DAQmxErrorInvalidSCXISlotNumberSpecd (-201032) +#define +DAQmxErrorAddressAlreadyInUse (-201031) +#define +DAQmxErrorSpecdDeviceDoesNotSupportRTSI (-201030) +#define +DAQmxErrorSpecdDeviceIsAlreadyOnRTSIBus (-201029) +#define +DAQmxErrorIdentifierInUse (-201028) +#define +DAQmxErrorWaitForNextSampleClockOrReadDetected3OrMoreMissedSampClks (-201027) +#define +DAQmxErrorHWTimedAndDataXferPIO (-201026) +#define +DAQmxErrorNonBufferedAndHWTimed (-201025) +#define +DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriodPolled (-201024) +#define +DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod2 (-201023) +#define +DAQmxErrorCOCannotKeepUpInHWTimedSinglePointPolled (-201022) +#define +DAQmxErrorWriteRecoveryCannotKeepUpInHWTimedSinglePoint (-201021) +#define +DAQmxErrorNoChangeDetectionOnSelectedLineForDevice (-201020) +#define +DAQmxErrorSMIOPauseTriggersNotSupportedWithChannelExpansion (-201019) +#define +DAQmxErrorClockMasterForExternalClockNotLongestPipeline (-201018) #define DAQmxErrorUnsupportedUnicodeByteOrderMarker (-201017) -#define DAQmxErrorTooManyInstructionsInLoopInScript (-201016) -#define DAQmxErrorPLLNotLocked (-201015) -#define DAQmxErrorIfElseBlockNotAllowedInFiniteRepeatLoopInScript (-201014) -#define DAQmxErrorIfElseBlockNotAllowedInConditionalRepeatLoopInScript (-201013) -#define DAQmxErrorClearIsLastInstructionInIfElseBlockInScript (-201012) -#define DAQmxErrorInvalidWaitDurationBeforeIfElseBlockInScript (-201011) -#define DAQmxErrorMarkerPosInvalidBeforeIfElseBlockInScript (-201010) -#define DAQmxErrorInvalidSubsetLengthBeforeIfElseBlockInScript (-201009) -#define DAQmxErrorInvalidWaveformLengthBeforeIfElseBlockInScript (-201008) -#define DAQmxErrorGenerateOrFiniteWaitInstructionExpectedBeforeIfElseBlockInScript (-201007) -#define DAQmxErrorCalPasswordNotSupported (-201006) -#define DAQmxErrorSetupCalNeededBeforeAdjustCal (-201005) -#define DAQmxErrorMultipleChansNotSupportedDuringCalSetup (-201004) -#define DAQmxErrorDevCannotBeAccessed (-201003) -#define DAQmxErrorSampClkRateDoesntMatchSampClkSrc (-201002) -#define DAQmxErrorSampClkRateNotSupportedWithEARDisabled (-201001) -#define DAQmxErrorLabVIEWVersionDoesntSupportDAQmxEvents (-201000) -#define DAQmxErrorCOReadyForNewValNotSupportedWithOnDemand (-200999) -#define DAQmxErrorCIHWTimedSinglePointNotSupportedForMeasType (-200998) -#define DAQmxErrorOnDemandNotSupportedWithHWTimedSinglePoint (-200997) -#define DAQmxErrorHWTimedSinglePointAndDataXferNotProgIO (-200996) -#define DAQmxErrorMemMapAndHWTimedSinglePoint (-200995) -#define DAQmxErrorCannotSetPropertyWhenHWTimedSinglePointTaskIsRunning (-200994) -#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod (-200993) +#define +DAQmxErrorTooManyInstructionsInLoopInScript (-201016) +#define +DAQmxErrorPLLNotLocked (-201015) +#define +DAQmxErrorIfElseBlockNotAllowedInFiniteRepeatLoopInScript (-201014) +#define +DAQmxErrorIfElseBlockNotAllowedInConditionalRepeatLoopInScript (-201013) +#define +DAQmxErrorClearIsLastInstructionInIfElseBlockInScript (-201012) +#define +DAQmxErrorInvalidWaitDurationBeforeIfElseBlockInScript (-201011) +#define +DAQmxErrorMarkerPosInvalidBeforeIfElseBlockInScript (-201010) +#define +DAQmxErrorInvalidSubsetLengthBeforeIfElseBlockInScript (-201009) +#define +DAQmxErrorInvalidWaveformLengthBeforeIfElseBlockInScript (-201008) +#define +DAQmxErrorGenerateOrFiniteWaitInstructionExpectedBeforeIfElseBlockInScript (-201007) +#define +DAQmxErrorCalPasswordNotSupported (-201006) +#define +DAQmxErrorSetupCalNeededBeforeAdjustCal (-201005) +#define +DAQmxErrorMultipleChansNotSupportedDuringCalSetup (-201004) +#define +DAQmxErrorDevCannotBeAccessed (-201003) +#define +DAQmxErrorSampClkRateDoesntMatchSampClkSrc (-201002) +#define +DAQmxErrorSampClkRateNotSupportedWithEARDisabled (-201001) +#define +DAQmxErrorLabVIEWVersionDoesntSupportDAQmxEvents (-201000) +#define +DAQmxErrorCOReadyForNewValNotSupportedWithOnDemand (-200999) +#define +DAQmxErrorCIHWTimedSinglePointNotSupportedForMeasType (-200998) +#define +DAQmxErrorOnDemandNotSupportedWithHWTimedSinglePoint (-200997) +#define +DAQmxErrorHWTimedSinglePointAndDataXferNotProgIO (-200996) +#define +DAQmxErrorMemMapAndHWTimedSinglePoint (-200995) +#define +DAQmxErrorCannotSetPropertyWhenHWTimedSinglePointTaskIsRunning (-200994) +#define +DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod (-200993) #define DAQmxErrorTooManyEventsGenerated (-200992) -#define DAQmxErrorMStudioCppRemoveEventsBeforeStop (-200991) -#define DAQmxErrorCAPICannotRegisterSyncEventsFromMultipleThreads (-200990) -#define DAQmxErrorReadWaitNextSampClkWaitMismatchTwo (-200989) -#define DAQmxErrorReadWaitNextSampClkWaitMismatchOne (-200988) -#define DAQmxErrorDAQmxSignalEventTypeNotSupportedByChanTypesOrDevicesInTask (-200987) -#define DAQmxErrorCannotUnregisterDAQmxSoftwareEventWhileTaskIsRunning (-200986) -#define DAQmxErrorAutoStartWriteNotAllowedEventRegistered (-200985) -#define DAQmxErrorAutoStartReadNotAllowedEventRegistered (-200984) -#define DAQmxErrorCannotGetPropertyWhenTaskNotReservedCommittedOrRunning (-200983) -#define DAQmxErrorSignalEventsNotSupportedByDevice (-200982) -#define DAQmxErrorEveryNSamplesAcqIntoBufferEventNotSupportedByDevice (-200981) -#define DAQmxErrorEveryNSampsTransferredFromBufferEventNotSupportedByDevice (-200980) -#define DAQmxErrorCAPISyncEventsTaskStateChangeNotAllowedFromDifferentThread (-200979) -#define DAQmxErrorDAQmxSWEventsWithDifferentCallMechanisms (-200978) -#define DAQmxErrorCantSaveChanWithPolyCalScaleAndAllowInteractiveEdit (-200977) -#define DAQmxErrorChanDoesNotSupportCJC (-200976) -#define DAQmxErrorCOReadyForNewValNotSupportedWithHWTimedSinglePoint (-200975) -#define DAQmxErrorDACAllowConnToGndNotSupportedByDevWhenRefSrcExt (-200974) -#define DAQmxErrorCantGetPropertyTaskNotRunning (-200973) -#define DAQmxErrorCantSetPropertyTaskNotRunning (-200972) -#define DAQmxErrorCantSetPropertyTaskNotRunningCommitted (-200971) -#define DAQmxErrorAIEveryNSampsEventIntervalNotMultipleOf2 (-200970) -#define DAQmxErrorInvalidTEDSPhysChanNotAI (-200969) -#define DAQmxErrorCAPICannotPerformTaskOperationInAsyncCallback (-200968) +#define +DAQmxErrorMStudioCppRemoveEventsBeforeStop (-200991) +#define +DAQmxErrorCAPICannotRegisterSyncEventsFromMultipleThreads (-200990) +#define +DAQmxErrorReadWaitNextSampClkWaitMismatchTwo (-200989) +#define +DAQmxErrorReadWaitNextSampClkWaitMismatchOne (-200988) +#define +DAQmxErrorDAQmxSignalEventTypeNotSupportedByChanTypesOrDevicesInTask (-200987) +#define +DAQmxErrorCannotUnregisterDAQmxSoftwareEventWhileTaskIsRunning (-200986) +#define +DAQmxErrorAutoStartWriteNotAllowedEventRegistered (-200985) +#define +DAQmxErrorAutoStartReadNotAllowedEventRegistered (-200984) +#define +DAQmxErrorCannotGetPropertyWhenTaskNotReservedCommittedOrRunning (-200983) +#define +DAQmxErrorSignalEventsNotSupportedByDevice (-200982) +#define +DAQmxErrorEveryNSamplesAcqIntoBufferEventNotSupportedByDevice (-200981) +#define +DAQmxErrorEveryNSampsTransferredFromBufferEventNotSupportedByDevice (-200980) +#define +DAQmxErrorCAPISyncEventsTaskStateChangeNotAllowedFromDifferentThread (-200979) +#define +DAQmxErrorDAQmxSWEventsWithDifferentCallMechanisms (-200978) +#define +DAQmxErrorCantSaveChanWithPolyCalScaleAndAllowInteractiveEdit (-200977) +#define +DAQmxErrorChanDoesNotSupportCJC (-200976) +#define +DAQmxErrorCOReadyForNewValNotSupportedWithHWTimedSinglePoint (-200975) +#define +DAQmxErrorDACAllowConnToGndNotSupportedByDevWhenRefSrcExt (-200974) +#define +DAQmxErrorCantGetPropertyTaskNotRunning (-200973) +#define +DAQmxErrorCantSetPropertyTaskNotRunning (-200972) +#define +DAQmxErrorCantSetPropertyTaskNotRunningCommitted (-200971) +#define +DAQmxErrorAIEveryNSampsEventIntervalNotMultipleOf2 (-200970) +#define +DAQmxErrorInvalidTEDSPhysChanNotAI (-200969) +#define +DAQmxErrorCAPICannotPerformTaskOperationInAsyncCallback (-200968) #define DAQmxErrorEveryNSampsTransferredFromBufferEventAlreadyRegistered (-200967) -#define DAQmxErrorEveryNSampsAcqIntoBufferEventAlreadyRegistered (-200966) -#define DAQmxErrorEveryNSampsTransferredFromBufferNotForInput (-200965) -#define DAQmxErrorEveryNSampsAcqIntoBufferNotForOutput (-200964) -#define DAQmxErrorAOSampTimingTypeDifferentIn2Tasks (-200963) -#define DAQmxErrorCouldNotDownloadFirmwareHWDamaged (-200962) -#define DAQmxErrorCouldNotDownloadFirmwareFileMissingOrDamaged (-200961) -#define DAQmxErrorCannotRegisterDAQmxSoftwareEventWhileTaskIsRunning (-200960) -#define DAQmxErrorDifferentRawDataCompression (-200959) -#define DAQmxErrorConfiguredTEDSInterfaceDevNotDetected (-200958) -#define DAQmxErrorCompressedSampSizeExceedsResolution (-200957) -#define DAQmxErrorChanDoesNotSupportCompression (-200956) -#define DAQmxErrorDifferentRawDataFormats (-200955) -#define DAQmxErrorSampClkOutputTermIncludesStartTrigSrc (-200954) -#define DAQmxErrorStartTrigSrcEqualToSampClkSrc (-200953) -#define DAQmxErrorEventOutputTermIncludesTrigSrc (-200952) -#define DAQmxErrorCOMultipleWritesBetweenSampClks (-200951) -#define DAQmxErrorDoneEventAlreadyRegistered (-200950) -#define DAQmxErrorSignalEventAlreadyRegistered (-200949) -#define DAQmxErrorCannotHaveTimedLoopAndDAQmxSignalEventsInSameTask (-200948) -#define DAQmxErrorNeedLabVIEW711PatchToUseDAQmxEvents (-200947) -#define DAQmxErrorStartFailedDueToWriteFailure (-200946) -#define DAQmxErrorDataXferCustomThresholdNotDMAXferMethodSpecifiedForDev (-200945) -#define DAQmxErrorDataXferRequestConditionNotSpecifiedForCustomThreshold (-200944) -#define DAQmxErrorDataXferCustomThresholdNotSpecified (-200943) +#define +DAQmxErrorEveryNSampsAcqIntoBufferEventAlreadyRegistered (-200966) +#define +DAQmxErrorEveryNSampsTransferredFromBufferNotForInput (-200965) +#define +DAQmxErrorEveryNSampsAcqIntoBufferNotForOutput (-200964) +#define +DAQmxErrorAOSampTimingTypeDifferentIn2Tasks (-200963) +#define +DAQmxErrorCouldNotDownloadFirmwareHWDamaged (-200962) +#define +DAQmxErrorCouldNotDownloadFirmwareFileMissingOrDamaged (-200961) +#define +DAQmxErrorCannotRegisterDAQmxSoftwareEventWhileTaskIsRunning (-200960) +#define +DAQmxErrorDifferentRawDataCompression (-200959) +#define +DAQmxErrorConfiguredTEDSInterfaceDevNotDetected (-200958) +#define +DAQmxErrorCompressedSampSizeExceedsResolution (-200957) +#define +DAQmxErrorChanDoesNotSupportCompression (-200956) +#define +DAQmxErrorDifferentRawDataFormats (-200955) +#define +DAQmxErrorSampClkOutputTermIncludesStartTrigSrc (-200954) +#define +DAQmxErrorStartTrigSrcEqualToSampClkSrc (-200953) +#define +DAQmxErrorEventOutputTermIncludesTrigSrc (-200952) +#define +DAQmxErrorCOMultipleWritesBetweenSampClks (-200951) +#define +DAQmxErrorDoneEventAlreadyRegistered (-200950) +#define +DAQmxErrorSignalEventAlreadyRegistered (-200949) +#define +DAQmxErrorCannotHaveTimedLoopAndDAQmxSignalEventsInSameTask (-200948) +#define +DAQmxErrorNeedLabVIEW711PatchToUseDAQmxEvents (-200947) +#define +DAQmxErrorStartFailedDueToWriteFailure (-200946) +#define +DAQmxErrorDataXferCustomThresholdNotDMAXferMethodSpecifiedForDev (-200945) +#define +DAQmxErrorDataXferRequestConditionNotSpecifiedForCustomThreshold (-200944) +#define +DAQmxErrorDataXferCustomThresholdNotSpecified (-200943) #define DAQmxErrorCAPISyncCallbackNotSupportedOnThisPlatform (-200942) -#define DAQmxErrorCalChanReversePolyCoefNotSpecd (-200941) -#define DAQmxErrorCalChanForwardPolyCoefNotSpecd (-200940) -#define DAQmxErrorChanCalRepeatedNumberInPreScaledVals (-200939) -#define DAQmxErrorChanCalTableNumScaledNotEqualNumPrescaledVals (-200938) -#define DAQmxErrorChanCalTableScaledValsNotSpecd (-200937) -#define DAQmxErrorChanCalTablePreScaledValsNotSpecd (-200936) -#define DAQmxErrorChanCalScaleTypeNotSet (-200935) -#define DAQmxErrorChanCalExpired (-200934) -#define DAQmxErrorChanCalExpirationDateNotSet (-200933) -#define DAQmxError3OutputPortCombinationGivenSampTimingType653x (-200932) -#define DAQmxError3InputPortCombinationGivenSampTimingType653x (-200931) -#define DAQmxError2OutputPortCombinationGivenSampTimingType653x (-200930) -#define DAQmxError2InputPortCombinationGivenSampTimingType653x (-200929) -#define DAQmxErrorPatternMatcherMayBeUsedByOneTrigOnly (-200928) -#define DAQmxErrorNoChansSpecdForPatternSource (-200927) -#define DAQmxErrorChangeDetectionChanNotInTask (-200926) -#define DAQmxErrorChangeDetectionChanNotTristated (-200925) -#define DAQmxErrorWaitModeValueNotSupportedNonBuffered (-200924) -#define DAQmxErrorWaitModePropertyNotSupportedNonBuffered (-200923) -#define DAQmxErrorCantSavePerLineConfigDigChanSoInteractiveEditsAllowed (-200922) -#define DAQmxErrorCantSaveNonPortMultiLineDigChanSoInteractiveEditsAllowed (-200921) -#define DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalNoIrqOnDev (-200920) -#define DAQmxErrorGlobalTaskNameAlreadyChanName (-200919) -#define DAQmxErrorGlobalChanNameAlreadyTaskName (-200918) +#define +DAQmxErrorCalChanReversePolyCoefNotSpecd (-200941) +#define +DAQmxErrorCalChanForwardPolyCoefNotSpecd (-200940) +#define +DAQmxErrorChanCalRepeatedNumberInPreScaledVals (-200939) +#define +DAQmxErrorChanCalTableNumScaledNotEqualNumPrescaledVals (-200938) +#define +DAQmxErrorChanCalTableScaledValsNotSpecd (-200937) +#define +DAQmxErrorChanCalTablePreScaledValsNotSpecd (-200936) +#define +DAQmxErrorChanCalScaleTypeNotSet (-200935) +#define +DAQmxErrorChanCalExpired (-200934) +#define +DAQmxErrorChanCalExpirationDateNotSet (-200933) +#define +DAQmxError3OutputPortCombinationGivenSampTimingType653x (-200932) +#define +DAQmxError3InputPortCombinationGivenSampTimingType653x (-200931) +#define +DAQmxError2OutputPortCombinationGivenSampTimingType653x (-200930) +#define +DAQmxError2InputPortCombinationGivenSampTimingType653x (-200929) +#define +DAQmxErrorPatternMatcherMayBeUsedByOneTrigOnly (-200928) +#define +DAQmxErrorNoChansSpecdForPatternSource (-200927) +#define +DAQmxErrorChangeDetectionChanNotInTask (-200926) +#define +DAQmxErrorChangeDetectionChanNotTristated (-200925) +#define +DAQmxErrorWaitModeValueNotSupportedNonBuffered (-200924) +#define +DAQmxErrorWaitModePropertyNotSupportedNonBuffered (-200923) +#define +DAQmxErrorCantSavePerLineConfigDigChanSoInteractiveEditsAllowed (-200922) +#define +DAQmxErrorCantSaveNonPortMultiLineDigChanSoInteractiveEditsAllowed (-200921) +#define +DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalNoIrqOnDev (-200920) +#define +DAQmxErrorGlobalTaskNameAlreadyChanName (-200919) +#define +DAQmxErrorGlobalChanNameAlreadyTaskName (-200918) #define DAQmxErrorAOEveryNSampsEventIntervalNotMultipleOf2 (-200917) -#define DAQmxErrorSampleTimebaseDivisorNotSupportedGivenTimingType (-200916) -#define DAQmxErrorHandshakeEventOutputTermNotSupportedGivenTimingType (-200915) -#define DAQmxErrorChangeDetectionOutputTermNotSupportedGivenTimingType (-200914) -#define DAQmxErrorReadyForTransferOutputTermNotSupportedGivenTimingType (-200913) -#define DAQmxErrorRefTrigOutputTermNotSupportedGivenTimingType (-200912) -#define DAQmxErrorStartTrigOutputTermNotSupportedGivenTimingType (-200911) -#define DAQmxErrorSampClockOutputTermNotSupportedGivenTimingType (-200910) -#define DAQmxError20MhzTimebaseNotSupportedGivenTimingType (-200909) -#define DAQmxErrorSampClockSourceNotSupportedGivenTimingType (-200908) -#define DAQmxErrorRefTrigTypeNotSupportedGivenTimingType (-200907) -#define DAQmxErrorPauseTrigTypeNotSupportedGivenTimingType (-200906) -#define DAQmxErrorHandshakeTrigTypeNotSupportedGivenTimingType (-200905) -#define DAQmxErrorStartTrigTypeNotSupportedGivenTimingType (-200904) -#define DAQmxErrorRefClkSrcNotSupported (-200903) -#define DAQmxErrorDataVoltageLowAndHighIncompatible (-200902) -#define DAQmxErrorInvalidCharInDigPatternString (-200901) -#define DAQmxErrorCantUsePort3AloneGivenSampTimingTypeOn653x (-200900) -#define DAQmxErrorCantUsePort1AloneGivenSampTimingTypeOn653x (-200899) -#define DAQmxErrorPartialUseOfPhysicalLinesWithinPortNotSupported653x (-200898) -#define DAQmxErrorPhysicalChanNotSupportedGivenSampTimingType653x (-200897) -#define DAQmxErrorCanExportOnlyDigEdgeTrigs (-200896) -#define DAQmxErrorRefTrigDigPatternSizeDoesNotMatchSourceSize (-200895) -#define DAQmxErrorStartTrigDigPatternSizeDoesNotMatchSourceSize (-200894) -#define DAQmxErrorChangeDetectionRisingAndFallingEdgeChanDontMatch (-200893) +#define +DAQmxErrorSampleTimebaseDivisorNotSupportedGivenTimingType (-200916) +#define +DAQmxErrorHandshakeEventOutputTermNotSupportedGivenTimingType (-200915) +#define +DAQmxErrorChangeDetectionOutputTermNotSupportedGivenTimingType (-200914) +#define +DAQmxErrorReadyForTransferOutputTermNotSupportedGivenTimingType (-200913) +#define +DAQmxErrorRefTrigOutputTermNotSupportedGivenTimingType (-200912) +#define +DAQmxErrorStartTrigOutputTermNotSupportedGivenTimingType (-200911) +#define +DAQmxErrorSampClockOutputTermNotSupportedGivenTimingType (-200910) +#define +DAQmxError20MhzTimebaseNotSupportedGivenTimingType (-200909) +#define +DAQmxErrorSampClockSourceNotSupportedGivenTimingType (-200908) +#define +DAQmxErrorRefTrigTypeNotSupportedGivenTimingType (-200907) +#define +DAQmxErrorPauseTrigTypeNotSupportedGivenTimingType (-200906) +#define +DAQmxErrorHandshakeTrigTypeNotSupportedGivenTimingType (-200905) +#define +DAQmxErrorStartTrigTypeNotSupportedGivenTimingType (-200904) +#define +DAQmxErrorRefClkSrcNotSupported (-200903) +#define +DAQmxErrorDataVoltageLowAndHighIncompatible (-200902) +#define +DAQmxErrorInvalidCharInDigPatternString (-200901) +#define +DAQmxErrorCantUsePort3AloneGivenSampTimingTypeOn653x (-200900) +#define +DAQmxErrorCantUsePort1AloneGivenSampTimingTypeOn653x (-200899) +#define +DAQmxErrorPartialUseOfPhysicalLinesWithinPortNotSupported653x (-200898) +#define +DAQmxErrorPhysicalChanNotSupportedGivenSampTimingType653x (-200897) +#define +DAQmxErrorCanExportOnlyDigEdgeTrigs (-200896) +#define +DAQmxErrorRefTrigDigPatternSizeDoesNotMatchSourceSize (-200895) +#define +DAQmxErrorStartTrigDigPatternSizeDoesNotMatchSourceSize (-200894) +#define +DAQmxErrorChangeDetectionRisingAndFallingEdgeChanDontMatch (-200893) #define DAQmxErrorPhysicalChansForChangeDetectionAndPatternMatch653x (-200892) -#define DAQmxErrorCanExportOnlyOnboardSampClk (-200891) -#define DAQmxErrorInternalSampClkNotRisingEdge (-200890) -#define DAQmxErrorRefTrigDigPatternChanNotInTask (-200889) -#define DAQmxErrorRefTrigDigPatternChanNotTristated (-200888) -#define DAQmxErrorStartTrigDigPatternChanNotInTask (-200887) -#define DAQmxErrorStartTrigDigPatternChanNotTristated (-200886) -#define DAQmxErrorPXIStarAndClock10Sync (-200885) -#define DAQmxErrorGlobalChanCannotBeSavedSoInteractiveEditsAllowed (-200884) -#define DAQmxErrorTaskCannotBeSavedSoInteractiveEditsAllowed (-200883) -#define DAQmxErrorInvalidGlobalChan (-200882) -#define DAQmxErrorEveryNSampsEventAlreadyRegistered (-200881) -#define DAQmxErrorEveryNSampsEventIntervalZeroNotSupported (-200880) -#define DAQmxErrorChanSizeTooBigForU16PortWrite (-200879) -#define DAQmxErrorChanSizeTooBigForU16PortRead (-200878) -#define DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalWhenDMA (-200877) -#define DAQmxErrorWriteWhenTaskNotRunningCOTicks (-200876) -#define DAQmxErrorWriteWhenTaskNotRunningCOFreq (-200875) -#define DAQmxErrorWriteWhenTaskNotRunningCOTime (-200874) -#define DAQmxErrorAOMinMaxNotSupportedDACRangeTooSmall (-200873) -#define DAQmxErrorAOMinMaxNotSupportedGivenDACRange (-200872) -#define DAQmxErrorAOMinMaxNotSupportedGivenDACRangeAndOffsetVal (-200871) -#define DAQmxErrorAOMinMaxNotSupportedDACOffsetValInappropriate (-200870) -#define DAQmxErrorAOMinMaxNotSupportedGivenDACOffsetVal (-200869) -#define DAQmxErrorAOMinMaxNotSupportedDACRefValTooSmall (-200868) +#define +DAQmxErrorCanExportOnlyOnboardSampClk (-200891) +#define +DAQmxErrorInternalSampClkNotRisingEdge (-200890) +#define +DAQmxErrorRefTrigDigPatternChanNotInTask (-200889) +#define +DAQmxErrorRefTrigDigPatternChanNotTristated (-200888) +#define +DAQmxErrorStartTrigDigPatternChanNotInTask (-200887) +#define +DAQmxErrorStartTrigDigPatternChanNotTristated (-200886) +#define +DAQmxErrorPXIStarAndClock10Sync (-200885) +#define +DAQmxErrorGlobalChanCannotBeSavedSoInteractiveEditsAllowed (-200884) +#define +DAQmxErrorTaskCannotBeSavedSoInteractiveEditsAllowed (-200883) +#define +DAQmxErrorInvalidGlobalChan (-200882) +#define +DAQmxErrorEveryNSampsEventAlreadyRegistered (-200881) +#define +DAQmxErrorEveryNSampsEventIntervalZeroNotSupported (-200880) +#define +DAQmxErrorChanSizeTooBigForU16PortWrite (-200879) +#define +DAQmxErrorChanSizeTooBigForU16PortRead (-200878) +#define +DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalWhenDMA (-200877) +#define +DAQmxErrorWriteWhenTaskNotRunningCOTicks (-200876) +#define +DAQmxErrorWriteWhenTaskNotRunningCOFreq (-200875) +#define +DAQmxErrorWriteWhenTaskNotRunningCOTime (-200874) +#define +DAQmxErrorAOMinMaxNotSupportedDACRangeTooSmall (-200873) +#define +DAQmxErrorAOMinMaxNotSupportedGivenDACRange (-200872) +#define +DAQmxErrorAOMinMaxNotSupportedGivenDACRangeAndOffsetVal (-200871) +#define +DAQmxErrorAOMinMaxNotSupportedDACOffsetValInappropriate (-200870) +#define +DAQmxErrorAOMinMaxNotSupportedGivenDACOffsetVal (-200869) +#define +DAQmxErrorAOMinMaxNotSupportedDACRefValTooSmall (-200868) #define DAQmxErrorAOMinMaxNotSupportedGivenDACRefVal (-200867) -#define DAQmxErrorAOMinMaxNotSupportedGivenDACRefAndOffsetVal (-200866) -#define DAQmxErrorWhenAcqCompAndNumSampsPerChanExceedsOnBrdBufSize (-200865) -#define DAQmxErrorWhenAcqCompAndNoRefTrig (-200864) -#define DAQmxErrorWaitForNextSampClkNotSupported (-200863) -#define DAQmxErrorDevInUnidentifiedPXIChassis (-200862) -#define DAQmxErrorMaxSoundPressureMicSensitivitRelatedAIPropertiesNotSupportedByDev (-200861) -#define DAQmxErrorMaxSoundPressureAndMicSensitivityNotSupportedByDev (-200860) -#define DAQmxErrorAOBufferSizeZeroForSampClkTimingType (-200859) -#define DAQmxErrorAOCallWriteBeforeStartForSampClkTimingType (-200858) -#define DAQmxErrorInvalidCalLowPassCutoffFreq (-200857) -#define DAQmxErrorSimulationCannotBeDisabledForDevCreatedAsSimulatedDev (-200856) -#define DAQmxErrorCannotAddNewDevsAfterTaskConfiguration (-200855) -#define DAQmxErrorDifftSyncPulseSrcAndSampClkTimebaseSrcDevMultiDevTask (-200854) -#define DAQmxErrorTermWithoutDevInMultiDevTask (-200853) -#define DAQmxErrorSyncNoDevSampClkTimebaseOrSyncPulseInPXISlot2 (-200852) -#define DAQmxErrorPhysicalChanNotOnThisConnector (-200851) -#define DAQmxErrorNumSampsToWaitNotGreaterThanZeroInScript (-200850) -#define DAQmxErrorNumSampsToWaitNotMultipleOfAlignmentQuantumInScript (-200849) -#define DAQmxErrorEveryNSamplesEventNotSupportedForNonBufferedTasks (-200848) -#define DAQmxErrorBufferedAndDataXferPIO (-200847) -#define DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunning (-200846) -#define DAQmxErrorNonBufferedAndDataXferInterrupts (-200845) -#define DAQmxErrorWriteFailedMultipleCtrsWithFREQOUT (-200844) -#define DAQmxErrorReadNotCompleteBefore3SampClkEdges (-200843) +#define +DAQmxErrorAOMinMaxNotSupportedGivenDACRefAndOffsetVal (-200866) +#define +DAQmxErrorWhenAcqCompAndNumSampsPerChanExceedsOnBrdBufSize (-200865) +#define +DAQmxErrorWhenAcqCompAndNoRefTrig (-200864) +#define +DAQmxErrorWaitForNextSampClkNotSupported (-200863) +#define +DAQmxErrorDevInUnidentifiedPXIChassis (-200862) +#define +DAQmxErrorMaxSoundPressureMicSensitivitRelatedAIPropertiesNotSupportedByDev (-200861) +#define +DAQmxErrorMaxSoundPressureAndMicSensitivityNotSupportedByDev (-200860) +#define +DAQmxErrorAOBufferSizeZeroForSampClkTimingType (-200859) +#define +DAQmxErrorAOCallWriteBeforeStartForSampClkTimingType (-200858) +#define +DAQmxErrorInvalidCalLowPassCutoffFreq (-200857) +#define +DAQmxErrorSimulationCannotBeDisabledForDevCreatedAsSimulatedDev (-200856) +#define +DAQmxErrorCannotAddNewDevsAfterTaskConfiguration (-200855) +#define +DAQmxErrorDifftSyncPulseSrcAndSampClkTimebaseSrcDevMultiDevTask (-200854) +#define +DAQmxErrorTermWithoutDevInMultiDevTask (-200853) +#define +DAQmxErrorSyncNoDevSampClkTimebaseOrSyncPulseInPXISlot2 (-200852) +#define +DAQmxErrorPhysicalChanNotOnThisConnector (-200851) +#define +DAQmxErrorNumSampsToWaitNotGreaterThanZeroInScript (-200850) +#define +DAQmxErrorNumSampsToWaitNotMultipleOfAlignmentQuantumInScript (-200849) +#define +DAQmxErrorEveryNSamplesEventNotSupportedForNonBufferedTasks (-200848) +#define +DAQmxErrorBufferedAndDataXferPIO (-200847) +#define +DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunning (-200846) +#define +DAQmxErrorNonBufferedAndDataXferInterrupts (-200845) +#define +DAQmxErrorWriteFailedMultipleCtrsWithFREQOUT (-200844) +#define +DAQmxErrorReadNotCompleteBefore3SampClkEdges (-200843) #define DAQmxErrorCtrHWTimedSinglePointAndDataXferNotProgIO (-200842) -#define DAQmxErrorPrescalerNot1ForInputTerminal (-200841) -#define DAQmxErrorPrescalerNot1ForTimebaseSrc (-200840) -#define DAQmxErrorSampClkTimingTypeWhenTristateIsFalse (-200839) -#define DAQmxErrorOutputBufferSizeNotMultOfXferSize (-200838) -#define DAQmxErrorSampPerChanNotMultOfXferSize (-200837) -#define DAQmxErrorWriteToTEDSFailed (-200836) -#define DAQmxErrorSCXIDevNotUsablePowerTurnedOff (-200835) -#define DAQmxErrorCannotReadWhenAutoStartFalseBufSizeZeroAndTaskNotRunning (-200834) -#define DAQmxErrorCannotReadWhenAutoStartFalseHWTimedSinglePtAndTaskNotRunning (-200833) -#define DAQmxErrorCannotReadWhenAutoStartFalseOnDemandAndTaskNotRunning (-200832) -#define DAQmxErrorSimultaneousAOWhenNotOnDemandTiming (-200831) -#define DAQmxErrorMemMapAndSimultaneousAO (-200830) -#define DAQmxErrorWriteFailedMultipleCOOutputTypes (-200829) -#define DAQmxErrorWriteToTEDSNotSupportedOnRT (-200828) -#define DAQmxErrorVirtualTEDSDataFileError (-200827) -#define DAQmxErrorTEDSSensorDataError (-200826) -#define DAQmxErrorDataSizeMoreThanSizeOfEEPROMOnTEDS (-200825) -#define DAQmxErrorPROMOnTEDSContainsBasicTEDSData (-200824) -#define DAQmxErrorPROMOnTEDSAlreadyWritten (-200823) -#define DAQmxErrorTEDSDoesNotContainPROM (-200822) -#define DAQmxErrorHWTimedSinglePointNotSupportedAI (-200821) -#define DAQmxErrorHWTimedSinglePointOddNumChansInAITask (-200820) -#define DAQmxErrorCantUseOnlyOnBoardMemWithProgrammedIO (-200819) -#define DAQmxErrorSwitchDevShutDownDueToHighTemp (-200818) +#define +DAQmxErrorPrescalerNot1ForInputTerminal (-200841) +#define +DAQmxErrorPrescalerNot1ForTimebaseSrc (-200840) +#define +DAQmxErrorSampClkTimingTypeWhenTristateIsFalse (-200839) +#define +DAQmxErrorOutputBufferSizeNotMultOfXferSize (-200838) +#define +DAQmxErrorSampPerChanNotMultOfXferSize (-200837) +#define +DAQmxErrorWriteToTEDSFailed (-200836) +#define +DAQmxErrorSCXIDevNotUsablePowerTurnedOff (-200835) +#define +DAQmxErrorCannotReadWhenAutoStartFalseBufSizeZeroAndTaskNotRunning (-200834) +#define +DAQmxErrorCannotReadWhenAutoStartFalseHWTimedSinglePtAndTaskNotRunning (-200833) +#define +DAQmxErrorCannotReadWhenAutoStartFalseOnDemandAndTaskNotRunning (-200832) +#define +DAQmxErrorSimultaneousAOWhenNotOnDemandTiming (-200831) +#define +DAQmxErrorMemMapAndSimultaneousAO (-200830) +#define +DAQmxErrorWriteFailedMultipleCOOutputTypes (-200829) +#define +DAQmxErrorWriteToTEDSNotSupportedOnRT (-200828) +#define +DAQmxErrorVirtualTEDSDataFileError (-200827) +#define +DAQmxErrorTEDSSensorDataError (-200826) +#define +DAQmxErrorDataSizeMoreThanSizeOfEEPROMOnTEDS (-200825) +#define +DAQmxErrorPROMOnTEDSContainsBasicTEDSData (-200824) +#define +DAQmxErrorPROMOnTEDSAlreadyWritten (-200823) +#define +DAQmxErrorTEDSDoesNotContainPROM (-200822) +#define +DAQmxErrorHWTimedSinglePointNotSupportedAI (-200821) +#define +DAQmxErrorHWTimedSinglePointOddNumChansInAITask (-200820) +#define +DAQmxErrorCantUseOnlyOnBoardMemWithProgrammedIO (-200819) +#define +DAQmxErrorSwitchDevShutDownDueToHighTemp (-200818) #define DAQmxErrorExcitationNotSupportedWhenTermCfgDiff (-200817) -#define DAQmxErrorTEDSMinElecValGEMaxElecVal (-200816) -#define DAQmxErrorTEDSMinPhysValGEMaxPhysVal (-200815) -#define DAQmxErrorCIOnboardClockNotSupportedAsInputTerm (-200814) -#define DAQmxErrorInvalidSampModeForPositionMeas (-200813) -#define DAQmxErrorTrigWhenAOHWTimedSinglePtSampMode (-200812) -#define DAQmxErrorDAQmxCantUseStringDueToUnknownChar (-200811) -#define DAQmxErrorDAQmxCantRetrieveStringDueToUnknownChar (-200810) -#define DAQmxErrorClearTEDSNotSupportedOnRT (-200809) -#define DAQmxErrorCfgTEDSNotSupportedOnRT (-200808) -#define DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthBySameTask1PerDev (-200807) -#define DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthByAnotherTask1PerDev (-200806) -#define DAQmxErrorNoLastExtCalDateTimeLastExtCalNotDAQmx (-200804) -#define DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandHWTimedSglPt (-200803) -#define DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandBufSizeZero (-200802) -#define DAQmxErrorCOInvalidTimingSrcDueToSignal (-200801) -#define DAQmxErrorCIInvalidTimingSrcForSampClkDueToSampTimingType (-200800) -#define DAQmxErrorCIInvalidTimingSrcForEventCntDueToSampMode (-200799) -#define DAQmxErrorNoChangeDetectOnNonInputDigLineForDev (-200798) -#define DAQmxErrorEmptyStringTermNameNotSupported (-200797) -#define DAQmxErrorMemMapEnabledForHWTimedNonBufferedAO (-200796) -#define DAQmxErrorDevOnboardMemOverflowDuringHWTimedNonBufferedGen (-200795) -#define DAQmxErrorCODAQmxWriteMultipleChans (-200794) -#define DAQmxErrorCantMaintainExistingValueAOSync (-200793) -#define DAQmxErrorMStudioMultiplePhysChansNotSupported (-200792) +#define +DAQmxErrorTEDSMinElecValGEMaxElecVal (-200816) +#define +DAQmxErrorTEDSMinPhysValGEMaxPhysVal (-200815) +#define +DAQmxErrorCIOnboardClockNotSupportedAsInputTerm (-200814) +#define +DAQmxErrorInvalidSampModeForPositionMeas (-200813) +#define +DAQmxErrorTrigWhenAOHWTimedSinglePtSampMode (-200812) +#define +DAQmxErrorDAQmxCantUseStringDueToUnknownChar (-200811) +#define +DAQmxErrorDAQmxCantRetrieveStringDueToUnknownChar (-200810) +#define +DAQmxErrorClearTEDSNotSupportedOnRT (-200809) +#define +DAQmxErrorCfgTEDSNotSupportedOnRT (-200808) +#define +DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthBySameTask1PerDev (-200807) +#define +DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthByAnotherTask1PerDev (-200806) +#define +DAQmxErrorNoLastExtCalDateTimeLastExtCalNotDAQmx (-200804) +#define +DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandHWTimedSglPt (-200803) +#define +DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandBufSizeZero (-200802) +#define +DAQmxErrorCOInvalidTimingSrcDueToSignal (-200801) +#define +DAQmxErrorCIInvalidTimingSrcForSampClkDueToSampTimingType (-200800) +#define +DAQmxErrorCIInvalidTimingSrcForEventCntDueToSampMode (-200799) +#define +DAQmxErrorNoChangeDetectOnNonInputDigLineForDev (-200798) +#define +DAQmxErrorEmptyStringTermNameNotSupported (-200797) +#define +DAQmxErrorMemMapEnabledForHWTimedNonBufferedAO (-200796) +#define +DAQmxErrorDevOnboardMemOverflowDuringHWTimedNonBufferedGen (-200795) +#define +DAQmxErrorCODAQmxWriteMultipleChans (-200794) +#define +DAQmxErrorCantMaintainExistingValueAOSync (-200793) +#define +DAQmxErrorMStudioMultiplePhysChansNotSupported (-200792) #define DAQmxErrorCantConfigureTEDSForChan (-200791) -#define DAQmxErrorWriteDataTypeTooSmall (-200790) -#define DAQmxErrorReadDataTypeTooSmall (-200789) -#define DAQmxErrorMeasuredBridgeOffsetTooHigh (-200788) -#define DAQmxErrorStartTrigConflictWithCOHWTimedSinglePt (-200787) -#define DAQmxErrorSampClkRateExtSampClkTimebaseRateMismatch (-200786) -#define DAQmxErrorInvalidTimingSrcDueToSampTimingType (-200785) -#define DAQmxErrorVirtualTEDSFileNotFound (-200784) -#define DAQmxErrorMStudioNoForwardPolyScaleCoeffs (-200783) -#define DAQmxErrorMStudioNoReversePolyScaleCoeffs (-200782) -#define DAQmxErrorMStudioNoPolyScaleCoeffsUseCalc (-200781) -#define DAQmxErrorMStudioNoForwardPolyScaleCoeffsUseCalc (-200780) -#define DAQmxErrorMStudioNoReversePolyScaleCoeffsUseCalc (-200779) -#define DAQmxErrorCOSampModeSampTimingTypeSampClkConflict (-200778) -#define DAQmxErrorDevCannotProduceMinPulseWidth (-200777) -#define DAQmxErrorCannotProduceMinPulseWidthGivenPropertyValues (-200776) -#define DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherTask (-200775) -#define DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherProperty (-200774) -#define DAQmxErrorDigSyncNotAvailableOnTerm (-200773) -#define DAQmxErrorDigFilterNotAvailableOnTerm (-200772) -#define DAQmxErrorDigFilterEnabledMinPulseWidthNotCfg (-200771) -#define DAQmxErrorDigFilterAndSyncBothEnabled (-200770) -#define DAQmxErrorHWTimedSinglePointAOAndDataXferNotProgIO (-200769) -#define DAQmxErrorNonBufferedAOAndDataXferNotProgIO (-200768) -#define DAQmxErrorProgIODataXferForBufferedAO (-200767) +#define +DAQmxErrorWriteDataTypeTooSmall (-200790) +#define +DAQmxErrorReadDataTypeTooSmall (-200789) +#define +DAQmxErrorMeasuredBridgeOffsetTooHigh (-200788) +#define +DAQmxErrorStartTrigConflictWithCOHWTimedSinglePt (-200787) +#define +DAQmxErrorSampClkRateExtSampClkTimebaseRateMismatch (-200786) +#define +DAQmxErrorInvalidTimingSrcDueToSampTimingType (-200785) +#define +DAQmxErrorVirtualTEDSFileNotFound (-200784) +#define +DAQmxErrorMStudioNoForwardPolyScaleCoeffs (-200783) +#define +DAQmxErrorMStudioNoReversePolyScaleCoeffs (-200782) +#define +DAQmxErrorMStudioNoPolyScaleCoeffsUseCalc (-200781) +#define +DAQmxErrorMStudioNoForwardPolyScaleCoeffsUseCalc (-200780) +#define +DAQmxErrorMStudioNoReversePolyScaleCoeffsUseCalc (-200779) +#define +DAQmxErrorCOSampModeSampTimingTypeSampClkConflict (-200778) +#define +DAQmxErrorDevCannotProduceMinPulseWidth (-200777) +#define +DAQmxErrorCannotProduceMinPulseWidthGivenPropertyValues (-200776) +#define +DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherTask (-200775) +#define +DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherProperty (-200774) +#define +DAQmxErrorDigSyncNotAvailableOnTerm (-200773) +#define +DAQmxErrorDigFilterNotAvailableOnTerm (-200772) +#define +DAQmxErrorDigFilterEnabledMinPulseWidthNotCfg (-200771) +#define +DAQmxErrorDigFilterAndSyncBothEnabled (-200770) +#define +DAQmxErrorHWTimedSinglePointAOAndDataXferNotProgIO (-200769) +#define +DAQmxErrorNonBufferedAOAndDataXferNotProgIO (-200768) +#define +DAQmxErrorProgIODataXferForBufferedAO (-200767) #define DAQmxErrorTEDSLegacyTemplateIDInvalidOrUnsupported (-200766) -#define DAQmxErrorTEDSMappingMethodInvalidOrUnsupported (-200765) -#define DAQmxErrorTEDSLinearMappingSlopeZero (-200764) -#define DAQmxErrorAIInputBufferSizeNotMultOfXferSize (-200763) -#define DAQmxErrorNoSyncPulseExtSampClkTimebase (-200762) -#define DAQmxErrorNoSyncPulseAnotherTaskRunning (-200761) -#define DAQmxErrorAOMinMaxNotInGainRange (-200760) -#define DAQmxErrorAOMinMaxNotInDACRange (-200759) -#define DAQmxErrorDevOnlySupportsSampClkTimingAO (-200758) -#define DAQmxErrorDevOnlySupportsSampClkTimingAI (-200757) -#define DAQmxErrorTEDSIncompatibleSensorAndMeasType (-200756) -#define DAQmxErrorTEDSMultipleCalTemplatesNotSupported (-200755) -#define DAQmxErrorTEDSTemplateParametersNotSupported (-200754) -#define DAQmxErrorParsingTEDSData (-200753) -#define DAQmxErrorMultipleActivePhysChansNotSupported (-200752) -#define DAQmxErrorNoChansSpecdForChangeDetect (-200751) -#define DAQmxErrorInvalidCalVoltageForGivenGain (-200750) -#define DAQmxErrorInvalidCalGain (-200749) -#define DAQmxErrorMultipleWritesBetweenSampClks (-200748) -#define DAQmxErrorInvalidAcqTypeForFREQOUT (-200747) -#define DAQmxErrorSuitableTimebaseNotFoundTimeCombo2 (-200746) -#define DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo2 (-200745) -#define DAQmxErrorRefClkRateRefClkSrcMismatch (-200744) -#define DAQmxErrorNoTEDSTerminalBlock (-200743) -#define DAQmxErrorCorruptedTEDSMemory (-200742) +#define +DAQmxErrorTEDSMappingMethodInvalidOrUnsupported (-200765) +#define +DAQmxErrorTEDSLinearMappingSlopeZero (-200764) +#define +DAQmxErrorAIInputBufferSizeNotMultOfXferSize (-200763) +#define +DAQmxErrorNoSyncPulseExtSampClkTimebase (-200762) +#define +DAQmxErrorNoSyncPulseAnotherTaskRunning (-200761) +#define +DAQmxErrorAOMinMaxNotInGainRange (-200760) +#define +DAQmxErrorAOMinMaxNotInDACRange (-200759) +#define +DAQmxErrorDevOnlySupportsSampClkTimingAO (-200758) +#define +DAQmxErrorDevOnlySupportsSampClkTimingAI (-200757) +#define +DAQmxErrorTEDSIncompatibleSensorAndMeasType (-200756) +#define +DAQmxErrorTEDSMultipleCalTemplatesNotSupported (-200755) +#define +DAQmxErrorTEDSTemplateParametersNotSupported (-200754) +#define +DAQmxErrorParsingTEDSData (-200753) +#define +DAQmxErrorMultipleActivePhysChansNotSupported (-200752) +#define +DAQmxErrorNoChansSpecdForChangeDetect (-200751) +#define +DAQmxErrorInvalidCalVoltageForGivenGain (-200750) +#define +DAQmxErrorInvalidCalGain (-200749) +#define +DAQmxErrorMultipleWritesBetweenSampClks (-200748) +#define +DAQmxErrorInvalidAcqTypeForFREQOUT (-200747) +#define +DAQmxErrorSuitableTimebaseNotFoundTimeCombo2 (-200746) +#define +DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo2 (-200745) +#define +DAQmxErrorRefClkRateRefClkSrcMismatch (-200744) +#define +DAQmxErrorNoTEDSTerminalBlock (-200743) +#define +DAQmxErrorCorruptedTEDSMemory (-200742) #define DAQmxErrorTEDSNotSupported (-200741) -#define DAQmxErrorTimingSrcTaskStartedBeforeTimedLoop (-200740) -#define DAQmxErrorPropertyNotSupportedForTimingSrc (-200739) -#define DAQmxErrorTimingSrcDoesNotExist (-200738) -#define DAQmxErrorInputBufferSizeNotEqualSampsPerChanForFiniteSampMode (-200737) -#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency2 (-200736) -#define DAQmxErrorExtRefClkRateNotSpecified (-200735) -#define DAQmxErrorDeviceDoesNotSupportDMADataXferForNonBufferedAcq (-200734) -#define DAQmxErrorDigFilterMinPulseWidthSetWhenTristateIsFalse (-200733) -#define DAQmxErrorDigFilterEnableSetWhenTristateIsFalse (-200732) -#define DAQmxErrorNoHWTimingWithOnDemand (-200731) -#define DAQmxErrorCannotDetectChangesWhenTristateIsFalse (-200730) -#define DAQmxErrorCannotHandshakeWhenTristateIsFalse (-200729) -#define DAQmxErrorLinesUsedForStaticInputNotForHandshakingControl (-200728) -#define DAQmxErrorLinesUsedForHandshakingControlNotForStaticInput (-200727) -#define DAQmxErrorLinesUsedForStaticInputNotForHandshakingInput (-200726) -#define DAQmxErrorLinesUsedForHandshakingInputNotForStaticInput (-200725) -#define DAQmxErrorDifferentDITristateValsForChansInTask (-200724) -#define DAQmxErrorTimebaseCalFreqVarianceTooLarge (-200723) -#define DAQmxErrorTimebaseCalFailedToConverge (-200722) -#define DAQmxErrorInadequateResolutionForTimebaseCal (-200721) -#define DAQmxErrorInvalidAOGainCalConst (-200720) -#define DAQmxErrorInvalidAOOffsetCalConst (-200719) -#define DAQmxErrorInvalidAIGainCalConst (-200718) -#define DAQmxErrorInvalidAIOffsetCalConst (-200717) +#define +DAQmxErrorTimingSrcTaskStartedBeforeTimedLoop (-200740) +#define +DAQmxErrorPropertyNotSupportedForTimingSrc (-200739) +#define +DAQmxErrorTimingSrcDoesNotExist (-200738) +#define +DAQmxErrorInputBufferSizeNotEqualSampsPerChanForFiniteSampMode (-200737) +#define +DAQmxErrorFREQOUTCannotProduceDesiredFrequency2 (-200736) +#define +DAQmxErrorExtRefClkRateNotSpecified (-200735) +#define +DAQmxErrorDeviceDoesNotSupportDMADataXferForNonBufferedAcq (-200734) +#define +DAQmxErrorDigFilterMinPulseWidthSetWhenTristateIsFalse (-200733) +#define +DAQmxErrorDigFilterEnableSetWhenTristateIsFalse (-200732) +#define +DAQmxErrorNoHWTimingWithOnDemand (-200731) +#define +DAQmxErrorCannotDetectChangesWhenTristateIsFalse (-200730) +#define +DAQmxErrorCannotHandshakeWhenTristateIsFalse (-200729) +#define +DAQmxErrorLinesUsedForStaticInputNotForHandshakingControl (-200728) +#define +DAQmxErrorLinesUsedForHandshakingControlNotForStaticInput (-200727) +#define +DAQmxErrorLinesUsedForStaticInputNotForHandshakingInput (-200726) +#define +DAQmxErrorLinesUsedForHandshakingInputNotForStaticInput (-200725) +#define +DAQmxErrorDifferentDITristateValsForChansInTask (-200724) +#define +DAQmxErrorTimebaseCalFreqVarianceTooLarge (-200723) +#define +DAQmxErrorTimebaseCalFailedToConverge (-200722) +#define +DAQmxErrorInadequateResolutionForTimebaseCal (-200721) +#define +DAQmxErrorInvalidAOGainCalConst (-200720) +#define +DAQmxErrorInvalidAOOffsetCalConst (-200719) +#define +DAQmxErrorInvalidAIGainCalConst (-200718) +#define +DAQmxErrorInvalidAIOffsetCalConst (-200717) #define DAQmxErrorDigOutputOverrun (-200716) -#define DAQmxErrorDigInputOverrun (-200715) -#define DAQmxErrorAcqStoppedDriverCantXferDataFastEnough (-200714) -#define DAQmxErrorChansCantAppearInSameTask (-200713) -#define DAQmxErrorInputCfgFailedBecauseWatchdogExpired (-200712) -#define DAQmxErrorAnalogTrigChanNotExternal (-200711) -#define DAQmxErrorTooManyChansForInternalAIInputSrc (-200710) -#define DAQmxErrorTEDSSensorNotDetected (-200709) -#define DAQmxErrorPrptyGetSpecdActiveItemFailedDueToDifftValues (-200708) -#define DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2 (-200706) -#define DAQmxErrorRoutingDestTermPXIStarXNotInSlot2 (-200705) -#define DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2 (-200704) -#define DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove (-200703) -#define DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove (-200702) -#define DAQmxErrorRoutingDestTermPXIStarInSlot2 (-200701) -#define DAQmxErrorRoutingSrcTermPXIStarInSlot2 (-200700) -#define DAQmxErrorRoutingDestTermPXIChassisNotIdentified (-200699) -#define DAQmxErrorRoutingSrcTermPXIChassisNotIdentified (-200698) -#define DAQmxErrorFailedToAcquireCalData (-200697) -#define DAQmxErrorBridgeOffsetNullingCalNotSupported (-200696) -#define DAQmxErrorAIMaxNotSpecified (-200695) -#define DAQmxErrorAIMinNotSpecified (-200694) -#define DAQmxErrorOddTotalBufferSizeToWrite (-200693) -#define DAQmxErrorOddTotalNumSampsToWrite (-200692) -#define DAQmxErrorBufferWithWaitMode (-200691) +#define +DAQmxErrorDigInputOverrun (-200715) +#define +DAQmxErrorAcqStoppedDriverCantXferDataFastEnough (-200714) +#define +DAQmxErrorChansCantAppearInSameTask (-200713) +#define +DAQmxErrorInputCfgFailedBecauseWatchdogExpired (-200712) +#define +DAQmxErrorAnalogTrigChanNotExternal (-200711) +#define +DAQmxErrorTooManyChansForInternalAIInputSrc (-200710) +#define +DAQmxErrorTEDSSensorNotDetected (-200709) +#define +DAQmxErrorPrptyGetSpecdActiveItemFailedDueToDifftValues (-200708) +#define +DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2 (-200706) +#define +DAQmxErrorRoutingDestTermPXIStarXNotInSlot2 (-200705) +#define +DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2 (-200704) +#define +DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove (-200703) +#define +DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove (-200702) +#define +DAQmxErrorRoutingDestTermPXIStarInSlot2 (-200701) +#define +DAQmxErrorRoutingSrcTermPXIStarInSlot2 (-200700) +#define +DAQmxErrorRoutingDestTermPXIChassisNotIdentified (-200699) +#define +DAQmxErrorRoutingSrcTermPXIChassisNotIdentified (-200698) +#define +DAQmxErrorFailedToAcquireCalData (-200697) +#define +DAQmxErrorBridgeOffsetNullingCalNotSupported (-200696) +#define +DAQmxErrorAIMaxNotSpecified (-200695) +#define +DAQmxErrorAIMinNotSpecified (-200694) +#define +DAQmxErrorOddTotalBufferSizeToWrite (-200693) +#define +DAQmxErrorOddTotalNumSampsToWrite (-200692) +#define +DAQmxErrorBufferWithWaitMode (-200691) #define DAQmxErrorBufferWithHWTimedSinglePointSampMode (-200690) -#define DAQmxErrorCOWritePulseLowTicksNotSupported (-200689) -#define DAQmxErrorCOWritePulseHighTicksNotSupported (-200688) -#define DAQmxErrorCOWritePulseLowTimeOutOfRange (-200687) -#define DAQmxErrorCOWritePulseHighTimeOutOfRange (-200686) -#define DAQmxErrorCOWriteFreqOutOfRange (-200685) -#define DAQmxErrorCOWriteDutyCycleOutOfRange (-200684) -#define DAQmxErrorInvalidInstallation (-200683) -#define DAQmxErrorRefTrigMasterSessionUnavailable (-200682) -#define DAQmxErrorRouteFailedBecauseWatchdogExpired (-200681) -#define DAQmxErrorDeviceShutDownDueToHighTemp (-200680) -#define DAQmxErrorNoMemMapWhenHWTimedSinglePoint (-200679) -#define DAQmxErrorWriteFailedBecauseWatchdogExpired (-200678) -#define DAQmxErrorDifftInternalAIInputSrcs (-200677) -#define DAQmxErrorDifftAIInputSrcInOneChanGroup (-200676) -#define DAQmxErrorInternalAIInputSrcInMultChanGroups (-200675) -#define DAQmxErrorSwitchOpFailedDueToPrevError (-200674) -#define DAQmxErrorWroteMultiSampsUsingSingleSampWrite (-200673) -#define DAQmxErrorMismatchedInputArraySizes (-200672) -#define DAQmxErrorCantExceedRelayDriveLimit (-200671) -#define DAQmxErrorDACRngLowNotEqualToMinusRefVal (-200670) -#define DAQmxErrorCantAllowConnectDACToGnd (-200669) -#define DAQmxErrorWatchdogTimeoutOutOfRangeAndNotSpecialVal (-200668) -#define DAQmxErrorNoWatchdogOutputOnPortReservedForInput (-200667) -#define DAQmxErrorNoInputOnPortCfgdForWatchdogOutput (-200666) +#define +DAQmxErrorCOWritePulseLowTicksNotSupported (-200689) +#define +DAQmxErrorCOWritePulseHighTicksNotSupported (-200688) +#define +DAQmxErrorCOWritePulseLowTimeOutOfRange (-200687) +#define +DAQmxErrorCOWritePulseHighTimeOutOfRange (-200686) +#define +DAQmxErrorCOWriteFreqOutOfRange (-200685) +#define +DAQmxErrorCOWriteDutyCycleOutOfRange (-200684) +#define +DAQmxErrorInvalidInstallation (-200683) +#define +DAQmxErrorRefTrigMasterSessionUnavailable (-200682) +#define +DAQmxErrorRouteFailedBecauseWatchdogExpired (-200681) +#define +DAQmxErrorDeviceShutDownDueToHighTemp (-200680) +#define +DAQmxErrorNoMemMapWhenHWTimedSinglePoint (-200679) +#define +DAQmxErrorWriteFailedBecauseWatchdogExpired (-200678) +#define +DAQmxErrorDifftInternalAIInputSrcs (-200677) +#define +DAQmxErrorDifftAIInputSrcInOneChanGroup (-200676) +#define +DAQmxErrorInternalAIInputSrcInMultChanGroups (-200675) +#define +DAQmxErrorSwitchOpFailedDueToPrevError (-200674) +#define +DAQmxErrorWroteMultiSampsUsingSingleSampWrite (-200673) +#define +DAQmxErrorMismatchedInputArraySizes (-200672) +#define +DAQmxErrorCantExceedRelayDriveLimit (-200671) +#define +DAQmxErrorDACRngLowNotEqualToMinusRefVal (-200670) +#define +DAQmxErrorCantAllowConnectDACToGnd (-200669) +#define +DAQmxErrorWatchdogTimeoutOutOfRangeAndNotSpecialVal (-200668) +#define +DAQmxErrorNoWatchdogOutputOnPortReservedForInput (-200667) +#define +DAQmxErrorNoInputOnPortCfgdForWatchdogOutput (-200666) #define DAQmxErrorWatchdogExpirationStateNotEqualForLinesInPort (-200665) -#define DAQmxErrorCannotPerformOpWhenTaskNotReserved (-200664) -#define DAQmxErrorPowerupStateNotSupported (-200663) -#define DAQmxErrorWatchdogTimerNotSupported (-200662) -#define DAQmxErrorOpNotSupportedWhenRefClkSrcNone (-200661) -#define DAQmxErrorSampClkRateUnavailable (-200660) -#define DAQmxErrorPrptyGetSpecdSingleActiveChanFailedDueToDifftVals (-200659) -#define DAQmxErrorPrptyGetImpliedActiveChanFailedDueToDifftVals (-200658) -#define DAQmxErrorPrptyGetSpecdActiveChanFailedDueToDifftVals (-200657) -#define DAQmxErrorNoRegenWhenUsingBrdMem (-200656) -#define DAQmxErrorNonbufferedReadMoreThanSampsPerChan (-200655) -#define DAQmxErrorWatchdogExpirationTristateNotSpecdForEntirePort (-200654) -#define DAQmxErrorPowerupTristateNotSpecdForEntirePort (-200653) -#define DAQmxErrorPowerupStateNotSpecdForEntirePort (-200652) -#define DAQmxErrorCantSetWatchdogExpirationOnDigInChan (-200651) -#define DAQmxErrorCantSetPowerupStateOnDigInChan (-200650) -#define DAQmxErrorPhysChanNotInTask (-200649) -#define DAQmxErrorPhysChanDevNotInTask (-200648) -#define DAQmxErrorDigInputNotSupported (-200647) -#define DAQmxErrorDigFilterIntervalNotEqualForLines (-200646) -#define DAQmxErrorDigFilterIntervalAlreadyCfgd (-200645) -#define DAQmxErrorCantResetExpiredWatchdog (-200644) -#define DAQmxErrorActiveChanTooManyLinesSpecdWhenGettingPrpty (-200643) -#define DAQmxErrorActiveChanNotSpecdWhenGetting1LinePrpty (-200642) -#define DAQmxErrorDigPrptyCannotBeSetPerLine (-200641) +#define +DAQmxErrorCannotPerformOpWhenTaskNotReserved (-200664) +#define +DAQmxErrorPowerupStateNotSupported (-200663) +#define +DAQmxErrorWatchdogTimerNotSupported (-200662) +#define +DAQmxErrorOpNotSupportedWhenRefClkSrcNone (-200661) +#define +DAQmxErrorSampClkRateUnavailable (-200660) +#define +DAQmxErrorPrptyGetSpecdSingleActiveChanFailedDueToDifftVals (-200659) +#define +DAQmxErrorPrptyGetImpliedActiveChanFailedDueToDifftVals (-200658) +#define +DAQmxErrorPrptyGetSpecdActiveChanFailedDueToDifftVals (-200657) +#define +DAQmxErrorNoRegenWhenUsingBrdMem (-200656) +#define +DAQmxErrorNonbufferedReadMoreThanSampsPerChan (-200655) +#define +DAQmxErrorWatchdogExpirationTristateNotSpecdForEntirePort (-200654) +#define +DAQmxErrorPowerupTristateNotSpecdForEntirePort (-200653) +#define +DAQmxErrorPowerupStateNotSpecdForEntirePort (-200652) +#define +DAQmxErrorCantSetWatchdogExpirationOnDigInChan (-200651) +#define +DAQmxErrorCantSetPowerupStateOnDigInChan (-200650) +#define +DAQmxErrorPhysChanNotInTask (-200649) +#define +DAQmxErrorPhysChanDevNotInTask (-200648) +#define +DAQmxErrorDigInputNotSupported (-200647) +#define +DAQmxErrorDigFilterIntervalNotEqualForLines (-200646) +#define +DAQmxErrorDigFilterIntervalAlreadyCfgd (-200645) +#define +DAQmxErrorCantResetExpiredWatchdog (-200644) +#define +DAQmxErrorActiveChanTooManyLinesSpecdWhenGettingPrpty (-200643) +#define +DAQmxErrorActiveChanNotSpecdWhenGetting1LinePrpty (-200642) +#define +DAQmxErrorDigPrptyCannotBeSetPerLine (-200641) #define DAQmxErrorSendAdvCmpltAfterWaitForTrigInScanlist (-200640) -#define DAQmxErrorDisconnectionRequiredInScanlist (-200639) -#define DAQmxErrorTwoWaitForTrigsAfterConnectionInScanlist (-200638) -#define DAQmxErrorActionSeparatorRequiredAfterBreakingConnectionInScanlist (-200637) -#define DAQmxErrorConnectionInScanlistMustWaitForTrig (-200636) -#define DAQmxErrorActionNotSupportedTaskNotWatchdog (-200635) -#define DAQmxErrorWfmNameSameAsScriptName (-200634) -#define DAQmxErrorScriptNameSameAsWfmName (-200633) -#define DAQmxErrorDSFStopClock (-200632) -#define DAQmxErrorDSFReadyForStartClock (-200631) -#define DAQmxErrorWriteOffsetNotMultOfIncr (-200630) -#define DAQmxErrorDifferentPrptyValsNotSupportedOnDev (-200629) -#define DAQmxErrorRefAndPauseTrigConfigured (-200628) -#define DAQmxErrorFailedToEnableHighSpeedInputClock (-200627) -#define DAQmxErrorEmptyPhysChanInPowerUpStatesArray (-200626) -#define DAQmxErrorActivePhysChanTooManyLinesSpecdWhenGettingPrpty (-200625) -#define DAQmxErrorActivePhysChanNotSpecdWhenGetting1LinePrpty (-200624) -#define DAQmxErrorPXIDevTempCausedShutDown (-200623) -#define DAQmxErrorInvalidNumSampsToWrite (-200622) -#define DAQmxErrorOutputFIFOUnderflow2 (-200621) -#define DAQmxErrorRepeatedAIPhysicalChan (-200620) -#define DAQmxErrorMultScanOpsInOneChassis (-200619) -#define DAQmxErrorInvalidAIChanOrder (-200618) -#define DAQmxErrorReversePowerProtectionActivated (-200617) -#define DAQmxErrorInvalidAsynOpHandle (-200616) +#define +DAQmxErrorDisconnectionRequiredInScanlist (-200639) +#define +DAQmxErrorTwoWaitForTrigsAfterConnectionInScanlist (-200638) +#define +DAQmxErrorActionSeparatorRequiredAfterBreakingConnectionInScanlist (-200637) +#define +DAQmxErrorConnectionInScanlistMustWaitForTrig (-200636) +#define +DAQmxErrorActionNotSupportedTaskNotWatchdog (-200635) +#define +DAQmxErrorWfmNameSameAsScriptName (-200634) +#define +DAQmxErrorScriptNameSameAsWfmName (-200633) +#define +DAQmxErrorDSFStopClock (-200632) +#define +DAQmxErrorDSFReadyForStartClock (-200631) +#define +DAQmxErrorWriteOffsetNotMultOfIncr (-200630) +#define +DAQmxErrorDifferentPrptyValsNotSupportedOnDev (-200629) +#define +DAQmxErrorRefAndPauseTrigConfigured (-200628) +#define +DAQmxErrorFailedToEnableHighSpeedInputClock (-200627) +#define +DAQmxErrorEmptyPhysChanInPowerUpStatesArray (-200626) +#define +DAQmxErrorActivePhysChanTooManyLinesSpecdWhenGettingPrpty (-200625) +#define +DAQmxErrorActivePhysChanNotSpecdWhenGetting1LinePrpty (-200624) +#define +DAQmxErrorPXIDevTempCausedShutDown (-200623) +#define +DAQmxErrorInvalidNumSampsToWrite (-200622) +#define +DAQmxErrorOutputFIFOUnderflow2 (-200621) +#define +DAQmxErrorRepeatedAIPhysicalChan (-200620) +#define +DAQmxErrorMultScanOpsInOneChassis (-200619) +#define +DAQmxErrorInvalidAIChanOrder (-200618) +#define +DAQmxErrorReversePowerProtectionActivated (-200617) +#define +DAQmxErrorInvalidAsynOpHandle (-200616) #define DAQmxErrorFailedToEnableHighSpeedOutput (-200615) -#define DAQmxErrorCannotReadPastEndOfRecord (-200614) -#define DAQmxErrorAcqStoppedToPreventInputBufferOverwriteOneDataXferMech (-200613) -#define DAQmxErrorZeroBasedChanIndexInvalid (-200612) -#define DAQmxErrorNoChansOfGivenTypeInTask (-200611) -#define DAQmxErrorSampClkSrcInvalidForOutputValidForInput (-200610) -#define DAQmxErrorOutputBufSizeTooSmallToStartGen (-200609) -#define DAQmxErrorInputBufSizeTooSmallToStartAcq (-200608) -#define DAQmxErrorExportTwoSignalsOnSameTerminal (-200607) -#define DAQmxErrorChanIndexInvalid (-200606) -#define DAQmxErrorRangeSyntaxNumberTooBig (-200605) -#define DAQmxErrorNULLPtr (-200604) -#define DAQmxErrorScaledMinEqualMax (-200603) -#define DAQmxErrorPreScaledMinEqualMax (-200602) -#define DAQmxErrorPropertyNotSupportedForScaleType (-200601) -#define DAQmxErrorChannelNameGenerationNumberTooBig (-200600) -#define DAQmxErrorRepeatedNumberInScaledValues (-200599) -#define DAQmxErrorRepeatedNumberInPreScaledValues (-200598) -#define DAQmxErrorLinesAlreadyReservedForOutput (-200597) -#define DAQmxErrorSwitchOperationChansSpanMultipleDevsInList (-200596) -#define DAQmxErrorInvalidIDInListAtBeginningOfSwitchOperation (-200595) -#define DAQmxErrorMStudioInvalidPolyDirection (-200594) -#define DAQmxErrorMStudioPropertyGetWhileTaskNotVerified (-200593) -#define DAQmxErrorRangeWithTooManyObjects (-200592) -#define DAQmxErrorCppDotNetAPINegativeBufferSize (-200591) +#define +DAQmxErrorCannotReadPastEndOfRecord (-200614) +#define +DAQmxErrorAcqStoppedToPreventInputBufferOverwriteOneDataXferMech (-200613) +#define +DAQmxErrorZeroBasedChanIndexInvalid (-200612) +#define +DAQmxErrorNoChansOfGivenTypeInTask (-200611) +#define +DAQmxErrorSampClkSrcInvalidForOutputValidForInput (-200610) +#define +DAQmxErrorOutputBufSizeTooSmallToStartGen (-200609) +#define +DAQmxErrorInputBufSizeTooSmallToStartAcq (-200608) +#define +DAQmxErrorExportTwoSignalsOnSameTerminal (-200607) +#define +DAQmxErrorChanIndexInvalid (-200606) +#define +DAQmxErrorRangeSyntaxNumberTooBig (-200605) +#define +DAQmxErrorNULLPtr (-200604) +#define +DAQmxErrorScaledMinEqualMax (-200603) +#define +DAQmxErrorPreScaledMinEqualMax (-200602) +#define +DAQmxErrorPropertyNotSupportedForScaleType (-200601) +#define +DAQmxErrorChannelNameGenerationNumberTooBig (-200600) +#define +DAQmxErrorRepeatedNumberInScaledValues (-200599) +#define +DAQmxErrorRepeatedNumberInPreScaledValues (-200598) +#define +DAQmxErrorLinesAlreadyReservedForOutput (-200597) +#define +DAQmxErrorSwitchOperationChansSpanMultipleDevsInList (-200596) +#define +DAQmxErrorInvalidIDInListAtBeginningOfSwitchOperation (-200595) +#define +DAQmxErrorMStudioInvalidPolyDirection (-200594) +#define +DAQmxErrorMStudioPropertyGetWhileTaskNotVerified (-200593) +#define +DAQmxErrorRangeWithTooManyObjects (-200592) +#define +DAQmxErrorCppDotNetAPINegativeBufferSize (-200591) #define DAQmxErrorCppCantRemoveInvalidEventHandler (-200590) -#define DAQmxErrorCppCantRemoveEventHandlerTwice (-200589) -#define DAQmxErrorCppCantRemoveOtherObjectsEventHandler (-200588) -#define DAQmxErrorDigLinesReservedOrUnavailable (-200587) -#define DAQmxErrorDSFFailedToResetStream (-200586) -#define DAQmxErrorDSFReadyForOutputNotAsserted (-200585) -#define DAQmxErrorSampToWritePerChanNotMultipleOfIncr (-200584) -#define DAQmxErrorAOPropertiesCauseVoltageBelowMin (-200583) -#define DAQmxErrorAOPropertiesCauseVoltageOverMax (-200582) -#define DAQmxErrorPropertyNotSupportedWhenRefClkSrcNone (-200581) -#define DAQmxErrorAIMaxTooSmall (-200580) -#define DAQmxErrorAIMaxTooLarge (-200579) -#define DAQmxErrorAIMinTooSmall (-200578) -#define DAQmxErrorAIMinTooLarge (-200577) -#define DAQmxErrorBuiltInCJCSrcNotSupported (-200576) -#define DAQmxErrorTooManyPostTrigSampsPerChan (-200575) -#define DAQmxErrorTrigLineNotFoundSingleDevRoute (-200574) -#define DAQmxErrorDifferentInternalAIInputSources (-200573) -#define DAQmxErrorDifferentAIInputSrcInOneChanGroup (-200572) -#define DAQmxErrorInternalAIInputSrcInMultipleChanGroups (-200571) -#define DAQmxErrorCAPIChanIndexInvalid (-200570) -#define DAQmxErrorCollectionDoesNotMatchChanType (-200569) -#define DAQmxErrorOutputCantStartChangedRegenerationMode (-200568) -#define DAQmxErrorOutputCantStartChangedBufferSize (-200567) -#define DAQmxErrorChanSizeTooBigForU32PortWrite (-200566) +#define +DAQmxErrorCppCantRemoveEventHandlerTwice (-200589) +#define +DAQmxErrorCppCantRemoveOtherObjectsEventHandler (-200588) +#define +DAQmxErrorDigLinesReservedOrUnavailable (-200587) +#define +DAQmxErrorDSFFailedToResetStream (-200586) +#define +DAQmxErrorDSFReadyForOutputNotAsserted (-200585) +#define +DAQmxErrorSampToWritePerChanNotMultipleOfIncr (-200584) +#define +DAQmxErrorAOPropertiesCauseVoltageBelowMin (-200583) +#define +DAQmxErrorAOPropertiesCauseVoltageOverMax (-200582) +#define +DAQmxErrorPropertyNotSupportedWhenRefClkSrcNone (-200581) +#define +DAQmxErrorAIMaxTooSmall (-200580) +#define +DAQmxErrorAIMaxTooLarge (-200579) +#define +DAQmxErrorAIMinTooSmall (-200578) +#define +DAQmxErrorAIMinTooLarge (-200577) +#define +DAQmxErrorBuiltInCJCSrcNotSupported (-200576) +#define +DAQmxErrorTooManyPostTrigSampsPerChan (-200575) +#define +DAQmxErrorTrigLineNotFoundSingleDevRoute (-200574) +#define +DAQmxErrorDifferentInternalAIInputSources (-200573) +#define +DAQmxErrorDifferentAIInputSrcInOneChanGroup (-200572) +#define +DAQmxErrorInternalAIInputSrcInMultipleChanGroups (-200571) +#define +DAQmxErrorCAPIChanIndexInvalid (-200570) +#define +DAQmxErrorCollectionDoesNotMatchChanType (-200569) +#define +DAQmxErrorOutputCantStartChangedRegenerationMode (-200568) +#define +DAQmxErrorOutputCantStartChangedBufferSize (-200567) +#define +DAQmxErrorChanSizeTooBigForU32PortWrite (-200566) #define DAQmxErrorChanSizeTooBigForU8PortWrite (-200565) -#define DAQmxErrorChanSizeTooBigForU32PortRead (-200564) -#define DAQmxErrorChanSizeTooBigForU8PortRead (-200563) -#define DAQmxErrorInvalidDigDataWrite (-200562) -#define DAQmxErrorInvalidAODataWrite (-200561) -#define DAQmxErrorWaitUntilDoneDoesNotIndicateDone (-200560) -#define DAQmxErrorMultiChanTypesInTask (-200559) -#define DAQmxErrorMultiDevsInTask (-200558) -#define DAQmxErrorCannotSetPropertyWhenTaskRunning (-200557) -#define DAQmxErrorCannotGetPropertyWhenTaskNotCommittedOrRunning (-200556) -#define DAQmxErrorLeadingUnderscoreInString (-200555) -#define DAQmxErrorTrailingSpaceInString (-200554) -#define DAQmxErrorLeadingSpaceInString (-200553) -#define DAQmxErrorInvalidCharInString (-200552) -#define DAQmxErrorDLLBecameUnlocked (-200551) -#define DAQmxErrorDLLLock (-200550) -#define DAQmxErrorSelfCalConstsInvalid (-200549) -#define DAQmxErrorInvalidTrigCouplingExceptForExtTrigChan (-200548) -#define DAQmxErrorWriteFailsBufferSizeAutoConfigured (-200547) -#define DAQmxErrorExtCalAdjustExtRefVoltageFailed (-200546) -#define DAQmxErrorSelfCalFailedExtNoiseOrRefVoltageOutOfCal (-200545) -#define DAQmxErrorExtCalTemperatureNotDAQmx (-200544) -#define DAQmxErrorExtCalDateTimeNotDAQmx (-200543) -#define DAQmxErrorSelfCalTemperatureNotDAQmx (-200542) -#define DAQmxErrorSelfCalDateTimeNotDAQmx (-200541) +#define +DAQmxErrorChanSizeTooBigForU32PortRead (-200564) +#define +DAQmxErrorChanSizeTooBigForU8PortRead (-200563) +#define +DAQmxErrorInvalidDigDataWrite (-200562) +#define +DAQmxErrorInvalidAODataWrite (-200561) +#define +DAQmxErrorWaitUntilDoneDoesNotIndicateDone (-200560) +#define +DAQmxErrorMultiChanTypesInTask (-200559) +#define +DAQmxErrorMultiDevsInTask (-200558) +#define +DAQmxErrorCannotSetPropertyWhenTaskRunning (-200557) +#define +DAQmxErrorCannotGetPropertyWhenTaskNotCommittedOrRunning (-200556) +#define +DAQmxErrorLeadingUnderscoreInString (-200555) +#define +DAQmxErrorTrailingSpaceInString (-200554) +#define +DAQmxErrorLeadingSpaceInString (-200553) +#define +DAQmxErrorInvalidCharInString (-200552) +#define +DAQmxErrorDLLBecameUnlocked (-200551) +#define +DAQmxErrorDLLLock (-200550) +#define +DAQmxErrorSelfCalConstsInvalid (-200549) +#define +DAQmxErrorInvalidTrigCouplingExceptForExtTrigChan (-200548) +#define +DAQmxErrorWriteFailsBufferSizeAutoConfigured (-200547) +#define +DAQmxErrorExtCalAdjustExtRefVoltageFailed (-200546) +#define +DAQmxErrorSelfCalFailedExtNoiseOrRefVoltageOutOfCal (-200545) +#define +DAQmxErrorExtCalTemperatureNotDAQmx (-200544) +#define +DAQmxErrorExtCalDateTimeNotDAQmx (-200543) +#define +DAQmxErrorSelfCalTemperatureNotDAQmx (-200542) +#define +DAQmxErrorSelfCalDateTimeNotDAQmx (-200541) #define DAQmxErrorDACRefValNotSet (-200540) -#define DAQmxErrorAnalogMultiSampWriteNotSupported (-200539) -#define DAQmxErrorInvalidActionInControlTask (-200538) -#define DAQmxErrorPolyCoeffsInconsistent (-200537) -#define DAQmxErrorSensorValTooLow (-200536) -#define DAQmxErrorSensorValTooHigh (-200535) -#define DAQmxErrorWaveformNameTooLong (-200534) -#define DAQmxErrorIdentifierTooLongInScript (-200533) -#define DAQmxErrorUnexpectedIDFollowingSwitchChanName (-200532) -#define DAQmxErrorRelayNameNotSpecifiedInList (-200531) -#define DAQmxErrorUnexpectedIDFollowingRelayNameInList (-200530) -#define DAQmxErrorUnexpectedIDFollowingSwitchOpInList (-200529) -#define DAQmxErrorInvalidLineGrouping (-200528) -#define DAQmxErrorCtrMinMax (-200527) -#define DAQmxErrorWriteChanTypeMismatch (-200526) -#define DAQmxErrorReadChanTypeMismatch (-200525) -#define DAQmxErrorWriteNumChansMismatch (-200524) -#define DAQmxErrorOneChanReadForMultiChanTask (-200523) -#define DAQmxErrorCannotSelfCalDuringExtCal (-200522) -#define DAQmxErrorMeasCalAdjustOscillatorPhaseDAC (-200521) -#define DAQmxErrorInvalidCalConstCalADCAdjustment (-200520) -#define DAQmxErrorInvalidCalConstOscillatorFreqDACValue (-200519) -#define DAQmxErrorInvalidCalConstOscillatorPhaseDACValue (-200518) -#define DAQmxErrorInvalidCalConstOffsetDACValue (-200517) -#define DAQmxErrorInvalidCalConstGainDACValue (-200516) +#define +DAQmxErrorAnalogMultiSampWriteNotSupported (-200539) +#define +DAQmxErrorInvalidActionInControlTask (-200538) +#define +DAQmxErrorPolyCoeffsInconsistent (-200537) +#define +DAQmxErrorSensorValTooLow (-200536) +#define +DAQmxErrorSensorValTooHigh (-200535) +#define +DAQmxErrorWaveformNameTooLong (-200534) +#define +DAQmxErrorIdentifierTooLongInScript (-200533) +#define +DAQmxErrorUnexpectedIDFollowingSwitchChanName (-200532) +#define +DAQmxErrorRelayNameNotSpecifiedInList (-200531) +#define +DAQmxErrorUnexpectedIDFollowingRelayNameInList (-200530) +#define +DAQmxErrorUnexpectedIDFollowingSwitchOpInList (-200529) +#define +DAQmxErrorInvalidLineGrouping (-200528) +#define +DAQmxErrorCtrMinMax (-200527) +#define +DAQmxErrorWriteChanTypeMismatch (-200526) +#define +DAQmxErrorReadChanTypeMismatch (-200525) +#define +DAQmxErrorWriteNumChansMismatch (-200524) +#define +DAQmxErrorOneChanReadForMultiChanTask (-200523) +#define +DAQmxErrorCannotSelfCalDuringExtCal (-200522) +#define +DAQmxErrorMeasCalAdjustOscillatorPhaseDAC (-200521) +#define +DAQmxErrorInvalidCalConstCalADCAdjustment (-200520) +#define +DAQmxErrorInvalidCalConstOscillatorFreqDACValue (-200519) +#define +DAQmxErrorInvalidCalConstOscillatorPhaseDACValue (-200518) +#define +DAQmxErrorInvalidCalConstOffsetDACValue (-200517) +#define +DAQmxErrorInvalidCalConstGainDACValue (-200516) #define DAQmxErrorInvalidNumCalADCReadsToAverage (-200515) -#define DAQmxErrorInvalidCfgCalAdjustDirectPathOutputImpedance (-200514) -#define DAQmxErrorInvalidCfgCalAdjustMainPathOutputImpedance (-200513) -#define DAQmxErrorInvalidCfgCalAdjustMainPathPostAmpGainAndOffset (-200512) -#define DAQmxErrorInvalidCfgCalAdjustMainPathPreAmpGain (-200511) -#define DAQmxErrorInvalidCfgCalAdjustMainPreAmpOffset (-200510) -#define DAQmxErrorMeasCalAdjustCalADC (-200509) -#define DAQmxErrorMeasCalAdjustOscillatorFrequency (-200508) -#define DAQmxErrorMeasCalAdjustDirectPathOutputImpedance (-200507) -#define DAQmxErrorMeasCalAdjustMainPathOutputImpedance (-200506) -#define DAQmxErrorMeasCalAdjustDirectPathGain (-200505) -#define DAQmxErrorMeasCalAdjustMainPathPostAmpGainAndOffset (-200504) -#define DAQmxErrorMeasCalAdjustMainPathPreAmpGain (-200503) -#define DAQmxErrorMeasCalAdjustMainPathPreAmpOffset (-200502) -#define DAQmxErrorInvalidDateTimeInEEPROM (-200501) -#define DAQmxErrorUnableToLocateErrorResources (-200500) -#define DAQmxErrorDotNetAPINotUnsigned32BitNumber (-200499) -#define DAQmxErrorInvalidRangeOfObjectsSyntaxInString (-200498) -#define DAQmxErrorAttemptToEnableLineNotPreviouslyDisabled (-200497) -#define DAQmxErrorInvalidCharInPattern (-200496) -#define DAQmxErrorIntermediateBufferFull (-200495) -#define DAQmxErrorLoadTaskFailsBecauseNoTimingOnDev (-200494) -#define DAQmxErrorCAPIReservedParamNotNULLNorEmpty (-200493) -#define DAQmxErrorCAPIReservedParamNotNULL (-200492) -#define DAQmxErrorCAPIReservedParamNotZero (-200491) +#define +DAQmxErrorInvalidCfgCalAdjustDirectPathOutputImpedance (-200514) +#define +DAQmxErrorInvalidCfgCalAdjustMainPathOutputImpedance (-200513) +#define +DAQmxErrorInvalidCfgCalAdjustMainPathPostAmpGainAndOffset (-200512) +#define +DAQmxErrorInvalidCfgCalAdjustMainPathPreAmpGain (-200511) +#define +DAQmxErrorInvalidCfgCalAdjustMainPreAmpOffset (-200510) +#define +DAQmxErrorMeasCalAdjustCalADC (-200509) +#define +DAQmxErrorMeasCalAdjustOscillatorFrequency (-200508) +#define +DAQmxErrorMeasCalAdjustDirectPathOutputImpedance (-200507) +#define +DAQmxErrorMeasCalAdjustMainPathOutputImpedance (-200506) +#define +DAQmxErrorMeasCalAdjustDirectPathGain (-200505) +#define +DAQmxErrorMeasCalAdjustMainPathPostAmpGainAndOffset (-200504) +#define +DAQmxErrorMeasCalAdjustMainPathPreAmpGain (-200503) +#define +DAQmxErrorMeasCalAdjustMainPathPreAmpOffset (-200502) +#define +DAQmxErrorInvalidDateTimeInEEPROM (-200501) +#define +DAQmxErrorUnableToLocateErrorResources (-200500) +#define +DAQmxErrorDotNetAPINotUnsigned32BitNumber (-200499) +#define +DAQmxErrorInvalidRangeOfObjectsSyntaxInString (-200498) +#define +DAQmxErrorAttemptToEnableLineNotPreviouslyDisabled (-200497) +#define +DAQmxErrorInvalidCharInPattern (-200496) +#define +DAQmxErrorIntermediateBufferFull (-200495) +#define +DAQmxErrorLoadTaskFailsBecauseNoTimingOnDev (-200494) +#define +DAQmxErrorCAPIReservedParamNotNULLNorEmpty (-200493) +#define +DAQmxErrorCAPIReservedParamNotNULL (-200492) +#define +DAQmxErrorCAPIReservedParamNotZero (-200491) #define DAQmxErrorSampleValueOutOfRange (-200490) -#define DAQmxErrorChanAlreadyInTask (-200489) -#define DAQmxErrorVirtualChanDoesNotExist (-200488) -#define DAQmxErrorChanNotInTask (-200486) -#define DAQmxErrorTaskNotInDataNeighborhood (-200485) -#define DAQmxErrorCantSaveTaskWithoutReplace (-200484) -#define DAQmxErrorCantSaveChanWithoutReplace (-200483) -#define DAQmxErrorDevNotInTask (-200482) -#define DAQmxErrorDevAlreadyInTask (-200481) -#define DAQmxErrorCanNotPerformOpWhileTaskRunning (-200479) -#define DAQmxErrorCanNotPerformOpWhenNoChansInTask (-200478) -#define DAQmxErrorCanNotPerformOpWhenNoDevInTask (-200477) -#define DAQmxErrorCannotPerformOpWhenTaskNotRunning (-200475) -#define DAQmxErrorOperationTimedOut (-200474) -#define DAQmxErrorCannotReadWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200473) -#define DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200472) -#define DAQmxErrorTaskVersionNew (-200470) -#define DAQmxErrorChanVersionNew (-200469) -#define DAQmxErrorEmptyString (-200467) -#define DAQmxErrorChannelSizeTooBigForPortReadType (-200466) -#define DAQmxErrorChannelSizeTooBigForPortWriteType (-200465) -#define DAQmxErrorExpectedNumberOfChannelsVerificationFailed (-200464) -#define DAQmxErrorNumLinesMismatchInReadOrWrite (-200463) -#define DAQmxErrorOutputBufferEmpty (-200462) -#define DAQmxErrorInvalidChanName (-200461) +#define +DAQmxErrorChanAlreadyInTask (-200489) +#define +DAQmxErrorVirtualChanDoesNotExist (-200488) +#define +DAQmxErrorChanNotInTask (-200486) +#define +DAQmxErrorTaskNotInDataNeighborhood (-200485) +#define +DAQmxErrorCantSaveTaskWithoutReplace (-200484) +#define +DAQmxErrorCantSaveChanWithoutReplace (-200483) +#define +DAQmxErrorDevNotInTask (-200482) +#define +DAQmxErrorDevAlreadyInTask (-200481) +#define +DAQmxErrorCanNotPerformOpWhileTaskRunning (-200479) +#define +DAQmxErrorCanNotPerformOpWhenNoChansInTask (-200478) +#define +DAQmxErrorCanNotPerformOpWhenNoDevInTask (-200477) +#define +DAQmxErrorCannotPerformOpWhenTaskNotRunning (-200475) +#define +DAQmxErrorOperationTimedOut (-200474) +#define +DAQmxErrorCannotReadWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200473) +#define +DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200472) +#define +DAQmxErrorTaskVersionNew (-200470) +#define +DAQmxErrorChanVersionNew (-200469) +#define +DAQmxErrorEmptyString (-200467) +#define +DAQmxErrorChannelSizeTooBigForPortReadType (-200466) +#define +DAQmxErrorChannelSizeTooBigForPortWriteType (-200465) +#define +DAQmxErrorExpectedNumberOfChannelsVerificationFailed (-200464) +#define +DAQmxErrorNumLinesMismatchInReadOrWrite (-200463) +#define +DAQmxErrorOutputBufferEmpty (-200462) +#define +DAQmxErrorInvalidChanName (-200461) #define DAQmxErrorReadNoInputChansInTask (-200460) -#define DAQmxErrorWriteNoOutputChansInTask (-200459) -#define DAQmxErrorPropertyNotSupportedNotInputTask (-200457) -#define DAQmxErrorPropertyNotSupportedNotOutputTask (-200456) -#define DAQmxErrorGetPropertyNotInputBufferedTask (-200455) -#define DAQmxErrorGetPropertyNotOutputBufferedTask (-200454) -#define DAQmxErrorInvalidTimeoutVal (-200453) -#define DAQmxErrorAttributeNotSupportedInTaskContext (-200452) -#define DAQmxErrorAttributeNotQueryableUnlessTaskIsCommitted (-200451) -#define DAQmxErrorAttributeNotSettableWhenTaskIsRunning (-200450) -#define DAQmxErrorDACRngLowNotMinusRefValNorZero (-200449) -#define DAQmxErrorDACRngHighNotEqualRefVal (-200448) -#define DAQmxErrorUnitsNotFromCustomScale (-200447) -#define DAQmxErrorInvalidVoltageReadingDuringExtCal (-200446) -#define DAQmxErrorCalFunctionNotSupported (-200445) -#define DAQmxErrorInvalidPhysicalChanForCal (-200444) -#define DAQmxErrorExtCalNotComplete (-200443) -#define DAQmxErrorCantSyncToExtStimulusFreqDuringCal (-200442) -#define DAQmxErrorUnableToDetectExtStimulusFreqDuringCal (-200441) -#define DAQmxErrorInvalidCloseAction (-200440) -#define DAQmxErrorExtCalFunctionOutsideExtCalSession (-200439) -#define DAQmxErrorInvalidCalArea (-200438) -#define DAQmxErrorExtCalConstsInvalid (-200437) -#define DAQmxErrorStartTrigDelayWithExtSampClk (-200436) -#define DAQmxErrorDelayFromSampClkWithExtConv (-200435) +#define +DAQmxErrorWriteNoOutputChansInTask (-200459) +#define +DAQmxErrorPropertyNotSupportedNotInputTask (-200457) +#define +DAQmxErrorPropertyNotSupportedNotOutputTask (-200456) +#define +DAQmxErrorGetPropertyNotInputBufferedTask (-200455) +#define +DAQmxErrorGetPropertyNotOutputBufferedTask (-200454) +#define +DAQmxErrorInvalidTimeoutVal (-200453) +#define +DAQmxErrorAttributeNotSupportedInTaskContext (-200452) +#define +DAQmxErrorAttributeNotQueryableUnlessTaskIsCommitted (-200451) +#define +DAQmxErrorAttributeNotSettableWhenTaskIsRunning (-200450) +#define +DAQmxErrorDACRngLowNotMinusRefValNorZero (-200449) +#define +DAQmxErrorDACRngHighNotEqualRefVal (-200448) +#define +DAQmxErrorUnitsNotFromCustomScale (-200447) +#define +DAQmxErrorInvalidVoltageReadingDuringExtCal (-200446) +#define +DAQmxErrorCalFunctionNotSupported (-200445) +#define +DAQmxErrorInvalidPhysicalChanForCal (-200444) +#define +DAQmxErrorExtCalNotComplete (-200443) +#define +DAQmxErrorCantSyncToExtStimulusFreqDuringCal (-200442) +#define +DAQmxErrorUnableToDetectExtStimulusFreqDuringCal (-200441) +#define +DAQmxErrorInvalidCloseAction (-200440) +#define +DAQmxErrorExtCalFunctionOutsideExtCalSession (-200439) +#define +DAQmxErrorInvalidCalArea (-200438) +#define +DAQmxErrorExtCalConstsInvalid (-200437) +#define +DAQmxErrorStartTrigDelayWithExtSampClk (-200436) +#define +DAQmxErrorDelayFromSampClkWithExtConv (-200435) #define DAQmxErrorFewerThan2PreScaledVals (-200434) -#define DAQmxErrorFewerThan2ScaledValues (-200433) -#define DAQmxErrorPhysChanOutputType (-200432) -#define DAQmxErrorPhysChanMeasType (-200431) -#define DAQmxErrorInvalidPhysChanType (-200430) -#define DAQmxErrorLabVIEWEmptyTaskOrChans (-200429) -#define DAQmxErrorLabVIEWInvalidTaskOrChans (-200428) -#define DAQmxErrorInvalidRefClkRate (-200427) -#define DAQmxErrorInvalidExtTrigImpedance (-200426) -#define DAQmxErrorHystTrigLevelAIMax (-200425) -#define DAQmxErrorLineNumIncompatibleWithVideoSignalFormat (-200424) -#define DAQmxErrorTrigWindowAIMinAIMaxCombo (-200423) -#define DAQmxErrorTrigAIMinAIMax (-200422) -#define DAQmxErrorHystTrigLevelAIMin (-200421) -#define DAQmxErrorInvalidSampRateConsiderRIS (-200420) -#define DAQmxErrorInvalidReadPosDuringRIS (-200419) -#define DAQmxErrorImmedTrigDuringRISMode (-200418) -#define DAQmxErrorTDCNotEnabledDuringRISMode (-200417) -#define DAQmxErrorMultiRecWithRIS (-200416) -#define DAQmxErrorInvalidRefClkSrc (-200415) -#define DAQmxErrorInvalidSampClkSrc (-200414) -#define DAQmxErrorInsufficientOnBoardMemForNumRecsAndSamps (-200413) -#define DAQmxErrorInvalidAIAttenuation (-200412) -#define DAQmxErrorACCouplingNotAllowedWith50OhmImpedance (-200411) -#define DAQmxErrorInvalidRecordNum (-200410) +#define +DAQmxErrorFewerThan2ScaledValues (-200433) +#define +DAQmxErrorPhysChanOutputType (-200432) +#define +DAQmxErrorPhysChanMeasType (-200431) +#define +DAQmxErrorInvalidPhysChanType (-200430) +#define +DAQmxErrorLabVIEWEmptyTaskOrChans (-200429) +#define +DAQmxErrorLabVIEWInvalidTaskOrChans (-200428) +#define +DAQmxErrorInvalidRefClkRate (-200427) +#define +DAQmxErrorInvalidExtTrigImpedance (-200426) +#define +DAQmxErrorHystTrigLevelAIMax (-200425) +#define +DAQmxErrorLineNumIncompatibleWithVideoSignalFormat (-200424) +#define +DAQmxErrorTrigWindowAIMinAIMaxCombo (-200423) +#define +DAQmxErrorTrigAIMinAIMax (-200422) +#define +DAQmxErrorHystTrigLevelAIMin (-200421) +#define +DAQmxErrorInvalidSampRateConsiderRIS (-200420) +#define +DAQmxErrorInvalidReadPosDuringRIS (-200419) +#define +DAQmxErrorImmedTrigDuringRISMode (-200418) +#define +DAQmxErrorTDCNotEnabledDuringRISMode (-200417) +#define +DAQmxErrorMultiRecWithRIS (-200416) +#define +DAQmxErrorInvalidRefClkSrc (-200415) +#define +DAQmxErrorInvalidSampClkSrc (-200414) +#define +DAQmxErrorInsufficientOnBoardMemForNumRecsAndSamps (-200413) +#define +DAQmxErrorInvalidAIAttenuation (-200412) +#define +DAQmxErrorACCouplingNotAllowedWith50OhmImpedance (-200411) +#define +DAQmxErrorInvalidRecordNum (-200410) #define DAQmxErrorZeroSlopeLinearScale (-200409) -#define DAQmxErrorZeroReversePolyScaleCoeffs (-200408) -#define DAQmxErrorZeroForwardPolyScaleCoeffs (-200407) -#define DAQmxErrorNoReversePolyScaleCoeffs (-200406) -#define DAQmxErrorNoForwardPolyScaleCoeffs (-200405) -#define DAQmxErrorNoPolyScaleCoeffs (-200404) -#define DAQmxErrorReversePolyOrderLessThanNumPtsToCompute (-200403) -#define DAQmxErrorReversePolyOrderNotPositive (-200402) -#define DAQmxErrorNumPtsToComputeNotPositive (-200401) -#define DAQmxErrorWaveformLengthNotMultipleOfIncr (-200400) -#define DAQmxErrorCAPINoExtendedErrorInfoAvailable (-200399) -#define DAQmxErrorCVIFunctionNotFoundInDAQmxDLL (-200398) -#define DAQmxErrorCVIFailedToLoadDAQmxDLL (-200397) -#define DAQmxErrorNoCommonTrigLineForImmedRoute (-200396) -#define DAQmxErrorNoCommonTrigLineForTaskRoute (-200395) -#define DAQmxErrorF64PrptyValNotUnsignedInt (-200394) -#define DAQmxErrorRegisterNotWritable (-200393) -#define DAQmxErrorInvalidOutputVoltageAtSampClkRate (-200392) -#define DAQmxErrorStrobePhaseShiftDCMBecameUnlocked (-200391) -#define DAQmxErrorDrivePhaseShiftDCMBecameUnlocked (-200390) -#define DAQmxErrorClkOutPhaseShiftDCMBecameUnlocked (-200389) -#define DAQmxErrorOutputBoardClkDCMBecameUnlocked (-200388) -#define DAQmxErrorInputBoardClkDCMBecameUnlocked (-200387) -#define DAQmxErrorInternalClkDCMBecameUnlocked (-200386) -#define DAQmxErrorDCMLock (-200385) +#define +DAQmxErrorZeroReversePolyScaleCoeffs (-200408) +#define +DAQmxErrorZeroForwardPolyScaleCoeffs (-200407) +#define +DAQmxErrorNoReversePolyScaleCoeffs (-200406) +#define +DAQmxErrorNoForwardPolyScaleCoeffs (-200405) +#define +DAQmxErrorNoPolyScaleCoeffs (-200404) +#define +DAQmxErrorReversePolyOrderLessThanNumPtsToCompute (-200403) +#define +DAQmxErrorReversePolyOrderNotPositive (-200402) +#define +DAQmxErrorNumPtsToComputeNotPositive (-200401) +#define +DAQmxErrorWaveformLengthNotMultipleOfIncr (-200400) +#define +DAQmxErrorCAPINoExtendedErrorInfoAvailable (-200399) +#define +DAQmxErrorCVIFunctionNotFoundInDAQmxDLL (-200398) +#define +DAQmxErrorCVIFailedToLoadDAQmxDLL (-200397) +#define +DAQmxErrorNoCommonTrigLineForImmedRoute (-200396) +#define +DAQmxErrorNoCommonTrigLineForTaskRoute (-200395) +#define +DAQmxErrorF64PrptyValNotUnsignedInt (-200394) +#define +DAQmxErrorRegisterNotWritable (-200393) +#define +DAQmxErrorInvalidOutputVoltageAtSampClkRate (-200392) +#define +DAQmxErrorStrobePhaseShiftDCMBecameUnlocked (-200391) +#define +DAQmxErrorDrivePhaseShiftDCMBecameUnlocked (-200390) +#define +DAQmxErrorClkOutPhaseShiftDCMBecameUnlocked (-200389) +#define +DAQmxErrorOutputBoardClkDCMBecameUnlocked (-200388) +#define +DAQmxErrorInputBoardClkDCMBecameUnlocked (-200387) +#define +DAQmxErrorInternalClkDCMBecameUnlocked (-200386) +#define +DAQmxErrorDCMLock (-200385) #define DAQmxErrorDataLineReservedForDynamicOutput (-200384) -#define DAQmxErrorInvalidRefClkSrcGivenSampClkSrc (-200383) -#define DAQmxErrorNoPatternMatcherAvailable (-200382) -#define DAQmxErrorInvalidDelaySampRateBelowPhaseShiftDCMThresh (-200381) -#define DAQmxErrorStrainGageCalibration (-200380) -#define DAQmxErrorInvalidExtClockFreqAndDivCombo (-200379) -#define DAQmxErrorCustomScaleDoesNotExist (-200378) -#define DAQmxErrorOnlyFrontEndChanOpsDuringScan (-200377) -#define DAQmxErrorInvalidOptionForDigitalPortChannel (-200376) -#define DAQmxErrorUnsupportedSignalTypeExportSignal (-200375) -#define DAQmxErrorInvalidSignalTypeExportSignal (-200374) -#define DAQmxErrorUnsupportedTrigTypeSendsSWTrig (-200373) -#define DAQmxErrorInvalidTrigTypeSendsSWTrig (-200372) -#define DAQmxErrorRepeatedPhysicalChan (-200371) -#define DAQmxErrorResourcesInUseForRouteInTask (-200370) -#define DAQmxErrorResourcesInUseForRoute (-200369) -#define DAQmxErrorRouteNotSupportedByHW (-200368) -#define DAQmxErrorResourcesInUseForExportSignalPolarity (-200367) -#define DAQmxErrorResourcesInUseForInversionInTask (-200366) -#define DAQmxErrorResourcesInUseForInversion (-200365) -#define DAQmxErrorExportSignalPolarityNotSupportedByHW (-200364) -#define DAQmxErrorInversionNotSupportedByHW (-200363) -#define DAQmxErrorOverloadedChansExistNotRead (-200362) -#define DAQmxErrorInputFIFOOverflow2 (-200361) -#define DAQmxErrorCJCChanNotSpecd (-200360) +#define +DAQmxErrorInvalidRefClkSrcGivenSampClkSrc (-200383) +#define +DAQmxErrorNoPatternMatcherAvailable (-200382) +#define +DAQmxErrorInvalidDelaySampRateBelowPhaseShiftDCMThresh (-200381) +#define +DAQmxErrorStrainGageCalibration (-200380) +#define +DAQmxErrorInvalidExtClockFreqAndDivCombo (-200379) +#define +DAQmxErrorCustomScaleDoesNotExist (-200378) +#define +DAQmxErrorOnlyFrontEndChanOpsDuringScan (-200377) +#define +DAQmxErrorInvalidOptionForDigitalPortChannel (-200376) +#define +DAQmxErrorUnsupportedSignalTypeExportSignal (-200375) +#define +DAQmxErrorInvalidSignalTypeExportSignal (-200374) +#define +DAQmxErrorUnsupportedTrigTypeSendsSWTrig (-200373) +#define +DAQmxErrorInvalidTrigTypeSendsSWTrig (-200372) +#define +DAQmxErrorRepeatedPhysicalChan (-200371) +#define +DAQmxErrorResourcesInUseForRouteInTask (-200370) +#define +DAQmxErrorResourcesInUseForRoute (-200369) +#define +DAQmxErrorRouteNotSupportedByHW (-200368) +#define +DAQmxErrorResourcesInUseForExportSignalPolarity (-200367) +#define +DAQmxErrorResourcesInUseForInversionInTask (-200366) +#define +DAQmxErrorResourcesInUseForInversion (-200365) +#define +DAQmxErrorExportSignalPolarityNotSupportedByHW (-200364) +#define +DAQmxErrorInversionNotSupportedByHW (-200363) +#define +DAQmxErrorOverloadedChansExistNotRead (-200362) +#define +DAQmxErrorInputFIFOOverflow2 (-200361) +#define +DAQmxErrorCJCChanNotSpecd (-200360) #define DAQmxErrorCtrExportSignalNotPossible (-200359) -#define DAQmxErrorRefTrigWhenContinuous (-200358) -#define DAQmxErrorIncompatibleSensorOutputAndDeviceInputRanges (-200357) -#define DAQmxErrorCustomScaleNameUsed (-200356) -#define DAQmxErrorPropertyValNotSupportedByHW (-200355) -#define DAQmxErrorPropertyValNotValidTermName (-200354) -#define DAQmxErrorResourcesInUseForProperty (-200353) -#define DAQmxErrorCJCChanAlreadyUsed (-200352) -#define DAQmxErrorForwardPolynomialCoefNotSpecd (-200351) -#define DAQmxErrorTableScaleNumPreScaledAndScaledValsNotEqual (-200350) -#define DAQmxErrorTableScalePreScaledValsNotSpecd (-200349) -#define DAQmxErrorTableScaleScaledValsNotSpecd (-200348) -#define DAQmxErrorIntermediateBufferSizeNotMultipleOfIncr (-200347) -#define DAQmxErrorEventPulseWidthOutOfRange (-200346) -#define DAQmxErrorEventDelayOutOfRange (-200345) -#define DAQmxErrorSampPerChanNotMultipleOfIncr (-200344) -#define DAQmxErrorCannotCalculateNumSampsTaskNotStarted (-200343) -#define DAQmxErrorScriptNotInMem (-200342) -#define DAQmxErrorOnboardMemTooSmall (-200341) -#define DAQmxErrorReadAllAvailableDataWithoutBuffer (-200340) -#define DAQmxErrorPulseActiveAtStart (-200339) -#define DAQmxErrorCalTempNotSupported (-200338) -#define DAQmxErrorDelayFromSampClkTooLong (-200337) -#define DAQmxErrorDelayFromSampClkTooShort (-200336) -#define DAQmxErrorAIConvRateTooHigh (-200335) +#define +DAQmxErrorRefTrigWhenContinuous (-200358) +#define +DAQmxErrorIncompatibleSensorOutputAndDeviceInputRanges (-200357) +#define +DAQmxErrorCustomScaleNameUsed (-200356) +#define +DAQmxErrorPropertyValNotSupportedByHW (-200355) +#define +DAQmxErrorPropertyValNotValidTermName (-200354) +#define +DAQmxErrorResourcesInUseForProperty (-200353) +#define +DAQmxErrorCJCChanAlreadyUsed (-200352) +#define +DAQmxErrorForwardPolynomialCoefNotSpecd (-200351) +#define +DAQmxErrorTableScaleNumPreScaledAndScaledValsNotEqual (-200350) +#define +DAQmxErrorTableScalePreScaledValsNotSpecd (-200349) +#define +DAQmxErrorTableScaleScaledValsNotSpecd (-200348) +#define +DAQmxErrorIntermediateBufferSizeNotMultipleOfIncr (-200347) +#define +DAQmxErrorEventPulseWidthOutOfRange (-200346) +#define +DAQmxErrorEventDelayOutOfRange (-200345) +#define +DAQmxErrorSampPerChanNotMultipleOfIncr (-200344) +#define +DAQmxErrorCannotCalculateNumSampsTaskNotStarted (-200343) +#define +DAQmxErrorScriptNotInMem (-200342) +#define +DAQmxErrorOnboardMemTooSmall (-200341) +#define +DAQmxErrorReadAllAvailableDataWithoutBuffer (-200340) +#define +DAQmxErrorPulseActiveAtStart (-200339) +#define +DAQmxErrorCalTempNotSupported (-200338) +#define +DAQmxErrorDelayFromSampClkTooLong (-200337) +#define +DAQmxErrorDelayFromSampClkTooShort (-200336) +#define +DAQmxErrorAIConvRateTooHigh (-200335) #define DAQmxErrorDelayFromStartTrigTooLong (-200334) -#define DAQmxErrorDelayFromStartTrigTooShort (-200333) -#define DAQmxErrorSampRateTooHigh (-200332) -#define DAQmxErrorSampRateTooLow (-200331) -#define DAQmxErrorPFI0UsedForAnalogAndDigitalSrc (-200330) -#define DAQmxErrorPrimingCfgFIFO (-200329) -#define DAQmxErrorCannotOpenTopologyCfgFile (-200328) -#define DAQmxErrorInvalidDTInsideWfmDataType (-200327) -#define DAQmxErrorRouteSrcAndDestSame (-200326) -#define DAQmxErrorReversePolynomialCoefNotSpecd (-200325) -#define DAQmxErrorDevAbsentOrUnavailable (-200324) -#define DAQmxErrorNoAdvTrigForMultiDevScan (-200323) -#define DAQmxErrorInterruptsInsufficientDataXferMech (-200322) -#define DAQmxErrorInvalidAttentuationBasedOnMinMax (-200321) -#define DAQmxErrorCabledModuleCannotRouteSSH (-200320) -#define DAQmxErrorCabledModuleCannotRouteConvClk (-200319) -#define DAQmxErrorInvalidExcitValForScaling (-200318) -#define DAQmxErrorNoDevMemForScript (-200317) -#define DAQmxErrorScriptDataUnderflow (-200316) -#define DAQmxErrorNoDevMemForWaveform (-200315) -#define DAQmxErrorStreamDCMBecameUnlocked (-200314) -#define DAQmxErrorStreamDCMLock (-200313) -#define DAQmxErrorWaveformNotInMem (-200312) -#define DAQmxErrorWaveformWriteOutOfBounds (-200311) -#define DAQmxErrorWaveformPreviouslyAllocated (-200310) +#define +DAQmxErrorDelayFromStartTrigTooShort (-200333) +#define +DAQmxErrorSampRateTooHigh (-200332) +#define +DAQmxErrorSampRateTooLow (-200331) +#define +DAQmxErrorPFI0UsedForAnalogAndDigitalSrc (-200330) +#define +DAQmxErrorPrimingCfgFIFO (-200329) +#define +DAQmxErrorCannotOpenTopologyCfgFile (-200328) +#define +DAQmxErrorInvalidDTInsideWfmDataType (-200327) +#define +DAQmxErrorRouteSrcAndDestSame (-200326) +#define +DAQmxErrorReversePolynomialCoefNotSpecd (-200325) +#define +DAQmxErrorDevAbsentOrUnavailable (-200324) +#define +DAQmxErrorNoAdvTrigForMultiDevScan (-200323) +#define +DAQmxErrorInterruptsInsufficientDataXferMech (-200322) +#define +DAQmxErrorInvalidAttentuationBasedOnMinMax (-200321) +#define +DAQmxErrorCabledModuleCannotRouteSSH (-200320) +#define +DAQmxErrorCabledModuleCannotRouteConvClk (-200319) +#define +DAQmxErrorInvalidExcitValForScaling (-200318) +#define +DAQmxErrorNoDevMemForScript (-200317) +#define +DAQmxErrorScriptDataUnderflow (-200316) +#define +DAQmxErrorNoDevMemForWaveform (-200315) +#define +DAQmxErrorStreamDCMBecameUnlocked (-200314) +#define +DAQmxErrorStreamDCMLock (-200313) +#define +DAQmxErrorWaveformNotInMem (-200312) +#define +DAQmxErrorWaveformWriteOutOfBounds (-200311) +#define +DAQmxErrorWaveformPreviouslyAllocated (-200310) #define DAQmxErrorSampClkTbMasterTbDivNotAppropriateForSampTbSrc (-200309) -#define DAQmxErrorSampTbRateSampTbSrcMismatch (-200308) -#define DAQmxErrorMasterTbRateMasterTbSrcMismatch (-200307) -#define DAQmxErrorSampsPerChanTooBig (-200306) -#define DAQmxErrorFinitePulseTrainNotPossible (-200305) -#define DAQmxErrorExtMasterTimebaseRateNotSpecified (-200304) -#define DAQmxErrorExtSampClkSrcNotSpecified (-200303) -#define DAQmxErrorInputSignalSlowerThanMeasTime (-200302) -#define DAQmxErrorCannotUpdatePulseGenProperty (-200301) -#define DAQmxErrorInvalidTimingType (-200300) -#define DAQmxErrorPropertyUnavailWhenUsingOnboardMemory (-200297) -#define DAQmxErrorCannotWriteAfterStartWithOnboardMemory (-200295) -#define DAQmxErrorNotEnoughSampsWrittenForInitialXferRqstCondition (-200294) -#define DAQmxErrorNoMoreSpace (-200293) -#define DAQmxErrorSamplesCanNotYetBeWritten (-200292) -#define DAQmxErrorGenStoppedToPreventIntermediateBufferRegenOfOldSamples (-200291) -#define DAQmxErrorGenStoppedToPreventRegenOfOldSamples (-200290) -#define DAQmxErrorSamplesNoLongerWriteable (-200289) -#define DAQmxErrorSamplesWillNeverBeGenerated (-200288) -#define DAQmxErrorNegativeWriteSampleNumber (-200287) -#define DAQmxErrorNoAcqStarted (-200286) -#define DAQmxErrorSamplesNotYetAvailable (-200284) -#define DAQmxErrorAcqStoppedToPreventIntermediateBufferOverflow (-200283) -#define DAQmxErrorNoRefTrigConfigured (-200282) -#define DAQmxErrorCannotReadRelativeToRefTrigUntilDone (-200281) +#define +DAQmxErrorSampTbRateSampTbSrcMismatch (-200308) +#define +DAQmxErrorMasterTbRateMasterTbSrcMismatch (-200307) +#define +DAQmxErrorSampsPerChanTooBig (-200306) +#define +DAQmxErrorFinitePulseTrainNotPossible (-200305) +#define +DAQmxErrorExtMasterTimebaseRateNotSpecified (-200304) +#define +DAQmxErrorExtSampClkSrcNotSpecified (-200303) +#define +DAQmxErrorInputSignalSlowerThanMeasTime (-200302) +#define +DAQmxErrorCannotUpdatePulseGenProperty (-200301) +#define +DAQmxErrorInvalidTimingType (-200300) +#define +DAQmxErrorPropertyUnavailWhenUsingOnboardMemory (-200297) +#define +DAQmxErrorCannotWriteAfterStartWithOnboardMemory (-200295) +#define +DAQmxErrorNotEnoughSampsWrittenForInitialXferRqstCondition (-200294) +#define +DAQmxErrorNoMoreSpace (-200293) +#define +DAQmxErrorSamplesCanNotYetBeWritten (-200292) +#define +DAQmxErrorGenStoppedToPreventIntermediateBufferRegenOfOldSamples (-200291) +#define +DAQmxErrorGenStoppedToPreventRegenOfOldSamples (-200290) +#define +DAQmxErrorSamplesNoLongerWriteable (-200289) +#define +DAQmxErrorSamplesWillNeverBeGenerated (-200288) +#define +DAQmxErrorNegativeWriteSampleNumber (-200287) +#define +DAQmxErrorNoAcqStarted (-200286) +#define +DAQmxErrorSamplesNotYetAvailable (-200284) +#define +DAQmxErrorAcqStoppedToPreventIntermediateBufferOverflow (-200283) +#define +DAQmxErrorNoRefTrigConfigured (-200282) +#define +DAQmxErrorCannotReadRelativeToRefTrigUntilDone (-200281) #define DAQmxErrorSamplesNoLongerAvailable (-200279) -#define DAQmxErrorSamplesWillNeverBeAvailable (-200278) -#define DAQmxErrorNegativeReadSampleNumber (-200277) -#define DAQmxErrorExternalSampClkAndRefClkThruSameTerm (-200276) -#define DAQmxErrorExtSampClkRateTooLowForClkIn (-200275) -#define DAQmxErrorExtSampClkRateTooHighForBackplane (-200274) -#define DAQmxErrorSampClkRateAndDivCombo (-200273) -#define DAQmxErrorSampClkRateTooLowForDivDown (-200272) -#define DAQmxErrorProductOfAOMinAndGainTooSmall (-200271) -#define DAQmxErrorInterpolationRateNotPossible (-200270) -#define DAQmxErrorOffsetTooLarge (-200269) -#define DAQmxErrorOffsetTooSmall (-200268) -#define DAQmxErrorProductOfAOMaxAndGainTooLarge (-200267) -#define DAQmxErrorMinAndMaxNotSymmetric (-200266) -#define DAQmxErrorInvalidAnalogTrigSrc (-200265) -#define DAQmxErrorTooManyChansForAnalogRefTrig (-200264) -#define DAQmxErrorTooManyChansForAnalogPauseTrig (-200263) -#define DAQmxErrorTrigWhenOnDemandSampTiming (-200262) -#define DAQmxErrorInconsistentAnalogTrigSettings (-200261) -#define DAQmxErrorMemMapDataXferModeSampTimingCombo (-200260) -#define DAQmxErrorInvalidJumperedAttr (-200259) -#define DAQmxErrorInvalidGainBasedOnMinMax (-200258) -#define DAQmxErrorInconsistentExcit (-200257) -#define DAQmxErrorTopologyNotSupportedByCfgTermBlock (-200256) -#define DAQmxErrorBuiltInTempSensorNotSupported (-200255) +#define +DAQmxErrorSamplesWillNeverBeAvailable (-200278) +#define +DAQmxErrorNegativeReadSampleNumber (-200277) +#define +DAQmxErrorExternalSampClkAndRefClkThruSameTerm (-200276) +#define +DAQmxErrorExtSampClkRateTooLowForClkIn (-200275) +#define +DAQmxErrorExtSampClkRateTooHighForBackplane (-200274) +#define +DAQmxErrorSampClkRateAndDivCombo (-200273) +#define +DAQmxErrorSampClkRateTooLowForDivDown (-200272) +#define +DAQmxErrorProductOfAOMinAndGainTooSmall (-200271) +#define +DAQmxErrorInterpolationRateNotPossible (-200270) +#define +DAQmxErrorOffsetTooLarge (-200269) +#define +DAQmxErrorOffsetTooSmall (-200268) +#define +DAQmxErrorProductOfAOMaxAndGainTooLarge (-200267) +#define +DAQmxErrorMinAndMaxNotSymmetric (-200266) +#define +DAQmxErrorInvalidAnalogTrigSrc (-200265) +#define +DAQmxErrorTooManyChansForAnalogRefTrig (-200264) +#define +DAQmxErrorTooManyChansForAnalogPauseTrig (-200263) +#define +DAQmxErrorTrigWhenOnDemandSampTiming (-200262) +#define +DAQmxErrorInconsistentAnalogTrigSettings (-200261) +#define +DAQmxErrorMemMapDataXferModeSampTimingCombo (-200260) +#define +DAQmxErrorInvalidJumperedAttr (-200259) +#define +DAQmxErrorInvalidGainBasedOnMinMax (-200258) +#define +DAQmxErrorInconsistentExcit (-200257) +#define +DAQmxErrorTopologyNotSupportedByCfgTermBlock (-200256) +#define +DAQmxErrorBuiltInTempSensorNotSupported (-200255) #define DAQmxErrorInvalidTerm (-200254) -#define DAQmxErrorCannotTristateTerm (-200253) -#define DAQmxErrorCannotTristateBusyTerm (-200252) -#define DAQmxErrorNoDMAChansAvailable (-200251) -#define DAQmxErrorInvalidWaveformLengthWithinLoopInScript (-200250) -#define DAQmxErrorInvalidSubsetLengthWithinLoopInScript (-200249) -#define DAQmxErrorMarkerPosInvalidForLoopInScript (-200248) -#define DAQmxErrorIntegerExpectedInScript (-200247) -#define DAQmxErrorPLLBecameUnlocked (-200246) -#define DAQmxErrorPLLLock (-200245) -#define DAQmxErrorDDCClkOutDCMBecameUnlocked (-200244) -#define DAQmxErrorDDCClkOutDCMLock (-200243) -#define DAQmxErrorClkDoublerDCMBecameUnlocked (-200242) -#define DAQmxErrorClkDoublerDCMLock (-200241) -#define DAQmxErrorSampClkDCMBecameUnlocked (-200240) -#define DAQmxErrorSampClkDCMLock (-200239) -#define DAQmxErrorSampClkTimebaseDCMBecameUnlocked (-200238) -#define DAQmxErrorSampClkTimebaseDCMLock (-200237) -#define DAQmxErrorAttrCannotBeReset (-200236) -#define DAQmxErrorExplanationNotFound (-200235) -#define DAQmxErrorWriteBufferTooSmall (-200234) -#define DAQmxErrorSpecifiedAttrNotValid (-200233) -#define DAQmxErrorAttrCannotBeRead (-200232) -#define DAQmxErrorAttrCannotBeSet (-200231) -#define DAQmxErrorNULLPtrForC_Api (-200230) +#define +DAQmxErrorCannotTristateTerm (-200253) +#define +DAQmxErrorCannotTristateBusyTerm (-200252) +#define +DAQmxErrorNoDMAChansAvailable (-200251) +#define +DAQmxErrorInvalidWaveformLengthWithinLoopInScript (-200250) +#define +DAQmxErrorInvalidSubsetLengthWithinLoopInScript (-200249) +#define +DAQmxErrorMarkerPosInvalidForLoopInScript (-200248) +#define +DAQmxErrorIntegerExpectedInScript (-200247) +#define +DAQmxErrorPLLBecameUnlocked (-200246) +#define +DAQmxErrorPLLLock (-200245) +#define +DAQmxErrorDDCClkOutDCMBecameUnlocked (-200244) +#define +DAQmxErrorDDCClkOutDCMLock (-200243) +#define +DAQmxErrorClkDoublerDCMBecameUnlocked (-200242) +#define +DAQmxErrorClkDoublerDCMLock (-200241) +#define +DAQmxErrorSampClkDCMBecameUnlocked (-200240) +#define +DAQmxErrorSampClkDCMLock (-200239) +#define +DAQmxErrorSampClkTimebaseDCMBecameUnlocked (-200238) +#define +DAQmxErrorSampClkTimebaseDCMLock (-200237) +#define +DAQmxErrorAttrCannotBeReset (-200236) +#define +DAQmxErrorExplanationNotFound (-200235) +#define +DAQmxErrorWriteBufferTooSmall (-200234) +#define +DAQmxErrorSpecifiedAttrNotValid (-200233) +#define +DAQmxErrorAttrCannotBeRead (-200232) +#define +DAQmxErrorAttrCannotBeSet (-200231) +#define +DAQmxErrorNULLPtrForC_Api (-200230) #define DAQmxErrorReadBufferTooSmall (-200229) -#define DAQmxErrorBufferTooSmallForString (-200228) -#define DAQmxErrorNoAvailTrigLinesOnDevice (-200227) -#define DAQmxErrorTrigBusLineNotAvail (-200226) -#define DAQmxErrorCouldNotReserveRequestedTrigLine (-200225) -#define DAQmxErrorTrigLineNotFound (-200224) -#define DAQmxErrorSCXI1126ThreshHystCombination (-200223) -#define DAQmxErrorAcqStoppedToPreventInputBufferOverwrite (-200222) -#define DAQmxErrorTimeoutExceeded (-200221) -#define DAQmxErrorInvalidDeviceID (-200220) -#define DAQmxErrorInvalidAOChanOrder (-200219) -#define DAQmxErrorSampleTimingTypeAndDataXferMode (-200218) -#define DAQmxErrorBufferWithOnDemandSampTiming (-200217) -#define DAQmxErrorBufferAndDataXferMode (-200216) -#define DAQmxErrorMemMapAndBuffer (-200215) -#define DAQmxErrorNoAnalogTrigHW (-200214) -#define DAQmxErrorTooManyPretrigPlusMinPostTrigSamps (-200213) -#define DAQmxErrorInconsistentUnitsSpecified (-200212) -#define DAQmxErrorMultipleRelaysForSingleRelayOp (-200211) -#define DAQmxErrorMultipleDevIDsPerChassisSpecifiedInList (-200210) -#define DAQmxErrorDuplicateDevIDInList (-200209) -#define DAQmxErrorInvalidRangeStatementCharInList (-200208) -#define DAQmxErrorInvalidDeviceIDInList (-200207) -#define DAQmxErrorTriggerPolarityConflict (-200206) -#define DAQmxErrorCannotScanWithCurrentTopology (-200205) +#define +DAQmxErrorBufferTooSmallForString (-200228) +#define +DAQmxErrorNoAvailTrigLinesOnDevice (-200227) +#define +DAQmxErrorTrigBusLineNotAvail (-200226) +#define +DAQmxErrorCouldNotReserveRequestedTrigLine (-200225) +#define +DAQmxErrorTrigLineNotFound (-200224) +#define +DAQmxErrorSCXI1126ThreshHystCombination (-200223) +#define +DAQmxErrorAcqStoppedToPreventInputBufferOverwrite (-200222) +#define +DAQmxErrorTimeoutExceeded (-200221) +#define +DAQmxErrorInvalidDeviceID (-200220) +#define +DAQmxErrorInvalidAOChanOrder (-200219) +#define +DAQmxErrorSampleTimingTypeAndDataXferMode (-200218) +#define +DAQmxErrorBufferWithOnDemandSampTiming (-200217) +#define +DAQmxErrorBufferAndDataXferMode (-200216) +#define +DAQmxErrorMemMapAndBuffer (-200215) +#define +DAQmxErrorNoAnalogTrigHW (-200214) +#define +DAQmxErrorTooManyPretrigPlusMinPostTrigSamps (-200213) +#define +DAQmxErrorInconsistentUnitsSpecified (-200212) +#define +DAQmxErrorMultipleRelaysForSingleRelayOp (-200211) +#define +DAQmxErrorMultipleDevIDsPerChassisSpecifiedInList (-200210) +#define +DAQmxErrorDuplicateDevIDInList (-200209) +#define +DAQmxErrorInvalidRangeStatementCharInList (-200208) +#define +DAQmxErrorInvalidDeviceIDInList (-200207) +#define +DAQmxErrorTriggerPolarityConflict (-200206) +#define +DAQmxErrorCannotScanWithCurrentTopology (-200205) #define DAQmxErrorUnexpectedIdentifierInFullySpecifiedPathInList (-200204) -#define DAQmxErrorSwitchCannotDriveMultipleTrigLines (-200203) -#define DAQmxErrorInvalidRelayName (-200202) -#define DAQmxErrorSwitchScanlistTooBig (-200201) -#define DAQmxErrorSwitchChanInUse (-200200) -#define DAQmxErrorSwitchNotResetBeforeScan (-200199) -#define DAQmxErrorInvalidTopology (-200198) -#define DAQmxErrorAttrNotSupported (-200197) -#define DAQmxErrorUnexpectedEndOfActionsInList (-200196) -#define DAQmxErrorPowerLimitExceeded (-200195) -#define DAQmxErrorHWUnexpectedlyPoweredOffAndOn (-200194) -#define DAQmxErrorSwitchOperationNotSupported (-200193) -#define DAQmxErrorOnlyContinuousScanSupported (-200192) -#define DAQmxErrorSwitchDifferentTopologyWhenScanning (-200191) -#define DAQmxErrorDisconnectPathNotSameAsExistingPath (-200190) -#define DAQmxErrorConnectionNotPermittedOnChanReservedForRouting (-200189) -#define DAQmxErrorCannotConnectSrcChans (-200188) -#define DAQmxErrorCannotConnectChannelToItself (-200187) -#define DAQmxErrorChannelNotReservedForRouting (-200186) -#define DAQmxErrorCannotConnectChansDirectly (-200185) -#define DAQmxErrorChansAlreadyConnected (-200184) -#define DAQmxErrorChanDuplicatedInPath (-200183) -#define DAQmxErrorNoPathToDisconnect (-200182) -#define DAQmxErrorInvalidSwitchChan (-200181) -#define DAQmxErrorNoPathAvailableBetween2SwitchChans (-200180) +#define +DAQmxErrorSwitchCannotDriveMultipleTrigLines (-200203) +#define +DAQmxErrorInvalidRelayName (-200202) +#define +DAQmxErrorSwitchScanlistTooBig (-200201) +#define +DAQmxErrorSwitchChanInUse (-200200) +#define +DAQmxErrorSwitchNotResetBeforeScan (-200199) +#define +DAQmxErrorInvalidTopology (-200198) +#define +DAQmxErrorAttrNotSupported (-200197) +#define +DAQmxErrorUnexpectedEndOfActionsInList (-200196) +#define +DAQmxErrorPowerLimitExceeded (-200195) +#define +DAQmxErrorHWUnexpectedlyPoweredOffAndOn (-200194) +#define +DAQmxErrorSwitchOperationNotSupported (-200193) +#define +DAQmxErrorOnlyContinuousScanSupported (-200192) +#define +DAQmxErrorSwitchDifferentTopologyWhenScanning (-200191) +#define +DAQmxErrorDisconnectPathNotSameAsExistingPath (-200190) +#define +DAQmxErrorConnectionNotPermittedOnChanReservedForRouting (-200189) +#define +DAQmxErrorCannotConnectSrcChans (-200188) +#define +DAQmxErrorCannotConnectChannelToItself (-200187) +#define +DAQmxErrorChannelNotReservedForRouting (-200186) +#define +DAQmxErrorCannotConnectChansDirectly (-200185) +#define +DAQmxErrorChansAlreadyConnected (-200184) +#define +DAQmxErrorChanDuplicatedInPath (-200183) +#define +DAQmxErrorNoPathToDisconnect (-200182) +#define +DAQmxErrorInvalidSwitchChan (-200181) +#define +DAQmxErrorNoPathAvailableBetween2SwitchChans (-200180) #define DAQmxErrorExplicitConnectionExists (-200179) -#define DAQmxErrorSwitchDifferentSettlingTimeWhenScanning (-200178) -#define DAQmxErrorOperationOnlyPermittedWhileScanning (-200177) -#define DAQmxErrorOperationNotPermittedWhileScanning (-200176) -#define DAQmxErrorHardwareNotResponding (-200175) -#define DAQmxErrorInvalidSampAndMasterTimebaseRateCombo (-200173) -#define DAQmxErrorNonZeroBufferSizeInProgIOXfer (-200172) -#define DAQmxErrorVirtualChanNameUsed (-200171) -#define DAQmxErrorPhysicalChanDoesNotExist (-200170) -#define DAQmxErrorMemMapOnlyForProgIOXfer (-200169) -#define DAQmxErrorTooManyChans (-200168) -#define DAQmxErrorCannotHaveCJTempWithOtherChans (-200167) -#define DAQmxErrorOutputBufferUnderwrite (-200166) -#define DAQmxErrorSensorInvalidCompletionResistance (-200163) -#define DAQmxErrorVoltageExcitIncompatibleWith2WireCfg (-200162) -#define DAQmxErrorIntExcitSrcNotAvailable (-200161) -#define DAQmxErrorCannotCreateChannelAfterTaskVerified (-200160) -#define DAQmxErrorLinesReservedForSCXIControl (-200159) -#define DAQmxErrorCouldNotReserveLinesForSCXIControl (-200158) -#define DAQmxErrorCalibrationFailed (-200157) -#define DAQmxErrorReferenceFrequencyInvalid (-200156) -#define DAQmxErrorReferenceResistanceInvalid (-200155) -#define DAQmxErrorReferenceCurrentInvalid (-200154) -#define DAQmxErrorReferenceVoltageInvalid (-200153) -#define DAQmxErrorEEPROMDataInvalid (-200152) +#define +DAQmxErrorSwitchDifferentSettlingTimeWhenScanning (-200178) +#define +DAQmxErrorOperationOnlyPermittedWhileScanning (-200177) +#define +DAQmxErrorOperationNotPermittedWhileScanning (-200176) +#define +DAQmxErrorHardwareNotResponding (-200175) +#define +DAQmxErrorInvalidSampAndMasterTimebaseRateCombo (-200173) +#define +DAQmxErrorNonZeroBufferSizeInProgIOXfer (-200172) +#define +DAQmxErrorVirtualChanNameUsed (-200171) +#define +DAQmxErrorPhysicalChanDoesNotExist (-200170) +#define +DAQmxErrorMemMapOnlyForProgIOXfer (-200169) +#define +DAQmxErrorTooManyChans (-200168) +#define +DAQmxErrorCannotHaveCJTempWithOtherChans (-200167) +#define +DAQmxErrorOutputBufferUnderwrite (-200166) +#define +DAQmxErrorSensorInvalidCompletionResistance (-200163) +#define +DAQmxErrorVoltageExcitIncompatibleWith2WireCfg (-200162) +#define +DAQmxErrorIntExcitSrcNotAvailable (-200161) +#define +DAQmxErrorCannotCreateChannelAfterTaskVerified (-200160) +#define +DAQmxErrorLinesReservedForSCXIControl (-200159) +#define +DAQmxErrorCouldNotReserveLinesForSCXIControl (-200158) +#define +DAQmxErrorCalibrationFailed (-200157) +#define +DAQmxErrorReferenceFrequencyInvalid (-200156) +#define +DAQmxErrorReferenceResistanceInvalid (-200155) +#define +DAQmxErrorReferenceCurrentInvalid (-200154) +#define +DAQmxErrorReferenceVoltageInvalid (-200153) +#define +DAQmxErrorEEPROMDataInvalid (-200152) #define DAQmxErrorCabledModuleNotCapableOfRoutingAI (-200151) -#define DAQmxErrorChannelNotAvailableInParallelMode (-200150) -#define DAQmxErrorExternalTimebaseRateNotKnownForDelay (-200149) -#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency (-200148) -#define DAQmxErrorMultipleCounterInputTask (-200147) -#define DAQmxErrorCounterStartPauseTriggerConflict (-200146) -#define DAQmxErrorCounterInputPauseTriggerAndSampleClockInvalid (-200145) -#define DAQmxErrorCounterOutputPauseTriggerInvalid (-200144) -#define DAQmxErrorCounterTimebaseRateNotSpecified (-200143) -#define DAQmxErrorCounterTimebaseRateNotFound (-200142) -#define DAQmxErrorCounterOverflow (-200141) -#define DAQmxErrorCounterNoTimebaseEdgesBetweenGates (-200140) -#define DAQmxErrorCounterMaxMinRangeFreq (-200139) -#define DAQmxErrorCounterMaxMinRangeTime (-200138) -#define DAQmxErrorSuitableTimebaseNotFoundTimeCombo (-200137) -#define DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo (-200136) -#define DAQmxErrorInternalTimebaseSourceDivisorCombo (-200135) -#define DAQmxErrorInternalTimebaseSourceRateCombo (-200134) -#define DAQmxErrorInternalTimebaseRateDivisorSourceCombo (-200133) -#define DAQmxErrorExternalTimebaseRateNotknownForRate (-200132) -#define DAQmxErrorAnalogTrigChanNotFirstInScanList (-200131) -#define DAQmxErrorNoDivisorForExternalSignal (-200130) -#define DAQmxErrorAttributeInconsistentAcrossRepeatedPhysicalChannels (-200128) -#define DAQmxErrorCannotHandshakeWithPort0 (-200127) -#define DAQmxErrorControlLineConflictOnPortC (-200126) +#define +DAQmxErrorChannelNotAvailableInParallelMode (-200150) +#define +DAQmxErrorExternalTimebaseRateNotKnownForDelay (-200149) +#define +DAQmxErrorFREQOUTCannotProduceDesiredFrequency (-200148) +#define +DAQmxErrorMultipleCounterInputTask (-200147) +#define +DAQmxErrorCounterStartPauseTriggerConflict (-200146) +#define +DAQmxErrorCounterInputPauseTriggerAndSampleClockInvalid (-200145) +#define +DAQmxErrorCounterOutputPauseTriggerInvalid (-200144) +#define +DAQmxErrorCounterTimebaseRateNotSpecified (-200143) +#define +DAQmxErrorCounterTimebaseRateNotFound (-200142) +#define +DAQmxErrorCounterOverflow (-200141) +#define +DAQmxErrorCounterNoTimebaseEdgesBetweenGates (-200140) +#define +DAQmxErrorCounterMaxMinRangeFreq (-200139) +#define +DAQmxErrorCounterMaxMinRangeTime (-200138) +#define +DAQmxErrorSuitableTimebaseNotFoundTimeCombo (-200137) +#define +DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo (-200136) +#define +DAQmxErrorInternalTimebaseSourceDivisorCombo (-200135) +#define +DAQmxErrorInternalTimebaseSourceRateCombo (-200134) +#define +DAQmxErrorInternalTimebaseRateDivisorSourceCombo (-200133) +#define +DAQmxErrorExternalTimebaseRateNotknownForRate (-200132) +#define +DAQmxErrorAnalogTrigChanNotFirstInScanList (-200131) +#define +DAQmxErrorNoDivisorForExternalSignal (-200130) +#define +DAQmxErrorAttributeInconsistentAcrossRepeatedPhysicalChannels (-200128) +#define +DAQmxErrorCannotHandshakeWithPort0 (-200127) +#define +DAQmxErrorControlLineConflictOnPortC (-200126) #define DAQmxErrorLines4To7ConfiguredForOutput (-200125) -#define DAQmxErrorLines4To7ConfiguredForInput (-200124) -#define DAQmxErrorLines0To3ConfiguredForOutput (-200123) -#define DAQmxErrorLines0To3ConfiguredForInput (-200122) -#define DAQmxErrorPortConfiguredForOutput (-200121) -#define DAQmxErrorPortConfiguredForInput (-200120) -#define DAQmxErrorPortConfiguredForStaticDigitalOps (-200119) -#define DAQmxErrorPortReservedForHandshaking (-200118) -#define DAQmxErrorPortDoesNotSupportHandshakingDataIO (-200117) -#define DAQmxErrorCannotTristate8255OutputLines (-200116) -#define DAQmxErrorTemperatureOutOfRangeForCalibration (-200113) -#define DAQmxErrorCalibrationHandleInvalid (-200112) -#define DAQmxErrorPasswordRequired (-200111) -#define DAQmxErrorIncorrectPassword (-200110) -#define DAQmxErrorPasswordTooLong (-200109) -#define DAQmxErrorCalibrationSessionAlreadyOpen (-200108) -#define DAQmxErrorSCXIModuleIncorrect (-200107) -#define DAQmxErrorAttributeInconsistentAcrossChannelsOnDevice (-200106) -#define DAQmxErrorSCXI1122ResistanceChanNotSupportedForCfg (-200105) -#define DAQmxErrorBracketPairingMismatchInList (-200104) -#define DAQmxErrorInconsistentNumSamplesToWrite (-200103) -#define DAQmxErrorIncorrectDigitalPattern (-200102) -#define DAQmxErrorIncorrectNumChannelsToWrite (-200101) -#define DAQmxErrorIncorrectReadFunction (-200100) -#define DAQmxErrorPhysicalChannelNotSpecified (-200099) +#define +DAQmxErrorLines4To7ConfiguredForInput (-200124) +#define +DAQmxErrorLines0To3ConfiguredForOutput (-200123) +#define +DAQmxErrorLines0To3ConfiguredForInput (-200122) +#define +DAQmxErrorPortConfiguredForOutput (-200121) +#define +DAQmxErrorPortConfiguredForInput (-200120) +#define +DAQmxErrorPortConfiguredForStaticDigitalOps (-200119) +#define +DAQmxErrorPortReservedForHandshaking (-200118) +#define +DAQmxErrorPortDoesNotSupportHandshakingDataIO (-200117) +#define +DAQmxErrorCannotTristate8255OutputLines (-200116) +#define +DAQmxErrorTemperatureOutOfRangeForCalibration (-200113) +#define +DAQmxErrorCalibrationHandleInvalid (-200112) +#define +DAQmxErrorPasswordRequired (-200111) +#define +DAQmxErrorIncorrectPassword (-200110) +#define +DAQmxErrorPasswordTooLong (-200109) +#define +DAQmxErrorCalibrationSessionAlreadyOpen (-200108) +#define +DAQmxErrorSCXIModuleIncorrect (-200107) +#define +DAQmxErrorAttributeInconsistentAcrossChannelsOnDevice (-200106) +#define +DAQmxErrorSCXI1122ResistanceChanNotSupportedForCfg (-200105) +#define +DAQmxErrorBracketPairingMismatchInList (-200104) +#define +DAQmxErrorInconsistentNumSamplesToWrite (-200103) +#define +DAQmxErrorIncorrectDigitalPattern (-200102) +#define +DAQmxErrorIncorrectNumChannelsToWrite (-200101) +#define +DAQmxErrorIncorrectReadFunction (-200100) +#define +DAQmxErrorPhysicalChannelNotSpecified (-200099) #define DAQmxErrorMoreThanOneTerminal (-200098) -#define DAQmxErrorMoreThanOneActiveChannelSpecified (-200097) -#define DAQmxErrorInvalidNumberSamplesToRead (-200096) -#define DAQmxErrorAnalogWaveformExpected (-200095) -#define DAQmxErrorDigitalWaveformExpected (-200094) -#define DAQmxErrorActiveChannelNotSpecified (-200093) -#define DAQmxErrorFunctionNotSupportedForDeviceTasks (-200092) -#define DAQmxErrorFunctionNotInLibrary (-200091) -#define DAQmxErrorLibraryNotPresent (-200090) -#define DAQmxErrorDuplicateTask (-200089) -#define DAQmxErrorInvalidTask (-200088) -#define DAQmxErrorInvalidChannel (-200087) -#define DAQmxErrorInvalidSyntaxForPhysicalChannelRange (-200086) -#define DAQmxErrorMinNotLessThanMax (-200082) -#define DAQmxErrorSampleRateNumChansConvertPeriodCombo (-200081) -#define DAQmxErrorAODuringCounter1DMAConflict (-200079) -#define DAQmxErrorAIDuringCounter0DMAConflict (-200078) -#define DAQmxErrorInvalidAttributeValue (-200077) -#define DAQmxErrorSuppliedCurrentDataOutsideSpecifiedRange (-200076) -#define DAQmxErrorSuppliedVoltageDataOutsideSpecifiedRange (-200075) -#define DAQmxErrorCannotStoreCalConst (-200074) -#define DAQmxErrorSCXIModuleNotFound (-200073) -#define DAQmxErrorDuplicatePhysicalChansNotSupported (-200072) -#define DAQmxErrorTooManyPhysicalChansInList (-200071) -#define DAQmxErrorInvalidAdvanceEventTriggerType (-200070) +#define +DAQmxErrorMoreThanOneActiveChannelSpecified (-200097) +#define +DAQmxErrorInvalidNumberSamplesToRead (-200096) +#define +DAQmxErrorAnalogWaveformExpected (-200095) +#define +DAQmxErrorDigitalWaveformExpected (-200094) +#define +DAQmxErrorActiveChannelNotSpecified (-200093) +#define +DAQmxErrorFunctionNotSupportedForDeviceTasks (-200092) +#define +DAQmxErrorFunctionNotInLibrary (-200091) +#define +DAQmxErrorLibraryNotPresent (-200090) +#define +DAQmxErrorDuplicateTask (-200089) +#define +DAQmxErrorInvalidTask (-200088) +#define +DAQmxErrorInvalidChannel (-200087) +#define +DAQmxErrorInvalidSyntaxForPhysicalChannelRange (-200086) +#define +DAQmxErrorMinNotLessThanMax (-200082) +#define +DAQmxErrorSampleRateNumChansConvertPeriodCombo (-200081) +#define +DAQmxErrorAODuringCounter1DMAConflict (-200079) +#define +DAQmxErrorAIDuringCounter0DMAConflict (-200078) +#define +DAQmxErrorInvalidAttributeValue (-200077) +#define +DAQmxErrorSuppliedCurrentDataOutsideSpecifiedRange (-200076) +#define +DAQmxErrorSuppliedVoltageDataOutsideSpecifiedRange (-200075) +#define +DAQmxErrorCannotStoreCalConst (-200074) +#define +DAQmxErrorSCXIModuleNotFound (-200073) +#define +DAQmxErrorDuplicatePhysicalChansNotSupported (-200072) +#define +DAQmxErrorTooManyPhysicalChansInList (-200071) +#define +DAQmxErrorInvalidAdvanceEventTriggerType (-200070) #define DAQmxErrorDeviceIsNotAValidSwitch (-200069) -#define DAQmxErrorDeviceDoesNotSupportScanning (-200068) -#define DAQmxErrorScanListCannotBeTimed (-200067) -#define DAQmxErrorConnectOperatorInvalidAtPointInList (-200066) -#define DAQmxErrorUnexpectedSwitchActionInList (-200065) -#define DAQmxErrorUnexpectedSeparatorInList (-200064) -#define DAQmxErrorExpectedTerminatorInList (-200063) -#define DAQmxErrorExpectedConnectOperatorInList (-200062) -#define DAQmxErrorExpectedSeparatorInList (-200061) -#define DAQmxErrorFullySpecifiedPathInListContainsRange (-200060) -#define DAQmxErrorConnectionSeparatorAtEndOfList (-200059) -#define DAQmxErrorIdentifierInListTooLong (-200058) -#define DAQmxErrorDuplicateDeviceIDInListWhenSettling (-200057) -#define DAQmxErrorChannelNameNotSpecifiedInList (-200056) -#define DAQmxErrorDeviceIDNotSpecifiedInList (-200055) -#define DAQmxErrorSemicolonDoesNotFollowRangeInList (-200054) -#define DAQmxErrorSwitchActionInListSpansMultipleDevices (-200053) -#define DAQmxErrorRangeWithoutAConnectActionInList (-200052) -#define DAQmxErrorInvalidIdentifierFollowingSeparatorInList (-200051) -#define DAQmxErrorInvalidChannelNameInList (-200050) -#define DAQmxErrorInvalidNumberInRepeatStatementInList (-200049) -#define DAQmxErrorInvalidTriggerLineInList (-200048) -#define DAQmxErrorInvalidIdentifierInListFollowingDeviceID (-200047) -#define DAQmxErrorInvalidIdentifierInListAtEndOfSwitchAction (-200046) -#define DAQmxErrorDeviceRemoved (-200045) +#define +DAQmxErrorDeviceDoesNotSupportScanning (-200068) +#define +DAQmxErrorScanListCannotBeTimed (-200067) +#define +DAQmxErrorConnectOperatorInvalidAtPointInList (-200066) +#define +DAQmxErrorUnexpectedSwitchActionInList (-200065) +#define +DAQmxErrorUnexpectedSeparatorInList (-200064) +#define +DAQmxErrorExpectedTerminatorInList (-200063) +#define +DAQmxErrorExpectedConnectOperatorInList (-200062) +#define +DAQmxErrorExpectedSeparatorInList (-200061) +#define +DAQmxErrorFullySpecifiedPathInListContainsRange (-200060) +#define +DAQmxErrorConnectionSeparatorAtEndOfList (-200059) +#define +DAQmxErrorIdentifierInListTooLong (-200058) +#define +DAQmxErrorDuplicateDeviceIDInListWhenSettling (-200057) +#define +DAQmxErrorChannelNameNotSpecifiedInList (-200056) +#define +DAQmxErrorDeviceIDNotSpecifiedInList (-200055) +#define +DAQmxErrorSemicolonDoesNotFollowRangeInList (-200054) +#define +DAQmxErrorSwitchActionInListSpansMultipleDevices (-200053) +#define +DAQmxErrorRangeWithoutAConnectActionInList (-200052) +#define +DAQmxErrorInvalidIdentifierFollowingSeparatorInList (-200051) +#define +DAQmxErrorInvalidChannelNameInList (-200050) +#define +DAQmxErrorInvalidNumberInRepeatStatementInList (-200049) +#define +DAQmxErrorInvalidTriggerLineInList (-200048) +#define +DAQmxErrorInvalidIdentifierInListFollowingDeviceID (-200047) +#define +DAQmxErrorInvalidIdentifierInListAtEndOfSwitchAction (-200046) +#define +DAQmxErrorDeviceRemoved (-200045) #define DAQmxErrorRoutingPathNotAvailable (-200044) -#define DAQmxErrorRoutingHardwareBusy (-200043) -#define DAQmxErrorRequestedSignalInversionForRoutingNotPossible (-200042) -#define DAQmxErrorInvalidRoutingDestinationTerminalName (-200041) -#define DAQmxErrorInvalidRoutingSourceTerminalName (-200040) -#define DAQmxErrorRoutingNotSupportedForDevice (-200039) -#define DAQmxErrorWaitIsLastInstructionOfLoopInScript (-200038) -#define DAQmxErrorClearIsLastInstructionOfLoopInScript (-200037) -#define DAQmxErrorInvalidLoopIterationsInScript (-200036) -#define DAQmxErrorRepeatLoopNestingTooDeepInScript (-200035) -#define DAQmxErrorMarkerPositionOutsideSubsetInScript (-200034) -#define DAQmxErrorSubsetStartOffsetNotAlignedInScript (-200033) -#define DAQmxErrorInvalidSubsetLengthInScript (-200032) -#define DAQmxErrorMarkerPositionNotAlignedInScript (-200031) -#define DAQmxErrorSubsetOutsideWaveformInScript (-200030) -#define DAQmxErrorMarkerOutsideWaveformInScript (-200029) -#define DAQmxErrorWaveformInScriptNotInMem (-200028) -#define DAQmxErrorKeywordExpectedInScript (-200027) -#define DAQmxErrorBufferNameExpectedInScript (-200026) -#define DAQmxErrorProcedureNameExpectedInScript (-200025) -#define DAQmxErrorScriptHasInvalidIdentifier (-200024) -#define DAQmxErrorScriptHasInvalidCharacter (-200023) -#define DAQmxErrorResourceAlreadyReserved (-200022) -#define DAQmxErrorSelfTestFailed (-200020) -#define DAQmxErrorADCOverrun (-200019) +#define +DAQmxErrorRoutingHardwareBusy (-200043) +#define +DAQmxErrorRequestedSignalInversionForRoutingNotPossible (-200042) +#define +DAQmxErrorInvalidRoutingDestinationTerminalName (-200041) +#define +DAQmxErrorInvalidRoutingSourceTerminalName (-200040) +#define +DAQmxErrorRoutingNotSupportedForDevice (-200039) +#define +DAQmxErrorWaitIsLastInstructionOfLoopInScript (-200038) +#define +DAQmxErrorClearIsLastInstructionOfLoopInScript (-200037) +#define +DAQmxErrorInvalidLoopIterationsInScript (-200036) +#define +DAQmxErrorRepeatLoopNestingTooDeepInScript (-200035) +#define +DAQmxErrorMarkerPositionOutsideSubsetInScript (-200034) +#define +DAQmxErrorSubsetStartOffsetNotAlignedInScript (-200033) +#define +DAQmxErrorInvalidSubsetLengthInScript (-200032) +#define +DAQmxErrorMarkerPositionNotAlignedInScript (-200031) +#define +DAQmxErrorSubsetOutsideWaveformInScript (-200030) +#define +DAQmxErrorMarkerOutsideWaveformInScript (-200029) +#define +DAQmxErrorWaveformInScriptNotInMem (-200028) +#define +DAQmxErrorKeywordExpectedInScript (-200027) +#define +DAQmxErrorBufferNameExpectedInScript (-200026) +#define +DAQmxErrorProcedureNameExpectedInScript (-200025) +#define +DAQmxErrorScriptHasInvalidIdentifier (-200024) +#define +DAQmxErrorScriptHasInvalidCharacter (-200023) +#define +DAQmxErrorResourceAlreadyReserved (-200022) +#define +DAQmxErrorSelfTestFailed (-200020) +#define +DAQmxErrorADCOverrun (-200019) #define DAQmxErrorDACUnderflow (-200018) -#define DAQmxErrorInputFIFOUnderflow (-200017) -#define DAQmxErrorOutputFIFOUnderflow (-200016) -#define DAQmxErrorSCXISerialCommunication (-200015) -#define DAQmxErrorDigitalTerminalSpecifiedMoreThanOnce (-200014) -#define DAQmxErrorDigitalOutputNotSupported (-200012) -#define DAQmxErrorInconsistentChannelDirections (-200011) -#define DAQmxErrorInputFIFOOverflow (-200010) -#define DAQmxErrorTimeStampOverwritten (-200009) -#define DAQmxErrorStopTriggerHasNotOccurred (-200008) -#define DAQmxErrorRecordNotAvailable (-200007) -#define DAQmxErrorRecordOverwritten (-200006) -#define DAQmxErrorDataNotAvailable (-200005) -#define DAQmxErrorDataOverwrittenInDeviceMemory (-200004) -#define DAQmxErrorDuplicatedChannel (-200003) -#define DAQmxWarningTimestampCounterRolledOver (200003) -#define DAQmxWarningInputTerminationOverloaded (200004) +#define +DAQmxErrorInputFIFOUnderflow (-200017) +#define +DAQmxErrorOutputFIFOUnderflow (-200016) +#define +DAQmxErrorSCXISerialCommunication (-200015) +#define +DAQmxErrorDigitalTerminalSpecifiedMoreThanOnce (-200014) +#define +DAQmxErrorDigitalOutputNotSupported (-200012) +#define +DAQmxErrorInconsistentChannelDirections (-200011) +#define +DAQmxErrorInputFIFOOverflow (-200010) +#define +DAQmxErrorTimeStampOverwritten (-200009) +#define +DAQmxErrorStopTriggerHasNotOccurred (-200008) +#define +DAQmxErrorRecordNotAvailable (-200007) +#define +DAQmxErrorRecordOverwritten (-200006) +#define +DAQmxErrorDataNotAvailable (-200005) +#define +DAQmxErrorDataOverwrittenInDeviceMemory (-200004) +#define +DAQmxErrorDuplicatedChannel (-200003) +#define +DAQmxWarningTimestampCounterRolledOver (200003) +#define +DAQmxWarningInputTerminationOverloaded (200004) #define DAQmxWarningADCOverloaded (200005) -#define DAQmxWarningPLLUnlocked (200007) -#define DAQmxWarningCounter0DMADuringAIConflict (200008) -#define DAQmxWarningCounter1DMADuringAOConflict (200009) -#define DAQmxWarningStoppedBeforeDone (200010) -#define DAQmxWarningRateViolatesSettlingTime (200011) -#define DAQmxWarningRateViolatesMaxADCRate (200012) -#define DAQmxWarningUserDefInfoStringTooLong (200013) -#define DAQmxWarningTooManyInterruptsPerSecond (200014) -#define DAQmxWarningPotentialGlitchDuringWrite (200015) +#define +DAQmxWarningPLLUnlocked (200007) +#define +DAQmxWarningCounter0DMADuringAIConflict (200008) +#define +DAQmxWarningCounter1DMADuringAOConflict (200009) +#define +DAQmxWarningStoppedBeforeDone (200010) +#define +DAQmxWarningRateViolatesSettlingTime (200011) +#define +DAQmxWarningRateViolatesMaxADCRate (200012) +#define +DAQmxWarningUserDefInfoStringTooLong (200013) +#define +DAQmxWarningTooManyInterruptsPerSecond (200014) +#define +DAQmxWarningPotentialGlitchDuringWrite (200015) #define DAQmxWarningDevNotSelfCalibratedWithDAQmx (200016) -#define DAQmxWarningAISampRateTooLow (200017) -#define DAQmxWarningAIConvRateTooLow (200018) -#define DAQmxWarningReadOffsetCoercion (200019) -#define DAQmxWarningPretrigCoercion (200020) -#define DAQmxWarningSampValCoercedToMax (200021) -#define DAQmxWarningSampValCoercedToMin (200022) -#define DAQmxWarningPropertyVersionNew (200024) -#define DAQmxWarningUserDefinedInfoTooLong (200025) -#define DAQmxWarningCAPIStringTruncatedToFitBuffer (200026) +#define +DAQmxWarningAISampRateTooLow (200017) +#define +DAQmxWarningAIConvRateTooLow (200018) +#define +DAQmxWarningReadOffsetCoercion (200019) +#define +DAQmxWarningPretrigCoercion (200020) +#define +DAQmxWarningSampValCoercedToMax (200021) +#define +DAQmxWarningSampValCoercedToMin (200022) +#define +DAQmxWarningPropertyVersionNew (200024) +#define +DAQmxWarningUserDefinedInfoTooLong (200025) +#define +DAQmxWarningCAPIStringTruncatedToFitBuffer (200026) #define DAQmxWarningSampClkRateTooLow (200027) -#define DAQmxWarningPossiblyInvalidCTRSampsInFiniteDMAAcq (200028) -#define DAQmxWarningRISAcqCompletedSomeBinsNotFilled (200029) -#define DAQmxWarningPXIDevTempExceedsMaxOpTemp (200030) -#define DAQmxWarningOutputGainTooLowForRFFreq (200031) -#define DAQmxWarningOutputGainTooHighForRFFreq (200032) -#define DAQmxWarningMultipleWritesBetweenSampClks (200033) -#define DAQmxWarningDeviceMayShutDownDueToHighTemp (200034) -#define DAQmxWarningRateViolatesMinADCRate (200035) -#define DAQmxWarningSampClkRateAboveDevSpecs (200036) +#define +DAQmxWarningPossiblyInvalidCTRSampsInFiniteDMAAcq (200028) +#define +DAQmxWarningRISAcqCompletedSomeBinsNotFilled (200029) +#define +DAQmxWarningPXIDevTempExceedsMaxOpTemp (200030) +#define +DAQmxWarningOutputGainTooLowForRFFreq (200031) +#define +DAQmxWarningOutputGainTooHighForRFFreq (200032) +#define +DAQmxWarningMultipleWritesBetweenSampClks (200033) +#define +DAQmxWarningDeviceMayShutDownDueToHighTemp (200034) +#define +DAQmxWarningRateViolatesMinADCRate (200035) +#define +DAQmxWarningSampClkRateAboveDevSpecs (200036) #define DAQmxWarningCOPrevDAQmxWriteSettingsOverwrittenForHWTimedSinglePoint (200037) -#define DAQmxWarningLowpassFilterSettlingTimeExceedsUserTimeBetween2ADCConversions (200038) -#define DAQmxWarningLowpassFilterSettlingTimeExceedsDriverTimeBetween2ADCConversions (200039) -#define DAQmxWarningSampClkRateViolatesSettlingTimeForGen (200040) -#define DAQmxWarningInvalidCalConstValueForAI (200041) -#define DAQmxWarningInvalidCalConstValueForAO (200042) -#define DAQmxWarningChanCalExpired (200043) -#define DAQmxWarningUnrecognizedEnumValueEncounteredInStorage (200044) -#define DAQmxWarningTableCRCNotCorrect (200045) -#define DAQmxWarningExternalCRCNotCorrect (200046) +#define +DAQmxWarningLowpassFilterSettlingTimeExceedsUserTimeBetween2ADCConversions (200038) +#define +DAQmxWarningLowpassFilterSettlingTimeExceedsDriverTimeBetween2ADCConversions (200039) +#define +DAQmxWarningSampClkRateViolatesSettlingTimeForGen (200040) +#define +DAQmxWarningInvalidCalConstValueForAI (200041) +#define +DAQmxWarningInvalidCalConstValueForAO (200042) +#define +DAQmxWarningChanCalExpired (200043) +#define +DAQmxWarningUnrecognizedEnumValueEncounteredInStorage (200044) +#define +DAQmxWarningTableCRCNotCorrect (200045) +#define +DAQmxWarningExternalCRCNotCorrect (200046) #define DAQmxWarningSelfCalCRCNotCorrect (200047) -#define DAQmxWarningDeviceSpecExceeded (200048) -#define DAQmxWarningOnlyGainCalibrated (200049) -#define DAQmxWarningReversePowerProtectionActivated (200050) -#define DAQmxWarningOverVoltageProtectionActivated (200051) -#define DAQmxWarningBufferSizeNotMultipleOfSectorSize (200052) -#define DAQmxWarningSampleRateMayCauseAcqToFail (200053) -#define DAQmxWarningUserAreaCRCNotCorrect (200054) -#define DAQmxWarningPowerUpInfoCRCNotCorrect (200055) -#define DAQmxWarningConnectionCountHasExceededRecommendedLimit (200056) +#define +DAQmxWarningDeviceSpecExceeded (200048) +#define +DAQmxWarningOnlyGainCalibrated (200049) +#define +DAQmxWarningReversePowerProtectionActivated (200050) +#define +DAQmxWarningOverVoltageProtectionActivated (200051) +#define +DAQmxWarningBufferSizeNotMultipleOfSectorSize (200052) +#define +DAQmxWarningSampleRateMayCauseAcqToFail (200053) +#define +DAQmxWarningUserAreaCRCNotCorrect (200054) +#define +DAQmxWarningPowerUpInfoCRCNotCorrect (200055) +#define +DAQmxWarningConnectionCountHasExceededRecommendedLimit (200056) #define DAQmxWarningNetworkDeviceAlreadyAdded (200057) -#define DAQmxWarningAccessoryConnectionCountIsInvalid (200058) -#define DAQmxWarningUnableToDisconnectPorts (200059) -#define DAQmxWarningReadRepeatedData (200060) -#define DAQmxWarningPXI5600_NotConfigured (200061) -#define DAQmxWarningPXI5661_IncorrectlyConfigured (200062) -#define DAQmxWarningPXIe5601_NotConfigured (200063) -#define DAQmxWarningPXIe5663_IncorrectlyConfigured (200064) -#define DAQmxWarningPXIe5663E_IncorrectlyConfigured (200065) -#define DAQmxWarningPXIe5603_NotConfigured (200066) +#define +DAQmxWarningAccessoryConnectionCountIsInvalid (200058) +#define +DAQmxWarningUnableToDisconnectPorts (200059) +#define +DAQmxWarningReadRepeatedData (200060) +#define +DAQmxWarningPXI5600_NotConfigured (200061) +#define +DAQmxWarningPXI5661_IncorrectlyConfigured (200062) +#define +DAQmxWarningPXIe5601_NotConfigured (200063) +#define +DAQmxWarningPXIe5663_IncorrectlyConfigured (200064) +#define +DAQmxWarningPXIe5663E_IncorrectlyConfigured (200065) +#define +DAQmxWarningPXIe5603_NotConfigured (200066) #define DAQmxWarningPXIe5665_5603_IncorrectlyConfigured (200067) -#define DAQmxWarningPXIe5667_5603_IncorrectlyConfigured (200068) -#define DAQmxWarningPXIe5605_NotConfigured (200069) -#define DAQmxWarningPXIe5665_5605_IncorrectlyConfigured (200070) -#define DAQmxWarningPXIe5667_5605_IncorrectlyConfigured (200071) -#define DAQmxWarningPXIe5606_NotConfigured (200072) -#define DAQmxWarningPXIe5665_5606_IncorrectlyConfigured (200073) -#define DAQmxWarningPXI5610_NotConfigured (200074) -#define DAQmxWarningPXI5610_IncorrectlyConfigured (200075) -#define DAQmxWarningPXIe5611_NotConfigured (200076) +#define +DAQmxWarningPXIe5667_5603_IncorrectlyConfigured (200068) +#define +DAQmxWarningPXIe5605_NotConfigured (200069) +#define +DAQmxWarningPXIe5665_5605_IncorrectlyConfigured (200070) +#define +DAQmxWarningPXIe5667_5605_IncorrectlyConfigured (200071) +#define +DAQmxWarningPXIe5606_NotConfigured (200072) +#define +DAQmxWarningPXIe5665_5606_IncorrectlyConfigured (200073) +#define +DAQmxWarningPXI5610_NotConfigured (200074) +#define +DAQmxWarningPXI5610_IncorrectlyConfigured (200075) +#define +DAQmxWarningPXIe5611_NotConfigured (200076) #define DAQmxWarningPXIe5611_IncorrectlyConfigured (200077) -#define DAQmxWarningUSBHotfixForDAQ (200078) -#define DAQmxWarningNoChangeSupersededByIdleBehavior (200079) -#define DAQmxWarningReadNotCompleteBeforeSampClk (209800) -#define DAQmxWarningWriteNotCompleteBeforeSampClk (209801) -#define DAQmxWarningWaitForNextSampClkDetectedMissedSampClk (209802) -#define DAQmxWarningOutputDataTransferConditionNotSupported (209803) -#define DAQmxWarningTimestampMayBeInvalid (209804) -#define DAQmxWarningFirstSampleTimestampInaccurate (209805) -#define DAQmxErrorInterfaceObsoleted_Routing (-89169) -#define DAQmxErrorRoCoServiceNotAvailable_Routing (-89168) -#define DAQmxErrorRoutingDestTermPXIDStarXNotInSystemTimingSlot_Routing (-89167) -#define DAQmxErrorRoutingSrcTermPXIDStarXNotInSystemTimingSlot_Routing (-89166) -#define DAQmxErrorRoutingSrcTermPXIDStarInNonDStarTriggerSlot_Routing (-89165) -#define DAQmxErrorRoutingDestTermPXIDStarInNonDStarTriggerSlot_Routing (-89164) -#define DAQmxErrorRoutingDestTermPXIClk10InNotInStarTriggerSlot_Routing (-89162) -#define DAQmxErrorRoutingDestTermPXIClk10InNotInSystemTimingSlot_Routing (-89161) -#define DAQmxErrorRoutingDestTermPXIStarXNotInStarTriggerSlot_Routing (-89160) -#define DAQmxErrorRoutingDestTermPXIStarXNotInSystemTimingSlot_Routing (-89159) -#define DAQmxErrorRoutingSrcTermPXIStarXNotInStarTriggerSlot_Routing (-89158) -#define DAQmxErrorRoutingSrcTermPXIStarXNotInSystemTimingSlot_Routing (-89157) -#define DAQmxErrorRoutingSrcTermPXIStarInNonStarTriggerSlot_Routing (-89156) -#define DAQmxErrorRoutingDestTermPXIStarInNonStarTriggerSlot_Routing (-89155) -#define DAQmxErrorRoutingDestTermPXIStarInStarTriggerSlot_Routing (-89154) -#define DAQmxErrorRoutingDestTermPXIStarInSystemTimingSlot_Routing (-89153) -#define DAQmxErrorRoutingSrcTermPXIStarInStarTriggerSlot_Routing (-89152) -#define DAQmxErrorRoutingSrcTermPXIStarInSystemTimingSlot_Routing (-89151) -#define DAQmxErrorInvalidSignalModifier_Routing (-89150) -#define DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2_Routing (-89149) -#define DAQmxErrorRoutingDestTermPXIStarXNotInSlot2_Routing (-89148) -#define DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2_Routing (-89147) -#define DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove_Routing (-89146) -#define DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove_Routing (-89145) -#define DAQmxErrorRoutingDestTermPXIStarInSlot2_Routing (-89144) -#define DAQmxErrorRoutingSrcTermPXIStarInSlot2_Routing (-89143) -#define DAQmxErrorRoutingDestTermPXIChassisNotIdentified_Routing (-89142) -#define DAQmxErrorRoutingSrcTermPXIChassisNotIdentified_Routing (-89141) -#define DAQmxErrorTrigLineNotFoundSingleDevRoute_Routing (-89140) -#define DAQmxErrorNoCommonTrigLineForRoute_Routing (-89139) -#define DAQmxErrorResourcesInUseForRouteInTask_Routing (-89138) -#define DAQmxErrorResourcesInUseForRoute_Routing (-89137) -#define DAQmxErrorRouteNotSupportedByHW_Routing (-89136) -#define DAQmxErrorResourcesInUseForInversionInTask_Routing (-89135) -#define DAQmxErrorResourcesInUseForInversion_Routing (-89134) -#define DAQmxErrorInversionNotSupportedByHW_Routing (-89133) -#define DAQmxErrorResourcesInUseForProperty_Routing (-89132) -#define DAQmxErrorRouteSrcAndDestSame_Routing (-89131) -#define DAQmxErrorDevAbsentOrUnavailable_Routing (-89130) -#define DAQmxErrorInvalidTerm_Routing (-89129) -#define DAQmxErrorCannotTristateTerm_Routing (-89128) -#define DAQmxErrorCannotTristateBusyTerm_Routing (-89127) -#define DAQmxErrorCouldNotReserveRequestedTrigLine_Routing (-89126) -#define DAQmxErrorTrigLineNotFound_Routing (-89125) -#define DAQmxErrorRoutingPathNotAvailable_Routing (-89124) -#define DAQmxErrorRoutingHardwareBusy_Routing (-89123) -#define DAQmxErrorRequestedSignalInversionForRoutingNotPossible_Routing (-89122) -#define DAQmxErrorInvalidRoutingDestinationTerminalName_Routing (-89121) -#define DAQmxErrorInvalidRoutingSourceTerminalName_Routing (-89120) -#define DAQmxErrorServiceLocatorNotAvailable_Routing (-88907) -#define DAQmxErrorCouldNotConnectToServer_Routing (-88900) -#define DAQmxErrorDeviceNameContainsSpacesOrPunctuation_Routing (-88720) -#define DAQmxErrorDeviceNameContainsNonprintableCharacters_Routing (-88719) -#define DAQmxErrorDeviceNameIsEmpty_Routing (-88718) -#define DAQmxErrorDeviceNameNotFound_Routing (-88717) -#define DAQmxErrorLocalRemoteDriverVersionMismatch_Routing (-88716) -#define DAQmxErrorDuplicateDeviceName_Routing (-88715) -#define DAQmxErrorRuntimeAborting_Routing (-88710) -#define DAQmxErrorRuntimeAborted_Routing (-88709) -#define DAQmxErrorResourceNotInPool_Routing (-88708) -#define DAQmxErrorDriverDeviceGUIDNotFound_Routing (-88705) -#define DAQmxErrorPALUSBTransactionError (-50808) -#define DAQmxErrorPALIsocStreamBufferError (-50807) -#define DAQmxErrorPALInvalidAddressComponent (-50806) -#define DAQmxErrorPALSharingViolation (-50805) -#define DAQmxErrorPALInvalidDeviceState (-50804) -#define DAQmxErrorPALConnectionReset (-50803) -#define DAQmxErrorPALConnectionAborted (-50802) -#define DAQmxErrorPALConnectionRefused (-50801) -#define DAQmxErrorPALBusResetOccurred (-50800) -#define DAQmxErrorPALWaitInterrupted (-50700) -#define DAQmxErrorPALMessageUnderflow (-50651) -#define DAQmxErrorPALMessageOverflow (-50650) -#define DAQmxErrorPALThreadAlreadyDead (-50604) -#define DAQmxErrorPALThreadStackSizeNotSupported (-50603) -#define DAQmxErrorPALThreadControllerIsNotThreadCreator (-50602) -#define DAQmxErrorPALThreadHasNoThreadObject (-50601) -#define DAQmxErrorPALThreadCouldNotRun (-50600) -#define DAQmxErrorPALSyncAbandoned (-50551) -#define DAQmxErrorPALSyncTimedOut (-50550) -#define DAQmxErrorPALReceiverSocketInvalid (-50503) -#define DAQmxErrorPALSocketListenerInvalid (-50502) -#define DAQmxErrorPALSocketListenerAlreadyRegistered (-50501) -#define DAQmxErrorPALDispatcherAlreadyExported (-50500) -#define DAQmxErrorPALDMALinkEventMissed (-50450) -#define DAQmxErrorPALBusError (-50413) -#define DAQmxErrorPALRetryLimitExceeded (-50412) -#define DAQmxErrorPALTransferOverread (-50411) -#define DAQmxErrorPALTransferOverwritten (-50410) -#define DAQmxErrorPALPhysicalBufferFull (-50409) -#define DAQmxErrorPALPhysicalBufferEmpty (-50408) -#define DAQmxErrorPALLogicalBufferFull (-50407) -#define DAQmxErrorPALLogicalBufferEmpty (-50406) -#define DAQmxErrorPALTransferAborted (-50405) -#define DAQmxErrorPALTransferStopped (-50404) -#define DAQmxErrorPALTransferInProgress (-50403) -#define DAQmxErrorPALTransferNotInProgress (-50402) -#define DAQmxErrorPALCommunicationsFault (-50401) -#define DAQmxErrorPALTransferTimedOut (-50400) -#define DAQmxErrorPALMemoryHeapNotEmpty (-50355) -#define DAQmxErrorPALMemoryBlockCheckFailed (-50354) -#define DAQmxErrorPALMemoryPageLockFailed (-50353) -#define DAQmxErrorPALMemoryFull (-50352) -#define DAQmxErrorPALMemoryAlignmentFault (-50351) -#define DAQmxErrorPALMemoryConfigurationFault (-50350) -#define DAQmxErrorPALDeviceInitializationFault (-50303) -#define DAQmxErrorPALDeviceNotSupported (-50302) -#define DAQmxErrorPALDeviceUnknown (-50301) -#define DAQmxErrorPALDeviceNotFound (-50300) -#define DAQmxErrorPALFeatureDisabled (-50265) -#define DAQmxErrorPALComponentBusy (-50264) -#define DAQmxErrorPALComponentAlreadyInstalled (-50263) -#define DAQmxErrorPALComponentNotUnloadable (-50262) -#define DAQmxErrorPALComponentNeverLoaded (-50261) -#define DAQmxErrorPALComponentAlreadyLoaded (-50260) -#define DAQmxErrorPALComponentCircularDependency (-50259) -#define DAQmxErrorPALComponentInitializationFault (-50258) -#define DAQmxErrorPALComponentImageCorrupt (-50257) -#define DAQmxErrorPALFeatureNotSupported (-50256) -#define DAQmxErrorPALFunctionNotFound (-50255) -#define DAQmxErrorPALFunctionObsolete (-50254) -#define DAQmxErrorPALComponentTooNew (-50253) -#define DAQmxErrorPALComponentTooOld (-50252) -#define DAQmxErrorPALComponentNotFound (-50251) -#define DAQmxErrorPALVersionMismatch (-50250) -#define DAQmxErrorPALFileFault (-50209) -#define DAQmxErrorPALFileWriteFault (-50208) -#define DAQmxErrorPALFileReadFault (-50207) -#define DAQmxErrorPALFileSeekFault (-50206) -#define DAQmxErrorPALFileCloseFault (-50205) -#define DAQmxErrorPALFileOpenFault (-50204) -#define DAQmxErrorPALDiskFull (-50203) -#define DAQmxErrorPALOSFault (-50202) -#define DAQmxErrorPALOSInitializationFault (-50201) -#define DAQmxErrorPALOSUnsupported (-50200) -#define DAQmxErrorPALCalculationOverflow (-50175) -#define DAQmxErrorPALHardwareFault (-50152) -#define DAQmxErrorPALFirmwareFault (-50151) -#define DAQmxErrorPALSoftwareFault (-50150) -#define DAQmxErrorPALMessageQueueFull (-50108) -#define DAQmxErrorPALResourceAmbiguous (-50107) -#define DAQmxErrorPALResourceBusy (-50106) -#define DAQmxErrorPALResourceInitialized (-50105) -#define DAQmxErrorPALResourceNotInitialized (-50104) -#define DAQmxErrorPALResourceReserved (-50103) -#define DAQmxErrorPALResourceNotReserved (-50102) -#define DAQmxErrorPALResourceNotAvailable (-50101) -#define DAQmxErrorPALResourceOwnedBySystem (-50100) -#define DAQmxErrorPALBadToken (-50020) -#define DAQmxErrorPALBadThreadMultitask (-50019) -#define DAQmxErrorPALBadLibrarySpecifier (-50018) -#define DAQmxErrorPALBadAddressSpace (-50017) -#define DAQmxErrorPALBadWindowType (-50016) -#define DAQmxErrorPALBadAddressClass (-50015) -#define DAQmxErrorPALBadWriteCount (-50014) -#define DAQmxErrorPALBadWriteOffset (-50013) -#define DAQmxErrorPALBadWriteMode (-50012) -#define DAQmxErrorPALBadReadCount (-50011) -#define DAQmxErrorPALBadReadOffset (-50010) -#define DAQmxErrorPALBadReadMode (-50009) -#define DAQmxErrorPALBadCount (-50008) -#define DAQmxErrorPALBadOffset (-50007) -#define DAQmxErrorPALBadMode (-50006) -#define DAQmxErrorPALBadDataSize (-50005) -#define DAQmxErrorPALBadPointer (-50004) -#define DAQmxErrorPALBadSelector (-50003) -#define DAQmxErrorPALBadDevice (-50002) -#define DAQmxErrorPALIrrelevantAttribute (-50001) -#define DAQmxErrorPALValueConflict (-50000) -#define DAQmxWarningPALValueConflict (50000) -#define DAQmxWarningPALIrrelevantAttribute (50001) -#define DAQmxWarningPALBadDevice (50002) -#define DAQmxWarningPALBadSelector (50003) -#define DAQmxWarningPALBadPointer (50004) -#define DAQmxWarningPALBadDataSize (50005) -#define DAQmxWarningPALBadMode (50006) -#define DAQmxWarningPALBadOffset (50007) -#define DAQmxWarningPALBadCount (50008) -#define DAQmxWarningPALBadReadMode (50009) -#define DAQmxWarningPALBadReadOffset (50010) -#define DAQmxWarningPALBadReadCount (50011) -#define DAQmxWarningPALBadWriteMode (50012) -#define DAQmxWarningPALBadWriteOffset (50013) -#define DAQmxWarningPALBadWriteCount (50014) -#define DAQmxWarningPALBadAddressClass (50015) -#define DAQmxWarningPALBadWindowType (50016) -#define DAQmxWarningPALBadThreadMultitask (50019) -#define DAQmxWarningPALResourceOwnedBySystem (50100) -#define DAQmxWarningPALResourceNotAvailable (50101) -#define DAQmxWarningPALResourceNotReserved (50102) -#define DAQmxWarningPALResourceReserved (50103) -#define DAQmxWarningPALResourceNotInitialized (50104) -#define DAQmxWarningPALResourceInitialized (50105) -#define DAQmxWarningPALResourceBusy (50106) -#define DAQmxWarningPALResourceAmbiguous (50107) -#define DAQmxWarningPALFirmwareFault (50151) -#define DAQmxWarningPALHardwareFault (50152) -#define DAQmxWarningPALOSUnsupported (50200) -#define DAQmxWarningPALOSFault (50202) -#define DAQmxWarningPALFunctionObsolete (50254) -#define DAQmxWarningPALFunctionNotFound (50255) -#define DAQmxWarningPALFeatureNotSupported (50256) -#define DAQmxWarningPALComponentInitializationFault (50258) -#define DAQmxWarningPALComponentAlreadyLoaded (50260) -#define DAQmxWarningPALComponentNotUnloadable (50262) -#define DAQmxWarningPALMemoryAlignmentFault (50351) -#define DAQmxWarningPALMemoryHeapNotEmpty (50355) -#define DAQmxWarningPALTransferNotInProgress (50402) -#define DAQmxWarningPALTransferInProgress (50403) -#define DAQmxWarningPALTransferStopped (50404) -#define DAQmxWarningPALTransferAborted (50405) -#define DAQmxWarningPALLogicalBufferEmpty (50406) -#define DAQmxWarningPALLogicalBufferFull (50407) -#define DAQmxWarningPALPhysicalBufferEmpty (50408) -#define DAQmxWarningPALPhysicalBufferFull (50409) -#define DAQmxWarningPALTransferOverwritten (50410) -#define DAQmxWarningPALTransferOverread (50411) -#define DAQmxWarningPALDispatcherAlreadyExported (50500) -#define DAQmxWarningPALSyncAbandoned (50551) - - -#ifdef __cplusplus +#define +DAQmxWarningUSBHotfixForDAQ (200078) +#define +DAQmxWarningNoChangeSupersededByIdleBehavior (200079) +#define +DAQmxWarningReadNotCompleteBeforeSampClk (209800) +#define +DAQmxWarningWriteNotCompleteBeforeSampClk (209801) +#define +DAQmxWarningWaitForNextSampClkDetectedMissedSampClk (209802) +#define +DAQmxWarningOutputDataTransferConditionNotSupported (209803) +#define +DAQmxWarningTimestampMayBeInvalid (209804) +#define +DAQmxWarningFirstSampleTimestampInaccurate (209805) +#define +DAQmxErrorInterfaceObsoleted_Routing (-89169) +#define +DAQmxErrorRoCoServiceNotAvailable_Routing (-89168) +#define +DAQmxErrorRoutingDestTermPXIDStarXNotInSystemTimingSlot_Routing (-89167) +#define +DAQmxErrorRoutingSrcTermPXIDStarXNotInSystemTimingSlot_Routing (-89166) +#define +DAQmxErrorRoutingSrcTermPXIDStarInNonDStarTriggerSlot_Routing (-89165) +#define +DAQmxErrorRoutingDestTermPXIDStarInNonDStarTriggerSlot_Routing (-89164) +#define +DAQmxErrorRoutingDestTermPXIClk10InNotInStarTriggerSlot_Routing (-89162) +#define +DAQmxErrorRoutingDestTermPXIClk10InNotInSystemTimingSlot_Routing (-89161) +#define +DAQmxErrorRoutingDestTermPXIStarXNotInStarTriggerSlot_Routing (-89160) +#define +DAQmxErrorRoutingDestTermPXIStarXNotInSystemTimingSlot_Routing (-89159) +#define +DAQmxErrorRoutingSrcTermPXIStarXNotInStarTriggerSlot_Routing (-89158) +#define +DAQmxErrorRoutingSrcTermPXIStarXNotInSystemTimingSlot_Routing (-89157) +#define +DAQmxErrorRoutingSrcTermPXIStarInNonStarTriggerSlot_Routing (-89156) +#define +DAQmxErrorRoutingDestTermPXIStarInNonStarTriggerSlot_Routing (-89155) +#define +DAQmxErrorRoutingDestTermPXIStarInStarTriggerSlot_Routing (-89154) +#define +DAQmxErrorRoutingDestTermPXIStarInSystemTimingSlot_Routing (-89153) +#define +DAQmxErrorRoutingSrcTermPXIStarInStarTriggerSlot_Routing (-89152) +#define +DAQmxErrorRoutingSrcTermPXIStarInSystemTimingSlot_Routing (-89151) +#define +DAQmxErrorInvalidSignalModifier_Routing (-89150) +#define +DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2_Routing (-89149) +#define +DAQmxErrorRoutingDestTermPXIStarXNotInSlot2_Routing (-89148) +#define +DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2_Routing (-89147) +#define +DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove_Routing (-89146) +#define +DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove_Routing (-89145) +#define +DAQmxErrorRoutingDestTermPXIStarInSlot2_Routing (-89144) +#define +DAQmxErrorRoutingSrcTermPXIStarInSlot2_Routing (-89143) +#define +DAQmxErrorRoutingDestTermPXIChassisNotIdentified_Routing (-89142) +#define +DAQmxErrorRoutingSrcTermPXIChassisNotIdentified_Routing (-89141) +#define +DAQmxErrorTrigLineNotFoundSingleDevRoute_Routing (-89140) +#define +DAQmxErrorNoCommonTrigLineForRoute_Routing (-89139) +#define +DAQmxErrorResourcesInUseForRouteInTask_Routing (-89138) +#define +DAQmxErrorResourcesInUseForRoute_Routing (-89137) +#define +DAQmxErrorRouteNotSupportedByHW_Routing (-89136) +#define +DAQmxErrorResourcesInUseForInversionInTask_Routing (-89135) +#define +DAQmxErrorResourcesInUseForInversion_Routing (-89134) +#define +DAQmxErrorInversionNotSupportedByHW_Routing (-89133) +#define +DAQmxErrorResourcesInUseForProperty_Routing (-89132) +#define +DAQmxErrorRouteSrcAndDestSame_Routing (-89131) +#define +DAQmxErrorDevAbsentOrUnavailable_Routing (-89130) +#define +DAQmxErrorInvalidTerm_Routing (-89129) +#define +DAQmxErrorCannotTristateTerm_Routing (-89128) +#define +DAQmxErrorCannotTristateBusyTerm_Routing (-89127) +#define +DAQmxErrorCouldNotReserveRequestedTrigLine_Routing (-89126) +#define +DAQmxErrorTrigLineNotFound_Routing (-89125) +#define +DAQmxErrorRoutingPathNotAvailable_Routing (-89124) +#define +DAQmxErrorRoutingHardwareBusy_Routing (-89123) +#define +DAQmxErrorRequestedSignalInversionForRoutingNotPossible_Routing (-89122) +#define +DAQmxErrorInvalidRoutingDestinationTerminalName_Routing (-89121) +#define +DAQmxErrorInvalidRoutingSourceTerminalName_Routing (-89120) +#define +DAQmxErrorServiceLocatorNotAvailable_Routing (-88907) +#define +DAQmxErrorCouldNotConnectToServer_Routing (-88900) +#define +DAQmxErrorDeviceNameContainsSpacesOrPunctuation_Routing (-88720) +#define +DAQmxErrorDeviceNameContainsNonprintableCharacters_Routing (-88719) +#define +DAQmxErrorDeviceNameIsEmpty_Routing (-88718) +#define +DAQmxErrorDeviceNameNotFound_Routing (-88717) +#define +DAQmxErrorLocalRemoteDriverVersionMismatch_Routing (-88716) +#define +DAQmxErrorDuplicateDeviceName_Routing (-88715) +#define +DAQmxErrorRuntimeAborting_Routing (-88710) +#define +DAQmxErrorRuntimeAborted_Routing (-88709) +#define +DAQmxErrorResourceNotInPool_Routing (-88708) +#define +DAQmxErrorDriverDeviceGUIDNotFound_Routing (-88705) +#define +DAQmxErrorPALUSBTransactionError (-50808) +#define +DAQmxErrorPALIsocStreamBufferError (-50807) +#define +DAQmxErrorPALInvalidAddressComponent (-50806) +#define +DAQmxErrorPALSharingViolation (-50805) +#define +DAQmxErrorPALInvalidDeviceState (-50804) +#define +DAQmxErrorPALConnectionReset (-50803) +#define +DAQmxErrorPALConnectionAborted (-50802) +#define +DAQmxErrorPALConnectionRefused (-50801) +#define +DAQmxErrorPALBusResetOccurred (-50800) +#define +DAQmxErrorPALWaitInterrupted (-50700) +#define +DAQmxErrorPALMessageUnderflow (-50651) +#define +DAQmxErrorPALMessageOverflow (-50650) +#define +DAQmxErrorPALThreadAlreadyDead (-50604) +#define +DAQmxErrorPALThreadStackSizeNotSupported (-50603) +#define +DAQmxErrorPALThreadControllerIsNotThreadCreator (-50602) +#define +DAQmxErrorPALThreadHasNoThreadObject (-50601) +#define +DAQmxErrorPALThreadCouldNotRun (-50600) +#define +DAQmxErrorPALSyncAbandoned (-50551) +#define +DAQmxErrorPALSyncTimedOut (-50550) +#define +DAQmxErrorPALReceiverSocketInvalid (-50503) +#define +DAQmxErrorPALSocketListenerInvalid (-50502) +#define +DAQmxErrorPALSocketListenerAlreadyRegistered (-50501) +#define +DAQmxErrorPALDispatcherAlreadyExported (-50500) +#define +DAQmxErrorPALDMALinkEventMissed (-50450) +#define +DAQmxErrorPALBusError (-50413) +#define +DAQmxErrorPALRetryLimitExceeded (-50412) +#define +DAQmxErrorPALTransferOverread (-50411) +#define +DAQmxErrorPALTransferOverwritten (-50410) +#define +DAQmxErrorPALPhysicalBufferFull (-50409) +#define +DAQmxErrorPALPhysicalBufferEmpty (-50408) +#define +DAQmxErrorPALLogicalBufferFull (-50407) +#define +DAQmxErrorPALLogicalBufferEmpty (-50406) +#define +DAQmxErrorPALTransferAborted (-50405) +#define +DAQmxErrorPALTransferStopped (-50404) +#define +DAQmxErrorPALTransferInProgress (-50403) +#define +DAQmxErrorPALTransferNotInProgress (-50402) +#define +DAQmxErrorPALCommunicationsFault (-50401) +#define +DAQmxErrorPALTransferTimedOut (-50400) +#define +DAQmxErrorPALMemoryHeapNotEmpty (-50355) +#define +DAQmxErrorPALMemoryBlockCheckFailed (-50354) +#define +DAQmxErrorPALMemoryPageLockFailed (-50353) +#define +DAQmxErrorPALMemoryFull (-50352) +#define +DAQmxErrorPALMemoryAlignmentFault (-50351) +#define +DAQmxErrorPALMemoryConfigurationFault (-50350) +#define +DAQmxErrorPALDeviceInitializationFault (-50303) +#define +DAQmxErrorPALDeviceNotSupported (-50302) +#define +DAQmxErrorPALDeviceUnknown (-50301) +#define +DAQmxErrorPALDeviceNotFound (-50300) +#define +DAQmxErrorPALFeatureDisabled (-50265) +#define +DAQmxErrorPALComponentBusy (-50264) +#define +DAQmxErrorPALComponentAlreadyInstalled (-50263) +#define +DAQmxErrorPALComponentNotUnloadable (-50262) +#define +DAQmxErrorPALComponentNeverLoaded (-50261) +#define +DAQmxErrorPALComponentAlreadyLoaded (-50260) +#define +DAQmxErrorPALComponentCircularDependency (-50259) +#define +DAQmxErrorPALComponentInitializationFault (-50258) +#define +DAQmxErrorPALComponentImageCorrupt (-50257) +#define +DAQmxErrorPALFeatureNotSupported (-50256) +#define +DAQmxErrorPALFunctionNotFound (-50255) +#define +DAQmxErrorPALFunctionObsolete (-50254) +#define +DAQmxErrorPALComponentTooNew (-50253) +#define +DAQmxErrorPALComponentTooOld (-50252) +#define +DAQmxErrorPALComponentNotFound (-50251) +#define +DAQmxErrorPALVersionMismatch (-50250) +#define +DAQmxErrorPALFileFault (-50209) +#define +DAQmxErrorPALFileWriteFault (-50208) +#define +DAQmxErrorPALFileReadFault (-50207) +#define +DAQmxErrorPALFileSeekFault (-50206) +#define +DAQmxErrorPALFileCloseFault (-50205) +#define +DAQmxErrorPALFileOpenFault (-50204) +#define +DAQmxErrorPALDiskFull (-50203) +#define +DAQmxErrorPALOSFault (-50202) +#define +DAQmxErrorPALOSInitializationFault (-50201) +#define +DAQmxErrorPALOSUnsupported (-50200) +#define +DAQmxErrorPALCalculationOverflow (-50175) +#define +DAQmxErrorPALHardwareFault (-50152) +#define +DAQmxErrorPALFirmwareFault (-50151) +#define +DAQmxErrorPALSoftwareFault (-50150) +#define +DAQmxErrorPALMessageQueueFull (-50108) +#define +DAQmxErrorPALResourceAmbiguous (-50107) +#define +DAQmxErrorPALResourceBusy (-50106) +#define +DAQmxErrorPALResourceInitialized (-50105) +#define +DAQmxErrorPALResourceNotInitialized (-50104) +#define +DAQmxErrorPALResourceReserved (-50103) +#define +DAQmxErrorPALResourceNotReserved (-50102) +#define +DAQmxErrorPALResourceNotAvailable (-50101) +#define +DAQmxErrorPALResourceOwnedBySystem (-50100) +#define +DAQmxErrorPALBadToken (-50020) +#define +DAQmxErrorPALBadThreadMultitask (-50019) +#define +DAQmxErrorPALBadLibrarySpecifier (-50018) +#define +DAQmxErrorPALBadAddressSpace (-50017) +#define +DAQmxErrorPALBadWindowType (-50016) +#define +DAQmxErrorPALBadAddressClass (-50015) +#define +DAQmxErrorPALBadWriteCount (-50014) +#define +DAQmxErrorPALBadWriteOffset (-50013) +#define +DAQmxErrorPALBadWriteMode (-50012) +#define +DAQmxErrorPALBadReadCount (-50011) +#define +DAQmxErrorPALBadReadOffset (-50010) +#define +DAQmxErrorPALBadReadMode (-50009) +#define +DAQmxErrorPALBadCount (-50008) +#define +DAQmxErrorPALBadOffset (-50007) +#define +DAQmxErrorPALBadMode (-50006) +#define +DAQmxErrorPALBadDataSize (-50005) +#define +DAQmxErrorPALBadPointer (-50004) +#define +DAQmxErrorPALBadSelector (-50003) +#define +DAQmxErrorPALBadDevice (-50002) +#define +DAQmxErrorPALIrrelevantAttribute (-50001) +#define +DAQmxErrorPALValueConflict (-50000) +#define +DAQmxWarningPALValueConflict (50000) +#define +DAQmxWarningPALIrrelevantAttribute (50001) +#define +DAQmxWarningPALBadDevice (50002) +#define +DAQmxWarningPALBadSelector (50003) +#define +DAQmxWarningPALBadPointer (50004) +#define +DAQmxWarningPALBadDataSize (50005) +#define +DAQmxWarningPALBadMode (50006) +#define +DAQmxWarningPALBadOffset (50007) +#define +DAQmxWarningPALBadCount (50008) +#define +DAQmxWarningPALBadReadMode (50009) +#define +DAQmxWarningPALBadReadOffset (50010) +#define +DAQmxWarningPALBadReadCount (50011) +#define +DAQmxWarningPALBadWriteMode (50012) +#define +DAQmxWarningPALBadWriteOffset (50013) +#define +DAQmxWarningPALBadWriteCount (50014) +#define +DAQmxWarningPALBadAddressClass (50015) +#define +DAQmxWarningPALBadWindowType (50016) +#define +DAQmxWarningPALBadThreadMultitask (50019) +#define +DAQmxWarningPALResourceOwnedBySystem (50100) +#define +DAQmxWarningPALResourceNotAvailable (50101) +#define +DAQmxWarningPALResourceNotReserved (50102) +#define +DAQmxWarningPALResourceReserved (50103) +#define +DAQmxWarningPALResourceNotInitialized (50104) +#define +DAQmxWarningPALResourceInitialized (50105) +#define +DAQmxWarningPALResourceBusy (50106) +#define +DAQmxWarningPALResourceAmbiguous (50107) +#define +DAQmxWarningPALFirmwareFault (50151) +#define +DAQmxWarningPALHardwareFault (50152) +#define +DAQmxWarningPALOSUnsupported (50200) +#define +DAQmxWarningPALOSFault (50202) +#define +DAQmxWarningPALFunctionObsolete (50254) +#define +DAQmxWarningPALFunctionNotFound (50255) +#define +DAQmxWarningPALFeatureNotSupported (50256) +#define +DAQmxWarningPALComponentInitializationFault (50258) +#define +DAQmxWarningPALComponentAlreadyLoaded (50260) +#define +DAQmxWarningPALComponentNotUnloadable (50262) +#define +DAQmxWarningPALMemoryAlignmentFault (50351) +#define +DAQmxWarningPALMemoryHeapNotEmpty (50355) +#define +DAQmxWarningPALTransferNotInProgress (50402) +#define +DAQmxWarningPALTransferInProgress (50403) +#define +DAQmxWarningPALTransferStopped (50404) +#define +DAQmxWarningPALTransferAborted (50405) +#define +DAQmxWarningPALLogicalBufferEmpty (50406) +#define +DAQmxWarningPALLogicalBufferFull (50407) +#define +DAQmxWarningPALPhysicalBufferEmpty (50408) +#define +DAQmxWarningPALPhysicalBufferFull (50409) +#define +DAQmxWarningPALTransferOverwritten (50410) +#define +DAQmxWarningPALTransferOverread (50411) +#define +DAQmxWarningPALDispatcherAlreadyExported (50500) +#define +DAQmxWarningPALSyncAbandoned (50551) + + +#ifdef +__cplusplus } #endif diff --git a/driver/ni/digital_read.cpp b/driver/ni/digital_read.cpp index 635747198a..253d0a4bee 100644 --- a/driver/ni/digital_read.cpp +++ b/driver/ni/digital_read.cpp @@ -22,31 +22,34 @@ using json = nlohmann::json; -void ni::DigitalReadSource::parseChannels(config::Parser &parser){ +void ni::DigitalReadSource::parseChannels(config::Parser &parser) { LOG(INFO) << "[NI Reader] Parsing Channels for task " << this->reader_config.task_name; // now parse the channels parser.iter("channels", - [&](config::Parser &channel_builder){ + [&](config::Parser &channel_builder) { ni::ChannelConfig config; // digital channel names are formatted: /port/line - config.name = (this->reader_config.device_name + "/port" + std::to_string(channel_builder.required("port")) + "/line" + std::to_string(channel_builder.required("line"))); + config.name = (this->reader_config.device_name + "/port" + + std::to_string(channel_builder.required("port")) + "/line" + + std::to_string(channel_builder.required("line"))); config.channel_key = channel_builder.required("channel"); this->reader_config.channels.push_back(config); }); assert(parser.ok()); } -int ni::DigitalReadSource::createChannels(){ +int ni::DigitalReadSource::createChannels() { int err = 0; auto channels = this->reader_config.channels; - for (auto &channel : channels){ - if (channel.channel_type != "index" ){ - err = this->checkNIError(ni::NiDAQmxInterface::CreateDIChan(task_handle, channel.name.c_str(), "", DAQmx_Val_ChanPerLine)); + for (auto &channel: channels) { + if (channel.channel_type != "index") { + err = this->checkNIError( + ni::NiDAQmxInterface::CreateDIChan(task_handle, channel.name.c_str(), "", DAQmx_Val_ChanPerLine)); LOG(INFO) << "Channel name: " << channel.name; - } + } LOG(INFO) << "Index channel added to task: " << channel.name; - this->numChannels++; - if (err < 0){ + this->numChannels++; + if (err < 0) { LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; this->ok_state = false; return -1; @@ -55,17 +58,18 @@ int ni::DigitalReadSource::createChannels(){ return 0; } -int ni::DigitalReadSource::configureTiming(){ - if(this->reader_config.timing_source == "none"){ // if timing is not enabled, implement timing in software - this->reader_config.period = (uint64_t)((1.0 / this->reader_config.sample_rate) * 1000000000); // convert to microseconds +int ni::DigitalReadSource::configureTiming() { + if (this->reader_config.timing_source == "none") { // if timing is not enabled, implement timing in software + this->reader_config.period = (uint64_t) ((1.0 / this->reader_config.sample_rate) * + 1000000000); // convert to microseconds this->numSamplesPerChannel = 1; - } else{ + } else { if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, - this->reader_config.timing_source.c_str(), - this->reader_config.sample_rate, - DAQmx_Val_Rising, - DAQmx_Val_ContSamps, - this->reader_config.sample_rate))){ + this->reader_config.timing_source.c_str(), + this->reader_config.sample_rate, + DAQmx_Val_Rising, + DAQmx_Val_ContSamps, + this->reader_config.sample_rate))) { LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; this->ok_state = false; return -1; @@ -77,8 +81,8 @@ int ni::DigitalReadSource::configureTiming(){ } -void ni::DigitalReadSource::acquireData(){ - while(this->running){ +void ni::DigitalReadSource::acquireData() { + while (this->running) { int32 numBytesPerSamp; DataPacket data_packet; data_packet.data = new uInt8[this->bufferSize]; @@ -86,49 +90,51 @@ void ni::DigitalReadSource::acquireData(){ // sleep per sample rate std::this_thread::sleep_for(std::chrono::nanoseconds(this->reader_config.period)); if (this->checkNIError(ni::NiDAQmxInterface::ReadDigitalLines( - this->task_handle, // task handle - this->numSamplesPerChannel, // numSampsPerChan - -1, // timeout - DAQmx_Val_GroupByChannel, // dataLayout - static_cast(data_packet.data), // readArray - this->bufferSize, // arraySizeInSamps - &data_packet.samplesReadPerChannel, // sampsPerChanRead - &numBytesPerSamp, // numBytesPerSamp - NULL))){ + this->task_handle, // task handle + this->numSamplesPerChannel, // numSampsPerChan + -1, // timeout + DAQmx_Val_GroupByChannel, // dataLayout + static_cast(data_packet.data), // readArray + this->bufferSize, // arraySizeInSamps + &data_packet.samplesReadPerChannel, // sampsPerChanRead + &numBytesPerSamp, // numBytesPerSamp + NULL))) { LOG(ERROR) << "[NI Reader] failed while reading digital data for task " << this->reader_config.task_name; } - data_packet.tf = (uint64_t)((synnax::TimeStamp::now()).value); + data_packet.tf = (uint64_t) ((synnax::TimeStamp::now()).value); data_queue.enqueue(data_packet); } } // TODO: code dedup with analogreadsource read -std::pair ni::DigitalReadSource::read(){ +std::pair ni::DigitalReadSource::read() { synnax::Frame f = synnax::Frame(numChannels); // sleep per stream rate - std::this_thread::sleep_for(std::chrono::nanoseconds((uint64_t)((1.0 / this->reader_config.stream_rate )* 1000000000))); - + std::this_thread::sleep_for( + std::chrono::nanoseconds((uint64_t) ((1.0 / this->reader_config.stream_rate) * 1000000000))); + // take data off of queue auto [d, valid] = data_queue.dequeue(); - if(!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); + if (!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, + "Failed to read data from queue")); - uInt8* data = static_cast(d.data); + uInt8 * data = static_cast(d.data); // interpolate timestamps between the initial and final timestamp to ensure non-overlapping timestamps between batched reads - uint64_t incr = ( (d.tf- d.t0) / this->numSamplesPerChannel); + uint64_t incr = ((d.tf - d.t0) / this->numSamplesPerChannel); // Construct and populate index channel std::vector time_index(this->numSamplesPerChannel); for (uint64_t i = 0; i < d.samplesReadPerChannel; ++i) - time_index[i] = d.t0 + (std::uint64_t)(incr * i); - + time_index[i] = d.t0 + (std::uint64_t) (incr * i); + // Construct and populate synnax frame uint64_t data_index = 0; // TODO: put a comment explaining the function of data_index - for (int i = 0; i < numChannels; i++){ - if(this->reader_config.channels[i].channel_type == "index") { + for (int i = 0; i < numChannels; i++) { + if (this->reader_config.channels[i].channel_type == "index") { f.add(this->reader_config.channels[i].channel_key, synnax::Series(time_index, synnax::TIMESTAMP)); continue; } diff --git a/driver/ni/digital_read_test.cpp b/driver/ni/digital_read_test.cpp index f3e1338b4e..0700936302 100644 --- a/driver/ni/digital_read_test.cpp +++ b/driver/ni/digital_read_test.cpp @@ -21,203 +21,308 @@ #include -TEST(read_tests, one_digital_channel){ - LOG(INFO) << "test_read_one_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_location", "PXI1Slot2_2"}, - {"type", "digital_read"} - {"test", true}, - {"device", ""} - }; - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "d1", - synnax::UINT8, - time.key, - false - ); - - add_DI_channel_JSON(config, "d1", data.key, 0, 0); - - - // Synnax infrustructure - auto task = synnax::Task( +TEST(read_tests, one_digital_channel +){ +LOG(INFO) +<< "test_read_one_digital_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 100}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_location", "PXI1Slot2_2"}, + {"type", "digital_read"} + { "test", true }, + { "device", "" } +}; +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "d1", + synnax::UINT8, + time.key, + false +); + +add_DI_channel_JSON(config, +"d1", data.key, 0, 0); + + +// Synnax infrustructure +auto task = synnax::Task( "my_task", // task name "ni_digital_read", // task type to_string(config) // task config - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::DigitalReadSource( taskHandle, - mockCtx, - task); - - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - - std::cout << std::endl; - reader.stop() +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::DigitalReadSource(taskHandle, + mockCtx, + task); + +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); } +} +} + +std::cout << +std::endl; +reader. + +stop() + +} + + +TEST(read_tests, multiple_digital_channels +){ +LOG(INFO) +<< "test_read_multiple_digital_channel: "; //<< std::endl; +// Create NI readerconfig +auto config = json{ + {"sample_rate", 1000}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_location", "PXI1Slot2_2"}, + {"type", "digital_read"}, + {"test", true}, + {"device", ""} +}; +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); -TEST(read_tests, multiple_digital_channels){ - LOG(INFO) << "test_read_multiple_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 1000}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_location", "PXI1Slot2_2"}, - {"type", "digital_read"}, - {"test", true}, - {"device", ""} - }; - - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data1, dErr1] = client->channels.create( // analog input channel - "d1", - synnax::UINT8, - time.key, - false - ); - ASSERT_FALSE(dErr1) << tErr.message(); - auto [data2, dErr2] = client->channels.create( // analog input channel - "d2", - synnax::UINT8, - time.key, - false - ); - ASSERT_FALSE(dErr2) << tErr.message(); - auto [data3, dErr3] = client->channels.create( // analog input channel - "d3", - synnax::UINT8, - time.key, - false - ); - ASSERT_FALSE(dErr3) << tErr.message(); - auto [data4, dErr4] = client->channels.create( // analog input channel - "d4", - synnax::UINT8, - time.key, - false - ); - add_index_channel_JSON(config, "idx", 1); - add_DI_channel_JSON(config, "d1", data1.key, 0, 0); - add_DI_channel_JSON(config, "d2", data2.key, 0, 1); - add_DI_channel_JSON(config, "d3", data3.key, 0, 2); - add_DI_channel_JSON(config, "d4", data4.key, 0, 3); - - - - auto task = synnax::Task( +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data1, dErr1] = client->channels.create( // analog input channel + "d1", + synnax::UINT8, + time.key, + false +); +ASSERT_FALSE(dErr1) +<< tErr. + +message(); + +auto [data2, dErr2] = client->channels.create( // analog input channel + "d2", + synnax::UINT8, + time.key, + false +); +ASSERT_FALSE(dErr2) +<< tErr. + +message(); + +auto [data3, dErr3] = client->channels.create( // analog input channel + "d3", + synnax::UINT8, + time.key, + false +); +ASSERT_FALSE(dErr3) +<< tErr. + +message(); + +auto [data4, dErr4] = client->channels.create( // analog input channel + "d4", + synnax::UINT8, + time.key, + false +); +add_index_channel_JSON(config, +"idx", 1); +add_DI_channel_JSON(config, +"d1", data1.key, 0, 0); +add_DI_channel_JSON(config, +"d2", data2.key, 0, 1); +add_DI_channel_JSON(config, +"d3", data3.key, 0, 2); +add_DI_channel_JSON(config, +"d4", data4.key, 0, 3); + + +auto task = synnax::Task( "my_task", "ni_digital_read", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni:DigitalReadSource( taskHandle, - mockCtx, - task); - if(reader.init() != 0) std::cout << "Failed to initialize reader" << std::endl; - reader.start(); - - for(int i = 0; i < 15; i++ ) { // test for 50 read cycles - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - } - reader.stop(); +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni +: +DigitalReadSource( taskHandle, + mockCtx, + task +); +if(reader. + +init() + +!= 0) std::cout << "Failed to initialize reader" << +std::endl; +reader. + +start(); + +for( +int i = 0; +i < 15; i++ ) { // test for 50 read cycles +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; +} +reader. + +stop(); + } \ No newline at end of file diff --git a/driver/ni/digital_write.cpp b/driver/ni/digital_write.cpp index 0a51e7b2c8..e045aa5b4e 100644 --- a/driver/ni/digital_write.cpp +++ b/driver/ni/digital_write.cpp @@ -24,15 +24,15 @@ /////////////////////////////////////////////////////////////////////////////////// // Helper Functions // /////////////////////////////////////////////////////////////////////////////////// -void ni::DigitalWriteSink::getIndexKeys(){ +void ni::DigitalWriteSink::getIndexKeys() { assert(this->writer_config.drive_state_channel_keys.size() > 0); auto state_channel = this->writer_config.drive_state_channel_keys[0]; auto [state_channel_info, err] = this->ctx->client->channels.retrieve(state_channel); - if (err != freighter::NIL){ + if (err != freighter::NIL) { LOG(ERROR) << "[NI Writer] failed to retrieve channel " << state_channel; this->ok_state = false; return; - } else{ + } else { this->writer_config.drive_state_index_key = state_channel_info.index; } } @@ -41,11 +41,11 @@ void ni::DigitalWriteSink::getIndexKeys(){ // daqWriter // /////////////////////////////////////////////////////////////////////////////////// ni::DigitalWriteSink::DigitalWriteSink( - TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task) - : task_handle(task_handle), - ctx(ctx){ + TaskHandle task_handle, + const std::shared_ptr &ctx, + const synnax::Task task) + : task_handle(task_handle), + ctx(ctx) { // print task handle LOG(INFO) << "Task handle: " << task_handle; @@ -55,12 +55,12 @@ ni::DigitalWriteSink::DigitalWriteSink( // Parse configuration and make sure it is valid this->parseConfig(config_parser); - if (!config_parser.ok()){ + if (!config_parser.ok()) { // Log error LOG(ERROR) << "[NI Writer] failed to parse configuration for " << this->writer_config.task_name; this->ctx->setState({.task = this->writer_config.task_key, - .variant = "error", - .details = config_parser.error_json()}); + .variant = "error", + .details = config_parser.error_json()}); this->ok_state = false; return; } @@ -68,42 +68,40 @@ ni::DigitalWriteSink::DigitalWriteSink( // Create breaker auto breaker_config = breaker::Config{ - .name = task.name, - .base_interval = 1 * SECOND, - .max_retries = 20, - .scale = 1.2, + .name = task.name, + .base_interval = 1 * SECOND, + .max_retries = 20, + .scale = 1.2, }; this->breaker = breaker::Breaker(breaker_config); // TODO: make sure you have all the channel info you could possible need // Now configure the actual NI hardware - if (this->init()){ + if (this->init()) { LOG(ERROR) << "[NI Writer] Failed while configuring NI hardware for task " << this->writer_config.task_name; this->ok_state = false; } - // Get index keys + // Get index keys this->getIndexKeys(); // TODO: get device proprties for things like authentication - this->writer_state_source = std::make_shared( this->writer_config.state_rate, - this->writer_config.drive_state_index_key, - this->writer_config.drive_state_channel_keys); + this->writer_state_source = std::make_shared(this->writer_config.state_rate, + this->writer_config.drive_state_index_key, + this->writer_config.drive_state_channel_keys); this->start(); } - - -void ni::DigitalWriteSink::parseConfig(config::Parser &parser){ +void ni::DigitalWriteSink::parseConfig(config::Parser &parser) { this->writer_config.state_rate = parser.required("state_rate"); // for state writing this->writer_config.device_key = parser.required("device"); // device key assert(parser.ok()); - auto [dev, err ] = this->ctx->client->hardware.retrieveDevice(this->writer_config.device_key); + auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->writer_config.device_key); - if(err != freighter::NIL){ + if (err != freighter::NIL) { LOG(ERROR) << "[NI Writer] failed to retrieve device with key " << this->writer_config.device_key; this->ok_state = false; return; @@ -113,18 +111,20 @@ void ni::DigitalWriteSink::parseConfig(config::Parser &parser){ // task key // device name parser.iter("channels", - [&](config::Parser &channel_builder){ + [&](config::Parser &channel_builder) { ni::ChannelConfig config; // digital channel names are formatted: /port/line - config.name = (this->writer_config.device_name + "/port" + std::to_string(channel_builder.required("port")) + "/line" + std::to_string(channel_builder.required("line"))); + config.name = (this->writer_config.device_name + "/port" + + std::to_string(channel_builder.required("port")) + "/line" + + std::to_string(channel_builder.required("line"))); config.channel_key = channel_builder.required("cmd_channel"); this->writer_config.drive_cmd_channel_keys.push_back(config.channel_key); - + uint32_t drive_state_key = channel_builder.required("state_channel"); this->writer_config.drive_state_channel_keys.push_back(drive_state_key); - + // TODO: there could be more than 2 state this->writer_config.channels.push_back(config); @@ -136,17 +136,18 @@ void ni::DigitalWriteSink::parseConfig(config::Parser &parser){ } -int ni::DigitalWriteSink::init(){ +int ni::DigitalWriteSink::init() { int err = 0; auto channels = this->writer_config.channels; // iterate through channels - for (auto &channel : channels){ - if (channel.channel_type != "index"){ - err = this->checkNIError(ni::NiDAQmxInterface::CreateDOChan(this->task_handle, channel.name.c_str(), "", DAQmx_Val_ChanPerLine)); + for (auto &channel: channels) { + if (channel.channel_type != "index") { + err = this->checkNIError(ni::NiDAQmxInterface::CreateDOChan(this->task_handle, channel.name.c_str(), "", + DAQmx_Val_ChanPerLine)); } this->numChannels++; // includes index channels TODO: how is this different form jsut channels.size()? - if (err < 0){ + if (err < 0) { LOG(ERROR) << "[NI Writer] failed while configuring channel " << channel.name; return -1; } @@ -156,7 +157,7 @@ int ni::DigitalWriteSink::init(){ this->bufferSize = this->numChannels; this->writeBuffer = new uint8_t[this->bufferSize]; - for (int i = 0; i < this->bufferSize; i++){ + for (int i = 0; i < this->bufferSize; i++) { writeBuffer[i] = 0; } @@ -164,46 +165,46 @@ int ni::DigitalWriteSink::init(){ return 0; } -freighter::Error ni::DigitalWriteSink::start(){ - if(this->running.exchange(true)){ +freighter::Error ni::DigitalWriteSink::start() { + if (this->running.exchange(true)) { return freighter::NIL; } - if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))){ + if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))) { LOG(ERROR) << "[NI Writer] failed while starting writer for task " << this->writer_config.task_name; return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } LOG(INFO) << "[NI Writer] successfully started writer for task " << this->writer_config.task_name; ctx->setState({ - .task = this->writer_config.task_key, - .variant = "success", - .details = { - {"running", true} - } - }); + .task = this->writer_config.task_key, + .variant = "success", + .details = { + {"running", true} + } + }); return freighter::NIL; } -freighter::Error ni::DigitalWriteSink::stop(){ - if(!this->running.exchange(false)){ +freighter::Error ni::DigitalWriteSink::stop() { + if (!this->running.exchange(false)) { return freighter::NIL; } - if (this->checkNIError(ni::NiDAQmxInterface::StopTask(task_handle))){ + if (this->checkNIError(ni::NiDAQmxInterface::StopTask(task_handle))) { LOG(ERROR) << "[NI Writer] failed while stopping writer for task " << this->writer_config.task_name; return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } LOG(INFO) << "[NI Writer] successfully stopped writer for task " << this->writer_config.task_name; ctx->setState({ - .task = this->writer_config.task_key, - .variant = "success", - .details = { - {"running", false} - } - }); + .task = this->writer_config.task_key, + .variant = "success", + .details = { + {"running", false} + } + }); return freighter::NIL; } -freighter::Error ni::DigitalWriteSink::write(synnax::Frame frame){ +freighter::Error ni::DigitalWriteSink::write(synnax::Frame frame) { int32 samplesWritten = 0; formatData(std::move(frame)); @@ -215,30 +216,34 @@ freighter::Error ni::DigitalWriteSink::write(synnax::Frame frame){ DAQmx_Val_GroupByChannel, // data layout writeBuffer, // data &samplesWritten, // samples written - NULL))){ + NULL))) { LOG(ERROR) << "[NI Writer] failed while writing digital data for task " << this->writer_config.task_name; return freighter::Error(driver::CRITICAL_HARDWARE_ERROR, "Error reading digital data"); } - this->writer_state_source->updateState(this->writer_config.modified_state_keys, this->writer_config.modified_state_values); + this->writer_state_source->updateState(this->writer_config.modified_state_keys, + this->writer_config.modified_state_values); return freighter::NIL; } -freighter::Error ni::DigitalWriteSink::formatData(synnax::Frame frame){ +freighter::Error ni::DigitalWriteSink::formatData(synnax::Frame frame) { uint32_t frame_index = 0; uint32_t cmd_channel_index = 0; - for (auto key : *(frame.channels)){ // the order the keys were pushed into the vector is the order the data is written + for (auto key: *(frame.channels)) { // the order the keys were pushed into the vector is the order the data is written // first see if the key is in the drive_cmd_channel_keys - auto it = std::find(this->writer_config.drive_cmd_channel_keys.begin(), this->writer_config.drive_cmd_channel_keys.end(), key); - if (it != this->writer_config.drive_cmd_channel_keys.end()){ + auto it = std::find(this->writer_config.drive_cmd_channel_keys.begin(), + this->writer_config.drive_cmd_channel_keys.end(), key); + if (it != this->writer_config.drive_cmd_channel_keys.end()) { // if so, now find which index it is in the vector (i.e. which channel it is in the writeBuffer) - cmd_channel_index = std::distance(this->writer_config.drive_cmd_channel_keys.begin(), it); // this corressponds to where in the order its NI channel was created + cmd_channel_index = std::distance(this->writer_config.drive_cmd_channel_keys.begin(), + it); // this corressponds to where in the order its NI channel was created // now we grab the level we'd like to write and put it into that location in the write_buffer auto series = frame.series->at(frame_index).uint8(); writeBuffer[cmd_channel_index] = series[0]; - this->writer_config.modified_state_keys.push(this->writer_config.drive_state_channel_keys[cmd_channel_index]); + this->writer_config.modified_state_keys.push( + this->writer_config.drive_state_channel_keys[cmd_channel_index]); this->writer_config.modified_state_values.push(series[0]); } frame_index++; @@ -247,16 +252,16 @@ freighter::Error ni::DigitalWriteSink::formatData(synnax::Frame frame){ } -int ni::DigitalWriteSink::checkNIError(int32 error){ - if (error < 0){ +int ni::DigitalWriteSink::checkNIError(int32 error) { + if (error < 0) { char errBuff[2048] = {'\0'}; ni::NiDAQmxInterface::GetExtendedErrorInfo(errBuff, 2048); this->err_info["error type"] = "Vendor Error"; this->err_info["error details"] = errBuff; this->ok_state = false; this->ctx->setState({.task = this->writer_config.task_key, - .variant = "error", - .details = err_info}); + .variant = "error", + .details = err_info}); LOG(ERROR) << "[NI Reader] Vendor Error: " << this->err_info["error details"]; return -1; } @@ -264,13 +269,13 @@ int ni::DigitalWriteSink::checkNIError(int32 error){ } -bool ni::DigitalWriteSink::ok(){ +bool ni::DigitalWriteSink::ok() { return this->ok_state; } -ni::DigitalWriteSink::~DigitalWriteSink(){ +ni::DigitalWriteSink::~DigitalWriteSink() { freighter::Error err = freighter::NIL; - if (this->checkNIError(ni::NiDAQmxInterface::ClearTask(task_handle))){ + if (this->checkNIError(ni::NiDAQmxInterface::ClearTask(task_handle))) { LOG(ERROR) << "[NI Writer] failed while clearing writer for task " << this->writer_config.task_name; } delete[] this->writeBuffer; @@ -278,17 +283,18 @@ ni::DigitalWriteSink::~DigitalWriteSink(){ } -std::vector ni::DigitalWriteSink::getCmdChannelKeys(){ +std::vector ni::DigitalWriteSink::getCmdChannelKeys() { std::vector keys; - for (auto &channel : this->writer_config.channels){ - if (channel.channel_type != "index"){ - keys.push_back(channel.channel_key); // could either be the key to a cmd channel or a key to an cmd index channel + for (auto &channel: this->writer_config.channels) { + if (channel.channel_type != "index") { + keys.push_back( + channel.channel_key); // could either be the key to a cmd channel or a key to an cmd index channel } } return keys; } -std::vector ni::DigitalWriteSink::getStateChannelKeys(){ +std::vector ni::DigitalWriteSink::getStateChannelKeys() { std::vector keys = this->writer_config.drive_state_channel_keys; keys.push_back(this->writer_config.drive_state_index_key); return keys; @@ -297,48 +303,51 @@ std::vector ni::DigitalWriteSink::getStateChannelKeys(){ /////////////////////////////////////////////////////////////////////////////////// // StateSource // /////////////////////////////////////////////////////////////////////////////////// -ni::StateSource::StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, std::vector &drive_state_channel_keys) - : state_rate(state_rate){ +ni::StateSource::StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, + std::vector &drive_state_channel_keys) + : state_rate(state_rate) { // start the periodic thread this->state_period = std::chrono::duration(1.0 / this->state_rate); this->drive_state_index_key = drive_state_index_key; // initialize all states to 0 (logic low) - for (auto &key : drive_state_channel_keys){ + for (auto &key: drive_state_channel_keys) { this->state_map[key] = 0; } } -std::pair ni::StateSource::read(){ +std::pair ni::StateSource::read() { std::unique_lock lock(this->state_mutex); - waiting_reader.wait_for(lock, state_period); + waiting_reader.wait_for(lock, state_period); return std::make_pair(this->getDriveState(), freighter::NIL); } -freighter::Error ni::StateSource::start(){ +freighter::Error ni::StateSource::start() { return freighter::NIL; } -freighter::Error ni::StateSource::stop(){ +freighter::Error ni::StateSource::stop() { return freighter::NIL; } -synnax::Frame ni::StateSource::getDriveState(){ +synnax::Frame ni::StateSource::getDriveState() { auto drive_state_frame = synnax::Frame(this->state_map.size() + 1); - drive_state_frame.add(this->drive_state_index_key, synnax::Series(std::vector{synnax::TimeStamp::now().value}, synnax::TIMESTAMP)); + drive_state_frame.add(this->drive_state_index_key, + synnax::Series(std::vector{synnax::TimeStamp::now().value}, synnax::TIMESTAMP)); // Iterate through map and add each state to frame - for (auto &state : this->state_map){ + for (auto &state: this->state_map) { drive_state_frame.add(state.first, synnax::Series(std::vector{state.second})); } return drive_state_frame; } -void ni::StateSource::updateState(std::queue &modified_state_keys, std::queue &modified_state_values){ +void ni::StateSource::updateState(std::queue &modified_state_keys, + std::queue &modified_state_values) { std::unique_lock lock(this->state_mutex); // update state map - while (!modified_state_keys.empty()){ + while (!modified_state_keys.empty()) { this->state_map[modified_state_keys.front()] = modified_state_values.front(); modified_state_keys.pop(); modified_state_values.pop(); diff --git a/driver/ni/error.h b/driver/ni/error.h index a1baa3ef3e..cb96f9b602 100644 --- a/driver/ni/error.h +++ b/driver/ni/error.h @@ -13,7 +13,7 @@ #include #include -namespace ni{ +namespace ni { // Enumerated types for Category and Action Required enum class Category { Configuration, @@ -38,1654 +38,1654 @@ namespace ni{ // Map of error codes to error information const std::map errors = { - {-209886, {Category::Configuration, ActionRequired::Warning, "Setting the specified property does not allow multiple task configuration of the sample clock."}}, - {-209885, {Category::Configuration, ActionRequired::ImmediateAction, "A property is set to a value that is not supported by multiple task configuration of the sample clock."}}, - {-209884, {Category::Hardware, ActionRequired::Warning, "A common sample rate for all specified tasks could not be found. If your application contains both fast- and slow-sampled devices, consider enabling allow repeated samples."}}, - {-209883, {Category::Other, ActionRequired::Warning, "A common sample rate for all specified tasks could not be found."}}, - {-209882, {Category::Hardware, ActionRequired::Warning, "The task contains multiple devices or chassis. Multiple task configuration only supports tasks with a single device or chassis."}}, - {-209881, {Category::Other, ActionRequired::Warning, "The task does not support configuring its sample clock rate via multiple task configuration."}}, - {-209880, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task may have a registered timing source. The debug session does not support debugging tasks with registered timing sources."}}, - {-209879, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task has logging enabled. The debug session does not support debugging tasks with logging enabled. Turn off logging for the target task and try again."}}, - {-209878, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task has registered events. The debug session does not support debugging tasks with registered events. Unregister the events for the target task and try again."}}, - {-209877, {Category::Other, ActionRequired::ImmediateAction, "Specified operation cannot be performed because the debug session's target task is invalid or does not exist."}}, - {-209876, {Category::Hardware, ActionRequired::ImmediateAction, "Requested function is not supported by the device."}}, - {-209875, {Category::Other, ActionRequired::Warning, "Multiple tasks were found that match the debug session target settings.The debug session does not support debugging more than one task at a time. Change the target settings to match a specific task and try again."}}, - {-209874, {Category::Other, ActionRequired::Warning, "A task was not found that matches the debug session target settings."}}, - {-209873, {Category::Other, ActionRequired::ImmediateAction, "Specified operation cannot be performed because it is not supported in a debug session."}}, - {-209872, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because it is not permitted in monitor mode.Make sure the debug session is in control mode before requesting this operation."}}, - {-209871, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed because your device contains multiple banks, and the property has different values for different banks. Get this property one bank at a time by changing the active device name to specify each individual bank."}}, - {-209870, {Category::Other, ActionRequired::ImmediateAction, "Timing source creation has failed because another timing source has already been registered for this task."}}, - {-209869, {Category::Hardware, ActionRequired::ImmediateAction, "Requested value is not a supported value for this hardware revision. However, it may be supported on later revisions. Visit ni.com/info, and enter the info code \"fielddaqfilter\" for additional information."}}, - {-209868, {Category::Other, ActionRequired::ImmediateAction, "To set the sensor power supply voltage level, you must specify the sensor power configuration."}}, - {-209867, {Category::Other, ActionRequired::ImmediateAction, "To enable the sensor power supply, you must specify the sensor power voltage level."}}, - {-209866, {Category::Hardware, ActionRequired::Warning, "The hardware cannot acquire data from the configured scanlist. Please enter the info code that follows at ni.com/info for additional information."}}, - {-209865, {Category::Other, ActionRequired::ImmediateAction, "All internal routes have been reserved. If you are using time-based synchronization, please refer to info code \"TimeTriggerLimits\" at ni.com/info for additional information."}}, - {-209864, {Category::Other, ActionRequired::Warning, "The requested Reset Delay cannot be set based on your task configuration. If you are using C Series modules from different chassis in the same task, it is possible that the sample rate and module types cannot be synchronized effectively."}}, - {-209863, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of time triggers available. Try disabling time triggers that are enabled on one or more DAQ tasks in your system. If no more time triggers can be disabled, try disabling other features that require internal routing resources. Please refer to info code \"TimeTriggerLimits\" at ni.com/info for more information."}}, - {-209862, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of timestamps available. Try disabling timestamps that are user-defined or enabled by default on one or more DAQ tasks in your system."}}, - {-209861, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices in your task are not running the IEEE 802.1AS or IEEE 1588 synchronization protocol. Use the NI-Sync LabVIEW API to enable 802.1AS or 1588. Refer to the NI-Sync help or LabVIEW examples for more information."}}, - {-209860, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices could not be added to your task because they have existing coherency requirements that conflict with the new requirements of your current task. Stop the task(s) that use devices in this task and try running it again."}}, - {-209859, {Category::Hardware, ActionRequired::ImmediateAction, "The devices in your task must be synchronized to one another using the IEEE 802.1AS or IEEE 1588 synchronization protocol. Connect the devices, either directly or via an 802.1AS or 1588-capable switch."}}, - {-209858, {Category::Other, ActionRequired::ImmediateAction, "FieldDAQ bank name specified is invalid. FieldDAQ bank names are of the form -Bank. For example, FieldDAQ1-Bank1."}}, - {-209857, {Category::Hardware, ActionRequired::ImmediateAction, "Task contains physical channels on one or more devices that do not support the DAQmx hardware-timed single-point sample mode."}}, - {-209856, {Category::Other, ActionRequired::ImmediateAction, "Bank type in the source storage does not match the bank type in the destination."}}, - {-209855, {Category::Hardware, ActionRequired::ImmediateAction, "FieldDAQ device does not support the specified number of banks. The bank number specified may be too large. Change the bank number to be a valid bank number."}}, - {-209854, {Category::Other, ActionRequired::ImmediateAction, "The simulated FieldDAQ bank is not supported on this simulated FieldDAQ."}}, - {-209853, {Category::Other, ActionRequired::ImmediateAction, "The IsSimulated flags for FieldDAQ and banks must match. Change the IsSimulated flags in the import file so that they match."}}, - {-209852, {Category::Hardware, ActionRequired::ImmediateAction, "The specified device is no longer supported within the NI-DAQmx API."}}, - {-209851, {Category::Other, ActionRequired::ImmediateAction, "The requested Sample Timing Engine does not support Use Only Onboard Memory."}}, - {-209850, {Category::Other, ActionRequired::ImmediateAction, "Task name specified conflicts with an existing task name in another project."}}, - {-209849, {Category::Other, ActionRequired::Warning, "A time Arm Start Trigger and time Start Trigger are configured. Ensure the Arm Start Trigger comes first."}}, - {-209848, {Category::Hardware, ActionRequired::Warning, "The time trigger cannot be configured because your device has lost synchronization lock to the grand master."}}, - {-209847, {Category::Configuration, ActionRequired::ImmediateAction, "Specified value is not supported for this property. Supported values are -1 (infinite window) or non-negative numbers up to 15.768000e9."}}, - {-209846, {Category::Configuration, ActionRequired::Warning, "The property cannot be queried before or during a data acquisition. You must explicitly commit, run, and stop your task before attempting to read this property."}}, - {-209845, {Category::Configuration, ActionRequired::ImmediateAction, "The Sample Clock Timebase property you have requested is not supported by this task because it contains a reference clock device. Use the Reference Clock properties instead."}}, - {-209844, {Category::Other, ActionRequired::Warning, "Attempted to query a timestamp before it is available. Use the DAQmx Wait for Valid Timestamp VI/function to wait until the desired timestamp is available."}}, - {-209843, {Category::Hardware, ActionRequired::ImmediateAction, "Time operations are not supported by this device or task type."}}, - {-209842, {Category::Other, ActionRequired::Warning, "Timestamp requested is not enabled for this task."}}, - {-209841, {Category::Other, ActionRequired::Warning, "A time sync pulse and time start trigger are configured. Ensure the sync pulse comes first and the difference between them is larger than the task sync time."}}, - {-209840, {Category::Other, ActionRequired::Warning, "The configured time trigger is in the past."}}, - {-209839, {Category::Hardware, ActionRequired::Warning, "A time trigger configured is too far in the future. Use I/O Device Timescale instead of Host Timescale, configure the trigger at a point in the future closer to the trigger time, or schedule the trigger closer in time to the current Host Timescale time."}}, - {-209838, {Category::Configuration, ActionRequired::Warning, "Synchronization lock was lost during operation. If the occasional loss of synchronization is acceptable, change the Synchronization Unlock Behavior property to ignore sync loss. Otherwise, go to ni.com for more information about sync loss management."}}, - {-209837, {Category::Other, ActionRequired::Warning, "The timescales for time start trigger and time sync pulse must be the same."}}, - {-209836, {Category::Hardware, ActionRequired::Warning, "The devices in your task cannot be synchronized. This may be because there are no available synchronization mechanisms between the devices."}}, - {-209835, {Category::Configuration, ActionRequired::ImmediateAction, "The specified property requires all associated channels to use the same range as specified by the Maximum and Minimum properties. Try setting the same Maximum and Minimum Values on each channel or change the conflicting property."}}, - {-209834, {Category::Configuration, ActionRequired::Warning, "Sample rate exceeds the maximum sample rate for the number of channels and property values specified. Reduce the sample rate or number of channels. Changing the specified property values may also increase the maximum possible sample rate."}}, - {-209833, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Wait for Valid Timestamp is not supported by one or more devices in this task."}}, - {-209832, {Category::Other, ActionRequired::Warning, "Specified Trigger Window has elapsed without a trigger being detected."}}, - {-209831, {Category::Hardware, ActionRequired::Warning, "Not all devices in the task support the specified Trigger configuration."}}, - {-209830, {Category::Hardware, ActionRequired::Warning, "Not all devices in the task support the specified Data Transfer Mechanism."}}, - {-209829, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the data transfer throughput. Reduce the maximum data transfer rate of the device. You can also increase bandwidth by reducing the number of programs your computer is executing."}}, - {-209828, {Category::Hardware, ActionRequired::Warning, "All channels used for the analog trigger source must be on the same device. Remove trigger configurations from the task until all of the sources are channels from the same device."}}, - {-209827, {Category::Hardware, ActionRequired::Warning, "The device does not support using more than one trigger type at a time with the specified task configuration. Configure the device to use only one trigger type or to use a configuration that supports using multiple trigger types."}}, - {-209826, {Category::Other, ActionRequired::Warning, "Multiple source triggering requires the same number of values for all user-specified trigger configurations."}}, - {-209825, {Category::Configuration, ActionRequired::Warning, "The specified AO DAC range must be consistent with all reserved tasks on this device. Ensure that all reserved tasks on this device use the same value for the AO.DAC.Ref.Val channel attribute/property."}}, - {-209824, {Category::Other, ActionRequired::Warning, "The waveforms passed to DAQmx Write claim to be sampled at inconsistent rates. Check to make sure the data is sampled at the correct rate and either re-sample the data or correct the dt element of the waveforms."}}, - {-209823, {Category::Other, ActionRequired::Warning, "The function called is no longer supported by DAQmx."}}, - {-209822, {Category::Other, ActionRequired::ImmediateAction, "Negative duration values other than -1 are not supported. -1 indicates to read all samples."}}, - {-209821, {Category::Other, ActionRequired::Warning, "No samples were acquired within the specified duration. Increase the duration or sample rate so that at least one sample is acquired."}}, - {-209820, {Category::Other, ActionRequired::Warning, "The specified duration is too long. Specify a shorter duration."}}, - {-209819, {Category::Other, ActionRequired::Warning, "Duration-based reads are supported only in sample clock timing mode."}}, - {-209818, {Category::Other, ActionRequired::ImmediateAction, "The selected LED state is invalid."}}, - {-209817, {Category::Hardware, ActionRequired::Warning, "A device in your watchdog task does not support different output state types. Set all channels to the same output state type or remove the channels from the task."}}, - {-209816, {Category::Hardware, ActionRequired::Warning, "Self-test of the device has failed because the measured power supply voltage is outside of tolerance. Please contact National Instruments technical support."}}, - {-209815, {Category::Hardware, ActionRequired::Warning, "DAQmx Write does not support multiple samples in Hardware-Timed Single-Point tasks. Specify a single sample."}}, - {-209814, {Category::Configuration, ActionRequired::Warning, "You cannot use onboard regeneration for a task with this many channels. Reduce the number of channels in the task, use fewer modules with more the 16-bits of precision, or set the AO.UseOnlyOnBrdMem attribute/property to false."}}, - {-209813, {Category::Hardware, ActionRequired::Warning, "To create watchdog task on this device, you must specify expiration states for all lines. Specify states for the missing channels."}}, - {-209812, {Category::Hardware, ActionRequired::Warning, "The selected shunt source option for the shunt calibration is not valid for this device."}}, - {-209811, {Category::Hardware, ActionRequired::Warning, "The selected shunt select option for the shunt calibration is not valid for this device."}}, - {-209810, {Category::Hardware, ActionRequired::Warning, "This device does not support shunt calibration for the requested configuration of shunt select and shunt source. Refer to the shunt calibration documentation for your application development environment for more information."}}, - {-209809, {Category::Other, ActionRequired::Warning, "The selected channels do not support buffered operations when alone in a task. Add an additional channel which supports buffered operations to the task or reconfigure the task to use On-Demand timing."}}, - {-209808, {Category::Other, ActionRequired::ImmediateAction, "The specified feature is not supported on the attached accessory. Refer to your accessory documentation for accessories that support the requested feature."}}, - {-209807, {Category::Other, ActionRequired::Warning, "The threshold voltage value must be consistent when using the same terminal with RSE terminal configuration as a source for multiple inputs. For example, do not set 2.0 V on PFI0 for one input, and 3.0 V on PFI0 for another input."}}, - {-209806, {Category::Software, ActionRequired::Warning, "NI-DAQmx is not installed on the target system, is incompatible, or the installation is corrupt. Install or repair the driver software."}}, - {-209804, {Category::Configuration, ActionRequired::ImmediateAction, "Your device has lost synchronization lock to the grand master. Any timestamp values for the task may be invalid, but the task was not stopped because the SyncUnlockBehavior property is set to \"Ignore Lost Sync Lock.\" To query the status of your device, read either the ReadSyncUnlockedChansExist or WriteSyncUnlockedChansExist property."}}, - {-209803, {Category::Configuration, ActionRequired::ImmediateAction, "The Onboard Memory Empty value of the AO.DataXferReqCond attribute/property is not supported on this device. The value of this attribute/property is coerced to a different value after Output.BufSize is set. You can emulate the behavior of the Onboard Memory Empty value by setting Output.BufSize to a lower value. The minimum value for this attribute/property is 2."}}, - {-209802, {Category::Other, ActionRequired::Warning, "DAQmx Wait for Next Sample Clock detected one or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates that your program is not keeping up with the sample clock. To remove this warning, slow down the sample clock, or else change your application so that it can keep up with the sample clock."}}, - {-209801, {Category::Hardware, ActionRequired::Warning, "DAQmx Write did not complete before the arrival of the next sample clock which indicates that your program is not keeping up with the hardware clock. To remove this warning, slow down the hardware clock, or else change your application so that it can keep up with the hardware clock."}}, - {-209800, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of the next sample clock or change detection event, which indicates that your program is not keeping up with the hardware clock or the external change event. For tasks using sample clock timing, slow down the hardware clock or else change your application so that it can keep up with the hardware clock. For tasks using change detection timing, decrease the frequency of your event or else change your application so that it can keep up with the change event."}}, - {-201510, {Category::Other, ActionRequired::Warning, "The digital filtering properties must be consistent when using the same terminal as a source for multiple inputs. For example, digital filtering can either be enabled with the same minimum pulse width configuration whenever PFI0 is used, or disabled for all cases."}}, - {-201509, {Category::Other, ActionRequired::Warning, "The logic level behavior must be consistent when using the same terminal as a source for multiple inputs. For example, do not enable the pull-up on PFI0 for one input, and set it to none on PFI0 for another input."}}, - {-201508, {Category::Other, ActionRequired::Warning, "The terminal configuration must be consistent when using the same terminal as a source for multiple inputs. For example, do not set PFI0 to differential for one input, and PFI0 to RSE for another input."}}, - {-201507, {Category::Hardware, ActionRequired::ImmediateAction, "A fatal hardware clocking error has occurred. The device is unusable until you restart it. If the problem persists, please contact National Instruments Technical Support."}}, - {-201506, {Category::Hardware, ActionRequired::ImmediateAction, "A hardware clocking error has occurred. Try the operation again. If the problem persists, please contact National Instruments Technical Support."}}, - {-201505, {Category::Hardware, ActionRequired::Warning, "The chassis requires at least one DAQ device directly cabled to it. Edit the chassis and assign a device."}}, - {-201504, {Category::Hardware, ActionRequired::ImmediateAction, "A fatal hardware clocking error has occurred. The device is unusable until you restart it. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-201503, {Category::Software, ActionRequired::Warning, "The AI timing engine cannot be used for counter tasks. You can select a different timing engine or let the driver automatically select one."}}, - {-200078, {Category::Hardware, ActionRequired::ImmediateAction, "Using USB DAQ devices on Windows XP might result in corrupt data or other errors. Visit ni.com/info and enter info code \"WindowsXPUSBHotfix\" to obtain a patch."}}, - {-200077, {Category::Other, ActionRequired::Warning, "The NI PXIe-5611 is not configured properly and needs to be associated with an AWG and LO. Right-click on the NI PXIe-5611 and select 'Configure' to associate the AWG and LO. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, - {-200076, {Category::Other, ActionRequired::Warning, "The NI PXIe-5611 is not configured and needs to be associated with an AWG and LO. Right-click on the NI PXIe-5611 and select 'Configure' to associate the AWG and LO. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, - {-200075, {Category::Other, ActionRequired::Warning, "The NI PXI-5610 is not configured properly and needs to be associated with an AWG. Right-click on the NI PXI-5610 and select 'Configure' to associate the AWG. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, - {-200074, {Category::Other, ActionRequired::Warning, "The NI PXI-5610 is not configured and needs to be associated with an AWG. Right-click on the NI PXI-5610 and select 'Configure' to associate the AWG. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, - {-200073, {Category::Other, ActionRequired::Warning, "The NI PXI-5665 is not configured properly. Right-click on the NI PXIe-5606 and select 'Configure' to associate the digitizer and LO."}}, - {-200072, {Category::Other, ActionRequired::Warning, "The NI PXIe-5606 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5606 and select 'Configure' to associate the digitizer and LO."}}, - {-200071, {Category::Other, ActionRequired::Warning, "The NI PXIe-5667 (7 GHz) is not configured properly. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, - {-200070, {Category::Other, ActionRequired::Warning, "The NI PXI-5665 (14 GHz) is not configured properly. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, - {-200069, {Category::Other, ActionRequired::Warning, "The NI PXIe-5605 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, - {-200068, {Category::Other, ActionRequired::Warning, "The NI PXIe-5667 (3.6 GHz) is not configured properly. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, - {-200067, {Category::Other, ActionRequired::Warning, "The NI PXIe-5665 (3.6 GHz) is not configured properly. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, - {-200066, {Category::Other, ActionRequired::Warning, "The NI PXIe-5603 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, - {-200065, {Category::Other, ActionRequired::Warning, "The NI PXIe-5663E is not configured properly. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, - {-200064, {Category::Other, ActionRequired::Warning, "The NI PXIe-5663 is not configured properly. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, - {-200063, {Category::Other, ActionRequired::Warning, "The NI PXIe-5601 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, - {-200062, {Category::Other, ActionRequired::Warning, "The NI PXI-5661 is not configured properly. Right-click on the NI PXI-5600 and select 'Configure' to associate the digitizer."}}, - {-200061, {Category::Other, ActionRequired::Warning, "The NI PXI-5600 is not associated with a digitizer. Right-click on the NI PXI-5600 and select 'Configure' to associate the digitizer."}}, - {-200060, {Category::Other, ActionRequired::Warning, "The same data is being read repetitively."}}, - {-200059, {Category::Other, ActionRequired::Warning, "The selected ports are not connected, so there is nothing to disconnect."}}, - {-200058, {Category::Communication, ActionRequired::ImmediateAction, "The connection count stored on the EEPROM is invalid. Write a value to Accessory Connection Count to fix the problem. Contact National Instruments if the problem persists."}}, - {-200057, {Category::Hardware, ActionRequired::Warning, "The network device already exists in the system."}}, - {-200056, {Category::Communication, ActionRequired::Warning, "The connection count of the attached accessory has exceeded the recommended limit. Contact National Instruments if the accessory appears to be functioning improperly."}}, - {-200055, {Category::Hardware, ActionRequired::Warning, "Power-up state section of the device EEPROM appears to be corrupt. Reconfigure the digital power-up states and perform a self-calibration."}}, - {-200054, {Category::Hardware, ActionRequired::Warning, "EEPROM of the device appears to be corrupt. Contact National Instruments if the device appears to be functioning improperly."}}, - {-200053, {Category::Hardware, ActionRequired::Warning, "Sample Rate specified may exceed device capabilities for some devices in the task. Specify a slower sample rate, decrease the number of channels, or use a separate task for some of the devices in the task."}}, - {-200052, {Category::Other, ActionRequired::Warning, "Buffer size specified is not evenly divisible by 8 times the sector size. For optimal performance, use a buffer size that is a multiple of 8 times the sector size. Refer to the NI-DAQmx Help for more information."}}, - {-200051, {Category::Other, ActionRequired::ImmediateAction, "Input voltage limits exceeded. Protection circuity disabled the inputs, however proper voltage levels are now present, and the error state has been cleared."}}, - {-200050, {Category::Hardware, ActionRequired::ImmediateAction, "Output generation aborted by the reverse power protection circuitry of the device. Either the output signal exceeded the output power limit, or power was driven back into the output of the device by an external source. Error state has been cleared."}}, - {-200049, {Category::Hardware, ActionRequired::Warning, "Calibration changed the gain calibration constants only and not the offset calibration constants because the necessary offset calibration data was not available. This device needs a reference signal of 0.0 Volts at gains of 1, 15, 20, and 310 in order to perform an offset calibration."}}, - {-200048, {Category::Configuration, ActionRequired::Warning, "Requested property value exceeds device specification limits. Device performance is not guaranteed. Use values within device specifications, or set the Allow Out of Specification User Settings property to true."}}, - {-200047, {Category::Hardware, ActionRequired::Warning, "Self-calibration section of the EEPROM on the device appears to be corrupt. Perform a self-calibration on the device."}}, - {-200046, {Category::Hardware, ActionRequired::Warning, "External calibration section of the EEPROM on the device appears to be corrupt. Perform an external calibration on the device."}}, - {-200045, {Category::Hardware, ActionRequired::Warning, "EEPROM of the device appears to be corrupt. Contact National Instruments if the device appears to be functioning improperly."}}, - {-200044, {Category::Other, ActionRequired::ImmediateAction, "Invalid enumeration value was encountered during export. The exported file will require modification in order to successfully import."}}, - {-200043, {Category::Configuration, ActionRequired::Warning, "Date specified by the Channel Calibration Expiration Date property has expired. The channel calibration is applied in spite of this because the Apply Calibration if Expired property was set to true. To eliminate this warning, update the channel calibration, including the Expiration Date."}}, - {-200042, {Category::Hardware, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for one or more analog output channels. The device will continue to function, but the accuracy of the generated signals may be compromised. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, - {-200041, {Category::Hardware, ActionRequired::ImmediateAction, "Calibration constants stored in EEPROM produced an invalid value for one or more analog input channels. The device will continue to function, but the accuracy of the measurements may be compromised. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, - {-200040, {Category::Other, ActionRequired::Warning, "Sample clock rate specified is so high that it violates the settling time requirements for the generation. Reduce the sample clock rate, or the accuracy of the generated signal might be compromised."}}, - {-200039, {Category::Other, ActionRequired::ImmediateAction, "Data may be invalid because the settling time of the enabled filter exceeds the period between two conversions on the analog-to-digital converter (ADC) for a task with more than one channel. Disable the filter by setting AI Lowpass Enable to false, acquire data from only one channel in the task, or increase the time between two ADC conversions by reducing the Sample Clock Rate, the Sample Clock Delay, and/or the number of channels in the task."}}, - {-200038, {Category::Other, ActionRequired::ImmediateAction, "Data may be invalid because the settling time of the enabled filter exceeds the period between two conversions on the analog-to-digital converter (ADC) for a task with more than one channel. Disable the filter by setting AI Lowpass Enable to false, increase the time between two ADC conversions by reducing the AI Convert Rate, or acquire data from only one channel in the task."}}, - {-200037, {Category::Other, ActionRequired::Warning, "Settings requested through a previous DAQmx Write were overwritten before they could be applied. This occurred either because DAQmx Write was invoked more than once between two consecutive sample clocks or because the frequency of the generated pulse train is lower than the sample clock rate (it takes more than one sample clock period to generate one period of the pulse train). The settings requested by the most recent DAQmx Write will be applied on the next sample clock. To avoid this warning, make sure that DAQmx Write is invoked exactly once between two consecutive sample clocks and that the frequency of the generated pulse train is higher than the sample clock rate."}}, - {-200036, {Category::Hardware, ActionRequired::Warning, "Requested Sample Clock Rate is higher than the maximum supported per device specifications. Reduce the Sample Clock Rate or use a device which supports the requested Sample Clock Rate."}}, - {-200035, {Category::Other, ActionRequired::ImmediateAction, "Clock rate specified is less than the minimum conversion rate of the ADC. Your data may be invalid."}}, - {-200034, {Category::Hardware, ActionRequired::Warning, "A sensor on the device detected a temperature approaching the device's maximum recommended operating temperature. The device will shut down if its temperature exceeds the maximum recommended operating temperature. To avoid the shutdown, ensure the device temperature does not get above the maximum recommended operating temperature. You can often prevent the shutdown by periodically cleaning fan filters. Refer to user documentation for more information."}}, - {-200033, {Category::Other, ActionRequired::Warning, "DAQmx Write was invoked more than once between two consecutive sample clocks. Only the last DAQmx Write took effect. To eliminate this warning, invoke DAQmx Write only once between two consecutive sample clocks."}}, - {-200032, {Category::Other, ActionRequired::Warning, "Output gain was coerced to the nearest acceptable value, because the original value was too high given the RF Frequency."}}, - {-200031, {Category::Other, ActionRequired::Warning, "Output gain was coerced to the nearest acceptable value, because the original value was too low given the RF Frequency."}}, - {-200030, {Category::Hardware, ActionRequired::Warning, "A sensor on the device detected a temperature approaching the device's maximum recommended operating temperature. The device will shut down if its temperature exceeds the maximum recommended operating temperature. To avoid the shutdown, ensure the device temperature does not get above the maximum recommended operating temperature. You can often prevent the shutdown by periodically cleaning fan filters. Refer to user documentation for more information."}}, - {-200029, {Category::Other, ActionRequired::Warning, "RIS acquisition was completed, but some of the bins were not filled with a sufficient number of samples to perform the requested RIS averaging. Data for those bins was computed from the available samples. Consider increasing the timeout for the operation. Refer to documentation for details about RIS acquisitions."}}, - {-200028, {Category::Configuration, ActionRequired::ImmediateAction, "Some of the last samples acquired during the finite DMA acquisition are possibly invalid due to counter limitations. Get the Number of Possibly Invalid Samples property to see how many samples might be invalid. Use continuous sample mode for DMA acquisitions with this type of counter."}}, - {-200027, {Category::Other, ActionRequired::Warning, "Sample clock rate has been coerced to the minimum supported value because the specified value was too low. For lower sample clock rates, use an external sample clock or an external sample clock timebase."}}, - {-200026, {Category::Other, ActionRequired::Warning, "Requested string could not fit into the given buffer. Only the first part of the string was copied into the buffer. To allow for the terminating NULL character, the number of characters copied into the buffer is equal to the size of the buffer minus one. Call the function twice. Call the function initially to determine the string size. Use the second function call to get the full string value. In the first function call, pass NULL for the buffer and zero for the buffer size. The positive return value of the function is the string size (which includes the terminating NULL). Use this value to allocate a buffer of sufficient size, then use this buffer in the second function call."}}, - {-200025, {Category::Other, ActionRequired::Warning, "User-defined information to be stored in the EEPROM is too long. Only the leading portion was saved. Refer to documentation for information about the maximum length allowed for user-defined information."}}, - {-200024, {Category::Other, ActionRequired::ImmediateAction, "One of more of the properties saved with a later version of NI-DAQ are not supported by the installed version of NI-DAQ and are ignored. Upgrade the installed version of NI-DAQ to a version compatible with the version used when saving the properties to take advantage of all the saved properties."}}, - {-200022, {Category::Software, ActionRequired::Warning, "Attempted writing a sample value that was too small. The driver automatically coerced it to the minimum supported value."}}, - {-200021, {Category::Software, ActionRequired::Warning, "Attempted writing a sample value that was too large. The driver automatically coerced it to the maximum supported value."}}, - {-200020, {Category::Other, ActionRequired::Warning, "Requested number of pretrigger samples per channel could not be configured, so it was coerced to the minimum supported value."}}, - {-200019, {Category::Other, ActionRequired::Warning, "Requested read offset could not be configured, so the offset was coerced to the minimum supported value."}}, - {-200018, {Category::Other, ActionRequired::Warning, "Specified convert rate is too low to be generated using the onboard AI convert clock with the given timebase. The rate was coerced to the slowest possible convert rate. For slower rates, you must use an external convert clock or an external convert clock timebase."}}, - {-200017, {Category::Other, ActionRequired::Warning, "Specified sample rate is lower than the lowest rate that can be generated using the onboard clock. The rate was coerced to the slowest possible sample rate. For slower rates, use an external sample clock or an external sample clock timebase."}}, - {-200016, {Category::Hardware, ActionRequired::ImmediateAction, "An attempt has been made to query the date/time of the last self calibration of a device that has never been self-calibrated using the NI-DAQmx API, so the date/time is invalid. Self-calibrate the board using the NI-DAQmx API."}}, - {-200015, {Category::Hardware, ActionRequired::Warning, "While writing to the buffer during a regeneration, the actual data generated might have alternated between old data and new data. That is, while the driver was replacing the old pattern in the buffer with the new pattern, the device might have generated a portion of new data, then a portion of old data, and then a portion of new data again. Reduce the sample rate, use a larger buffer, or refer to documentation about DAQmx Write for information about other ways to avoid this warning."}}, - {-200014, {Category::Other, ActionRequired::Warning, "The combination of sample rate and buffer size settings could result in a large number of interrupts, causing the system to hang. Decrease your sample rate, or increase your buffer size. For acquisitions without a reference trigger, you can disallow buffer overwrites. For generations, you can disable the regeneration of old samples."}}, - {-200013, {Category::Other, ActionRequired::Warning, "User-defined information string entered exceeds the maximum allowable string length. The string will be truncated to its maximum allowable length."}}, - {-200012, {Category::Other, ActionRequired::ImmediateAction, "Clock rate specified exceeds the maximum conversion rate of the ADC. ADC overrun errors are likely."}}, - {-200011, {Category::Other, ActionRequired::Warning, "Clock rate specified is so high that it violates the settling time requirements for the acquisition. Reduce the clock rate, or the accuracy of the measurement might be compromised."}}, - {-200010, {Category::Other, ActionRequired::Warning, "Finite acquisition or generation has been stopped before the requested number of samples were acquired or generated."}}, - {-200009, {Category::Other, ActionRequired::Warning, "Counter 1 DMA acquisition started while starting, committing, stopping, or uncommitting an analog output (AO) task. This could cause the counter acquisition to stop. If possible, use counter 0 instead of counter 1. Otherwise, start/commit the AO task before starting the counter 1 DMA acquisition, and stop/uncommit the AO task after stopping the counter 1 DMA acquisition."}}, - {-200008, {Category::Other, ActionRequired::Warning, "Counter 0 DMA acquisition started while starting, committing, stopping, or uncommitting an analog input (AI) task. This could cause the counter acquisition to stop. If possible, use counter 1 instead of counter 0. Otherwise, start/commit the AI task before starting the counter 0 DMA acquisition, and stop/uncommit the AI task after stopping the counter 0 DMA acquisition."}}, - {-200007, {Category::Other, ActionRequired::ImmediateAction, "PLL was unlocked. Your data might be invalid."}}, - {-200005, {Category::Other, ActionRequired::ImmediateAction, "ADC for one or more channels was overloaded. Your data might be invalid."}}, - {-200004, {Category::Other, ActionRequired::ImmediateAction, "Input termination resistor for one or more channels was overloaded. Your data might be invalid."}}, - {-200003, {Category::Other, ActionRequired::Warning, "Absolute timestamp counter has rolled over."}}, - {-200003, {Category::Other, ActionRequired::Warning, "Channel cannot be used more than once inside a list of channels. If you need to use the same physical channel more than once inside your list of channels, refer to that physical channel under different names."}}, - {-200004, {Category::Hardware, ActionRequired::Warning, "Data requested has been overwritten in the device memory."}}, - {-200005, {Category::Other, ActionRequired::Warning, "Data requested has not been acquired yet."}}, - {-200006, {Category::Hardware, ActionRequired::Warning, "Record requested has been overwritten in the device memory."}}, - {-200007, {Category::Other, ActionRequired::Warning, "Record requested has not been acquired yet ."}}, - {-200008, {Category::Other, ActionRequired::Warning, "Stop trigger has not occurred yet."}}, - {-200009, {Category::Other, ActionRequired::Warning, "Timestamps have been overwritten. You can no longer read any data."}}, - {-200010, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, - {-200011, {Category::Other, ActionRequired::Warning, "Task cannot contain both input and output channels. Either use channels of one direction in a task or make two separate tasks."}}, - {-200012, {Category::Hardware, ActionRequired::Warning, "Specified physical channel does not support digital output. Change the direction of the task, use another terminal, or use another device."}}, - {-200014, {Category::Other, ActionRequired::Warning, "Terminal cannot appear multiple times within a single digital input or output task."}}, - {-200015, {Category::Communication, ActionRequired::Warning, "Communication with SCXI failed. The communication cable to the SCXI hardware might have been disconnected or exposed to excessive noise."}}, - {-200016, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, - {-200017, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Not enough new data has been sampled since the last read or the start of the measurement. Increase the sample rate, increase the timeout value, or decrease the number of samples to read."}}, - {-200018, {Category::Other, ActionRequired::Warning, "DAC conversion attempted before data to be converted was available. Decrease the output frequency to increase the period between DAC conversions, or reduce the size of your output buffer in order to write data more often. If you are using an external clock, check your signal for the presence of noise or glitches."}}, - {-200019, {Category::Other, ActionRequired::Warning, "ADC conversion attempted before the prior conversion was complete. Increase the period between ADC conversions. If you are using an external clock, check your signal for the presence of noise or glitches."}}, - {-200020, {Category::Hardware, ActionRequired::Warning, "Self-test of the device has failed."}}, - {-200022, {Category::Other, ActionRequired::Warning, "Resource requested by this task has already been reserved by a different task."}}, - {-200023, {Category::Other, ActionRequired::ImmediateAction, "Script contains an invalid character or symbol. Replace the invalid character with a valid symbol or alphanumeric character."}}, - {-200024, {Category::Other, ActionRequired::Warning, "Valid identifier expected but not found in script. The identifier should specify a valid waveform or script name. Identifiers cannot start with a number."}}, - {-200025, {Category::Other, ActionRequired::Warning, "Script name was expected, but not found in the script."}}, - {-200026, {Category::Other, ActionRequired::Warning, "Waveform name was expected, but not found in the script."}}, - {-200027, {Category::Other, ActionRequired::Warning, "Keyword was expected, but not found in the script."}}, - {-200028, {Category::Hardware, ActionRequired::Warning, "Waveform referenced in the script was not found in onboard memory. Write the waveform to the device before writing the script."}}, - {-200029, {Category::Other, ActionRequired::Warning, "Marker specified in a generate instruction exceeds the waveform boundaries. Change the marker position or positions to fit within the waveform, or increase the size of the waveform."}}, - {-200030, {Category::Other, ActionRequired::Warning, "Subset specified in a generate instruction exceeds the waveform boundaries. Change the subset start offset and/or subset length so the subset fits within the waveform, or increase the size of the waveform."}}, - {-200031, {Category::Other, ActionRequired::Warning, "Marker position specified is not a multiple of alignment quantum."}}, - {-200032, {Category::Other, ActionRequired::Warning, "Subset length specified is not valid. Change the subset length to be longer than zero samples and a multiple of the alignment quantum."}}, - {-200033, {Category::Other, ActionRequired::Warning, "Start offset of the subset is not a multiple of the alignment quantum."}}, - {-200034, {Category::Other, ActionRequired::Warning, "Marker position exceeds the length of the subset."}}, - {-200035, {Category::Other, ActionRequired::Warning, "Repeat loop is contained within too many levels of nested repeat loops. Unroll one of the \"repeat\" loops if possible, or change the script and run it several times. To unroll a loop, remove the \"repeat\" and \"end repeat\" instructions and explicitly replicate the instructions of the removed loop the desired number of times."}}, - {-200036, {Category::Other, ActionRequired::ImmediateAction, "Number of iterations specified for a finite \"repeat\" loop is invalid."}}, - {-200037, {Category::Other, ActionRequired::Warning, "Clear trigger instruction cannot be the last instruction of a \"repeat\" loop."}}, - {-200038, {Category::Other, ActionRequired::Warning, "Wait instruction cannot be the last instruction of a \"repeat until\" loop."}}, - {-200039, {Category::Hardware, ActionRequired::Warning, "Routing information associated with your device cannot be found."}}, - {-200040, {Category::Hardware, ActionRequired::Warning, "Source terminal to be routed could not be found on the device. Make sure the terminal name is valid for the specified device. Refer to Measurement & Automation Explorer for valid terminal names."}}, - {-200041, {Category::Hardware, ActionRequired::Warning, "Destination terminal to be routed could not be found on the device. Make sure the terminal name is valid for the specified device. Refer to Measurement & Automation Explorer or your hardware documentation for valid terminal names."}}, - {-200042, {Category::Hardware, ActionRequired::Warning, "Inversion requested is not possible. Either the hardware between the source and destination terminals does not support the inversion, or other routes in the task might be interfering with this route."}}, - {-200043, {Category::Hardware, ActionRequired::Warning, "Hardware necessary for this route is in use by another task or tasks."}}, - {-200044, {Category::Hardware, ActionRequired::Warning, "Route cannot be made between the source and destination terminals. Either the hardware does not support this route or other routes might be interfering with this route."}}, - {-200045, {Category::Hardware, ActionRequired::Warning, "Device was removed or powered down between task verification and reservation. Ensure that the device is not being reset."}}, - {-200046, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier at the end of the switch action. A connection separator, sequence separator, or valid switch action terminator must follow a switch action."}}, - {-200047, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid identifier after the device identifier in the list entry."}}, - {-200048, {Category::Other, ActionRequired::ImmediateAction, "Invalid trigger line in the \"\" or \"\" statement in the list entry. Refer to the documentation for valid trigger lines."}}, - {-200049, {Category::Other, ActionRequired::ImmediateAction, "Invalid value in the \"\" statement in the list entry. The syntax for a repeat statement is \"\". Refer to the documentation for valid integer values."}}, - {-200050, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid channel name in the list entry. Refer to the documentation for valid channel names for the device in use."}}, - {-200051, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier after a separator in the list entry."}}, - {-200052, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected connection operator, \"->\", in the list entry. Refer to the documentation for proper syntax for connections involving channel ranges."}}, - {-200053, {Category::Hardware, ActionRequired::Warning, "Channels in switch actions cannot span different devices."}}, - {-200054, {Category::Communication, ActionRequired::Warning, "Semicolon or a semicolon modifier must follow a connection range statement. Refer to the documentation for information on connection ranges and semicolon modifiers."}}, - {-200055, {Category::Hardware, ActionRequired::Warning, "Device identifier not specified in the list entry."}}, - {-200056, {Category::Other, ActionRequired::Warning, "Channel name not specified in the list entry."}}, - {-200057, {Category::Hardware, ActionRequired::Warning, "Duplicate device identifier in the device list. This is not allowed when waiting for devices to settle."}}, - {-200058, {Category::Other, ActionRequired::Warning, "Identifier in the list entry is too long."}}, - {-200059, {Category::Communication, ActionRequired::Warning, "List cannot end with the connection separator \"&\"."}}, - {-200060, {Category::Communication, ActionRequired::Warning, "Fully specified path cannot contain a connection range."}}, - {-200061, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier in the list entry. The connection separator \"&\" or sequence separator \"&&\" was expected."}}, - {-200062, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected connection operator \"->\" in the list entry."}}, - {-200063, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected terminator in the list entry."}}, - {-200064, {Category::Communication, ActionRequired::Warning, "Unexpected connection separator \"&\" or sequence separator \"&&\" in the list entry."}}, - {-200065, {Category::Hardware, ActionRequired::Warning, "Action at the designated position in the scanlist is not valid for the device."}}, - {-200066, {Category::Communication, ActionRequired::ImmediateAction, "Connection operator is invalid at the designated point in the list entry."}}, - {-200067, {Category::Hardware, ActionRequired::Warning, "Settling time constraints for the device could not be satisfied. Refer to the documentation for details about settling time constraints."}}, - {-200068, {Category::Hardware, ActionRequired::ImmediateAction, "Scanning is not supported by the specified device."}}, - {-200069, {Category::Hardware, ActionRequired::Warning, "Device specified is not a valid switch device."}}, - {-200070, {Category::Hardware, ActionRequired::ImmediateAction, "Advance trigger type specified is not supported by the device."}}, - {-200071, {Category::Other, ActionRequired::Warning, "Number of physical channels is too large."}}, - {-200072, {Category::Hardware, ActionRequired::ImmediateAction, "Duplicate channels in the list of physical channels are not supported by this device."}}, - {-200073, {Category::Hardware, ActionRequired::Warning, "SCXI module specified in the hardware configuration was not found. Make sure that the SCXI chassis is powered on, the SCXI cable is properly connected between the chassis communicator and the SCXI module, and that the cabled module specified in the hardware configuration is present in the specified slot."}}, - {-200074, {Category::Hardware, ActionRequired::Warning, "Device unable to store calibration constants. Make sure that your hardware is properly installed, and test the regular operation of the device."}}, - {-200075, {Category::Other, ActionRequired::Warning, "Voltage data supplied is outside of the specified range. Change the range or the data. Refer to the documentation for more information about possible ranges."}}, - {-200076, {Category::Other, ActionRequired::Warning, "Current data supplied is outside of the specified range."}}, - {-200077, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property."}}, - {-200078, {Category::Other, ActionRequired::Warning, "Analog input (AI) task started or committed during a counter 0 DMA acquisition. If possible, use counter 1 instead of counter 0. Otherwise, start/commit the AI task before starting the counter 0 DMA acquisition."}}, - {-200079, {Category::Other, ActionRequired::Warning, "Analog output (AO) task started or committed during a counter 1 DMA acquisition. If possible, use counter 0 instead of counter 1. Otherwise, commit the AO task before starting the counter 1 DMA acquisition."}}, - {-200081, {Category::Other, ActionRequired::Warning, "Sample rate exceeds the maximum sample rate for the number of channels specified. Reduce the sample rate or the number of channels. Increasing the convert rate or reducing the sample delay might also alleviate the problem, if you set either of them."}}, - {-200082, {Category::Other, ActionRequired::Warning, "Minimum is greater than or equal to the maximum. Ensure the maximum value is greater than the minimum value. If using a custom scale, ensure that the scaled maximum is greater than the scaled minimum."}}, - {-200086, {Category::Hardware, ActionRequired::ImmediateAction, "Physical channel range syntax in the input string is invalid because multiple devices were listed in the string."}}, - {-200087, {Category::Other, ActionRequired::ImmediateAction, "Channel is not in the task, and the channel is not a valid global channel. Make sure that the channel is in the task or that the channel is a valid global channel. If you explicitly named the virtual channel in DAQmx Create Channel, you must use the name assigned to that channel. Also, check for typing errors."}}, - {-200088, {Category::Other, ActionRequired::ImmediateAction, "Task specified is invalid or does not exist."}}, - {-200089, {Category::Other, ActionRequired::Warning, "Task name specified conflicts with an existing task name."}}, - {-200090, {Category::Software, ActionRequired::ImmediateAction, "Shared library was not found. This error might be the result of an inadvertent deletion of an NI-DAQmx component. Reinstall NI-DAQmx, or download the latest version of the driver from the National Instruments website at ni.com. If the error is still returned, contact NI Technical Support."}}, - {-200091, {Category::Software, ActionRequired::ImmediateAction, "Shared library version installed is incorrect. This error might be the result of an incorrect installation of NI-DAQmx or a related software package. Reinstall NI-DAQmx, or download the latest version of the driver from the National Instruments website at ni.com. If the error is still returned, contact NI Technical Support."}}, - {-200092, {Category::Other, ActionRequired::Warning, "Function supported for channel-based tasks only."}}, - {-200093, {Category::Configuration, ActionRequired::Warning, "Attempted to retrieve channel properties from a multichannel task without selecting a specific channel. Use the Active Channel property to select a specific channel from which to retrieve properties."}}, - {-200094, {Category::Other, ActionRequired::Warning, "Digital waveform expected as input."}}, - {-200095, {Category::Other, ActionRequired::Warning, "Analog waveform expected as input."}}, - {-200096, {Category::Other, ActionRequired::Warning, "Number of samples to read must be -1 or greater."}}, - {-200097, {Category::Configuration, ActionRequired::Warning, "Attempted to retrieve channel properties from a multichannel task with more than one channel selected. You must select an individual channel to retrieve channel properties. If you are programming with LabVIEW, use the Active Channel property to specify the individual channel."}}, - {-200098, {Category::Other, ActionRequired::Warning, "Number of terminals requested cannot be greater than 1."}}, - {-200099, {Category::Other, ActionRequired::Warning, "Physical channel not specified."}}, - {-200100, {Category::Other, ActionRequired::Warning, "Specified DAQmx Read only can be used to read from a single channel. Use the multichannel DAQmx Read."}}, - {-200101, {Category::Other, ActionRequired::Warning, "Number of channels in data to write does not match the number of channels in the task."}}, - {-200102, {Category::Other, ActionRequired::Warning, "Pattern width specified does not match the number of lines in the digital channel."}}, - {-200103, {Category::Other, ActionRequired::Warning, "Number of samples to write must be the same for every channel."}}, - {-200104, {Category::Other, ActionRequired::ImmediateAction, "Bracket character (\"[\" or \"]\") at the specified position in the list is invalid. Matching bracket cannot be found. Check for nested fully specified paths or incorrectly paired brackets."}}, - {-200105, {Category::Other, ActionRequired::ImmediateAction, "Channel is invalid for the excitation mode of the SCXI-1122. Disable multiplexed excitation, or use one of the physical channels between ai0 and ai7."}}, - {-200106, {Category::Configuration, ActionRequired::Warning, "Property must have the same value for all channels on this device."}}, - {-200107, {Category::Hardware, ActionRequired::Warning, "Module specified in the hardware configuration is not the module found. Make sure that the module specified in the hardware configuration is present in the specified slot."}}, - {-200108, {Category::Hardware, ActionRequired::Warning, "Calibration session is already open on this device. You can have only one open calibration session for each device. Use the handle obtained when the calibration session for this device was originally opened."}}, - {-200109, {Category::Other, ActionRequired::Warning, "Password is longer than four characters."}}, - {-200110, {Category::Other, ActionRequired::Warning, "Password supplied is incorrect."}}, - {-200111, {Category::Other, ActionRequired::Warning, "Password is required for this operation."}}, - {-200112, {Category::Other, ActionRequired::ImmediateAction, "Calibration handle is invalid. Open a calibration session to get a valid calibration handle. Use the valid calibration handle obtained when the calibration session was opened."}}, - {-200113, {Category::Hardware, ActionRequired::Warning, "Device temperature is outside of the required range for calibration."}}, - {-200116, {Category::Hardware, ActionRequired::Warning, "Lines on the 8255 chip for this device are configured for output. Cannot tristate these lines at this time. Read values using an input task on another port."}}, - {-200117, {Category::Other, ActionRequired::Warning, "Port C cannot be used for data input/output in a handshaking task."}}, - {-200118, {Category::Other, ActionRequired::Warning, "Port reserved for handshaking. Cannot reserve this port or any of its lines for another task at this time."}}, - {-200119, {Category::Other, ActionRequired::Warning, "Port is configured for static digital operations by another task. Cannot configure this port or any of its lines for handshaking at this time."}}, - {-200120, {Category::Other, ActionRequired::Warning, "Port is configured for input. Cannot configure this port or any of its lines for output at this time."}}, - {-200121, {Category::Other, ActionRequired::Warning, "Port is configured for output. Cannot configure this port or any of its lines for input at this time."}}, - {-200122, {Category::Other, ActionRequired::Warning, "Lines 0 through 3 of this port are configured for input. Cannot configure these lines for output at this time."}}, - {-200123, {Category::Other, ActionRequired::Warning, "Lines 0 through 3 of this port are configured for output. Cannot configure these lines for input at this time."}}, - {-200124, {Category::Other, ActionRequired::Warning, "Lines 4 to 7 of this port are configured for input. Cannot configure these lines for output at this time."}}, - {-200125, {Category::Other, ActionRequired::Warning, "Lines 4 through 7 of this port are configured for output. Cannot configure these lines for input at this time."}}, - {-200126, {Category::Hardware, ActionRequired::ImmediateAction, "Lines on port C cannot be used for both handshaking control and static digital operations on an 8255 chip. Handshaking tasks automatically reserve some lines on port C as control lines. These lines cannot be reserved for static digital operations when the device is configured for handshaking. There are two likely causes for this error: 1. An attempt was made to reserve the lines for static digital operations when a handshaking task was previously configured. 2. An attempt was made to create a handshaking task when the lines were previously reserved for static digital operations. Refer to the documentation for information about which lines on port C are not available when the 8255 chip is in handshaking mode."}}, - {-200127, {Category::Hardware, ActionRequired::Warning, "Port 0 or any of its lines cannot be used to create a handshaking task. Use port 1 or port 2 of the 8255 chip on this device for handshaking."}}, - {-200128, {Category::Configuration, ActionRequired::Warning, "Property must have the same value for all repeated physical channels. Set the same property value for all of the channels."}}, - {-200130, {Category::Other, ActionRequired::Warning, "Timebase divisor cannot be set for an external clock. You cannot divide down an externally supplied clock. If you want to divide down an external clock, specifiy an external timebase source instead and set the clock source to be internal."}}, - {-200131, {Category::Other, ActionRequired::Warning, "Analog trigger source must be the first channel in the acquisition or a valid analog trigger terminal. If you explicitly named the virtual channel in DAQmx Create Channel, you must use the name assigned to that channel."}}, - {-200132, {Category::Other, ActionRequired::Warning, "External timebase rate must be specified to translate the derived clock or timebase rate into ticks. Set the external timebase rate, or set the divisor instead of the clock or timebase rate."}}, - {-200133, {Category::Other, ActionRequired::Warning, "Counter timebase source, counter timebase rate, master timebase divisor, and master timebase rate settings are inconsistent with one another. The conflicting properties must satisfy the following constraint: Master Timebase Rate / Master Timebase Divisor = Counter Timebase Rate"}}, - {-200134, {Category::Other, ActionRequired::Warning, "Counter timebase source and counter timebase rate settings are inconsistent with one another. For internal counter timebase source selections, if the counter timebase rate is set, its value must match the rate corresponding to the counter timebase source. For example, 20 MHz corresponds to a rate of 20,000,000 Hz."}}, - {-200135, {Category::Other, ActionRequired::Warning, "Counter timebase source and counter timebase master timebase divisor settings are inconsistent with one another. If the divisor is specified, the following must apply: Master Timebase Rate / Counter Timebase Master Timebase Divisor = Rate corresponding to Counter Timebase Source."}}, - {-200136, {Category::Configuration, ActionRequired::Warning, "Frequency and Initial Delay property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraint: Counter Timebase Rate / Counter Maximum Count <= X <= Counter Timebase Rate / 2 where X = Frequency and 1 / Initial Delay, and where Counter Timebase Rate = Master Timebase Rate / Counter Timebase Master Timebase Divisor or is inferred from the Counter Timebase Source selection."}}, - {-200137, {Category::Configuration, ActionRequired::Warning, "Initial Delay, High Time, and Low Time property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following restraint: 2 / Counter Timebase Rate <= X <= Counter Maximum Count/ Counter Timebase Rate where X = Initial Delay, High Time, and Low Time, and where Counter Timebase Rate = Master Timebase Rate / Counter Timebase Master Timebase Divisor or is inferred from the Counter Timebase Source selection."}}, - {-200138, {Category::Other, ActionRequired::Warning, "A timebase could not be selected that covers the entire range specified in the Maximum and Minimum properties. The conflicting properties must satisfy the following constraints: Maximum <= Counter Maximum Count / Counter Timebase Rate Minimum >= 2 / Counter Timebase Rate."}}, - {-200139, {Category::Other, ActionRequired::Warning, "A timebase could not be selected that covers the entire range specified in the Maximum and Minimum properties. The conflicting properties must satisfy the following constraints: Maximum <= Counter Timebase Rate / 2 Minimum >= Counter Timebase Rate / Counter Maximum Count."}}, - {-200140, {Category::Other, ActionRequired::Warning, "Two consecutive active edges of the input signal occurred without a counter timebase edge. Use a faster counter timebase."}}, - {-200141, {Category::Other, ActionRequired::Warning, "Data was overwritten before it could be read by the system. If Data Transfer Mechanism is Interrupts, try using DMA or USB Bulk. Otherwise, divide the input signal before taking the measurement."}}, - {-200142, {Category::Configuration, ActionRequired::Warning, "Internal timebase could not be found that matches the rate specified in the Counter Timebase Rate property."}}, - {-200143, {Category::Configuration, ActionRequired::Warning, "Counter timebase rate must be specified for external counter timebase sources in order for frequency and/or time calculations to be made correctly. Set the Counter Timebase Rate property to the appropriate value for your external source."}}, - {-200144, {Category::Other, ActionRequired::Warning, "Pause trigger is only valid for continuous pulse generations. Change the sample mode to continuous, or do not use the pause trigger."}}, - {-200145, {Category::Other, ActionRequired::Warning, "Pause trigger is only valid for event counting if sample clock is not used."}}, - {-200146, {Category::Other, ActionRequired::Warning, "Pause and start triggers cannot both be active in this task."}}, - {-200147, {Category::Other, ActionRequired::Warning, "There cannot be multiple counters in the same task for input operations. Use a separate task for each counter."}}, - {-200148, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The FREQOUT counter is a 4-bit counter that can divide either the master timebase rate / 2 or the master timebase rate / 200 by a number between one and 16. Choose a frequency within this range."}}, - {-200149, {Category::Other, ActionRequired::Warning, "External timebase rate must be specified to translate the delay into ticks. Set the external timebase rate, or set the delay in units of ticks."}}, - {-200150, {Category::Other, ActionRequired::Warning, "Channel is not available when the module is in parallel mode."}}, - {-200151, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up for performing analog input operations on given channels. The SCXI module cabled to your digitizer cannot route analog signals from other modules to the digitizer, or is not configured to route them. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the analog input modules. The module your channels are on is one such module. Then, update the chassis configuration in MAX to reflect cabling change, and ensure that the cabled module is in multiplexed mode. Alternatively, you can use multiple digitizers and SCXI modules in parallel mode. For detailed information about cabling, refer to documentation."}}, - {-200152, {Category::Hardware, ActionRequired::ImmediateAction, "Data read from the EEPROM on the device is invalid. Verify that any accessories configured with this device are connected. If the problem continues, contact National Instruments Technical Support. The device might need to be recalibrated or repaired by NI."}}, - {-200153, {Category::Hardware, ActionRequired::Warning, "Reference voltage applied for calibration is outside the range defined for calibration of this device. Ensure that the reference voltage falls within the range specified for this device."}}, - {-200154, {Category::Hardware, ActionRequired::Warning, "Reference current applied for calibration is outside the range defined for calibration of this device. Ensure that the reference current falls within the range specified for this device."}}, - {-200155, {Category::Hardware, ActionRequired::Warning, "Reference resistance applied for calibration is outside the range defined for calibration of this device. Ensure that the reference resistance falls within the range specified for this device."}}, - {-200156, {Category::Hardware, ActionRequired::Warning, "Reference frequency applied for calibration is outside the range defined for calibration of this device. Ensure that the reference frequency falls within the range specified for this device."}}, - {-200157, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, - {-200158, {Category::Hardware, ActionRequired::Warning, "Requested operation could not be performed because the necessary digital lines could not be reserved by SCXI. Another task might have reserved these lines previously. For example, E Series devices use lines 0, 1, 2, and 4 on port 0 to communicate with the SCXI module."}}, - {-200159, {Category::Communication, ActionRequired::Warning, "Requested operation could not be performed because the digital lines are being used for communication with SCXI or a TEDS carrier. For example, E Series devices use lines 0, 1, 2, and 4 on port 0 to communicate with a SCXI module. Therefore, you cannot use lines 0, 1, 2, and 4 for regular digital I/O."}}, - {-200160, {Category::Other, ActionRequired::Warning, "Channel could not be created. All channels must be created before the task is verified. Before I/O can be performed or properties can be retrieved, tasks are verified. Channels must be created before these actions can occur."}}, - {-200161, {Category::Hardware, ActionRequired::Warning, "Device to which the sensor is attached does not have an available internal excitation source. Select another device with an available internal excitation source or supply external excitation."}}, - {-200162, {Category::Other, ActionRequired::Warning, "2-wire resistance configuration is incompatible with voltage excitation."}}, - {-200163, {Category::Other, ActionRequired::Warning, "Completion resistance value, R1, cannot be zero if the circuit uses voltage excitation."}}, - {-200166, {Category::Hardware, ActionRequired::ImmediateAction, "Output buffer underwrite. Your application was unable to write samples to the background buffer fast enough for the device to get new samples at the specified sample rate. To avoid this error, you can do any the following: 1. Increase the size of the background buffer by configuring the buffer. 2. Increase the number of samples you write each time you invoke a write operation. 3. Write samples more often. 4. Reduce your sample rate. 5. Change the data transfer mechanism from interrupts to DMA. 6. Initially write a sufficient number of samples to satisfy the specified data transfer request condition. 7. Reduce the number of applications that your computer is executing concurrently. In addition, if you do not need to ensure that each sample is generated once and only once, you can set the regeneration mode to allow regeneration."}}, - {-200167, {Category::Hardware, ActionRequired::Warning, "Device cannot acquire from _cjTemp and other channels in the same task. Create one task for reading _cjTemp and another task for the other channels."}}, - {-200168, {Category::Hardware, ActionRequired::Warning, "Number of channels to acquire exceeds the device maximum. Reduce the number of channels. In some cases, you can access a large number of channels if they are identically configured and created consecutively. Refer to the documentation for more information."}}, - {-200169, {Category::Other, ActionRequired::Warning, "Memory mapping can be enabled only if Data Transfer Mechanism is Programmed IO. Enable memory mapping only when Data Transfer Mechanism is Programmed IO."}}, - {-200170, {Category::Hardware, ActionRequired::Warning, "Physical channel specified does not exist on this device. Refer to the documentation for channels available on this device."}}, - {-200171, {Category::Other, ActionRequired::Warning, "Virtual channel cannot be created. Another virtual channel with this name already exists."}}, - {-200172, {Category::Other, ActionRequired::Warning, "Buffer size must be zero when Data Transfer Mechanism is Programmed IO. Set buffer size to zero or Data Transfer Mechanism to something other than Programmed IO."}}, - {-200173, {Category::Hardware, ActionRequired::ImmediateAction, "The combination of Sample Timebase Rate and Master Timebase Rate you specified is invalid. The driver computed the Sample Timebase Source Divisor by dividing the Master Timebase Rate by the Sample Timebase Rate. The resulting value for the Sample Timebase Source Divisor is not supported by your device. Refer to the documentation for more information about these three properties."}}, - {-200175, {Category::Hardware, ActionRequired::Warning, "Hardware is not responding. Ensure your hardware is powered on and all cables are properly connected."}}, - {-200176, {Category::Hardware, ActionRequired::Warning, "Operation is not permitted while the switch device is scanning."}}, - {-200177, {Category::Hardware, ActionRequired::Warning, "Operation is permitted only while the switch device is scanning."}}, - {-200178, {Category::Other, ActionRequired::Warning, "Task was created with a settling time different from the current settling time. When scanning, you must use the original settling time specified when the task was created."}}, - {-200179, {Category::Communication, ActionRequired::Warning, "Explicit connection between the channels already exists. You can make only one connection between these channels."}}, - {-200180, {Category::Other, ActionRequired::Warning, "Path between two switch channels is not available."}}, - {-200181, {Category::Hardware, ActionRequired::Warning, "Channel name specified is not valid for the switch device."}}, - {-200182, {Category::Other, ActionRequired::Warning, "Switch channels cannot be disconnected because there is no explicit path between them."}}, - {-200183, {Category::Other, ActionRequired::Warning, "Switch channel names cannot be duplicated in the path string."}}, - {-200184, {Category::Other, ActionRequired::Warning, "Leg in path cannot contain two channels that are already directly connected."}}, - {-200185, {Category::Other, ActionRequired::Warning, "Path contains a leg with two channels that cannot be directly connected."}}, - {-200186, {Category::Communication, ActionRequired::Warning, "Channels used to make the connection between two endpoints must be reserved for routing."}}, - {-200187, {Category::Other, ActionRequired::Warning, "Channel cannot be connected to itself."}}, - {-200188, {Category::Communication, ActionRequired::Warning, "Connection cannot be made between the specified channels because they are connected to different source channels."}}, - {-200189, {Category::Communication, ActionRequired::Warning, "Explicit connection cannot be made to a switch channel that is reserved for routing."}}, - {-200190, {Category::Communication, ActionRequired::Warning, "Disconnection path is not the same as the existing path. You can programmatically find out the existing path. Refer to your documentation for details."}}, - {-200191, {Category::Other, ActionRequired::Warning, "Task was created with a topology different from the current topology. When scanning, you must use the original topology specified when the task was created."}}, - {-200192, {Category::Hardware, ActionRequired::Warning, "Switch device supports continuous scanning only."}}, - {-200193, {Category::Hardware, ActionRequired::Warning, "Switch device does not support this operation."}}, - {-200194, {Category::Hardware, ActionRequired::Warning, "Hardware was unexpectedly powered off and back on. To recover, reset the device (either programmatically or by using Measurement & Automation Explorer)."}}, - {-200195, {Category::Hardware, ActionRequired::Warning, "Switch configuration has caused the switch device to exceed its power limit because there were too many closed relays. The switch was disabled. Reset it by doing one of the following: 1. Call DAQmx Switch Set Topology And Reset. 2. Call DAQmx Device Reset. 3. Use Measurement & Automation Explorer."}}, - {-200196, {Category::Hardware, ActionRequired::Warning, "Action at the end of the scan list is not valid for this device."}}, - {-200197, {Category::Configuration, ActionRequired::Warning, "Device does not support this property."}}, - {-200198, {Category::Other, ActionRequired::ImmediateAction, "Topology specified is invalid. Make sure the spelling of the topology is correct and that the switch supports that topology."}}, - {-200199, {Category::Hardware, ActionRequired::Warning, "Switch device must be reset before scanning. Reset the device by doing one of the following: 1. Call DAQmx Switch Set Topology And Reset. 2. Call DAQmx Device Reset. 3. Use Measurement & Automation Explorer."}}, - {-200200, {Category::Communication, ActionRequired::Warning, "Switch channel is already in exclusive use within another connection."}}, - {-200201, {Category::Hardware, ActionRequired::Warning, "Switch scan list is too large to fit in the onboard memory of the device."}}, - {-200202, {Category::Other, ActionRequired::ImmediateAction, "Relay name is invalid."}}, - {-200203, {Category::Hardware, ActionRequired::Warning, "Switch hardware is incapable of driving multiple trigger lines simultaneously."}}, - {-200204, {Category::Other, ActionRequired::Warning, "Unexpected identifier within the fully-specified path in the list."}}, - {-200205, {Category::Other, ActionRequired::Warning, "Topology does not support scanning."}}, - {-200206, {Category::Hardware, ActionRequired::Warning, "Advance trigger and Advance Complete event must use the same polarity in this particular switch device."}}, - {-200207, {Category::Hardware, ActionRequired::ImmediateAction, "Device identifier in the list entry is invalid."}}, - {-200208, {Category::Other, ActionRequired::ImmediateAction, "Range statement in the list entry contains an invalid character sequence."}}, - {-200209, {Category::Configuration, ActionRequired::Warning, "Duplicate device identifier found in the terminal list when trying to set the property. Only one instance of the device identifier is permitted."}}, - {-200210, {Category::Hardware, ActionRequired::Warning, "Multiple device identifiers from one chassis are not allowed in the terminal list."}}, - {-200211, {Category::Other, ActionRequired::Warning, "Multiple relay names were specified for a single relay operation."}}, - {-200212, {Category::Other, ActionRequired::Warning, "Measurement units specified for the channel are not valid for the Measurement Type of the channel."}}, - {-200213, {Category::Other, ActionRequired::Warning, "Pretrigger Samples per Channel requested plus minimum number of posttrigger samples exceed the requested Number of Samples per Channel. Decrease the number of Pretrigger Samples per Channel, or increase Number of Samples per Channel."}}, - {-200214, {Category::Hardware, ActionRequired::Warning, "Analog trigger circuitry unavailable on the device. Select a non-analog trigger type, or use a device with analog triggering hardware."}}, - {-200215, {Category::Other, ActionRequired::ImmediateAction, "Memory Mapping is not supported for buffered operations. Turn Memory Mapping off, set Buffer Size to 0, or do not configure the buffer for the operation."}}, - {-200216, {Category::Hardware, ActionRequired::Warning, "Buffered operations cannot use a Data Transfer Mechanism of Programmed I/O for this device and Channel Type. Non-buffered operations cannot use a Data Transfer Mechanism of Interrupts or DMA for this device and Channel Type."}}, - {-200217, {Category::Other, ActionRequired::Warning, "Buffered operations cannot use On Demand for Sample Timing Type. Set your buffer size to 0 for On Demand sample timing. Otherwise, configure your sample clock, or change your sample timing type for buffered operations."}}, - {-200218, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism must be Programmed I/O when not using hardware timing. Set Data Transfer Mechanism to Programmed I/O, configure your sample clock timing, or set Sample Timing Type to Sample Clock."}}, - {-200219, {Category::Hardware, ActionRequired::Warning, "Analog output virtual channels cannot be created out of order with respect to their physical channel numbers for the type of device you are using. For example, a virtual channel using physical channel ao0 must be created before a virtual channel with physical channel ao1."}}, - {-200220, {Category::Hardware, ActionRequired::ImmediateAction, "Device identifier is invalid."}}, - {-200221, {Category::Other, ActionRequired::Warning, "Amount of time allocated to perform this operation was exceeded."}}, - {-200222, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has been stopped to prevent an input buffer overwrite. Your application was unable to read samples from the buffer fast enough to prevent new samples from overwriting unread data. To avoid this error, you can do any of the following: 1. Increase the size of the buffer. 2. Increase the number of samples you read each time you invoke a read operation. 3. Read samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is running concurrently. In addition, if you do not need to read every sample that is acquired, you can configure the overwrite mode to overwrite unread data, and then use the Relative To and Offset properties to read the desired samples."}}, - {-200223, {Category::Hardware, ActionRequired::ImmediateAction, "Specified threshold and hysteresis values for this channel create a triggering range that is not supported by your device. On the SCXI-1126, threshold minus hysteresis must be between -0.5 and 4.48."}}, - {-200224, {Category::Hardware, ActionRequired::Warning, "No registered trigger lines could be found between the devices in the route. If you have a PXI chassis, identify the chassis correctly in MAX, and make sure it has been configured properly. If you are using PCI devices, make sure they are connected with a RTSI cable and that the RTSI cable is registered in MAX. Otherwise, make sure there is an available trigger line on the trigger bus shared between the devices."}}, - {-200225, {Category::Other, ActionRequired::Warning, "Trigger line requested could not be reserved because it is already in use."}}, - {-200226, {Category::Hardware, ActionRequired::Warning, "Trigger bus to which the device is connected does not have any free trigger lines for the driver to choose. To free up trigger lines, you can do any of the following: 1. Stop other tasks that are connected to the same trigger bus as this device. 2. Use DAQmx Disconnect Route to stop any immediate routes that span this trigger bus. 3. Make more trigger lines on this trigger bus available to the driver."}}, - {-200227, {Category::Hardware, ActionRequired::Warning, "Device does not have any free trigger lines for the device driver to choose. Although there might be trigger lines available on the respective trigger bus, the device cannot use the trigger bus because the device does not have enough free resources to do so. To free up trigger lines, you can do any of the following: 1. Stop other tasks that are connected to this device. 2. Use DAQmx Disconnect Route to stop any immediate routes that span this trigger bus and device."}}, - {-200228, {Category::Other, ActionRequired::Warning, "Buffer is too small to fit the string."}}, - {-200229, {Category::Other, ActionRequired::Warning, "Buffer is too small to fit read data."}}, - {-200230, {Category::Other, ActionRequired::Warning, "NULL pointer was passed for a required parameter."}}, - {-200231, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be set."}}, - {-200232, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be read."}}, - {-200233, {Category::Configuration, ActionRequired::Warning, "Property specified is not valid for this function."}}, - {-200234, {Category::Other, ActionRequired::Warning, "Buffer is too small for requested samples to be written."}}, - {-200235, {Category::Other, ActionRequired::Warning, "Explanation could not be found for the requested status code. Verify that the requested status code is correct."}}, - {-200236, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be reset."}}, - {-200237, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications, and its rate is correctly specified. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200238, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications at all times, and its rate is correctly specified. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200239, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200240, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200241, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200242, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200243, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200244, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200245, {Category::Other, ActionRequired::Warning, "PLL could not phase-lock to the external reference clock. Make sure your reference clock is connected and that it is within the jitter and voltage specifications. Also, make sure the reference clock rate is correctly specified."}}, - {-200246, {Category::Other, ActionRequired::Warning, "PLL has lost phase-lock to the external reference clock. Make sure your reference clock is connected and that it is within the jitter and voltage level specifications at all times. Also, make sure the reference clock rate is correctly specified at all times."}}, - {-200247, {Category::Other, ActionRequired::Warning, "Integer was expected but not found in the script. Insert an appropriate integer at this location in the script."}}, - {-200248, {Category::Other, ActionRequired::Warning, "Specified marker position is too close to the end of the last \"generate\" statement in a \"repeat until\" loop. Move the marker position farther away from the end of the last \"generate\" statement in the \"repeat until\" loop."}}, - {-200249, {Category::Other, ActionRequired::Warning, "Length of waveform subset is too small for the last \"generate\" statement in a \"repeat until\" loop."}}, - {-200250, {Category::Other, ActionRequired::Warning, "Length of waveform is too small for the last \"generate\" statement in a \"repeat until\" loop."}}, - {-200251, {Category::Other, ActionRequired::Warning, "No DMA channels or USB Bulk Endpoints are available. Either shut down other tasks that might be using these resources or consider changing your data transfer mechanism to Interrupts if supported."}}, - {-200252, {Category::Other, ActionRequired::Warning, "Terminal cannot be tristated because it is busy. Disconnect any routes spanning this terminal, or stop any tasks using this terminal."}}, - {-200253, {Category::Hardware, ActionRequired::Warning, "Terminal could not be tristated because the hardware cannot tristate this terminal."}}, - {-200254, {Category::Hardware, ActionRequired::ImmediateAction, "Terminal for the device is invalid."}}, - {-200255, {Category::Hardware, ActionRequired::ImmediateAction, "Built-in temperature sensor is not supported on this channel. This channel is not configured to support a built-in temperature sensor. Make sure the accessory specified in the hardware configuration is correct and that the hardware supports a built-in temperature sensor on this channel."}}, - {-200256, {Category::Other, ActionRequired::ImmediateAction, "Specified topology cannot be used to reset the switch, because that topology is not supported by the connected terminal block. Refer to the documentation for supported topologies for the given terminal block, or disconnect the terminal block from the switch."}}, - {-200257, {Category::Configuration, ActionRequired::Warning, "Excitation property must be the same for related physical channels. Refer to the documentation for information about setting excitation across related physical channels."}}, - {-200258, {Category::Hardware, ActionRequired::Warning, "Gain value conflicts with specified AI Minimum and AI Maximum properties. The specified gain and AI Minimum and/or AI Maximum would cause the device to exceed the hardware limit. Lower the gain, or adjust AI Minimum and/or AI Maximum."}}, - {-200259, {Category::Configuration, ActionRequired::Warning, "Value selected for this jumper-controlled property must match the value specified in Measurement & Automation Explorer. Make sure the value specified in Measurement & Automation Explorer matches the value in your program and that the value corresponds to the selection made using the jumper on the device."}}, - {-200260, {Category::Other, ActionRequired::Warning, "Memory mapping has been enabled, and the sample clock has been configured; but the buffer size has not been set, and the data transfer mechanism has either not been set or was set to something other than Programmed I/O. Set the buffer size to 0, and/or change the data transfer mechanism to Programmed I/O."}}, - {-200261, {Category::Other, ActionRequired::Warning, "An attempt has been made to use an analog trigger in multiple situations with differing properties. Change the analog trigger properties so they are the same, or do not use an analog trigger for all situations."}}, - {-200262, {Category::Other, ActionRequired::Warning, "An attempt has been made to configure a trigger without configuring the appropriate sample clock properties or when Sample Timing Type was set to On Demand. Configure the sample clock type to something other than On Demand to use a trigger."}}, - {-200263, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog pause trigger only when it is the only channel in the task. Remove all of the channels currently in the task except the channel that will be used as the analog trigger source, or change the analog trigger source to a terminal."}}, - {-200264, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog reference trigger only when it is the only channel in the task. Remove all of the channels currently in the task except the channel that will be used as the analog trigger source, or change the analog trigger source to a terminal."}}, - {-200265, {Category::Hardware, ActionRequired::ImmediateAction, "An attempt has been made to use an invalid analog trigger source. Ensure that the trigger source you specify matches the name of the virtual channel in the task or matches the name of a non-scannable terminal that the device can use as an analog trigger source."}}, - {-200266, {Category::Other, ActionRequired::Warning, "Minimum and maximum values for the channel are not symmetric."}}, - {-200267, {Category::Hardware, ActionRequired::Warning, "Product of AO channel properties Maximum Value and Gain exceeds the maximum voltage for the device."}}, - {-200268, {Category::Other, ActionRequired::Warning, "Specified Offset is too small given AO Gain and Minimum Value. The following constraint must hold: Offset > (Gain * Minimum Value / 2)"}}, - {-200269, {Category::Other, ActionRequired::Warning, "Specified Offset is too large for the given AO Gain and Maximum Value. The following constraint must hold: Offset < (Gain * Maximum Value / 2)"}}, - {-200270, {Category::Other, ActionRequired::Warning, "Interpolation rate specified is not possible for the given sample rate."}}, - {-200271, {Category::Hardware, ActionRequired::Warning, "Product of AO Channel properties Minimum Value and Gain exceeds the minimum voltage for the device."}}, - {-200272, {Category::Other, ActionRequired::Warning, "Sample clock rate requested is too low for the selected divide-down clock. Use the high resolution clock, or increase your sample rate."}}, - {-200273, {Category::Configuration, ActionRequired::Warning, "Sample clock rate and the sample clock divisor values are inconsistent with one another. Consider settting either the sample clock rate or the sample clock divisor, but not both. This allows the driver to automatically select an appropriate value for the other property. Alternatively, make sure the sample clock rate and sample clock divisor satisfy the following constraint: rate = timebase / divisor"}}, - {-200274, {Category::Other, ActionRequired::Warning, "Sample clock rate desired is too high for an external clock being brought in through the backplane. Bring in your external sample clock through one of the higher-frequency front panel connectors, or use a lower sample rate."}}, - {-200275, {Category::Other, ActionRequired::Warning, "Sample rate desired is too low for an external clock being brought in through the ClkIn connector. Change the sample rate so it is within limits, or use DDC_ClkIn to bring in your sample clock."}}, - {-200276, {Category::Other, ActionRequired::Warning, "Reference clock source and sample clock source cannot be the same. Use different terminals to bring in your reference clock and sample clock, or use only one of them at a time."}}, - {-200277, {Category::Other, ActionRequired::ImmediateAction, "Invalid combination of position and offset. The position and offset specified a sample prior to the first sample acquired (sample 0). Make sure any negative read offset specified will select a valid sample when combined with the read position."}}, - {-200278, {Category::Other, ActionRequired::Warning, "Attempted to read a sample beyond the final sample acquired. The acquisition has stopped, therefore the sample specified by the combination of position and offset will never be available. Specify a position and offset which selects a sample up to, but not beyond, the final sample acquired. The final sample acquired can be determined by querying the total samples acquired after an acquisition has stopped."}}, - {-200279, {Category::Hardware, ActionRequired::Warning, "The application is not able to keep up with the hardware acquisition. Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem."}}, - {-200281, {Category::Hardware, ActionRequired::Warning, "Reading relative to the reference trigger or relative to the start of pretrigger samples position before the acquisition is complete. Wait for the acquisition to complete before reading, or increase your read timeout. Also, make sure the hardware is set up and wired correctly, the signal for the reference trigger is correct, and that the reference trigger occurs while the device is acquiring data."}}, - {-200282, {Category::Hardware, ActionRequired::ImmediateAction, "Reading relative to the reference trigger or relative to the start of a pretrigger sample is not supported with the current task configuration. If you have not configured a reference trigger or if one of your devices is utilizing an onboard buffer to transfer data after an acquisition has completed, reading relative to reference trigger or relative to the first pretrigger sample is not supported."}}, - {-200283, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has stopped to prevent the intermediate buffer from overflowing. The background was running too fast for the application to keep up, and the application was unable to read samples from the intermediate buffer fast enough to prevent losing samples. To avoid this error, you might reduce the sample rate, reduce the number of applications your computer is executing concurrently, or not read any samples until the acquisition is complete."}}, - {-200284, {Category::Other, ActionRequired::Warning, "Some or all of the samples requested have not yet been acquired. To wait for the samples to become available use a longer read timeout or read later in your program. To make the samples available sooner, increase the sample rate. If your task uses a start trigger, make sure that your start trigger is configured correctly. It is also possible that you configured the task for external timing, and no clock was supplied. If this is the case, supply an external clock."}}, - {-200286, {Category::Other, ActionRequired::Warning, "No data is available to read, because no acquisition has been started. Start the acquisition before attempting to read data, either explicitly or by enabling auto start and stop."}}, - {-200287, {Category::Other, ActionRequired::ImmediateAction, "Attempted to write to an invalid combination of position and offset. The position and offset specified a sample prior to the first sample generated (sample 0). Make sure any negative write offset specified will select a valid sample when combined with the write position."}}, - {-200288, {Category::Other, ActionRequired::Warning, "Attempted to write a sample beyond the final sample generated. The generation has stopped, therefore the sample specified by the combination of position and offset will never be available. Specify a position and offset which selects a sample up to, but not beyond, the final sample generated. The final sample generated can be determined by querying the total samples generated after a generation has stopped."}}, - {-200289, {Category::Hardware, ActionRequired::Warning, "Attempted to write samples that have already been generated or have already been sent to the device for generation. Increasing the buffer size or writing the data more frequently might correct the problem."}}, - {-200290, {Category::Other, ActionRequired::ImmediateAction, "The generation has stopped to prevent the regeneration of old samples. Your application was unable to write samples to the background buffer fast enough to prevent old samples from being regenerated. To avoid this error, you can do any of the following: 1. Increase the size of the background buffer by configuring the buffer. 2. Increase the number of samples you write each time you invoke a write operation. 3. Write samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is executing concurrently. In addition, if you do not need to write every sample that is generated, you can configure the regeneration mode to allow regeneration, and then use the Position and Offset attributes to write the desired samples."}}, - {-200291, {Category::Other, ActionRequired::ImmediateAction, "The generation has stopped because an intermediate buffer overflowed. The background was running too fast for the application to keep up, and the application was unable to write samples to the intermediate buffer fast enough to prevent regenerating old samples. To avoid this error, you can reduce the sample rate, reduce the number of applications your computer is executing concurrently, or write all samples before the generation starts."}}, - {-200292, {Category::Other, ActionRequired::Warning, "Some or all of the samples to write could not be written to the buffer yet. More space will free up as samples currently in the buffer are generated. To wait for more space to become available, use a longer write timeout. To make the space available sooner, increase the sample rate."}}, - {-200293, {Category::Other, ActionRequired::Warning, "The generation is not yet started, and not enough space is available in the buffer. Configure a larger buffer, or start the generation before writing more data than will fit in the buffer."}}, - {-200294, {Category::Other, ActionRequired::Warning, "Not enough samples were written to satisfy the initial data transfer request condition. To successfully start a generation, increase the number of samples initially written to the buffer before starting. Alternatively, decrease the number of samples required to start by changing the data transfer request condition."}}, - {-200295, {Category::Hardware, ActionRequired::Warning, "Attempt was made to write samples after start of generation where only onboard memory was used. In this case, all samples must be written to the device before the start of generation. No samples may be updated once the generation has started. If you wish to modify samples in the generation after the start of the generation, do not enable the onboard memory."}}, - {-200297, {Category::Configuration, ActionRequired::Warning, "This property is unavailable when using onboard memory."}}, - {-200300, {Category::Other, ActionRequired::ImmediateAction, "Invalid timing type for this channel."}}, - {-200301, {Category::Configuration, ActionRequired::Warning, "Cannot update the Pulse Generation property. The pulse generation with previous property settings must complete a full cycle before the property can be updated."}}, - {-200302, {Category::Other, ActionRequired::Warning, "Signal being measured is slower than the specified measurement time. Increase the measurement time, or use a different measurement method."}}, - {-200303, {Category::Other, ActionRequired::Warning, "External sample clock source must be specified for this application."}}, - {-200304, {Category::Other, ActionRequired::Warning, "External master timebase rate must be specified for this channel given the selected measurement units. Specify the master timebase rate, or use ticks as the measurements units."}}, - {-200305, {Category::Other, ActionRequired::Warning, "Desired finite pulse train generation is not possible. Change the number of samples to be generated, increase the rate of the pulse train, or choose a different timebase source. Refer to the documentation for more details."}}, - {-200306, {Category::Configuration, ActionRequired::Warning, "An attempt was made to set the Samples per Channel property to a value greater than the maximum supported number."}}, - {-200307, {Category::Software, ActionRequired::Warning, "Specified master timebase rate does not match specified master timebase source. Do not set the master timebase rate when you are using an internal master timebase source. In this case, the driver sets the master timebase rate for you."}}, - {-200308, {Category::Software, ActionRequired::Warning, "Specified sample timebase rate does not match specified sample timebase source. Do not set the sample timebase rate when you are using an internal sample timebase source. In this case, the driver sets the sample timebase rate for you."}}, - {-200309, {Category::Software, ActionRequired::Warning, "Specified master timebase divisor (belonging to sample clock timebase) is not appropriate for the specified sample timebase source. Do not set the master timebase divisor when you are using an internal sample timebase source. In this case, the driver sets the master timebase divisor for you."}}, - {-200310, {Category::Hardware, ActionRequired::Warning, "The waveform you are trying to allocate on the device has been previously allocated. Make sure you are not trying to allocate the same waveform twice, or delete the existing waveform before allocating it again."}}, - {-200311, {Category::Other, ActionRequired::Warning, "You cannot write data outside the boundaries of your waveform. Make sure you are not trying to write more data than your waveform can accomodate and that your write location and write offset are set correctly."}}, - {-200312, {Category::Hardware, ActionRequired::Warning, "Waveform is not in the device memory. Make sure you are referring to a previously allocated and/or written waveform by its correct name. Also, make sure that the waveform was not deleted."}}, - {-200313, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200314, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200315, {Category::Hardware, ActionRequired::Warning, "There is not enough free device memory for your waveform. Delete waveforms or scripts not in use to free memory. If you have deleted multiple waveforms or scripts, the memory might have become fragmented. To avoid fragmentation, you can change the order in which you write/delete your waveforms and scripts."}}, - {-200316, {Category::Hardware, ActionRequired::Warning, "Device data underflow. The device was not able to move data fast enough to keep up with the sample rate for the active script. Run the operation at a lower sample rate, or look for the following in the active script: markers might be too close together, waveforms might be too small, waits might be too short, or subsets might be too small. If you are using an external clock, the provided clock might have gone away during your generation."}}, - {-200317, {Category::Hardware, ActionRequired::Warning, "There is not enough free device memory for your script. Delete waveforms or scripts not in use to free memory. If you have deleted multiple waveforms or scripts, the memory might have become fragmented. To avoid fragmentation, you can change the order in which you write/delete your waveforms and scripts."}}, - {-200318, {Category::Other, ActionRequired::ImmediateAction, "Invalid excitation value specified to be used for scaling with full bridge configuration. Change the excitation value if you want it to be used for scaling with full bridge configuration. Alternatively, change the bridge configuration, or do not use excitation value for scaling."}}, - {-200319, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up to perform the analog input operation on given channels. The SCXI module cabled to your digitizer cannot route AI Convert Clock from the digitizer to the other modules. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the modules that can route the AI Convert signal, such as the module your channels are on. After cabling the digitizer to the module, update the chassis configuration in Measurement & Automation Explorer to reflect the cabling change. For detailed information about cabling, refer to the documentation."}}, - {-200320, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up for analog input with simultaneous sample and hold on the given channels. The SCXI module cabled to your digitizer cannot route the signal needed for simultaneous sample and hold from the digitizer to the other modules. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the modules that can route the signal needed for simultaneous sample and hold. The simultaneous sample and hold module in your chassis is one such module. After cabling the digitizer to the module, update the chassis configuration in Measurement & Automation Explorer to reflect the cabling change. For detailed information about cabling, refer to the documentation."}}, - {-200321, {Category::Hardware, ActionRequired::Warning, "Attenuation Value conflicts with the specified AI Minimum and AI Maximum properties. The specified attenuation and AI Minimum and/or AI Maximum would cause the device to exceed the hardware limit. You should increase the Attenuation Value or adjust the AI Minimum and/or AI Maximum."}}, - {-200322, {Category::Other, ActionRequired::Warning, "Data transfer has been stopped to prevent the computer from becoming completely unresponsive. Could not transfer enough data to satisfy the data transfer requirements with Interrupts as the Data Transfer Mechanism. Reduce your Sample Clock Rate, use DMA as your Data Transfer Mechanism, or use a different Data Transfer Request Condition."}}, - {-200323, {Category::Hardware, ActionRequired::Warning, "Cannot perform a multidevice scan with Advance Trigger Type set to None. Without the advance trigger, the devices in the scan list cannot be synchronized."}}, - {-200324, {Category::Hardware, ActionRequired::Warning, "NI-DAQmx is unable to communicate with the device. Make sure the device is present in and accessible to the system, is not currently being reset, and is not reserved by another driver such as Traditional NI-DAQ (Legacy)."}}, - {-200325, {Category::Other, ActionRequired::Warning, "Reverse coefficients must be specified to scale your data using the polynomial scale."}}, - {-200326, {Category::Other, ActionRequired::Warning, "An attempt has been made to perform a route when the source and the destination are the same terminal. In many cases, such as when configuring an external clock or a counter source, you must select a PFI, PXI Trigger, or RTSI line as the source terminal."}}, - {-200327, {Category::Other, ActionRequired::ImmediateAction, "You have specified an invalid value for dt in the waveform cluster. The value for dt must be greater than zero."}}, - {-200328, {Category::Hardware, ActionRequired::Warning, "Switch driver cannot open the topology configuration file for the switch device. A switch device cannot function without its configuration file. The configuration file is installed with the driver. The file might have been removed, renamed, or corrupted after installation. Make sure the configuration file is available to the driver at the expected location, or reinstall the product, as that will reinstall the configuration file."}}, - {-200329, {Category::Hardware, ActionRequired::ImmediateAction, "An error has occurred while attempting to configure the device for an analog input acquisition. If an external master timebase is being used, make sure the source is connected and generating an appropriate clock. Otherwise, contact National Instruments Technical Support."}}, - {-200330, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to use the PFI0 terminal of the device for both an analog and digital source. Use a terminal other than PFI0 as the source of your digital signal."}}, - {-200331, {Category::Other, ActionRequired::Warning, "Specified sample rate is lower than the lowest rate that can be generated using the onboard clock. The rate has been coerced to the slowest possible sample rate. For slower rates, use an external sample clock or an external sample clock timebase."}}, - {-200332, {Category::Hardware, ActionRequired::Warning, "Specified sample rate is higher than the fastest rate supported by the device."}}, - {-200333, {Category::Other, ActionRequired::Warning, "Delay from the start trigger is shorter than the shortest delay that can be generated using the onboard clock with a timebase suitable for generating the sample clock. For shorter delays, use a sample clock timebase with a higher rate, if applicable."}}, - {-200334, {Category::Other, ActionRequired::Warning, "Delay from start trigger is longer than the longest delay that can be generated using the onboard clock with a timebase suitable for generating the sample clock. For longer delays, use a slower sample clock timebase rate, if applicable."}}, - {-200335, {Category::Other, ActionRequired::Warning, "Specified AI convert rate is higher than the fastest rate possible with the current timebase."}}, - {-200336, {Category::Other, ActionRequired::Warning, "Delay from the sample clock is shorter than the shortest delay that can be generated using the onboard clock with a timebase suitable for generating the convert clock. For shorter delays, use a faster convert clock timebase rate, if applicable."}}, - {-200337, {Category::Other, ActionRequired::Warning, "Delay from the sample clock is longer than the longest delay that can be generated using the onboard clock with a timebase suitable for generating the convert clock. For longer delays, use a slower convert clock timebase rate, if applicable."}}, - {-200338, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to read the calibration temperature for a device without an internal temperature sensor."}}, - {-200339, {Category::Other, ActionRequired::Warning, "Pulse width measurement was started while the input signal was active, and no additional pulses were received, which caused the measurement not to complete during the specified timeout. When measuring a single pulse width, make sure the measurement counter is started before the pulse to be measured is active, or provide a timeout sufficient for at least one additional pulse to be measured."}}, - {-200340, {Category::Other, ActionRequired::Warning, "By setting Number of Samples per Channel to -1, you indicated that all available data should be read. This is not valid for acquisitions without a buffer. Specify a value greater than or equal to zero for Number of Samples per Channel. Do not specify a value of zero for Buffer Size when configuring the input buffer."}}, - {-200341, {Category::Configuration, ActionRequired::Warning, "Generation was configured to use only onboard memory, but the corresponding buffer is larger than onboard memory. Buffer size is provided implicitly when data is written or explicitly when the buffer is configured. Configure the generation so that the Use Only Onboard Memory property is false. Alternatively, you can make sure the number of samples written and/or the size of the configured buffer do not exceed the onboard memory size."}}, - {-200342, {Category::Hardware, ActionRequired::Warning, "Script is not in the device memory. Make sure you are referring to a previously written script by its correct name. Also, make sure the script has not been deleted."}}, - {-200343, {Category::Software, ActionRequired::Warning, "Driver cannot determine the number of samples to read for a continuous task that has not yet started. Start the task explicitly, or specify the number of samples to read in DAQmx Read."}}, - {-200344, {Category::Other, ActionRequired::ImmediateAction, "Requested number of samples per channel is invalid. The number of samples per channel must be an integer multiple of the number of samples per channel increment."}}, - {-200345, {Category::Other, ActionRequired::Warning, "Event delay is outside of the legal range. Change the value of the delay, and/or verify that the units are correct."}}, - {-200346, {Category::Other, ActionRequired::Warning, "Event pulse width is outside of the legal range. Change the value of the pulse width, and/or verify that the units are correct."}}, - {-200347, {Category::Other, ActionRequired::ImmediateAction, "Invalid intermediate buffer size. The size of the intermediate buffer must be an integer multiple of the intermediate buffer size increment."}}, - {-200348, {Category::Other, ActionRequired::Warning, "Scaled Values must be specified for the table scale."}}, - {-200349, {Category::Other, ActionRequired::Warning, "Prescaled Values must be specified for the table scale."}}, - {-200350, {Category::Other, ActionRequired::Warning, "Number of Prescaled Values needs to be equal to the number of Scaled Values in the table scale."}}, - {-200351, {Category::Other, ActionRequired::Warning, "Forward coefficients must be specified for the polynomial scale."}}, - {-200352, {Category::Other, ActionRequired::Warning, "Physical channel corresponding to the virtual channel specified for cold-junction compensation is already being used for a thermocouple measurement, so it cannot be used as the cold-junction compensation channel."}}, - {-200353, {Category::Configuration, ActionRequired::Warning, "Specified property value cannot be used, because it requires resources that are currently in use."}}, - {-200354, {Category::Configuration, ActionRequired::Warning, "Specified property value is not a valid terminal name."}}, - {-200355, {Category::Configuration, ActionRequired::Warning, "Specified property value cannot be used, because the hardware does not support it."}}, - {-200356, {Category::Other, ActionRequired::Warning, "Custom scale cannot be created. A saved scale with this name already exists."}}, - {-200357, {Category::Hardware, ActionRequired::Warning, "Measurement device cannot acquire data from the sensor in its current configuration. The voltage output range of your sensor does not overlap with the voltage input range of your measurement device. If your measurement device supports different gains or input ranges, try using a lower gain or a wider input range. If the device has a fixed gain/range, you might need to change sensor attribute settings such as Excitation Value or use a measurement device that supports a wider voltage input range."}}, - {-200358, {Category::Other, ActionRequired::Warning, "An attempt has been made to configure a reference trigger when the sample mode of the sample clock has been configured for continuous sampling. Reference trigger is only applicable for finite sampling. Change the sample mode to finite to use a reference trigger, or do not configure a reference trigger."}}, - {-200359, {Category::Other, ActionRequired::Warning, "Counter signals cannot be exported, because there is more than one counter channel in the task. Create separate tasks for each counter channel."}}, - {-200360, {Category::Other, ActionRequired::Warning, "CJC Source has been set to Channel, while the CJC channel has not been specified. Specify the CJC channel, or set CJC Source to a value other than Channel."}}, - {-200361, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, - {-200362, {Category::Configuration, ActionRequired::Warning, "The Overloaded Channels Exist property was not read prior to reading the specified property. The driver retrieves the overload state from the hardware when the application reads the Overloaded Channels Exist property. After the Overloaded Channels Exist property has been read, other information about overloaded channels may be read, such as which channels are overloaded."}}, - {-200363, {Category::Hardware, ActionRequired::Warning, "Specified inversion cannot be satisfied, because the hardware does not support it."}}, - {-200364, {Category::Hardware, ActionRequired::ImmediateAction, "Specified polarity is not supported by the hardware."}}, - {-200365, {Category::Other, ActionRequired::Warning, "Specified inversion cannot be satisfied, because it requires resources that are currently in use by another route."}}, - {-200366, {Category::Other, ActionRequired::Warning, "Specified inversion cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, - {-200367, {Category::Other, ActionRequired::Warning, "Specified polarity cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, - {-200368, {Category::Hardware, ActionRequired::Warning, "Specified route cannot be satisfied, because the hardware does not support it."}}, - {-200369, {Category::Other, ActionRequired::Warning, "Specified route cannot be satisfied, because it requires resources that are currently in use by another route."}}, - {-200370, {Category::Other, ActionRequired::Warning, "Specified route cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, - {-200371, {Category::Other, ActionRequired::Warning, "Requested multiple virtual channels that correspond to the same physical channel within a task. A task cannot contain multiple physical channels of a specified type. Use different physical channels for each virtual channel."}}, - {-200372, {Category::Software, ActionRequired::ImmediateAction, "Trigger type requested to be sent as the software trigger is invalid."}}, - {-200373, {Category::Hardware, ActionRequired::ImmediateAction, "Trigger type requested to be sent as software trigger is not supported for the specified task running on the given device."}}, - {-200374, {Category::Other, ActionRequired::Warning, "Signal type requested to be exported is not valid."}}, - {-200375, {Category::Hardware, ActionRequired::ImmediateAction, "Signal type requested to be exported is not supported for the specified task running on the given device."}}, - {-200376, {Category::Other, ActionRequired::Warning, "Requested creation of a separate channel for each line is not possible when a digital port is specified as the physical channel. Specify a range of digital lines, such as \"Dev1/port0/line0:7\", as the physical channel."}}, - {-200377, {Category::Hardware, ActionRequired::ImmediateAction, "Requested operation is not supported by the device during a scan. The device only supports operations on front-end channels (for example, ch0, ch1, ... or cjtemp) while scanning. Other operations, such as operations on analog bus channels (such as ab0 and ab1), are not supported by the device during a scan. Make sure your scan list contains only supported operations."}}, - {-200378, {Category::Other, ActionRequired::Warning, "Custom scale specified does not exist."}}, - {-200379, {Category::Hardware, ActionRequired::ImmediateAction, "External clock frequency and external clock divisor values result in an invalid cutoff frequency for this device. The relationship between cutoff frequency, external clock frequency, and external clock divisor is: cutoffFreq = extClkFreq / (100 * extClkDiv) Change your external clock frequency or external clock divisor."}}, - {-200380, {Category::Communication, ActionRequired::Warning, "Strain gage calibration procedure has failed. Make sure the strain gages are connected to all the specified strain channels, the strain gage connections are appropriate for their bridge type configurations, the shunt resistor location is specified correctly, and your hardware jumpers (if any) are set up correctly."}}, - {-200381, {Category::Configuration, ActionRequired::Warning, "Unable to configure requested delay property given the current clock rate. Make sure the sample clock rate is greater than or equal to the phase shift DMC threshold of your device, or do not configure the delay. Consult your documentation for more information."}}, - {-200382, {Category::Other, ActionRequired::Warning, "Specified trigger type for pattern match mode could not be configured, because all pattern matchers are already in use."}}, - {-200383, {Category::Other, ActionRequired::ImmediateAction, "Reference Clock Source specified is invalid, given the Sample Clock Source. When Sample Clock Source is anything other than \"OnboardClock\", you must set Reference Clock Source to \"None\", and you cannot export the Reference Clock."}}, - {-200384, {Category::Other, ActionRequired::Warning, "Static output cannot be performed, because some data lines have already been reserved for a dynamic output."}}, - {-200385, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200386, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200387, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200388, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200389, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200390, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200391, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200392, {Category::Other, ActionRequired::Warning, "Specified output voltage is not valid with the given sample clock rate. Make sure your output voltage level is compatible with your sample clock rate by altering the output voltage level or the sample clock rate. Consult your documentation for more information."}}, - {-200393, {Category::Other, ActionRequired::Warning, "You are attempting to write to a read-only register."}}, - {-200394, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value for the property is invalid, because it is not an unsigned integer. Even though the datatype of the property is a floating point number, the value must be an unsigned integer less than or equal to 9,007,199,254,740,992 (2^53)."}}, - {-200395, {Category::Configuration, ActionRequired::Warning, "There are no shared trigger lines between the two devices which are acceptable to both devices. While each of these two devices support some shared trigger lines, none of these shared trigger lines work for both devices for the specified property and corresponding value. Consider routing the signal through the I/O connectors of the two devices, if applicable."}}, - {-200396, {Category::Hardware, ActionRequired::Warning, "There are no shared trigger lines between the two devices that are acceptable to both devices. While each of the two devices support some shared trigger lines, none of the shared trigger lines work for both devices for the specified source and destination terminals. Consider routing the signal through the I/O connectors of the two devices, if applicable."}}, - {-200397, {Category::Other, ActionRequired::Warning, "Unable to load NI-DAQmx dynamic link library NICAIU.DLL. Make sure that NI-DAQmx is installed on your computer."}}, - {-200398, {Category::Other, ActionRequired::Warning, "Unable to find function in NI-DAQmx dynamic link library NICAIU.DLL. The DLL exists on your computer, but the version is incorrect. Install the correct version of the DLL on your computer."}}, - {-200399, {Category::Other, ActionRequired::ImmediateAction, "No extended error information is available for the last error code. It is possible that there was a problem initializing the internal errors database. Please contact National Instruments Technical Support."}}, - {-200400, {Category::Other, ActionRequired::ImmediateAction, "Requested waveform length is invalid, because the number of samples is not an integer multiple of the waveform length increment."}}, - {-200401, {Category::Other, ActionRequired::Warning, "Number of points to compute over the range of x values is not positive. Specify a value greater than 0 for this input."}}, - {-200402, {Category::Other, ActionRequired::Warning, "Order of the reverse polynomial to compute is not positive. Specify a value greater than 0 for this input."}}, - {-200403, {Category::Other, ActionRequired::Warning, "Order of the reverse polynomial to compute is less than or equal to the number of points to compute over the range of x values. Reduce the order of the reverse polynomial or increase the number of points to compute over the range of x values."}}, - {-200404, {Category::Other, ActionRequired::Warning, "Forward and Reverse Coefficients for a polynomial scale are not specified. Each of these two sets of coefficients must contain at least one term. If only one set of coefficients is available, use the Compute Reverse Polynomial Coefficient utility to calculate the other set of coefficients."}}, - {-200405, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. If the coefficients are not available, you can pass the supplied Reverse Coefficients to the Compute Reverse Polynomial Coefficients utility to calculate the required Forward Coefficients."}}, - {-200406, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. If the coefficients are not available, use the Compute Reverse Polynomial Coefficient utility to calculate the required coefficients from the supplied Forward Coefficients."}}, - {-200407, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are all set to zero. At least one of these coefficients must be non-zero."}}, - {-200408, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are all set to zero. At least one of these coefficients must be non-zero."}}, - {-200409, {Category::Other, ActionRequired::Warning, "Slope for a linear scale is set to zero. The slope must be non-zero."}}, - {-200410, {Category::Configuration, ActionRequired::ImmediateAction, "Requested record number is invalid. Use the Records Done property to find out how many records are available. Record numbers start at 0. Use -1 for all available records."}}, - {-200411, {Category::Hardware, ActionRequired::Warning, "AC coupling is not allowed with 50 Ohm impedance for this device. Use DC coupling, or configure a different impedance setting."}}, - {-200412, {Category::Other, ActionRequired::ImmediateAction, "Requested analog input attenuation is invalid."}}, - {-200413, {Category::Other, ActionRequired::Warning, "Insufficient onboard memory for requested Number of Records and Samples per Channel combination. Reduce the Number of Records and/or Samples per Channel."}}, - {-200414, {Category::Other, ActionRequired::ImmediateAction, "Requested sample clock source is invalid."}}, - {-200415, {Category::Other, ActionRequired::ImmediateAction, "Requested reference clock source is invalid."}}, - {-200416, {Category::Other, ActionRequired::Warning, "Multiple records are not available with RIS."}}, - {-200417, {Category::Other, ActionRequired::Warning, "TDC is not enabled during RIS mode. TDC must be enabled when the digitizer is in the RIS mode. Enable TDC, or do not use RIS."}}, - {-200418, {Category::Other, ActionRequired::Warning, "Requested immediate trigger type while in RIS mode. Immediate triggering is not compatible with the RIS mode. Select a different trigger type, or do not use RIS."}}, - {-200419, {Category::Other, ActionRequired::ImmediateAction, "Requested Read Position is invalid in RIS mode."}}, - {-200420, {Category::Other, ActionRequired::Warning, "Requested sample rate exceeds maximum real-time sample rate. If you want a higher sampling rate and have a repetitive signal, enable RIS."}}, - {-200421, {Category::Other, ActionRequired::Warning, "Requested Hysteresis is not valid with the configured Trigger Level and AI Minimum. Configure the task so the following formula is satisfied: Trigger Level - Hysteresis > AI Minimum"}}, - {-200422, {Category::Other, ActionRequired::Warning, "Requested Trigger Level is not valid with the configured AI Minimum and AI Maximum. Configure the instrument so the following formula is satisfied: AI Minimum < Trigger Level < AI Maximum"}}, - {-200423, {Category::Other, ActionRequired::Warning, "Requested window trigger level is not valid with the configured AI Minimum and AI Maximum. Configure the instrument so the following formula is satisfied: AI Minimum < Window Trigger Level < AI Maximum"}}, - {-200424, {Category::Other, ActionRequired::Warning, "Requested video trigger line number is incompatible with the chosen video signal format."}}, - {-200425, {Category::Other, ActionRequired::Warning, "Requested hysteresis is not valid with the configured trigger level and AI Maximum. Configure the task so the following formula is satisfied: Trigger Level + Hysteresis < AI Maximum"}}, - {-200426, {Category::Other, ActionRequired::ImmediateAction, "Requested impedance for the external trigger is invalid. Specify an impedance that is appropriate for the external trigger, or choose a different trigger source."}}, - {-200427, {Category::Other, ActionRequired::ImmediateAction, "Configured reference clock rate is invalid. The reference clock rate must be within the valid range and a multiple of the increment value."}}, - {-200428, {Category::Other, ActionRequired::ImmediateAction, "Value passed to the Task/Channels In control is invalid. The value must refer to a valid task or valid virtual channels."}}, - {-200429, {Category::Other, ActionRequired::Warning, "Value passed to the Task/Channels In control is an empty string (or I/O control). The value must refer to a valid task or valid channels."}}, - {-200430, {Category::Other, ActionRequired::Warning, "I/O type of the physical channel does not match the I/O type required for the virtual channel you are creating."}}, - {-200431, {Category::Other, ActionRequired::Warning, "Selected physical channel does not support the measurement type required by the virtual channel you are creating. Create a channel of a measurement type that is supported by the physical channel, or select a physical channel that supports the measurement type."}}, - {-200432, {Category::Other, ActionRequired::Warning, "Selected physical channel does not support the output type required by the virtual channel you are creating. Create a channel of an output type that is supported by the physical channel, or select a physical channel that supports the output type."}}, - {-200433, {Category::Other, ActionRequired::Warning, "Scaled Values for a table scale must contain at least two values."}}, - {-200434, {Category::Other, ActionRequired::Warning, "Prescaled Values for a table scale must contain at least two values."}}, - {-200435, {Category::Other, ActionRequired::Warning, "Delay from sample clock is not available when an external convert source is specified. Change the convert source to onboard clock, or do not configure the delay from sample clock."}}, - {-200436, {Category::Other, ActionRequired::Warning, "Start trigger delay is not available when an external sample clock source is specified. Change the sample clock to onboard clock, or do not configure the start trigger delay."}}, - {-200437, {Category::Other, ActionRequired::ImmediateAction, "External calibration constants are invalid. Perform an external calibration. Contact National Instruments Technical Support if you need additional information."}}, - {-200438, {Category::Other, ActionRequired::ImmediateAction, "Invalid calibration area selected. Select self-calibration or external calibration."}}, - {-200439, {Category::Other, ActionRequired::Warning, "Requested operation only can be used during an external calibration session."}}, - {-200440, {Category::Other, ActionRequired::ImmediateAction, "Requested calibration close action is invalid. Select Store or Abort."}}, - {-200441, {Category::Other, ActionRequired::Warning, "Unable to detect the external stimulus frequency. Verify that the external stimulus is properly connected and has the correct frequency and amplitude."}}, - {-200442, {Category::Other, ActionRequired::Warning, "Unable to synchronize to the external stimulus frequency. Verify that the external stimulus has the correct frequency, amplitude, and stability. Consult the documentation for the calibration procedure for valid ranges."}}, - {-200443, {Category::Other, ActionRequired::Warning, "Attempt to store calibration constants without completing all the necessary external calibration steps. Refer to the documentation for the calibration procedure. Verify that all necessary steps are performed before closing the external calibration session."}}, - {-200444, {Category::Other, ActionRequired::ImmediateAction, "Invalid physical channel selected for calibration."}}, - {-200445, {Category::Hardware, ActionRequired::ImmediateAction, "Requested calibration function is not supported by the device."}}, - {-200446, {Category::Other, ActionRequired::Warning, "External stimulus voltage read was outside the expected range. Verify that the external stimulus voltage is properly connected and has the correct amplitude."}}, - {-200447, {Category::Other, ActionRequired::Warning, "Units for the channel must be set to From Custom Scale when a custom scale is used with a channel."}}, - {-200448, {Category::Configuration, ActionRequired::Warning, "DAC Range High is not equal to the DAC Reference Voltage Value. When you do not set the DAC Range High property, the driver always makes sure it is equal to the DAC Reference Voltage value. If you do set the DAC Range High property make sure DAC Range High and DAC Reference Voltage Value are equal."}}, - {-200449, {Category::Configuration, ActionRequired::Warning, "DAC Range Low must be equal to either the negative DAC Reference Voltage Value or to zero. If you do not set the DAC Range Low property, the driver sets it for you. Otherwise, make sure DAC Range Low is equal to either the negative DAC Reference Voltage Value or to zero."}}, - {-200450, {Category::Configuration, ActionRequired::Warning, "Specified property cannot be set while the task is running."}}, - {-200451, {Category::Configuration, ActionRequired::Warning, "You can get the specified property only while the task is committed or running."}}, - {-200452, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported by the device or is not applicable to the task."}}, - {-200453, {Category::Other, ActionRequired::ImmediateAction, "Specified timeout value is not supported. Supported timeout values are 0 (try or check once and return), positive numbers up to 4294967, and -1 (try or check until success or error)."}}, - {-200454, {Category::Configuration, ActionRequired::Warning, "You cannot get the specified property, because the task is not a buffered output task."}}, - {-200455, {Category::Configuration, ActionRequired::Warning, "You cannot get the specified property, because the task is not a buffered input task."}}, - {-200456, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because the task is not an output task."}}, - {-200457, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because the task is not an input task."}}, - {-200459, {Category::Other, ActionRequired::Warning, "Write failed, because there are no output channels in this task to which data can be written."}}, - {-200460, {Category::Other, ActionRequired::Warning, "Read failed, because there are no channels in this task from which data can be read."}}, - {-200461, {Category::Other, ActionRequired::ImmediateAction, "Specified channel name is invalid."}}, - {-200462, {Category::Configuration, ActionRequired::Warning, "Generation cannot be started because the output buffer is empty. Write data before starting a buffered generation. The following actions can empty the buffer: changing the size of the buffer, unreserving a task, setting the Regeneration Mode property, changing the Sample Mode, or configuring retriggering."}}, - {-200463, {Category::Other, ActionRequired::Warning, "Specified read or write operation failed, because the number of lines in the data for a channel does not match the number of lines in the channel. If you are using the Digital Waveform datatype, make sure the number of lines in the digital waveform matches the number of lines in the channel. If you are using boolean data, make sure the array dimension for lines in the data matches the number of lines in the channel."}}, - {-200464, {Category::Other, ActionRequired::Warning, "If performing a Write operation, the operation cannot be performed, because the number of channels in the specified data does not match the number of channels in this task. Adjust the data to match the number of channels in this task. If you are performing a read operation, the operation cannot be performed because this DAQmx Read only returns data from a single channel, and there are multiple channels in this task. Use the multichannel DAQmx Read."}}, - {-200465, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than what is supported by DAQmx Port Write. With the U8 version, channels must contain 8 bits or less; while for the U32 version, channels must contain 32 bits or less."}}, - {-200466, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than what is supported by DAQmx Port Read. With the U8 version, channels must contain 8 bits or less; while for the U32 version, channels must contain 32 bits or less."}}, - {-200467, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because it is empty."}}, - {-200469, {Category::Other, ActionRequired::Warning, "Specified channel cannot be loaded, because it was saved with an incompatible, more recent version of NI-DAQ. Create the channel again, or upgrade NI-DAQ to a version compatible with the version used to save the channel. Consult the documentation for the version of NI-DAQ used to create the channel for more details."}}, - {-200470, {Category::Other, ActionRequired::Warning, "Specified task cannot be loaded, because it was saved with an incompatible, more recent version of NI-DAQ. Create the task again, or upgrade NI-DAQ to a version compatible with the version used to save the task. Consult the documentation for the version of NI-DAQ used to create the task for more details."}}, - {-200472, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the auto start input to DAQmx Write is false, and timing for the task is not configured or Timing Type is set to On Demand. Set auto start to true, or configure timing and specify Timing Type other than On Demand."}}, - {-200473, {Category::Configuration, ActionRequired::Warning, "Read cannot be performed when the Auto Start property is false and the task is not running or committed. Start the task before reading, or set Auto Start to true."}}, - {-200474, {Category::Other, ActionRequired::Warning, "Specified operation did not complete, because the specified timeout expired."}}, - {-200475, {Category::Other, ActionRequired::Warning, "Specified operation can be performed only when the task is running. Start the task before requesting this operation."}}, - {-200477, {Category::Hardware, ActionRequired::Warning, "Specified operation cannot be performed when there are no devices in the task."}}, - {-200478, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed when there are no channels in the task."}}, - {-200479, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed while the task is running."}}, - {-200481, {Category::Hardware, ActionRequired::Warning, "Specified device cannot be added to the task, because it is already in the task."}}, - {-200482, {Category::Hardware, ActionRequired::Warning, "Specified device is not in the task."}}, - {-200483, {Category::Other, ActionRequired::Warning, "Specified virtual channel cannot be saved, because a virtual channel with that name already exists in Data Neighborhood in MAX. Save the virtual channel under a different name, or specify that the existing virtual channel should be replaced."}}, - {-200484, {Category::Other, ActionRequired::Warning, "Specified task cannot be saved, because a task with that name already exists in Data Neighborhood in MAX. Save the task under a different name, or specify that the existing task should be replaced."}}, - {-200485, {Category::Other, ActionRequired::Warning, "The specified task cannot be loaded, because it is not in Data Neighborhood. Check Data Neighborhood in MAX. Look for similar characters, such as the capital letter \"O\" and the number zero."}}, - {-200486, {Category::Other, ActionRequired::Warning, "Specified channel is not in the task."}}, - {-200488, {Category::Other, ActionRequired::Warning, "Specified virtual channel cannot be added to the task, because it does not exist. You cannot specify a physical channel. Instead, create a virtual channel using the DAQ Assistant or DAQmx Create Virtual Channel, and then add the virtual channel to the task."}}, - {-200489, {Category::Other, ActionRequired::Warning, "Specified channel cannot be added to the task, because a channel with the same name is already in the task."}}, - {-200490, {Category::Other, ActionRequired::Warning, "Sample value detected outside of the specified range."}}, - {-200491, {Category::Other, ActionRequired::Warning, "Reserved parameter must be zero."}}, - {-200492, {Category::Other, ActionRequired::Warning, "Reserved parameter must be NULL."}}, - {-200493, {Category::Other, ActionRequired::Warning, "Reserved character string parameter must be NULL or an empty string."}}, - {-200494, {Category::Hardware, ActionRequired::Warning, "Specified task cannot be loaded, because it requires a device that supports timing, and the associated device does not support timing. Create a new task without timing, or associate this task with a device that supports timing."}}, - {-200495, {Category::Software, ActionRequired::Warning, "An intermediate acquisition buffer has overflowed. The driver was unable to read samples from the intermediate buffer fast enough to prevent the buffer from overflowing."}}, - {-200496, {Category::Other, ActionRequired::ImmediateAction, "Pattern contains an invalid character."}}, - {-200497, {Category::Other, ActionRequired::Warning, "Attempted to enable output data lines that were not previously disabled. Make sure that you are enabling data lines for output only after explicitly disabling them."}}, - {-200498, {Category::Other, ActionRequired::ImmediateAction, "Syntax for a range of objects in the input string is invalid. For ranges of objects, specify a number immediately before and after every colon (\":\") in the input string. Or, if a name is specified after the colon, it must be identical to the name specified immediately before the colon. Colons are not allowed within the names of the individual objects."}}, - {-200499, {Category::Other, ActionRequired::Warning, "Value passed is not between 0 and 4,294,967,295 (unsigned 32-bit integer)."}}, - {-200500, {Category::Software, ActionRequired::ImmediateAction, "Error code could not be found. Reinstalling the driver might fix the issue. Otherwise, contact National Instruments technical support."}}, - {-200501, {Category::Other, ActionRequired::ImmediateAction, "EEPROM contains an invalid calibration date and/or time. The calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, - {-200502, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path pre-amplifier offset produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200503, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path pre-amplifier gain produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200504, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path post-amplifier gain and offset produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200505, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of direct path gain produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200506, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path output impedance produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200507, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of direct path output impedance produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200508, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of the oscillator frequency produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200509, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of calibration ADC produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200510, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path pre-amplifier offset. Refer to the documentation for a list of valid configuration values."}}, - {-200511, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path pre-amplifier gain. Refer to the documentation for a list of valid configuration values."}}, - {-200512, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path post-amplifier gain and offset. Refer to the documentation for a list of valid configuration values."}}, - {-200513, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path output impedance. Refer to the documentation for a list of valid configuration values."}}, - {-200514, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the direct path output impedance. Refer to the documentation for a list of valid configuration values."}}, - {-200515, {Category::Other, ActionRequired::ImmediateAction, "Specified number of reads to average from the calibration ADC is invalid. The number of reads to average must be greater than 0."}}, - {-200516, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the gain DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, - {-200517, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the offset DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or a self-calibration, or contact National Instruments Technical Support."}}, - {-200518, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the oscillator phase DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, - {-200519, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the oscillator frequency DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or contact National Instruments Technical Support."}}, - {-200520, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM and used to adjust reads from the cal ADC are invalid. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or contact National Instruments Technical Support."}}, - {-200521, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of the oscillator phase DAC produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, - {-200522, {Category::Other, ActionRequired::Warning, "A self-calibration cannot be performed during external calibration."}}, - {-200523, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read only returns data from a single channel, and there are multiple channels in the task. Use the multichannel version of DAQmx Read."}}, - {-200524, {Category::Other, ActionRequired::Warning, "Write cannot be performed, because the number of channels in the data does not match the number of channels in the task. When writing, supply data for all channels in the task. Alternatively, modify the task to contain the same number of channels as the data written."}}, - {-200525, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read does not match the type of channels in the task. Use the version of DAQmx Read that corresponds to the channel type."}}, - {-200526, {Category::Other, ActionRequired::Warning, "Write cannot be performed because this version of DAQmx Write does not match the type of channels in the task. Use the version of DAQmx Write that corresponds to the channel type."}}, - {-200527, {Category::Hardware, ActionRequired::ImmediateAction, "Requested values of the Minimum and Maximum properties for the counter channel are not supported for the given type of device. The values that can be specified for Minimum and Maximum depend on the counter timebase rate."}}, - {-200528, {Category::Other, ActionRequired::ImmediateAction, "Requested line grouping is invalid. Either choose one channel for all lines or one channel for each line as the line grouping."}}, - {-200529, {Category::Communication, ActionRequired::Warning, "Unexpected identifier following the switch operation in the connection list. Switch operations must be separated by a comma inside the connection list."}}, - {-200530, {Category::Other, ActionRequired::Warning, "Unexpected identifier following the relay name in the relay list. Relay names must be separated by a comma inside the relay list."}}, - {-200531, {Category::Other, ActionRequired::Warning, "Relay name is not specified in the list entry."}}, - {-200532, {Category::Other, ActionRequired::Warning, "Unexpected identifier following switch channel name."}}, - {-200533, {Category::Other, ActionRequired::Warning, "Identifier found in the script is too long. Use identifiers with no more than 511 characters."}}, - {-200534, {Category::Other, ActionRequired::Warning, "Waveform name is too long. Use waveform names with no more than 511 characters."}}, - {-200535, {Category::Configuration, ActionRequired::Warning, "Specified value is larger than the maximum value supported for this property."}}, - {-200536, {Category::Configuration, ActionRequired::Warning, "Specified value is smaller than the minimum value supported for this property."}}, - {-200537, {Category::Configuration, ActionRequired::ImmediateAction, "Supplied forward and reverse coefficients yield inconsistent results when they are used for computations related to this property. In other words, using the result of the forward scale as input to the reverse scale does not yield the original data. Based on the forward coefficients, the value for the property is invalid. Supply forward and reverse coefficients that yield consistent results."}}, - {-200538, {Category::Other, ActionRequired::ImmediateAction, "Action requested is invalid."}}, - {-200539, {Category::Hardware, ActionRequired::Warning, "Device does not support analog writes with multiple samples per channel. To output multiple samples, call DAQmx Analog Single Sample Write multiple times."}}, - {-200540, {Category::Configuration, ActionRequired::Warning, "DAC Reference Voltage Value is not set. When the DAC Reference Voltage Source property for a channel is set to External, the DAC Reference Voltage Value property must be set. Set the DAC Reference Voltage Value property so the value matches the reference voltage source connected to your device. Alternatively, consider using the internal DAC reference voltage source available on the device."}}, - {-200541, {Category::Hardware, ActionRequired::Warning, "Last Self Calibration Date/Time has not been stored on the device by NI-DAQmx. Self-calibrate the board using NI-DAQmx. Alternatively, externally calibrate the board using NI-DAQmx, and then call DAQmx Restore Last External Calibration Constants."}}, - {-200542, {Category::Hardware, ActionRequired::Warning, "Last Self Calibration Temperature has not been stored on the device by NI-DAQmx. Self-calibrate the board using NI-DAQmx. Alternatively, externally calibrate the board using NI-DAQmx, and then call DAQmx Restore Last External Calibration Constants."}}, - {-200543, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Date/Time has not been stored on the device by NI-DAQmx. Externally calibrate the board using NI-DAQmx."}}, - {-200544, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Temperature has not been stored on the device by NI-DAQmx. Externally calibrate the board using NI-DAQmx."}}, - {-200545, {Category::Hardware, ActionRequired::Warning, "Self-calibration failed. The self-calibration date has not changed. Disconnect the device from external signals, as they might introduce noise. Externally calibrate the device to recalibrate the onboard voltage reference that is used for self-calibration."}}, - {-200546, {Category::Hardware, ActionRequired::Warning, "External calibration failed, and the external calibration data has not been changed. Make sure that the reference signal used for the calibration is stable and that the voltage matches the value specified to the calibration software. Disconnect the device from any external signals that might be introducing noise."}}, - {-200547, {Category::Other, ActionRequired::Warning, "DAQmx Write failed, because a previous DAQmx Write automatically configured the output buffer size. The buffer size is equal to the original number of samples written per channel, so no more data can be written prior to starting the task. Start the generation before the second DAQmx Write, or set Auto Start to true in all occurences of DAQmx Write. To incrementally write into the buffer prior to starting the task, call DAQmx Configure Output Buffer before the first DAQmx Write."}}, - {-200548, {Category::Other, ActionRequired::Warning, "Requested coupling type is only valid when the trigger source is an external trigger channel."}}, - {-200549, {Category::Other, ActionRequired::ImmediateAction, "Self-calibration constants are invalid. Perform a self-calibration. Contact National Instruments Technical Support if you need additional information."}}, - {-200550, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference or sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that its rate matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200551, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference or sample clock, make sure it is connected and within the jitter and voltage level specifications at all times. Also, verify that its rate matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200552, {Category::Other, ActionRequired::ImmediateAction, "Specified string is not valid, because it contains an invalid character."}}, - {-200553, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its first character is a space character."}}, - {-200554, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its last character is a space character."}}, - {-200555, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its first character is an underscore."}}, - {-200556, {Category::Configuration, ActionRequired::Warning, "You only can get the specified property while the task is committed or while the task is running. Commit or start the task prior to getting the property."}}, - {-200557, {Category::Configuration, ActionRequired::Warning, "Specified property cannot be set while the task is running. Set the property prior to starting the task, or stop the task prior to setting the property."}}, - {-200558, {Category::Hardware, ActionRequired::Warning, "One task cannot contain multiple independent devices. Create one task for each independent device."}}, - {-200559, {Category::Other, ActionRequired::Warning, "Task cannot contain a channel with the specified channel type, because the task already contains channels with a different channel type. Create one task for each channel type."}}, - {-200560, {Category::Communication, ActionRequired::Warning, "Wait Until Done did not indicate that the task was done within the specified timeout. Increase the timeout, check the program, and make sure connections for external timing and triggering are in place."}}, - {-200561, {Category::Other, ActionRequired::Warning, "Attempted writing analog data that is too large or too small. Change Minimum Value and Maximum Value to reflect the range of the channel."}}, - {-200562, {Category::Other, ActionRequired::ImmediateAction, "Attempted writing digital data that is not supported."}}, - {-200563, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 8-bit version of DAQmx Port Read. Use a version of DAQmx Port Read that supports wider digital ports."}}, - {-200564, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 32-bit version of DAQmx Read. Use a version of DAQmx Read that returns an array of Boolean values or digital waveforms."}}, - {-200565, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 8-bit version of DAQmx Port Write. Use the version of DAQmx Port Write that supports wider digital ports."}}, - {-200566, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 32-bit version of DAQmx Port Write."}}, - {-200567, {Category::Other, ActionRequired::Warning, "Generation cannot be started, because the buffer size was changed since the last write, and this change caused data to be lost. Write data after changing the buffer size."}}, - {-200568, {Category::Configuration, ActionRequired::Warning, "Generation cannot be started, because the Regeneration Mode property was changed since the last write, and this change caused data to be lost. Write data after changing the Regeneration Mode property."}}, - {-200569, {Category::Other, ActionRequired::Warning, "Type of channel collection used to access the specified channel does not match the channel type. Access the channel through the channel collection that matches the channel type."}}, - {-200570, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between one and the number of channels in the task."}}, - {-200571, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to an internal source for channels in different channel groups. On this device, only one channel group at a time can be configured to use an internal source. Refer to the documentation for details."}}, - {-200572, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set differently for channels in one channel group on a device that supports only identical settings within a channel group. Refer to the documentation for more details."}}, - {-200573, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to different internal sources on some channels. On this device, Input Source Select must be set to the same value for all channels with internal sources. Refer to the documentation for more details."}}, - {-200574, {Category::Hardware, ActionRequired::Warning, "Driver cannot complete the route, because the only way to make the route requires a trigger bus line, and no trigger bus has been configured in MAX for this device. If you have a PXI chassis, make sure it has been properly identified in MAX. If you are using a PCI device, create a RTSI cable in MAX that includes your PCI device even if you are not using any RTSI cables."}}, - {-200575, {Category::Other, ActionRequired::Warning, "Requested value for Samples per Channel is too high when a reference trigger is used. In this case, Samples per Channel cannot exceed the sum of Pretrigger Samples per Channel and the maximum Post-trigger Samples per Channel. Reduce Samples per Channel. Alternatively, consider performing an acquisition with Continuous Sample Mode, or increase the Pretrigger Samples per Channel."}}, - {-200576, {Category::Hardware, ActionRequired::Warning, "CJC Source cannot be set to Built-In for the specified thermocouple channel. The physical channel does not support a built-in CJC temperature sensor. If your hardware contains a CJC temperature sensor on the physical channel corresponding to the built-in CJC source, make sure that the hardware configuration (including any accessories and/or terminal blocks) is correct. Alternatively, specify a different CJC Source, or use hardware with a built-in CJC temperature sensor."}}, - {-200577, {Category::Other, ActionRequired::Warning, "Requested AI Minimum value is too large."}}, - {-200578, {Category::Other, ActionRequired::Warning, "Requested AI Minimum value is too small."}}, - {-200579, {Category::Other, ActionRequired::Warning, "Requested AI Maximum value is too large."}}, - {-200580, {Category::Other, ActionRequired::Warning, "Requested AI Maximum value is too small."}}, - {-200581, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because Reference Clock Source is \"None\"."}}, - {-200582, {Category::Hardware, ActionRequired::Warning, "Values for AO channel properties lead to an output voltage that exceeds the maximum for the device."}}, - {-200583, {Category::Hardware, ActionRequired::Warning, "Values of the AO channel properties lead to an output voltage that is less than the minimum for the device."}}, - {-200584, {Category::Other, ActionRequired::ImmediateAction, "Write failed, because the number of samples to write per channel is invalid. The number of samples to write per channel must be an integer multiple of the samples to write per channel increment."}}, - {-200585, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within specifications. If you are generating your sample clock internally, please contact National Instruments Technical Support."}}, - {-200586, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within specifications. If you are generating your sample clock internally, please contact National Instruments Technical Support."}}, - {-200587, {Category::Hardware, ActionRequired::ImmediateAction, "Requested operation could not be performed, because the specified digital lines are either reserved or the device is not present in NI-DAQmx. It is possible that these lines are reserved by another task, the device is being used through the Traditional NI-DAQ interface, or the device is being reset. You might also get the error if the specified resource is currently in use by LabVIEW network variables bound to the DAQ Channel, or if the DAQ Channel is being used in any OPC Client software. If you are using these lines with another task, wait for the task to complete. If you are using the device through the Traditional NI-DAQ interface, and you want to use it with NI-DAQmx, reset (initialize) the device using the Traditional NI-DAQ interface. If you are resetting the device, wait for the reset to finish."}}, - {-200588, {Category::Other, ActionRequired::Warning, "Specified event handler cannot be removed, because it is installed on a different NI-DAQmx object. Remove the event handler from the NI-DAQmx object on which it was installed."}}, - {-200589, {Category::Other, ActionRequired::Warning, "Specified event handler cannot be removed, because it has already been removed."}}, - {-200590, {Category::Other, ActionRequired::ImmediateAction, "Specified event handler cannot be removed, because it is invalid. It has never been installed on this or any other NI-DAQmx object."}}, - {-200591, {Category::Other, ActionRequired::Warning, "Negative buffer size was supplied. The buffer size must be zero or greater."}}, - {-200592, {Category::Other, ActionRequired::Warning, "Given range in the input string contains too many objects. Check the string. If necessary, split the input string into smaller ranges."}}, - {-200593, {Category::Configuration, ActionRequired::Warning, "Value of this property cannot be determined until the containing task is verified. Before attempting to get the value of this property, you must make sure the task has been verified. You can do this by starting the task, using the task control method to verify the task, reading from the task if the Read Auto Start property is true, or writing to the task and specifying true for the auto start parameter."}}, - {-200594, {Category::Other, ActionRequired::ImmediateAction, "Value passed for the direction parameter is invalid. Use one of the values of the corresponding enumeration."}}, - {-200595, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier at the beginning of the switch operation in the list entry."}}, - {-200596, {Category::Hardware, ActionRequired::Warning, "Channels in the switch operation span different devices."}}, - {-200597, {Category::Other, ActionRequired::Warning, "Specified output operation cannot be satisfied, because it requires lines that are currently in use by another output operation."}}, - {-200598, {Category::Other, ActionRequired::ImmediateAction, "Repetition of a number in the Prescaled Values is invalid for input operations."}}, - {-200599, {Category::Other, ActionRequired::ImmediateAction, "Repetition of a number in Scaled Values is invalid for output operations."}}, - {-200600, {Category::Other, ActionRequired::Warning, "NI-DAQmx cannot generate virtual channel names for some of the physical channels specified, because the numeric suffix of the resulting channel names would be too large. Either explicitly specify a virtual channel name for each physical channel name, or decrease the numeric suffix of the last set of virtual channel names."}}, - {-200601, {Category::Configuration, ActionRequired::ImmediateAction, "Property not supported by this scale type."}}, - {-200602, {Category::Other, ActionRequired::Warning, "Prescaled Minimum cannot be equal to Prescaled Maximum for input operations."}}, - {-200603, {Category::Other, ActionRequired::Warning, "Scaled Minimum cannot be equal to Scaled Maximum for output operations."}}, - {-200604, {Category::Other, ActionRequired::Warning, "NULL pointer was passed for a required parameter."}}, - {-200605, {Category::Other, ActionRequired::Warning, "Given range in the input string contains a number that is too large. Check the string. Use smaller numbers in the range, or replace the range with a comma-separated list."}}, - {-200606, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between one and the number of channels in the task."}}, - {-200607, {Category::Other, ActionRequired::Warning, "Two signals cannot be simultaneously exported on the same terminal."}}, - {-200608, {Category::Other, ActionRequired::Warning, "Acquisition cannot be started, because the selected buffer size is too small. Increase the buffer size."}}, - {-200609, {Category::Other, ActionRequired::Warning, "Generation cannot be started, because the selected buffer size is too small. Increase the buffer size."}}, - {-200610, {Category::Other, ActionRequired::ImmediateAction, "Requested sample clock source is invalid for output. The specified sample clock source terminal is only supported for input."}}, - {-200611, {Category::Other, ActionRequired::Warning, "Operation cannot be performed, because there are no channels of the requested type in the task."}}, - {-200612, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between 0 and the number of channels in the task minus one."}}, - {-200613, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has been stopped to prevent an input buffer overwrite. Your application was unable to read samples from the buffer fast enough to prevent new samples from overwriting unread data. To avoid this error, you can do any of the following: 1. Increase the size of the buffer. 2. Increase the number of samples you read each time you invoke a read operation. 3. Read samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is running concurrently. In addition, if you do not need to read every sample that is acquired, use the Relative To and Offset properties to read the desired samples."}}, - {-200614, {Category::Other, ActionRequired::Warning, "Combination of Samples to Read, Position, and Offset results in an attempt to read past the end of the record. You only can read samples within the record."}}, - {-200615, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200616, {Category::Other, ActionRequired::ImmediateAction, "Specified asynchronous operation handle is invalid."}}, - {-200617, {Category::Hardware, ActionRequired::Warning, "Output generation was aborted by the reverse power protection circuitry of the device. Either the output signal exceeded the output power limit, or power was being driven back into the output of the device by an external source. Correct the problem, then generate the signal again."}}, - {-200618, {Category::Hardware, ActionRequired::Warning, "Analog input virtual channels cannot be created out of order with respect to their physical channel numbers for the type of analog device you are using. For example, a virtual channel using physical channel ai0 must be created before a virtual channel with physical channel ai1."}}, - {-200619, {Category::Other, ActionRequired::Warning, "Chassis cannot be used for more than one scanning operation at the same time. Do only one scanning operation, or combine multiple scanning operations into a single operation."}}, - {-200620, {Category::Hardware, ActionRequired::Warning, "Requested multiple virtual channels that correspond to the same analog input physical channel within a single task. A task cannot contain multiple analog input physical channels for this type of device. Use different physical channels for each virtual channel."}}, - {-200621, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also reduce the number of programs your computer is executing concurrently."}}, - {-200622, {Category::Other, ActionRequired::ImmediateAction, "Requested number of samples to write is invalid. Change the number of samples to be written to a number equal to or greater than zero."}}, - {-200623, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature above the device's maximum recommended operating temperature. To use the device again, either turn the chassis/computer off until the device has cooled, or ensure the device has cooled, and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, - {-200624, {Category::Configuration, ActionRequired::Warning, "You have not specified an active channel when getting a property. Specify a single line as the active physical channel."}}, - {-200625, {Category::Configuration, ActionRequired::Warning, "You have specified more than one line as the active physical channel when getting a property. Specify a single line."}}, - {-200626, {Category::Other, ActionRequired::Warning, "An empty physical channel has been specified within the power up states array. Specify a correct physical channel."}}, - {-200627, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200628, {Category::Other, ActionRequired::ImmediateAction, "Pause and reference triggers are both configured, which is not supported in this task."}}, - {-200629, {Category::Hardware, ActionRequired::Warning, "Requested different values for properties that must have equal values on this device."}}, - {-200630, {Category::Other, ActionRequired::ImmediateAction, "Requested write offset is invalid, because it is not an integer multiple of the write increment."}}, - {-200631, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200632, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, - {-200633, {Category::Other, ActionRequired::Warning, "Script name is the same as an existing waveform name. Make sure that the script name is different from the names of previously written or allocated waveforms."}}, - {-200634, {Category::Other, ActionRequired::Warning, "Waveform name is the same as an existing script name. Make sure that the waveform name is different from the names of previously written scripts."}}, - {-200635, {Category::Other, ActionRequired::Warning, "You have attempted to control a Watchdog Task, but the task supplied was not a Watchdog Task."}}, - {-200636, {Category::Communication, ActionRequired::Warning, "For this device, any connection specified in the scan list must wait for a trigger (;). If your scan list contains an action sequence similar to \"ch0->com0 &\" or \"ch0->com0 &&\", change the action sequence to \"ch0->com0;\"."}}, - {-200637, {Category::Communication, ActionRequired::Warning, "For this device, an action separator (& or &&) is required after breaking a connection in the scan list. If your scan list contains an action sequence similar to \"~ch0->com0;\", change the action sequence to \"~ch0->com0 &\" or \"~ch0->com0 &&\"."}}, - {-200638, {Category::Communication, ActionRequired::ImmediateAction, "For this device, two consecutive wait for triggers are not supported after any connection in the scan list. If your scan list contains an action sequence similar to \"ch0->com0;;\", change the action sequence to \"ch0->com0;\"."}}, - {-200639, {Category::Communication, ActionRequired::Warning, "For this device, connections specified in the scan list must be disconnected before making new connections. If your scanlist contains an action sequence similar to \"ch0->com0;;\", change the action sequence to \"ch0->com0; ~ch0->com0\"."}}, - {-200640, {Category::Hardware, ActionRequired::ImmediateAction, "For this device, send advance complete () is not supported after any wait for triggers (;) in the scan list. If your scan list contains an action sequence similar to \"ch0->com0; \", change the action sequence to \"ch0->com0;\"."}}, - {-200641, {Category::Configuration, ActionRequired::Warning, "Property cannot be set separately for each line. When setting this property, specify a virtual channel as the active channel."}}, - {-200642, {Category::Configuration, ActionRequired::Warning, "You have not specified an active channel when getting a property. Specify a single line as the active channel."}}, - {-200643, {Category::Configuration, ActionRequired::Warning, "You have specified more than one line when getting a property. Specify a single line as the active channel."}}, - {-200644, {Category::Other, ActionRequired::Warning, "Attempt to reset watchdog timer failed, because the timer had already expired. Clear expiration of the watchdog timer, or configure a longer watchdog timer timeout."}}, - {-200645, {Category::Other, ActionRequired::Warning, "Attempt to set the digital filter interval failed, because another task has already configured a different digital filter interval. Use the same digital filter interval in the two tasks, or wait for the other task to finish before starting or committing this task."}}, - {-200646, {Category::Hardware, ActionRequired::ImmediateAction, "Some of the physical channels in the task are configured for different filter intervals, which is not supported by this type of device. Configure all lines in the task to use the same digital filter interval."}}, - {-200647, {Category::Hardware, ActionRequired::Warning, "Specified physical channel does not support digital input. Change the direction of the task, use another terminal, or use another device. To read from digital output lines, create a digital output task and use DAQmx Read."}}, - {-200648, {Category::Hardware, ActionRequired::Warning, "Device identifier of the physical channel specified is not the same as the device used in the task. Use only the physical channels on the device used in the task."}}, - {-200649, {Category::Other, ActionRequired::Warning, "Specified a physical channel for change detection that is not contained by any channel in the task. Use only physical channels already contained by a channel, or create an additional channel containing the desired physical channel ."}}, - {-200650, {Category::Other, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because the specified physical channel only supports digital input, and the programmable powerup state does not apply."}}, - {-200651, {Category::Other, ActionRequired::Warning, "Attempt to set watchdog timer expiration state failed, because the specified physical channel only supports digital input, and watchdog timer expiration state does not apply."}}, - {-200652, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because only some of the channels from the port were specified. For this type of device, you must specify programmable powerup state for entire ports."}}, - {-200653, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because some of the lines in a port were tristated and others were not. For this type of device, programmable powerup states of all lines in a port have to be either tristated or not tristated."}}, - {-200654, {Category::Hardware, ActionRequired::Warning, "Attempt to set watchdog timer expiration state failed, because some of the lines in a port were tristated, and others were not. For this type of device, watchdog timer expiration states of all lines in a port have to be either tristated or not tristated."}}, - {-200655, {Category::Configuration, ActionRequired::Warning, "Attempted to read more samples than what was configured in the acquisition. Restart the acquisition, increase the Samples Per Channel property, or set the Sample Mode property to Continuous Samples."}}, - {-200656, {Category::Configuration, ActionRequired::Warning, "Operation failed, because an attempt was made to use only the onboard memory for generation when regeneration of data was not allowed. Set the Regeneration Mode property to Allow Regeneration or set the Use Only Onboard Memory property to false."}}, - {-200657, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because you specified multiple channels, and the property has different values for different channels. Get this property one channel at a time."}}, - {-200658, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because your task contains multiple channels, and the property has different values for different channels. Get this property one channel at a time using Active Channel to specify each individual channel."}}, - {-200659, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because the single channel you specified corresponds to multiple physical channels, and the property has different values for those different physical channels. Get this property one physical channel at a time. For digital channels, you might have to specify a single digital line."}}, - {-200660, {Category::Other, ActionRequired::Warning, "Requested Sample Clock Rate is not available because this task shares the Sample Clock Source or the Sample Clock Timebase with another task. The other task has already programmed one of those properties in a manner inconsistent with the requested Sample Clock Rate. Specify a Sample Clock Rate consistent with the settings in the other task, or change the settings in the other task. Refer to documentation for more detailed information."}}, - {-200661, {Category::Other, ActionRequired::ImmediateAction, "Requested operation is not supported because the Reference Clock Source is \"None\"."}}, - {-200662, {Category::Hardware, ActionRequired::Warning, "Attempt to create a watchdog timer task failed because the device does not support the feature, or the wrong device type was specified. For NI CompactDAQ devices supporting this feature, specify the chassis name on which to create a watchdog timer task."}}, - {-200663, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup states failed because the device does not support the feature."}}, - {-200664, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the task has not been started, committed, or reserved. Call DAQmx Start or DAQmx Control with action set to Commit or Reserve prior to requesting this operation."}}, - {-200665, {Category::Hardware, ActionRequired::ImmediateAction, "Expiration states requested are not supported by the lines in the port. For this device, the Watchdog Timer Expiration States must be either No Change for all lines in a port or a combination of values other than No Change for all lines in a port. For example, the combination of No Change for one line and High for another line is not supported, while a value of Low for one line and High for another line is supported."}}, - {-200666, {Category::Other, ActionRequired::Warning, "Attempt to configure a port or any of its lines for input failed, because this port is currently configured for digital output by the watchdog timer. Choose another port, or modify the watchdog timer task to set the expiration state of the port to Tristate or No Change."}}, - {-200667, {Category::Other, ActionRequired::Warning, "Attempt to configure a port or any of its lines to have an expiration state of Output failed, because the port or some of its lines are currently reserved for use by an input task. Set the expiration state of the port to Tristate or No Change, or choose a different port for digital input."}}, - {-200668, {Category::Other, ActionRequired::Warning, "Requested value is not a supported value for Watchdog Timer Timeout. Use special value -1.0 to indicate that the internal timer should be disabled, and the watchdog timer will expire based on the external expiration trigger, or specify another valid value."}}, - {-200669, {Category::Configuration, ActionRequired::Warning, "Attempt to set the Connect DAC Reference to Ground property failed, because the Allow Connecting DAC Reference to Ground property was not True. To connect DAQ reference to ground, you must set two properties to True: Connect DAC Reference to Ground and Allow Connecting DAC Reference to Ground."}}, - {-200670, {Category::Configuration, ActionRequired::Warning, "DAC Range Low is not equal in magnitude and opposite in sign from DAC Reference Value. If you do not set the DAC Range Low property, the driver sets it for you. Otherwise, ensure DAC Range Low and DAC Reference Voltage Value are equal in magnitude and opposite in sign."}}, - {-200671, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding its simultaneous relay drive limit. To recover, call DAQmx Disconnect All, or reset the device. The device can be reset either programmatically or by using Measurement & Automation Explorer."}}, - {-200672, {Category::Other, ActionRequired::Warning, "Input arrays are of different sizes. These arrays must have the same size."}}, - {-200673, {Category::Other, ActionRequired::Warning, "Multiple samples cannot be written using a single sample write. Ensure the waveform contains only a single sample."}}, - {-200674, {Category::Hardware, ActionRequired::ImmediateAction, "Switch operation failed due to a previous error. The device may have been powered off and back on. To use the device again, reset the device either programmatically or by using Measurement & Automation Explorer."}}, - {-200675, {Category::Hardware, ActionRequired::Warning, "Input Source Select is set to an internal source for channels in different channel groups. On this device, only one channel group at a time can be configured to use an internal source. Refer to documentation for details."}}, - {-200676, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set differently for channels in one channel group on a device that supports only identical settings within a channel group. Refer to documentation for details."}}, - {-200677, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to different internal sources on some channels. On this device, Input Source Select must be set the same way for all channels with internal sources. Refer to documentation for details."}}, - {-200678, {Category::Hardware, ActionRequired::ImmediateAction, "Write failed because at least one of the lines in the task is also in a watchdog timer task whose watchdog timer has expired. Clear the expiration of the watchdog timer before writing by using DAQmx Control Watchdog Task, by restarting the watchdog timer task, or by resetting the device programmatically or through the Measurements & Automation Explorer. To prevent this error in the future reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, - {-200679, {Category::Hardware, ActionRequired::Warning, "When Sample Mode is Hardware Timed Single Point, Memory Mapping for Programmed IO Enable cannot be true. Set Memory Mapping for Programmed IO Enable to false or change Sample Mode."}}, - {-200680, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature above the device's maximum recommended operating temperature. To use the device again, either turn the chassis/computer off until the device has cooled, or ensure the device has cooled, and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, - {-200681, {Category::Hardware, ActionRequired::ImmediateAction, "Route failed because either the source or destination of the route is also a line in a watchdog timer task whose watchdog timer has expired. Clear the expiration of the watchdog timer before routing by using DAQmx Control Watchdog Task, by restarting the watchdog timer task, or by resetting the device programmatically or through Measurements & Automation Explorer. To prevent this error in the future reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, - {-200682, {Category::Other, ActionRequired::ImmediateAction, "Data could not be read because the reference trigger master session is unavailable. To avoid this error, read data before closing the reference trigger master session."}}, - {-200683, {Category::Other, ActionRequired::Warning, "NI-DAQmx has detected a corrupt installation. Please re-install NI-DAQmx. If you continue to receive this message, please contact National Instruments for assistance."}}, - {-200684, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse duty cycle specified is not supported for this device given the pulse frequency and Counter Timebase Rate."}}, - {-200685, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse frequency specified is not supported for this device given the Counter Timebase Rate."}}, - {-200686, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse high time specified is not supported for this device given the Counter Timebase Rate."}}, - {-200687, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse low time specified is not supported for this device given the Counter Timebase Rate."}}, - {-200688, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse high tick count specified is not supported for this device."}}, - {-200689, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse low tick count specified is not supported for this device."}}, - {-200690, {Category::Hardware, ActionRequired::ImmediateAction, "Buffered operations are not supported if Sample Mode is Hardware Timed Single Point. Do not configure a buffer, or change the Sample Mode value."}}, - {-200691, {Category::Other, ActionRequired::Warning, "Buffered operations are not compatible with the requested Wait Mode. Do not configure a buffer, or set Wait Mode to Yield."}}, - {-200692, {Category::Hardware, ActionRequired::Warning, "Number of samples per channel to write multiplied by the number of channels in the task cannot be an odd number for this device. Adjust the number of samples per channel to write or the number of channels in the task so that their product is an integer multiple of two."}}, - {-200693, {Category::Hardware, ActionRequired::Warning, "Buffer size (in samples per channel) multiplied by the number of channels in the task cannot be an odd number for this device. Adjust the buffer size or the number of channels in the task so that their product is an integer multiple of two."}}, - {-200694, {Category::Other, ActionRequired::Warning, "AI Minimum was not specified for an operation that requires it."}}, - {-200695, {Category::Other, ActionRequired::Warning, "AI Maximum was not specified for an operation that requires it."}}, - {-200696, {Category::Other, ActionRequired::ImmediateAction, "Bridge offset nulling calibration is not supported by the specified channels. Specify only the analog input channels that are configured to measure sensors in a bridge configuration."}}, - {-200697, {Category::Hardware, ActionRequired::Warning, "Calibration data could not be acquired. Ensure that the device(s) are configured and functioning properly."}}, - {-200698, {Category::Other, ActionRequired::Warning, "Route failed because the PXI chassis is not identified. The existence of the source terminal depends on the chassis being identified. Use the Measurements & Automation Explorer (MAX) to identify your chassis."}}, - {-200699, {Category::Other, ActionRequired::Warning, "Route failed because the PXI chassis is not identified. The existence of the destination terminal depends on the chassis being identified. Use the Measurements & Automation Explorer (MAX) to identify your chassis."}}, - {-200700, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a source terminal for devices in PXI slot 2. PXI slot 2 has specific PXI_Star lines, such as PXI_Star3. Move your device to one of slots 3 through 15, or select a different source terminal."}}, - {-200701, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a destination terminal for devices in PXI slot 2. PXI slot 2 has specific PXI_Star lines, such as PXI_Star3. Move your device to one of slots 3 through 15, or select a different destination terminal."}}, - {-200702, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a destination terminal for devices in PXI slots 16 and above. Move your device to one of slots 3 through 15, or select a different destination terminal."}}, - {-200703, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a source terminal for devices in PXI slots 16 and above. Move your device to one of slots 3 through 15, or select a different source terminal."}}, - {-200704, {Category::Hardware, ActionRequired::Warning, "PXI_Star is available as a source terminal only for devices in the star trigger controller slot (slot 2). To use PXI_Star (without any numbers), do not specify a star line number. To use PXI_Star, move your device to slot 2."}}, - {-200705, {Category::Hardware, ActionRequired::Warning, "PXI_Star is available as a destination terminal only for devices in the star trigger controller slot (slot 2). To use PXI_Star (without any numbers), do not specify a star line number. To use PXI_Star, move your device to slot 2."}}, - {-200706, {Category::Hardware, ActionRequired::Warning, "PXI_Clk10In is available as a destination terminal only for devices in the star trigger controller slot (slot 2). Move your device to PXI slot 2."}}, - {-200708, {Category::Configuration, ActionRequired::Warning, "Getting a property that pertains to multiple items failed because the value was different for different items. Get the specified property for one item at a time. For example, if you are getting a property for two markers, such as \"marker0:1\" or \"marker0, marker1\", and the property values are different for the two markers, you must get them in two steps (one for marker0 and another for marker1)."}}, - {-200709, {Category::Hardware, ActionRequired::Warning, "No TEDS sensor was detected on the specified physical channel. Ensure that your sensor is properly connected. If the sensor is connected to a TEDS interface device with addresses, make sure the configured address matches the address set on the interface device."}}, - {-200710, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to an internal source with more than one channel in the task. On this device, an internal input source is supported only when there is one channel in the task. Remove all of the channels currently in the task except the channel that will be used to acquire the internal input source."}}, - {-200711, {Category::Configuration, ActionRequired::Warning, "An attempt has been made to use an analog trigger with the Input Source Select property set to an internal source. Either change the Input Source Select property ot specify an external source, or use a different analog trigger source."}}, - {-200712, {Category::Hardware, ActionRequired::ImmediateAction, "Digital input configuration failed because at least one of the lines in the task was in an expired watchdog task, and the expiration state of the line was set to output. Clear the expiration of the watchdog task by using DAQmx Control Task, by restarting the watchdog task, or by resetting the device either programmatically or by using Measurement & Automation Explorer. To prevent this error in the future, reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, - {-200713, {Category::Hardware, ActionRequired::Warning, "Channels specified cannot appear in the same task on this device. Create a separate task for each of the channels specified."}}, - {-200714, {Category::Hardware, ActionRequired::Warning, "Acquisition has stopped because the driver could not transfer the data from the device to the computer memory fast enough. This was caused by computer system limitations. Reduce your sample clock rate, the number of channels in the task, or the number of programs your computer is executing concurrently."}}, - {-200715, {Category::Other, ActionRequired::Warning, "Digital input detected a new sample clock before the previous sample was latched into onboard memory. If you are using an external sample clock, ensure that it is connected, within the jitter and voltage level specifications, and without glitches. If applicable, reduce your sample clock rate or use a product capable of higher sample clock rates."}}, - {-200716, {Category::Other, ActionRequired::Warning, "Digital output detected a new sample clock edge before the previous sample could be written from the onboard memory. If you are using an external sample clock, ensure that it is connected, within jitter and voltage level specifications, and without glitches. If applicable, reduce your sample clock rate or use a product capable of higher sample clock rates."}}, - {-200717, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AI offset calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200718, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AI gain calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200719, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AO offset calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200720, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AO gain calibration constant. If performing an external calibration, ensure that the reference voltage passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200721, {Category::Other, ActionRequired::ImmediateAction, "Computed frequency resolution of the VCXO CalDAC circuitry is not sufficient to perform timebase calibration. Ensure that the reference frequency is stable and that the frequency passed to the calibration VI or function is correct. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200722, {Category::Other, ActionRequired::ImmediateAction, "Timebase calibration algorithm failed to converge within the required tolerance. Ensure that the reference frequency is stable and that the frequency passed to the calibration VI or function is correct. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200723, {Category::Other, ActionRequired::ImmediateAction, "Variance of the measured external reference frequency is too large to perform timebase calibration. Ensure that the reference frequency is stable. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, - {-200724, {Category::Configuration, ActionRequired::ImmediateAction, "Digital Input Tristate property has different values for different channels in the task, which is not supported for this type of device. Change the property to a single value for all channels in the task, or use more than one task."}}, - {-200725, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for handshaking input. These lines cannot be used in a static input task. Use a line that is not in a handshaking input task or stop using the line in the handshaking input task."}}, - {-200726, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for static input. These lines cannot be used in a handshaking input task. Use a port that is not already used by a static input task or stop using the line in the static input task."}}, - {-200727, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for handshaking control. These lines cannot be used in a static input task. Use a line that is not also a control line in a handshaking task, or stop using the line for handshaking control."}}, - {-200728, {Category::Other, ActionRequired::Warning, "Some or all of the handshaking control lines for this task are used by another task for static input. These lines cannot be used for handshaking control. Use a port whose handshaking control lines are not already used by a static input task or stop using the lines for handshaking control."}}, - {-200729, {Category::Configuration, ActionRequired::ImmediateAction, "Value of the Tristate property for some or all of the channels in the task is False, and Sample Timing Type is Handshake, which is not supported by this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, - {-200730, {Category::Configuration, ActionRequired::ImmediateAction, "Value of Tristate property for some or all of the channels in the task is False, and Sample Timing Type is Change Detection, which is not supported by this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, - {-200731, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode is Hardware Timed, and Sample Timing Type is On Demand, which is not supported by this device. Change Sample Mode or Sample Timing Type."}}, - {-200732, {Category::Configuration, ActionRequired::ImmediateAction, "Some of all of the lines in the task have had their Digital Filter Enable property set, which is not supported when the value of the Tristate property is False. Change the value of the Tristate property, or do not set the Digital Filter Enable property."}}, - {-200733, {Category::Configuration, ActionRequired::ImmediateAction, "Some or all of the lines in the task have ahd their Digital Filter Minimum Pulse Width property set, which is not supported when the value of the Tristate property is False. Change the value of the Tristate property, or do not set the Digital Filter Minimum Pulse Width property."}}, - {-200734, {Category::Hardware, ActionRequired::Warning, "Device does not support DMA for the Data Transfer Mechanism when performing non-buffered acquisitions. Set Data Transfer Mechanism to Programmed I/O."}}, - {-200735, {Category::Other, ActionRequired::Warning, "Given the specified Reference Clock Source, you must set the Reference Clock Rate to a value equal to the frequency of the supplied signal."}}, - {-200736, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The FREQOUT counter is a 4-bit counter that can divide either the 10 MHz Timebase or the 100 kHz Timebase by a number between one and sixteen. Chose a frequency within this range."}}, - {-200737, {Category::Configuration, ActionRequired::Warning, "For this type of device, the Input Buffer Size (in Samples per Channel) must be equal to the value of the Sample Quanity-Samples per Channel property when Sample Mode is Finite Samples."}}, - {-200738, {Category::Other, ActionRequired::Warning, "Specified timing source does not exist."}}, - {-200739, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported for the given timing source."}}, - {-200740, {Category::Other, ActionRequired::Warning, "Task used as the timing source for a Timed Loop was started before the Timed Loop was executed. Let the Timed Loop start the task, or use the task without the Timed Loop."}}, - {-200741, {Category::Other, ActionRequired::ImmediateAction, "A TEDS sensor not supported by DAQmx is connected to the specified physical channel. Consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, - {-200742, {Category::Other, ActionRequired::ImmediateAction, "Memory of the TEDS sensor connected to the specified physical channel is corrupted, as indicated by an invalid check-sum. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, - {-200743, {Category::Hardware, ActionRequired::Warning, "For this device, a TEDS terminal block must be connected to the device and configured in MAX in order to perform a TEDS operation."}}, - {-200744, {Category::Software, ActionRequired::Warning, "Specified reference clock rate does not match the specified reference clock source. Do not set the refererence clock rate when you are using an internal reference clock source. In this case, the driver sets the reference clock rate for you."}}, - {-200745, {Category::Configuration, ActionRequired::Warning, "Frequency and Initial Delay property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraints: Counter Timebase Rate / Counter Maximum Count <= Frequency <= Counter Timebase Rate / 4 Counter Timebase Rate / Counter Maximum Count <= 1 / Initial Delay <= Counter Timebase Rate / 2 If the Counter Timebase Rate is not specified, it is inferred from the Counter Timebase Source selection."}}, - {-200746, {Category::Configuration, ActionRequired::Warning, "Initial Delay, High Time, and Low Time property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraints: 2 / Counter Timebase Rate <= Initial Delay <= Counter Maximum Count / Counter Timebase Rate 2 / Counter Timebase Rate <= High Time <= Counter Maximum Count / Counter Timebase Rate 2 / Counter Timebase Rate <= Low Time <= Counter Maximum Count / Counter Timebase Rate If the Counter Timebase Rate is not specified, it is inferred from the Counter Timebase Source selection."}}, - {-200747, {Category::Other, ActionRequired::ImmediateAction, "Acquisition type specified is not supported by the FREQOUT channel. To use the FREQOUT channel, set the acquisition type to a value supported by FREQOUT. To use specified output type, use a different counter output channel."}}, - {-200748, {Category::Hardware, ActionRequired::Warning, "DAQmx Write was invoked more than once between two consecutive sample clocks. When Sample Mode is Hardware Timed Single Point, invoke DAQmx Write only once between two consecutive sample clocks."}}, - {-200749, {Category::Other, ActionRequired::ImmediateAction, "Specified gain is not supported."}}, - {-200750, {Category::Other, ActionRequired::ImmediateAction, "Specified voltage is invalid for the given gain."}}, - {-200751, {Category::Other, ActionRequired::Warning, "Sample Timing Type was set to Change Detection but no physical channels on which to detect changes were specified. Specify the Change Detection Digital Input Rising and/or Falling Edge Physical Channels, or specify a different Sample Timing Type."}}, - {-200752, {Category::Other, ActionRequired::ImmediateAction, "You have specified more than one physical channel as the active channel which is not supported. Specify a single physical channel."}}, - {-200753, {Category::Other, ActionRequired::ImmediateAction, "TEDS sensor data or the Virtual TEDS data file contains an error which was detected during parsing. Ensure your TEDS sensor or Virtual TEDS data file conforms to the specification. If this is not possible, use custom scales with the sensor."}}, - {-200754, {Category::Other, ActionRequired::ImmediateAction, "TEDS template specifies parameters that are not supported by DAQmx. Use custom scales with this sensor."}}, - {-200755, {Category::Other, ActionRequired::Warning, "TEDS sensor data or Virtual TEDS data file contains multiple calibration templates. Only one calibration template is supported by DAQmx. Use custom scales with this sensor."}}, - {-200756, {Category::Other, ActionRequired::Warning, "Type of TEDS sensor associated with the channel is incompatible with the Measurement Type. Use the TEDS sensor for measurements compatible with the sensor."}}, - {-200757, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type is set to On Demand which is not supported for analog input on this device. Set Sample Timing Type to Sample Clock. You can achieve this whlie setting related properties through DAQmx VIs or functions for configuring timing."}}, - {-200758, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type is set to On Demand which is not supported for analog output on this device. Set Sample Timing Type to Sample Clock. You can achieve this while setting related properties through DAQmx VIs or functions for configuring timing."}}, - {-200759, {Category::Software, ActionRequired::Warning, "Range specified by the AO Maximum and Minimum Value, and AO Voltage Units properties does not lie within the range specified by the AO DAC Range High and Low properties. Change the values of these properties. If you do not specify AO DAC Range High and Low, the driver will set them based on other properties."}}, - {-200760, {Category::Configuration, ActionRequired::Warning, "Range specified by the AO Maximum and Minimum Value, and AO Voltage Units properties does not lie within the range specified by the AO Gain property. Change the values of these properties. If you do not specify AO Gain, the driver will set it based on other properties."}}, - {-200761, {Category::Configuration, ActionRequired::ImmediateAction, "Task cannot issue sync pulse because another task is currently running on this device. For this type of device, the task can issue a sync pulse if it is the only task running on the device. If your task is not being used for synchronization, set the Sync Pulse Source property to \"\" or \"None\" to avoid receiving an error."}}, - {-200762, {Category::Hardware, ActionRequired::Warning, "Task cannot issue sync pulse because the task has an external sample clock timebase. For this type of device, the task can issue a sync pulse if the Sample Clock Timebase Source is Onboard Clock."}}, - {-200763, {Category::Hardware, ActionRequired::Warning, "For analog input with the current Data Transfer Mechanism on this type of device, the input buffer size (in samples per channel) must be an integer multiple of the transfer size. Change the Data Transfer Mechanism or the input buffer size."}}, - {-200764, {Category::Other, ActionRequired::Warning, "TEDS sensor connected to the specified physical channel uses a linear mapping method and specifies the linear slope to be zero. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, - {-200765, {Category::Software, ActionRequired::ImmediateAction, "Mapping method of the TEDS sensor connected to the specified physical channel is invalid or is not supported by the driver. If the sensor is defective, replace it or have it repaired. Otherwise, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, - {-200766, {Category::Software, ActionRequired::ImmediateAction, "Legacy template ID of the TEDS sensor connected to the specified physical channel is invalid or is not supported by the driver. If the sensor is defective, replace it or have it repaired. Otherwise, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, - {-200767, {Category::Other, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O which is not supported for buffered analog output. Change Data Transfer Mechanism or use non-buffered analog output."}}, - {-200768, {Category::Other, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported for non-buffered analog output. Set your Data Transfer Mechanism to Programmed I/O or use buffered analog output."}}, - {-200769, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, - {-200770, {Category::Other, ActionRequired::Warning, "Digital Filter Enable and Digital Synchronization Enable properties cannot be true at the same time."}}, - {-200771, {Category::Configuration, ActionRequired::Warning, "Digital Filter Enable is set to true but the Minimum Pulse Width property is not configured. Configure the Minimum Pulse Width property or set Digital Filter Enable to false."}}, - {-200772, {Category::Other, ActionRequired::Warning, "Digital filtering is not available for the given terminal."}}, - {-200773, {Category::Other, ActionRequired::Warning, "Digital synchronization is not available for the given terminal."}}, - {-200774, {Category::Configuration, ActionRequired::Warning, "Terminal has already been configured with a different Minimum Pulse Width by another property in this task."}}, - {-200775, {Category::Other, ActionRequired::Warning, "Terminal has already been configured with a different Minimum Pulse Width by another task."}}, - {-200776, {Category::Configuration, ActionRequired::Warning, "Desired Minimum Pulse Width could not be produced. Minimum Pulse Width is affected by the Digital Filter Timebase Source and the Digital Filter Timebase Rate. To see how these two property settings can affect the Minimum Pulse Width, refer to product documentation for more details."}}, - {-200777, {Category::Hardware, ActionRequired::Warning, "Desired Minimum Pulse Width could not be produced by the device."}}, - {-200778, {Category::Hardware, ActionRequired::Warning, "Sample Mode is set to a value other than Hardware Timed Single Point. This is the only value supported for counter generations when Sample Timing Type is set to Sample Clock. Change the Sample Mode or the Sample Timing Type."}}, - {-200779, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate the Reverse Coefficients from the Forward Coefficients if only one set of coefficients is available."}}, - {-200780, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate the Reverse Coefficients from the Forward Coefficients if only one set of coefficients is available."}}, - {-200781, {Category::Other, ActionRequired::Warning, "Forward and Reverse Coefficients for a polynomial scale are not specified. Each of these two sets of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate one set of coefficients from the other set if only one set is available."}}, - {-200782, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term."}}, - {-200783, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term."}}, - {-200784, {Category::Other, ActionRequired::Warning, "Virtual TEDS file could not be found at the specified location. Specify correct location for the Virtual TEDS file."}}, - {-200785, {Category::Other, ActionRequired::ImmediateAction, "Timing source created is invalid because of the Sample Timing Type settings. To use this timing source with a Timed Loop, set the Sample Timing Type to Change Detection. You can configure the Sample Timing Type to Change Detection while setting related properties through the DAQmx Timing (Change Detection) VI or function."}}, - {-200786, {Category::Other, ActionRequired::Warning, "Requested Sample Clock Rate cannot be generated given the specified external Sample Clock Timebase Rate. To keep the specified Sample Clock Timebase Rate, use one of the Sample Clock Rates that can be generated."}}, - {-200787, {Category::Hardware, ActionRequired::ImmediateAction, "Specified Start Trigger Type is not supported for counter output tasks when the Sample Mode is Hardware Timed Single Point on this type of device. Set the Start Trigger Type to None to use this Sample Mode."}}, - {-200788, {Category::Hardware, ActionRequired::Warning, "Measured bridge offset is outside the limits allowed for offset nulling calibration for this device. Ensure your sensor is wired and functioning properly, and that its output offset is within device limits."}}, - {-200789, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read uses a data type that is too small for the channels in this task. Use a different version of DAQmx Read."}}, - {-200790, {Category::Other, ActionRequired::Warning, "Write cannot be performed because this version of DAQmx Write uses a data type that is too small for the channels in this task. Use a different version of DAQmx Write."}}, - {-200791, {Category::Other, ActionRequired::Warning, "TEDS cannot be configured for the specified channel. Ensure that your TEDS sensor is connected to the channel through a TEDS interface (for example BNC-2096, SC-2350, or SCXI-1314T), and that this interface is configured in MAX. Alternatively a virtual TEDS file can be used."}}, - {-200792, {Category::Other, ActionRequired::ImmediateAction, "You have specified more than one physical channel which is not supported. Specify a single physical channel."}}, - {-200793, {Category::Hardware, ActionRequired::ImmediateAction, "For a device of this type, setting the AO Idle Output Behavior to Maintain Existing Value is not supported when analog output is synchronized."}}, - {-200794, {Category::Other, ActionRequired::Warning, "You cannot use DAQmx Write for multiple counter channels within one task. If appropriate, create one task per counter output channel. To update multiple counter channels within one task use counter output properties."}}, - {-200795, {Category::Hardware, ActionRequired::Warning, "There was an overflow of the device onboard memory while performing a hardware timed non-buffered generation. Write only one sample per channel between two consecutive sample clocks to avoid this condition."}}, - {-200796, {Category::Hardware, ActionRequired::Warning, "Hardware timed non-buffered analog output could not be performed because Memory Mapping for Programmed I/O Enable was set to true. Disable memory mapping for hardware timed non-buffered analog output."}}, - {-200797, {Category::Other, ActionRequired::ImmediateAction, "An empty string was specified as a terminal name which is not supported. Specify a valid terminal name."}}, - {-200798, {Category::Hardware, ActionRequired::Warning, "Device does not support change detection for lines that do not allow digital input. Use lines that allow digital input for change detection."}}, - {-200799, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Create Timing Source created an invalid source because the specified Sample Mode is not supported when the signal is Event Counting. To use this timing source with a Timed Loop, change the Sample Mode."}}, - {-200800, {Category::Other, ActionRequired::ImmediateAction, "Event source signal specified is not supported with the Measurement Type and/or Sample Timing Type of the task."}}, - {-200801, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Create Timing Source created an invalid source because the requested signal is not supported for counter output. To use this task as the timing source with a Timed Loop, specify the Counter Output Event as the signal."}}, - {-200802, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the task is not started, the sample timing type is something other than On Demand, and the output buffer size is zero. Call DAQmx Start before DAQmx Write, set auto start to true on DAQmx Write, modify the sample timing type, or change the output buffer size."}}, - {-200803, {Category::Hardware, ActionRequired::Warning, "Write cannot be performed before you start the task for on demand or hardware-timed single-point operations. Start the task before you write samples, set the autostart input on DAQmx Write to true, or use hardware timing with a sample mode of finite or continuous."}}, - {-200804, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Date/Time is not available, because the last external calibration if the device was not performed using the NI-DAQmx API. Last External Calibration Date/Time will become available after you perform external calibration of the device using the NI-DAQmx API."}}, - {-200806, {Category::Hardware, ActionRequired::Warning, "Requested Minimum Pulse Width cannot be applied because the programmable filter clock has already been configured with a different Minimum Pulse Width by another task. For this type of device, there is only one programmable filter clock per device."}}, - {-200807, {Category::Hardware, ActionRequired::Warning, "Requested Minimum Pulse Width cannot be applied because the programmable filter clock has already been configured with a different Minimum Pulse Width when a different terminal was configured by the same task. For this type of device, there is only one programmable filter clock per device, and the device can use only one external timebase filter at a time."}}, - {-200808, {Category::Other, ActionRequired::Warning, "TEDS sensors cannot be configured on real-time (RT) systems. Use MAX to configure the TEDS sensor instead."}}, - {-200809, {Category::Other, ActionRequired::Warning, "TEDS sensors cannot be cleared on real-time (RT) systems."}}, - {-200810, {Category::Other, ActionRequired::Warning, "Requested string contains characters that cannot be interpreted by DAQmx due to installed language support and system locale settings. Ensure that the appropriate language support is installed on the system, and that the system locale is set correctly. For most Windows operating systems, this is done through the Regional Settings option in Control Panel. For a LabVIEW RT target, you should install \"Language Support for LabVIEW RT\" and change the locale setting for the remote system under the \"System Settings\" tab in MAX."}}, - {-200811, {Category::Other, ActionRequired::Warning, "Specified string contains characters that cannot be interpreted by DAQmx due to installed language support and system locale settings. If possible, do not use this character. Otherwise, ensure that the appropriate language support is installed on the system, and that the system locale is set correctly. For most Windows operating systems, this is done through the Regional Settings option in the Control Panel. For a LabVIEW RT target, you should install \"Language Support for LabVIEW RT\" and change the locale setting for the remote system under the \"System Setting\" tab in MAX."}}, - {-200812, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to configure a trigger when analog output Sample Mode was set to Hardware Timed Single Point. Configure the analog output sample mode to something other than Hardware Timed Single Point to use a trigger."}}, - {-200813, {Category::Other, ActionRequired::ImmediateAction, "Selected Sample Mode is not supported with counter input position measurements."}}, - {-200814, {Category::Other, ActionRequired::ImmediateAction, "Onboard Clock is not supported as an Input Terminal for counter measurements. Refer to user documentation for a list of supported input terminals."}}, - {-200815, {Category::Other, ActionRequired::Warning, "TEDS sensor specifies a value for the Minimum Physical Value that is greater than or equal to the Maximum Physical Value. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, - {-200816, {Category::Other, ActionRequired::Warning, "TEDS sensor specifies a value for the Minimum Electrical Value that is greater than or equal to the Maximum Electrical Value. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, - {-200817, {Category::Hardware, ActionRequired::Warning, "Excitation Value can only be zero when the Input Terminal Configuration is set to Differential on this device. Change the Input Terminal Configuration or set the Excitation Value to zero."}}, - {-200818, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature in excess of the maximum recommended operating temperature. Possible causes incude excessive current on the device channels and inadequate chassis cooling. To use the device again, reduce the current and/or improve the chassis cooling. Ensure that the device has cooled and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, - {-200819, {Category::Configuration, ActionRequired::ImmediateAction, "Programmed I/O is not supported as the Data Transfer Mechanism when the Use Only On Board Memory property is set to true. Change the Data Transfer Mechanism or set Use Only On Board Memory to false."}}, - {-200820, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode of Hardware Timed Single Point is not supported for analog input channels on this type of device when the number of channels in the task is odd (not divisible by 2). Add a channel to the task, remove a channel from the task, or use a different Sample Mode."}}, - {-200821, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode of Hardware Timed Single Point is not supported for analog input channels on this type of device. Use a different Sample Mode, or select a device which supports Hardware Timed Single Point."}}, - {-200822, {Category::Other, ActionRequired::Warning, "Attempt to write to the PROM on the TEDS failed because the TEDS sensor does not contain a PROM. Write the Basic TEDS data to the EEPROM of the sensor or replace the sensor."}}, - {-200823, {Category::Other, ActionRequired::Warning, "Attempt to write to the PROM on the TEDS sensor failed because the PROM has already been written and it cannot be rewritten. Do not write the Basic TEDS data to the TEDS sensor or replace the sensor."}}, - {-200824, {Category::Other, ActionRequired::Warning, "Attempt to write the Basic TEDS data to the EEPROM failed because the PROM on the TEDS sensor already contains Basic TEDS data. A TEDS sensor can contain the Basic TEDS data in either the PROM or the EEPROM, but not in both. Do not write the Basic TEDS data to the TEDS sensor or replace the sensor."}}, - {-200825, {Category::Other, ActionRequired::Warning, "Write failed because the data size is greater than the size of the EEPROM on the TEDS sensor. Make sure the data size does not exceed the EEPROM size."}}, - {-200826, {Category::Other, ActionRequired::ImmediateAction, "TEDS sensor data being written to the TEDS sensor contains an error. Ensure your TEDS sensor data conforms to the specification."}}, - {-200827, {Category::Other, ActionRequired::ImmediateAction, "Virtual TEDS data file being written to the TEDS sensor contains an error. Ensure your Virtual TEDS data file conforms to the specification."}}, - {-200828, {Category::Other, ActionRequired::ImmediateAction, "Writing to TEDS sensors is not supported on real-time (RT) systems."}}, - {-200829, {Category::Other, ActionRequired::Warning, "DAQmx Write failed because the counter channels have different Output Types. Writes to multiple counter output channels are supported only when all of the counters have identical Output Types. Use identical Output Types for all channels. Alternatively, create multiple tasks (one for each Output Type)."}}, - {-200830, {Category::Hardware, ActionRequired::Warning, "On Demand Simultaneous Analog Output Enable and Memory Mapping for Programmed IO Enable cannot both be set to true for this device."}}, - {-200832, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported if the Sample Timing Type is On Demand, the Auto Start property is false, and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or change the Sample Timing Type."}}, - {-200833, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported if the Sample Mode is Hardware Timed Single Point, the Auto Start property is false, and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or change the Sample Mode."}}, - {-200834, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported for non-buffered acquisitions if the Auto Start property is false and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or call DAQmx Configure Input Buffer with a buffer size greater than zero."}}, - {-200835, {Category::Hardware, ActionRequired::Warning, "SCXI device cannot be used in this task because the power to the device was turned off after the task had been created. Call DAQmx Clear Task and then create a new task to use this SCXI device."}}, - {-200836, {Category::Other, ActionRequired::Warning, "Attempt to write to the TEDS sensor failed, possibly because the sensor is not connected properly or because the sensor is defective. Make sure the TEDS sensor is properly connected. Write to the TEDS sensor again. If the write fails again, try using another TEDS sensor. You may need to have the original TEDS sensor repaired."}}, - {-200837, {Category::Hardware, ActionRequired::Warning, "Samples per Channel must be an integer multiple of the transfer size for this device with the current Data Transfer Mechanism. Change Samples per Channel or the Data Transfer Mechanism."}}, - {-200838, {Category::Hardware, ActionRequired::Warning, "Output buffer size (in samples per channel) must be an integer multiple of the transfer size for this device with the current Data Transfer Mechanism. Change the output buffer size or the Data Transfer Mechanism."}}, - {-200839, {Category::Configuration, ActionRequired::Warning, "Tristate property cannot be set to False for any channel in the task when Sample Timing Type is Sample Clock on this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, - {-200840, {Category::Hardware, ActionRequired::ImmediateAction, "Prescaler value requested is not supported by this device, given the requested Timebase Source. Set Prescaler to 1, or change the Timebase Source."}}, - {-200841, {Category::Hardware, ActionRequired::ImmediateAction, "Prescaler value requested is not supported by this device, given the requested Input Terminal. Set Prescaler to 1, or change the Input Terminal."}}, - {-200842, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, - {-200843, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of three sample clocks which indicates that your program is not keeping up with the hardware clock. Slow down the hardware clock or else change your application so that it can keep up with the hardware clock."}}, - {-200844, {Category::Other, ActionRequired::Warning, "Task contains a 'freqout' counter channel, which cannot be updated while the task is running. Create separate tasks for the 'freqout' channel and the other counter channels if you wish to write to the other counter channels. Alternatively, stop the task, reprogram the counters, and restart the task."}}, - {-200845, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O or DMA, the only values supported for non-buffered operations for this device and Channel Type. Set your Data Transfer Mechanism to Programmed I/O or DMA, or use buffering."}}, - {-200846, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the auto start input to DAQmx Write is false, task is not running, and timing for the task is not configured or Timing Type is set to On Demand. Set auto start to true, start the task, or configure timing and specify Timing Type other than On Demand."}}, - {-200847, {Category::Hardware, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O, which is not supported for buffered operations for this device and Channel Type. Change Data Transfer Mechanism or do not use buffering."}}, - {-200848, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Every N Samples Event is not supported within non-buffered tasks. To receive Every N Samples Event notifications, configure your task to use buffering."}}, - {-200849, {Category::Other, ActionRequired::Warning, "Number of samples to wait in a finite wait instruction must be a multiple of the alignment quantum."}}, - {-200850, {Category::Other, ActionRequired::Warning, "Number of samples to wait in a finite wait instruction must be greater than 0."}}, - {-200851, {Category::Hardware, ActionRequired::Warning, "Physical channel specified is not available through the cabled device connector used for the SCC carrier. To use the specified channel with an SCC, connect the SCC carrier to the appropriate connector on the cabled device and specify the new configuration through MAX."}}, - {-200852, {Category::Hardware, ActionRequired::Warning, "Given devices cannot be synchronized in a multiple-device task. Ensure that one of the devices in the task is in PXI slot 2, or specify the Synchronization Pulse Source and the Sample Clock Timebase Source to be from a device in PXI slot 2, even if that device is not in the task."}}, - {-200853, {Category::Hardware, ActionRequired::Warning, "Terminal specified must include the device name for the given multiple-device task. Include the device name in the terminal name. Example syntax is myDevice3/PFI4."}}, - {-200854, {Category::Hardware, ActionRequired::Warning, "Given devices cannot be synchronized in a multiple-device task because the Sample Clock Timebase Source specifies a different device from the Synchronization Pulse Source. Modify the Synchronization Pulse Source and/or the Sample Clock Timebase Source to be from the same device or leave one or both unspecified."}}, - {-200855, {Category::Hardware, ActionRequired::Warning, "Devices cannot be added to a task after configuring timing, triggering, buffers, and/or exported signals. Add all devices to the task before configuring other aspects of the task."}}, - {-200856, {Category::Hardware, ActionRequired::ImmediateAction, "Simulation disabling is not supported for this device, because it was created as a simulated device."}}, - {-200857, {Category::Other, ActionRequired::ImmediateAction, "Specified low pass cutoff frequency is not supported."}}, - {-200858, {Category::Hardware, ActionRequired::Warning, "To use Sample Clock as the Sample Timing Type for analog output on this device, call DAQmx Write before DAQmx Start."}}, - {-200859, {Category::Hardware, ActionRequired::Warning, "To use Sample Clock as the Sample Timing Type for analog output on this device, specify buffer size greater than 0 in DAQmx Configure Output Buffer."}}, - {-200860, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of specified AI Maximum Sound Pressure Level and AI Microphone Sensitivity settings is not supported by the device. Consider using a microphone with lower sensitivity. If clipping signals at high levels is acceptable, you can use the microphone with specified sensitivity as long as you reduce the AI Maximum Sound Pressure."}}, - {-200861, {Category::Configuration, ActionRequired::ImmediateAction, "Combination of specified AI Maximum Sound Pressure Level, AI Microphone Sensitivity, and other related AI property settings is not supported by the device. Change the values of the related AI properties or do not set them at all. If you do not set the related AI properties, NI-DAQmx sets them for you. Alternatively, consider using a microphone with lower sensitivity."}}, - {-200862, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices from a multiple-device task are in an unidentified PXI chassis, which is not supported. Identify the PXI chassis in MAX."}}, - {-200863, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock is not supported by the given device for tasks containing channels of the given type or timing type. DAQmx Wait for Next Sample Clock is only supported for the hardware-timed single-point timing type."}}, - {-200864, {Category::Other, ActionRequired::Warning, "Data Transfer Request Condition being set to When Acquisition Complete is only supported when the Reference Trigger Type is other than None. Change the Data Transfer Request Condition or configure a reference trigger for the task."}}, - {-200865, {Category::Other, ActionRequired::Warning, "Data Transfer Request Condition is set to When Acquisition Complete, but the Number of Samples per Channel is greater than the On Board Buffer Size. Decrease the Number of Samples per Channel, remove some channels from the task, or change the Data Transfer Request Condition."}}, - {-200866, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference and Offset Values. To keep the specified AO DAC Reference and Offset Values, change the AO Minimum and Maximum Values. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, - {-200867, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference Value. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. To keep the specified AO DAC Reference Value, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, - {-200868, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference Value. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. To keep the specified AO DAC Reference Value, change the AO Minimum and Maximum Values."}}, - {-200869, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Offset Value. To keep the specified AO Minimum and Maximum Values, supply an appropriate offset and specify the corresponding AO DAC Offset Value. To keep the specified AO DAC Offset Value, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC reference and specify the corresponding AO DAC Reference Value."}}, - {-200870, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Offset Value. To keep the specified AO Minimum and Maximum Values, supply an appropriate offset and specify the corresponding AO DAC Offset Value. To keep the specified AO DAC Offset Value, change the AO Minimum and Maximum Values."}}, - {-200871, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High, and AO DAC Offset Value. To keep the specified AO DAC Range and Offset Values, change the AO Minimum and Maximum Values. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, - {-200872, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range Low and High. To keep the specified AO DAC Range Low and High, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, - {-200873, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range Low and High. To keep the specified AO DAC Range Low and High, change the AO Minimum and Maximum Values."}}, - {-200874, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the low and/or high time while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, - {-200875, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the frequency and/or the duty cycle while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, - {-200876, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the low and/or high ticks while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, - {-200877, {Category::Other, ActionRequired::ImmediateAction, "Requested Every N Samples Event Interval is not supported for the given Data Transfer Mechanism and buffer size. To keep DMA or USB Bulk as the Data Transfer Mechanism, modify the buffer size and/or the Every N Samples Event Interval so the buffer size is an even multiple of the Every N Samples Event Interval. To keep the same Every N Samples Event Interval and buffer size, change the Data Transfer Mechanism to Interrupts if supported."}}, - {-200878, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 16-bit version of DAQmx Port Read. Use a version of DAQmx Port Read that supports wider digital ports."}}, - {-200879, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 16-bit version of DAQmx Port Write. Use the version of DAQmx Port Write that supports wider digital ports."}}, - {-200880, {Category::Other, ActionRequired::Warning, "Zero is not a supported value for the Every N Samples Event Interval. Specify an event interval greater than zero."}}, - {-200881, {Category::Other, ActionRequired::Warning, "Every N Samples Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, - {-200882, {Category::Other, ActionRequired::ImmediateAction, "Specified channel is not a valid global channel. Ensure that the Channel Name matches a channel in the Data Neighborhood in MAX. Check for typing errors."}}, - {-200883, {Category::Other, ActionRequired::Warning, "Task specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support at least one of the specified properties. Save the task with 'allow interactive editing' set to false, or specify only properties supported by the DAQ Assistant."}}, - {-200884, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support at least one of the specified properties. Save the channel with 'allow interactive editing' set to false, or specify only properties supported by the DAQ Assistant."}}, - {-200885, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of Reference Clock Source and Sample Clock Timebase Source specified is not supported by this device. To use the Reference Clock Source specified, do not set the Sample Clock Timebase Source. NI-DAQmx will set it to its default value: OnboardClock. To use the Sample Clock Timebase Source specified, do not set the Reference Clock Source. NI-DAQmx will set it to its default value: none."}}, - {-200886, {Category::Other, ActionRequired::ImmediateAction, "Start Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, - {-200887, {Category::Other, ActionRequired::ImmediateAction, "Start Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, - {-200888, {Category::Other, ActionRequired::ImmediateAction, "Reference Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, - {-200889, {Category::Other, ActionRequired::ImmediateAction, "Reference Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, - {-200890, {Category::Other, ActionRequired::ImmediateAction, "Active Edge requested is not supported because the Sample Clock Source is OnboardClock. To use the selected Sample Clock Source, set Sample Clock Active Edge to Rising Edge."}}, - {-200891, {Category::Hardware, ActionRequired::Warning, "Export of sample clock is supported by this device only when the Sample Clock Source is OnboardClock. Consider alternative methods for gaining access to the clock signal."}}, - {-200892, {Category::Hardware, ActionRequired::Warning, "When the Sample Timing Type is Change Detection and the Trigger Type is Digital Pattern Match, the relevant physical channels must be consistent for this device. Specifically, the Change Detection Rising Edge Physical Channels must match the physical channels from the Trigger Digital Pattern Source for which the Trigger Digital Pattern string is 0 or 1."}}, - {-200893, {Category::Hardware, ActionRequired::Warning, "Change Detection Rising and Falling Edge Physical Channels must be set identically on this device."}}, - {-200894, {Category::Other, ActionRequired::Warning, "Number of values specified via the Start Trigger Digital Pattern does not match the number of physical lines requested via the Start Trigger Digital Pattern Source. Change one or both of the properties so these two numbers are equal."}}, - {-200895, {Category::Other, ActionRequired::Warning, "Number of values specified in Reference Trigger Digital Pattern does not match the number of physical lines requested in Reference Trigger Digital Pattern Source. Change one or both of the properties so these two numbers are equal."}}, - {-200896, {Category::Hardware, ActionRequired::Warning, "Export of the requested trigger is supported on this device only when the corresponding Trigger Type is Digital Edge."}}, - {-200897, {Category::Hardware, ActionRequired::ImmediateAction, "Task contains a physical channel not supported by this device, given the requested Sample Timing Type. To keep the Sample Timing Type, use physical lines from port0/line0 through port3/line7. To access the requested channel, change the Sample Timing Type."}}, - {-200898, {Category::Hardware, ActionRequired::ImmediateAction, "Partial use of physical lines within a physical port is not supported by this device, given the requested Sample Timing Type. Consider specifying the entire port and tristating the lines you do not want driven."}}, - {-200899, {Category::Hardware, ActionRequired::Warning, "Port 1 cannot be used without port 0 on this device given the Sample Timing Type. You can use ports 0 and 2 by themselves. To use port 1, you also need to use port 0."}}, - {-200900, {Category::Hardware, ActionRequired::Warning, "Port 3 cannot be used without port 2 on this device given the Sample Timing Type. You can use ports 0 and 2 by themselves. To use port 3, you also need to use port 2."}}, - {-200901, {Category::Other, ActionRequired::ImmediateAction, "Digital Pattern string specified contains an invalid character."}}, - {-200902, {Category::Other, ActionRequired::Warning, "Data Voltage Low Level and Data Voltage High Level must be within a common voltage range."}}, - {-200903, {Category::Configuration, ActionRequired::ImmediateAction, "Reference clock is not supported by this device. Do not set the Reference Clock property."}}, - {-200904, {Category::Configuration, ActionRequired::ImmediateAction, "Start Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Start Trigger Type property. NI-DAQmx automatically selects a compatible Start Trigger Type setting. To use the requested Start Trigger Type, select a different Timing Type."}}, - {-200905, {Category::Configuration, ActionRequired::ImmediateAction, "Handshake Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Handshake Trigger Type property. NI-DAQmx automatically selects a compatible Handshake Trigger Type setting. To use the requested Handshake Trigger Type, select a different Timing Type."}}, - {-200906, {Category::Configuration, ActionRequired::ImmediateAction, "Pause Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Pause Trigger Type property. NI-DAQmx automatically selects a compatible Pause Trigger Type setting. To use the requested Pause Trigger Type, select a different Timing Type."}}, - {-200907, {Category::Configuration, ActionRequired::ImmediateAction, "Reference Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Reference Trigger Type property. NI-DAQmx automatically selects a compatible Reference Trigger Type setting. To use the requested Reference Trigger Type, select a different Timing Type."}}, - {-200908, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Clock Source requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Clock Source property. NI-DAQmx automatically selects a compatible Sample Clock Source setting. To use the requested Sample Clock Source, select a different Timing Type."}}, - {-200909, {Category::Configuration, ActionRequired::ImmediateAction, "20 Mhz Timebase Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the 20 Mhz Timebase Output Terminal property. NI-DAQmx automatically selects a compatible20 Mhz Timebase Output Terminal. To use the requested 20 Mhz Timebase Output Terminal, select a different Timing Type."}}, - {-200910, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Clock Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Clock Output Terminal property. NI-DAQmx automatically selects a compatible Sample Clock Output Terminal. To use the requested Sample Clock Output Terminal, select a different Timing Type."}}, - {-200911, {Category::Configuration, ActionRequired::ImmediateAction, "Start Trigger Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Start Trigger Output Terminal property. NI-DAQmx automatically selects a compatible Start Trigger Output Terminal. To use the requested Start Trigger Output Terminal, select a different Timing Type."}}, - {-200912, {Category::Configuration, ActionRequired::ImmediateAction, "Reference Trigger Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Reference Trigger Output Terminal property. NI-DAQmx automatically selects a compatible Reference Trigger Output Terminal. To use the requested Reference Trigger Output Terminal, select a different Timing Type."}}, - {-200913, {Category::Configuration, ActionRequired::ImmediateAction, "Ready For Transfer Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Ready For Transfer Event Output Terminal property. NI-DAQmx automatically selects a compatible Reference Trigger Event Output Terminal. To use the requested Ready For Transfer Trigger Event Output Terminal, select a different Timing Type."}}, - {-200914, {Category::Configuration, ActionRequired::ImmediateAction, "Change Detection Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Change Detection Event Output Terminal property. NI-DAQmx automatically selects a compatible Change Detection Output Terminal. To use the requested Change Detection Event Output Terminal, select a different Timing Type."}}, - {-200915, {Category::Configuration, ActionRequired::ImmediateAction, "Handshake Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Handshake Event Output Terminal property. NI-DAQmx automatically selects a compatible Handshake Event Output Terminal. To use the requested Handshake Event Output Terminal, select a different Timing Type."}}, - {-200916, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Timebase Divisor requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Timebase Divisor property. NI-DAQmx automatically selects a compatible Sample Timebase Divisor. To use the requested Sample Timebase Divisor, select a different Timing Type."}}, - {-200917, {Category::Hardware, ActionRequired::Warning, "Every N Samples Event Interval requested must be an integer multiple of two for analog output tasks on this device."}}, - {-200918, {Category::Other, ActionRequired::Warning, "Global channel name specified is already used for a task in the Data Neighborhood. NI-DAQmx does not support overlapping task and global channel names. Select a different name."}}, - {-200919, {Category::Other, ActionRequired::Warning, "Task name specified is already used for a global channel in the Data Neighborhood. NI-DAQmx does not support overlapping task and global channel names. Select a different name."}}, - {-200920, {Category::Other, ActionRequired::ImmediateAction, "Requested Every N Samples Event Interval is not supported for the given buffer size. Modify the buffer size and/or the Every N Samples Event Interval so the buffer size is an even multiple of the Every N Samples Event Interval."}}, - {-200921, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the only digital channels with multiple lines supported by the DAQ Assistant are entire ports. Save the channel with 'allow interactive editing' set to false. Alternatively, change the channel so it contains an entire port, or break it up into channels with individual lines."}}, - {-200922, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support digital channels with different settings for different lines. Save the channel with 'allow interactive editing' set to false. Alternatively, set all the lines in the channel identically, or break the channel up into channels with individual lines."}}, - {-200923, {Category::Configuration, ActionRequired::ImmediateAction, "Wait Mode property is not supported for the given non-buffered task. Do not use this property inside the task, or change the task to be buffered."}}, - {-200924, {Category::Other, ActionRequired::ImmediateAction, "Wait Mode specified is not supported for the given non-buffered task. Specify a different Wait Mode, or change the task to be buffered."}}, - {-200925, {Category::Other, ActionRequired::ImmediateAction, "Rising and Falling Edge Physical Channels for Change Detection requested are not supported because at least one of the channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, - {-200926, {Category::Other, ActionRequired::ImmediateAction, "Rising and Falling Edge Physical Channels for Change Detection requested are not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, - {-200927, {Category::Configuration, ActionRequired::Warning, "Trigger Type was set to Digital Pattern Match but no physical channels were specified as the Digital Pattern Source. Specify physical channels for property."}}, - {-200928, {Category::Hardware, ActionRequired::Warning, "Pattern match hardware for this device can only be used for one trigger."}}, - {-200929, {Category::Hardware, ActionRequired::ImmediateAction, "Two specified ports alone are not supported given the Sample Timing Type on this device. To use only two ports, specify ports 0 and 1, or ports 2 and 3. To use the two ports specified, use four ports (0, 1, 2, and 3) on the device, and disregard data from the unwanted ports."}}, - {-200930, {Category::Hardware, ActionRequired::ImmediateAction, "Two specified ports alone are not supported given the Sample Timing Type on this device. To use only two ports, specify ports 0 and 1, or ports 2 and 3. To use the two ports specified, use four ports (0, 1, 2, and 3) on the device. Ensure the lines from the unwanted ports are unwired, tristated, or are connected so no equipment can be damaged."}}, - {-200931, {Category::Hardware, ActionRequired::ImmediateAction, "Three ports alone are not supported given the Sample Timing Type on this device. Specify four ports (0, 1, 2, and 3), and disregard data from the unwanted port."}}, - {-200932, {Category::Hardware, ActionRequired::ImmediateAction, "Three ports alone are not supported given the Sample Timing Type on this device. Specify four ports (0, 1, 2, and 3). Ensure the lines from the unwanted port are unwired, tristated, or are connected so no equipment can be damaged."}}, - {-200933, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Expiration Date is not specified, and Channel Calibration Enable property is set to True. To use channel calibration, specify the Expiration Date; otherwise, set Channel Calibration Enable to false."}}, - {-200934, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Expiration Date has passed, and the Channel Calibration Apply Calibration if Expired property is False. Update the channel calibration, including the Expiration Date, or set Apply Calibration If Expired to True."}}, - {-200935, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Scale Type is not specified and Channel Calibration Enable property is set to True. To use channel calibration, specify the Scale Type; otherwise, set Channel Calibration Enable to false."}}, - {-200936, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Table Pre-Scaled Values property is not specified when the Channel Calibration Scale Type is Table."}}, - {-200937, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Table Scaled Values property is not specified when the Channel Calibration Scale Type is Table."}}, - {-200938, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the number of elements in the array specified for the Channel Calibration Table Pre-Scaled Values property is not equal to the number of elements in the array specified for Channel Calibration Table Scaled Values."}}, - {-200939, {Category::Other, ActionRequired::ImmediateAction, "The Channel Calibration Table Scale Pre-Scaled Values specified is not supported, because one of the numbers appears more than once in the specified array. Ensure unique numbers are specified in the array."}}, - {-200940, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Polynomial Forward Coefficients property is not specified when the Channel Calibration Scale Type is Polynomial."}}, - {-200941, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Polynomial Reverse Coefficients property is not specified when the Channel Calibration Scale Type is Polynomial."}}, - {-200942, {Category::Other, ActionRequired::ImmediateAction, "Call mechanism set to synchronous event callbacks is not supported for DAQmx events on this platform. To use DAQmx events on this platform, set the call mechanism to asynchronous event callbacks."}}, - {-200943, {Category::Configuration, ActionRequired::Warning, "Operation failed because the Data Transfer Custom Threshold property is not set, and the Data Transfer Request Condition is set to Onboard Memory Custom Threshold. Specify a value for the Data Transfer Custom Threshold, or change the Data Transfer Request Condition."}}, - {-200944, {Category::Configuration, ActionRequired::Warning, "Operation failed because the Data Transfer Custom Threshold property is set, and no value is specified for the Data Transfer Request Condition. To use the specified Data Transfer Custom Threshold, set Data Transfer Request Condition to Onboard Memory Custom Threshold. If you set Data Transfer Request Condition to any value other than Onboard Memory Custom Threshold, the Data Transfer Custom Threshold property is ignored."}}, - {-200945, {Category::Hardware, ActionRequired::Warning, "Operation failed because the Data Transfer Request Condition is set to Onboard Memory Custom Threshold. This device supports this Data Transfer Request Condition only when the Data Transfer Mechanism is set to DMA. To use the specified Data Transfer Request Condition, set Data Transfer Mechanism to DMA. Otherwise, specify a different Data Transfer Request Condition."}}, - {-200946, {Category::Hardware, ActionRequired::Warning, "Task could not be started, because the driver could not write enough data to the device. This was due to system and/or bus-bandwidth limitations. Reduce the number of programs your computer is executing concurrently. If possible, perform operations with heavy bus usage sequentially instead of in parallel. If you can't eliminate the problem, contact National Instruments support at ni.com/support."}}, - {-200947, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Events are not supported in this version of LabVIEW. To use DAQmx Events, install LabVIEW 7.1 and the LabVIEW 7.1.1 patch. The patch is available at ni.com/downloads."}}, - {-200948, {Category::Other, ActionRequired::Warning, "DAQmx tasks cannot provide a source for a Timed Loop and contain a DAQmx Signal Event at the same time. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Tasks that contain a Timed Loop can contain DAQmx Events as long as the events are not a type of DAQmx Signal Event. See documentation for more details."}}, - {-200949, {Category::Other, ActionRequired::Warning, "You can only register one DAQmx Signal Event at a time on a task. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Unregister the event before registering it again."}}, - {-200950, {Category::Other, ActionRequired::Warning, "Done Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, - {-200951, {Category::Other, ActionRequired::Warning, "DAQmx Write for counter output detected that no sample clock has occurred since the last call to write which means that the writes are happening at a rate that exceeds the sample clock rate. To avoid this problem use the Wait for Next Sample Clock in your application."}}, - {-200952, {Category::Hardware, ActionRequired::Warning, "Event Output Terminal cannot include the Trigger Source terminal in the same task for this device."}}, - {-200953, {Category::Hardware, ActionRequired::Warning, "Start Trigger Source cannot be the same as the Sample Clock Source in the same task for this device."}}, - {-200954, {Category::Hardware, ActionRequired::Warning, "Sample Clock Output Terminal cannot include the Start Trigger Source terminal in the same task for this device."}}, - {-200955, {Category::Configuration, ActionRequired::ImmediateAction, "Two channels in the task have different raw data format property values, which is not supported. All channels in the task must have identical raw data format property values when raw data compression is configured. Only include channels with identical raw data format property values in the task when compression is configured."}}, - {-200956, {Category::Other, ActionRequired::Warning, "Raw data compression has been configured for a channel that does not support raw data compression. Remove the channel from the task or set the Raw Data Compression Type to None."}}, - {-200957, {Category::Other, ActionRequired::Warning, "Compressed Sample Size exceeds the Resolution of the channel. Configure the Compressed Sample Size to be less than or equal to the channel Resolution."}}, - {-200958, {Category::Hardware, ActionRequired::Warning, "TEDS interface device configured in MAX was not detected. Make sure that the type of TEDS interface device configured in MAX is correct and that the device is properly connected."}}, - {-200959, {Category::Configuration, ActionRequired::ImmediateAction, "Two channels in the task have different raw data compression property values, which is not supported. All channels in the task must have the same raw data compression property values."}}, - {-200960, {Category::Software, ActionRequired::Warning, "DAQmx software event cannot be registered because the task is running. Register all your DAQmx software events prior to starting the task."}}, - {-200961, {Category::Hardware, ActionRequired::ImmediateAction, "Firmware for the device could not be downloaded, and the device cannot be used. This failure is due to a missing or damaged firmware image file. Reinstall the driver to eliminate this error."}}, - {-200962, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be downloaded, and the device cannot be used. The failure may be due to damaged hardware. Contact National Instruments support at ni.com/support"}}, - {-200963, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Sample Timing Type is not allowed, because there is already another task with analog output channels from the same device configured for a different Sample Timing Type. This is not supported on this device. Change your application so that all the channels from this device are used in one task, set Sample Timing Type to On Demand for all tasks, or consider using two devices for the two tasks."}}, - {-200964, {Category::Other, ActionRequired::ImmediateAction, "Every N Samples Acquired Into Buffer Event cannot be registered, because it is not supported for output tasks. Use the Every N Samples Transferred From Buffer Event."}}, - {-200965, {Category::Other, ActionRequired::ImmediateAction, "Every N Samples Transferred from Buffer Event cannot be registered, because it is not supported for input tasks. Use the Every N Samples Acquired Into Buffer Event."}}, - {-200966, {Category::Other, ActionRequired::Warning, "Every N Samples Acquired Into Buffer Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, - {-200967, {Category::Other, ActionRequired::Warning, "Every N Samples Transferred From Buffer Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, - {-200968, {Category::Other, ActionRequired::Warning, "Requested operation cannot be performed inside the aysnchronous DAQmx Event callback thread. Use synchronous callback mechanism or perform the operation in a different thread."}}, - {-200969, {Category::Other, ActionRequired::Warning, "TEDS operation failed because the corresponding physical channel is not an analog input channel."}}, - {-200970, {Category::Hardware, ActionRequired::Warning, "Every N Samples Event Interval requested must be an integer multiple of two for analog input tasks on this device."}}, - {-200971, {Category::Configuration, ActionRequired::Warning, "Property cannot be set because the task is not running or committed. Start or commit the task prior to setting the specified property."}}, - {-200972, {Category::Configuration, ActionRequired::Warning, "Property cannot be set because the task is not running. Start the task prior to setting the specified property."}}, - {-200973, {Category::Configuration, ActionRequired::Warning, "Property cannot be queried because the task is not running. Start the task prior to getting the specified property."}}, - {-200974, {Category::Hardware, ActionRequired::ImmediateAction, "Allow Connecting DAC Reference to Ground at Runtime set to True is not supported by this device when DAC Reference Voltage Source is set to External."}}, - {-200975, {Category::Configuration, ActionRequired::ImmediateAction, "Querying the Counter Output Ready for New Value property is not supported by this device when the Sample Mode is set to Hardware Timed Single Point. Use DAQmx Wait for Next Sample Clock before DAQmx Write to make sure the counter is ready to accept the new value."}}, - {-200976, {Category::Other, ActionRequired::Warning, "Thermocouple CJC (cold junction compensation) Channel specified cannot be used for CJC because the corresponding physical channel does not support temperature measurement. Select a different CJC Channel, set CJC Source to Internal, or set CJC Source to Constant Value and use CJC Value to specify the temperature of the cold junction."}}, - {-200977, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with Allow Interactive Editing set to True, because the DAQ Assistant does not support polynomial calibration scales. Save the channel with Allow Interactive Editing set to False, or use a table calibration scale."}}, - {-200978, {Category::Software, ActionRequired::Warning, "DAQmx Software Events cannot be registered with different call mechanisms on the same task. The software events for a task must all be registered with synchronous callbacks or they must be all registered with asynchronous callbacks."}}, - {-200979, {Category::Other, ActionRequired::Warning, "When you use synchronous events, you can clear, stop, abort, unreserve, or start a task only from the thread in which you registered synchronous events."}}, - {-200980, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Every N Samples Transferred from Buffer Event is not supported by the channel types or devices in your task."}}, - {-200981, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Every N Samples Acquired into Buffer Event is not supported by the channel types or devices in your task."}}, - {-200982, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Signal Events are not supported by your device. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event."}}, - {-200983, {Category::Configuration, ActionRequired::Warning, "You only can get the specified property while the task is reserved, committed or while the task is running. Reserve, commit or start the task prior to getting the property."}}, - {-200984, {Category::Other, ActionRequired::Warning, "Auto Start cannot be set to True when one or more DAQmx events are registered for the task. Set Auto Start to False and start the task manually."}}, - {-200985, {Category::Other, ActionRequired::Warning, "DAQmx Write parameter Auto Start cannot be set to True when one or more DAQmx events are registered for the task. Set Auto Start to false and start the task manually."}}, - {-200986, {Category::Software, ActionRequired::Warning, "DAQmx software event cannot be unregistered because the task is running. Unregister all your DAQmx software events prior to starting the task."}}, - {-200987, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Signal Event type requested is not supported by the channel types or the devices in your task. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Refer to product documentation for more details on which DAQmx Signal Events are supported by the channel types and devices in your task."}}, - {-200988, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of requested values for Read Wait Mode and Wait ffor Next Sample Clock Wait Mode properties is not supported for the given task on this device. Set both properties to Wait for Interrupt or do not set either of the properties to Wait for Interrupt."}}, - {-200989, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of requested values for Read Wait Mode and Wait for Next Sample Clock Wait Mode properties is not supported for the given task on this device. Set both properties to Wait for Interrupt or set Read Wait Mode to a value other than Wait for Interrupt."}}, - {-200990, {Category::Other, ActionRequired::Warning, "All synchronous events for the task must be registered from the same thread."}}, - {-200991, {Category::Other, ActionRequired::Warning, "Task cannot be stopped, because at least one installed event handler has not been removed. Remove all installed event handlers by calling CNiDAQmxEvent::RemoveEventHandler or CNiDAQmxEvent::RemoveAllEventHandlers. See the documentation for more information."}}, - {-200992, {Category::Software, ActionRequired::Warning, "DAQmx Software Events are generated too quickly for the driver to keep up, and some of them have been lost. Reduce the rate at which your application is generating the events. Consider reconfiguring the events you are using, or using different events."}}, - {-200993, {Category::Other, ActionRequired::Warning, "DAQmx Write failed, because it was called before the previously written value was output. This is likely a result of the sample clock period being shorter than the period of the generated pulse train. To correct this issue, increase your sample clock period and/or reduce the period of the generated pulse train."}}, - {-200994, {Category::Configuration, ActionRequired::Warning, "Requested property cannot be set while the task is running and the Sample Mode is set to Hardware Timing Single Point. Use DAQmx Write instead of setting the property."}}, - {-200995, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Memory Mapping for Programmed IO Enable value, True, is not supported when Sample Mode is set to Hardware Timed Single Point. Change one or both of the properties."}}, - {-200996, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, which is the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, - {-200997, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Sample Timing Type value, On Demand, is not supported when Sample Mode is Hardware Timed Single Point. Change Sample Timing Type and/or Sample Mode."}}, - {-200998, {Category::Hardware, ActionRequired::Warning, "Hardware Timed Single Point is not a supported Sample Mode for the specified Measurement Type. Change Sample Mode and/or Measurement Type."}}, - {-200999, {Category::Configuration, ActionRequired::ImmediateAction, "Requested property, Ready For New Value, is not supported when the Sample Timing Type is On Demand. To use the Ready For New Value property, change the Sample Timing Type."}}, - {-201000, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Events are not supported in this version of LabVIEW. LabVIEW 8.0 or later is required to use DAQmx Events."}}, - {-201001, {Category::Other, ActionRequired::Warning, "Sample Clock Rate requested is supported only if Enhanced Alias Rejection Enable is True. Set Enhanced Alias Rejection Enable to True or increase the Sample Clock Rate."}}, - {-201002, {Category::Other, ActionRequired::Warning, "Sample Clock Rate must match the frequency of the internal timebase specified as the Sample Clock Source. To use the specified Sample Clock Rate, set the Sample Clock Source to OnboardClock. To use the specified timebase as the Sample Clock, set the Sample Clock Rate to the frequency of that timebase."}}, - {-201003, {Category::Hardware, ActionRequired::Warning, "Device cannot be accessed. Possible causes: Device is no longer present in the system. Device is not powered. Device is powered, but was temporarily without power. Device is damaged. Ensure the device is properly connected and powered. Turn the computer off and on again. If you suspect that the device is damaged, contact National Instruments at ni.com/support."}}, - {-201004, {Category::Hardware, ActionRequired::Warning, "Device does not support simultaneous calibration of multiple channels. Calibrate channels one channel at a time, passing individual channels to different invocations of DAQmx Setup Calibration."}}, - {-201005, {Category::Other, ActionRequired::Warning, "Invoke DAQmx Setup Calibration before invoking the corresponding DAQmx Adjust Calibration."}}, - {-201006, {Category::Hardware, ActionRequired::Warning, "Device does not support an external calibration password."}}, - {-201007, {Category::Other, ActionRequired::Warning, "Generate or finite \"Wait\" instruction expected before \"If-Else\" block. Insert a \"Generate\" or finite \"Wait\" instruction before the If-Else block."}}, - {-201008, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"Generate\" instruction before the \"If-Else\" block."}}, - {-201009, {Category::Other, ActionRequired::Warning, "Length of waveform subset is too small for the \"Generate\" instruction before \"If-Else\" block."}}, - {-201010, {Category::Other, ActionRequired::Warning, "Marker position specified is too close to the end of the waveform in the \"Generate\" statement before the \"If-Else\" block."}}, - {-201011, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"Wait\" instruction before the \"If-Else\" block."}}, - {-201012, {Category::Other, ActionRequired::Warning, "Clear Trigger instruction cannot be the last instruction in an \"If-Else\" block."}}, - {-201013, {Category::Other, ActionRequired::Warning, "If-Else blocks are not allowed in \"Repeat Until\" loops."}}, - {-201014, {Category::Other, ActionRequired::Warning, "If-Else blocks are not allowed in \"Finite Repeat\" loops. If possible, remove the \"Repeat\" and \"End Repeat\" instructions and explicitly duplicate the instructions originally in the loop the desired number of times."}}, - {-201015, {Category::Other, ActionRequired::Warning, "PLL lock operation failed or timed out. Ensure the module is fully inserted into the carrier."}}, - {-201016, {Category::Other, ActionRequired::Warning, "Too many compiled instructions in loop. \"Generate\" and \"Wait\" instructions each result in at least one compiled instruction. Each marker adds an additional compiled instruction. Clear instruction does not result in a compiled instruction. If possible, reduce the number of generate instructions by concatenating the waveforms on two or more consecutive generate instructions."}}, - {-201017, {Category::Other, ActionRequired::ImmediateAction, "Byte order marker of the specified file is not supported by NI-DAQmx. For tab-delimeted files, NI-DAQmx supports UTF-8, UTF-16 / UCS-2 little endian, and UTF-32 / UCS-4 little endian. For ini files, NI-DAQmx only supports UTF-8. Save the file in one of the supported formats with the appropriate byte order marker."}}, - {-201018, {Category::Hardware, ActionRequired::Warning, "You have selected an external clock source for the task, but the device importing the clock does not have the longest pipeline of all the devices in the task. This leads to an incomplete acquisition on that device because the device will not receive enough Sample Clock pulses. Route the external clock signal into the device with the longest pipeline. Refer to device documentation for information on pipeline depth."}}, - {-201019, {Category::Hardware, ActionRequired::ImmediateAction, "Pause triggering is not supported in a multi-device task. To configure pause triggering in a multi-device configuration, you must use no more than one device per task and manually route the clock signals in the application."}}, - {-201020, {Category::Other, ActionRequired::Warning, "Lines specified do not support change detection. Select lines that support change detection."}}, - {-201021, {Category::Other, ActionRequired::Warning, "Write recovery could not complete before detecting another Sample Clock pulse. Reduce the Sample Clock rate, increase the frequency of the generated pulse train, or set Write Recovery Mode to Poll."}}, - {-201022, {Category::Other, ActionRequired::Warning, "Write recovery could not complete before detecting another Sample Clock pulse. Reduce the Sample Clock rate or increase the frequency of the generated pulse train."}}, - {-201023, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Write failed because the previously written value has not been generated. This error can occur if the Sample Clock period is shorter than the period of the generated pulse train. Reduce the Sample Clock rate, increase the frequency of the generated pulse train, or set Write Recovery Mode to Poll."}}, - {-201024, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Write failed because the previously written value has not been generated. This error can occur if the Sample Clock period is shorter than the period of the generated pulse train. Reduce the Sample Clock rate or increase the frequency of the generated pulse train."}}, - {-201025, {Category::Hardware, ActionRequired::ImmediateAction, "Non-buffered hardware-timed operations are not supported for this device and Channel Type. Set the Buffer Size to greater than 0, do not configure Sample Clock timing, or set Sample Timing Type to On Demand."}}, - {-201026, {Category::Hardware, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O which is not supported for hardware-timed operations for this device and Channel Type. Change Data Transfer Mechanism, do not configure Sample Clock timing, or set Sample Timing Type to On Demand."}}, - {-201027, {Category::Configuration, ActionRequired::ImmediateAction, "Counter task detected three or more missed Sample Clock pulses. Samples were lost before the application could read them. Decrease the Sample Clock rate or restructure the application so that DAQmx Read runs more frequently. Setting the Convert Error to Warning property to True does not eliminate the error, because samples were lost."}}, - {-201028, {Category::Other, ActionRequired::Warning, "Name specified is already in use. Specify a name that is not currently in use."}}, - {-201029, {Category::Hardware, ActionRequired::Warning, "Device specified is already connected to a RTSI cable. To connect the device to another RTSI cable, remove it from the RTSI cable to which it is currently connected."}}, - {-201030, {Category::Hardware, ActionRequired::Warning, "Device specified cannot be connected to a RTSI cable. If the device does not have a RTSI connector, you cannot connect it to a RTSI cable. If the device is a PXI device then it is automatically connected to the PXI backplane, and therefore does not need to be manually configured as connected to a RTSI cable."}}, - {-201031, {Category::Other, ActionRequired::Warning, "Address specified is already in use. Specify an address that is not in use."}}, - {-201032, {Category::Other, ActionRequired::ImmediateAction, "SCXI slot number specified is invalid. Specify a slot number that is valid for the specified chassis."}}, - {-201033, {Category::Other, ActionRequired::Warning, "Slot specified is already occupied. Either specify a slot that is unoccupied or remove the module occupying the desired slot."}}, - {-201034, {Category::Other, ActionRequired::ImmediateAction, "Cascade digitization mode is not supported for SCXI. Select a different digitization mode."}}, - {-201035, {Category::Configuration, ActionRequired::Warning, "Digitizing Device Channels property is specified, but the Digitization Mode property is not set to parallel. Either remove the Digitizing Device Channels property or set the Digitizing property to parallel."}}, - {-201036, {Category::Other, ActionRequired::ImmediateAction, "Format of the time value specified is invalid. Enter the time value in the format: YYYY-MM-DDTHH:mm:ssZ UTC Where YYYY is the four digit year, MM is the two digit month, DD is the two digit day of the month, HH is the two digit hour of the day (24 hour clock), mm is the two digit minutes into the hour, and ss is the two digit seconds into the minute. T is a literal separator between date and time. For example, the string: 2004-10-19T16:30:45Z UTC Represents October 19th, 2004 at 4:30:45 PM GMT."}}, - {-201037, {Category::Other, ActionRequired::ImmediateAction, "Time value specified is invalid. Ensure that the time entered has only valid values for each of the fields in the time format. For example: the month section must be between 01 and 12."}}, - {-201038, {Category::Configuration, ActionRequired::Warning, "Author property cannot be set on a local channel. Remove the author property from the local channel."}}, - {-201039, {Category::Configuration, ActionRequired::Warning, "Object lacks a required property. Add the required property to the object."}}, - {-201040, {Category::Configuration, ActionRequired::Warning, "Object specified contains an extra property. Remove the extra property from the object."}}, - {-201041, {Category::Other, ActionRequired::Warning, "Product type and product number specified do not refer to the same product. Remove either the product type or the product number from the object."}}, - {-201042, {Category::Hardware, ActionRequired::Warning, "Device specification provided does not match any hardware in the system. Change the device specification to match a device present in your system. You can also change your device specification to be less specific."}}, - {-201043, {Category::Hardware, ActionRequired::Warning, "Device specification provided matches more than one device in the system. Change the device specification to be more specific."}}, - {-201044, {Category::Hardware, ActionRequired::ImmediateAction, "Specified accessory name is invalid. The name of the accessory should be in this format: accessoryProductType / connectedDeviceIdentifier / connectorNumber Connector numbers start at zero. A device with only one connector only has a connector zero."}}, - {-201046, {Category::Hardware, ActionRequired::Warning, "Accessory type specified cannot be connected to the specified device. Enter an accessory type that can be connected to the device specified."}}, - {-201047, {Category::Hardware, ActionRequired::Warning, "Device and connector specified by the accessory can not be configured because there is already an accessory configured for that connector and device. Enter a device and connector that is not currently occupied, or remove the configuration of the existing accessory."}}, - {-201048, {Category::Other, ActionRequired::Warning, "Accessory setting specified does not apply to the accessory type. Remove the non-applicable accessory setting from the accessory specification."}}, - {-201049, {Category::Hardware, ActionRequired::Warning, "Digitizing device specified for the SCC carrier is not capable of digitizing for SCC carriers. Specify a device that is capable of digitizing for SCC carriers."}}, - {-201050, {Category::Other, ActionRequired::Warning, "Carrier specified for the SCC module could not be found. Ensure that the SCC carrier specified for the module is also defined in the configuration file."}}, - {-201051, {Category::Hardware, ActionRequired::Warning, "Controlling device specified for the TEDS interface is not capable of controlling a TEDS interface."}}, - {-201052, {Category::Other, ActionRequired::Warning, "Physical channels specified for the TEDS interface are too great in number for the specified type of TEDS interface. Reduce the number of physical channels specified."}}, - {-201053, {Category::Other, ActionRequired::Warning, "Physical channel specified for the TEDS interface is already connected to a TEDS interface. Enter a physical channel that is not currently occupied, or remove the existing physical channel configuration."}}, - {-201054, {Category::Other, ActionRequired::ImmediateAction, "Enumerated value specified is not a valid value for that enumeration. The enumerated value may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or change the value to one supported by the version of NI-DAQmx you have installed."}}, - {-201055, {Category::Configuration, ActionRequired::Warning, "Object contains two references to the same property. Remove one of the duplicate properties."}}, - {-201056, {Category::Other, ActionRequired::ImmediateAction, "Numeric value specified is in an invalid format. Remove any non-numeric characters from the specified numeric value."}}, - {-201057, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware product type specified is invalid. Enter a valid product type. If the product number you entered is an actual product type, ensure the product type is appropriate for the object you are configuring. For example, do not use the product type of a PXI device where an SCXI module is expected."}}, - {-201058, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware product number specified is invalid. Enter a valid product number. If the product number you entered is an actual product number, ensure the product type is appropriate for the object you are configuring. For example, do not use the product number of a PXI device where an SCXI module is expected."}}, - {-201059, {Category::Hardware, ActionRequired::Warning, "Device information retrieval failed because PXI chassis is not identified. Use MAX or nipxiconfig to identify your chassis."}}, - {-201060, {Category::Other, ActionRequired::ImmediateAction, "Syntax error encountered in INI file. Valid INI syntax allows for the following 3 types of lines: section headers, items, and comments. A section header begins with an open bracket and ends with a closed bracket. Example: [mySection] An item has an equals sign in between two strings. Example: myItem = 46 A comment begins with a semicolon. Example: ; This is my comment."}}, - {-201061, {Category::Configuration, ActionRequired::Warning, "Property specified cannot return its value because the custom scale for the channel does not include the value in the range or table of pre-scaled values. Ensure that the custom scale includes all potential values for this property in the range or table of pre-scaled values, or use a linear or polynomial scale."}}, - {-201062, {Category::Other, ActionRequired::Warning, "Selected lines do not support buffered operations. Ensure only lines that support buffered operations are being used in the task. If using change detection timing, the task must be changed to non-buffered to support these lines."}}, - {-201063, {Category::Hardware, ActionRequired::Warning, "Device ID value in the driver does not match the device ID value from the device. Ensure the correct driver is being used for this device."}}, - {-201064, {Category::Other, ActionRequired::Warning, "Configuration file is missing the required header fields. Add required header information at the top of the text file prior to any data."}}, - {-201065, {Category::Configuration, ActionRequired::Warning, "Configuration file contains property names or values that are not contained within a valid table. Add the appropriate start of table string prior to property names."}}, - {-201066, {Category::Configuration, ActionRequired::Warning, "Property setting found in a column with no property name heading. Remove the property setting from the column or add the property name to the table definition."}}, - {-201067, {Category::Other, ActionRequired::ImmediateAction, "Configuration file contains an invalid start of table identifier. The table identifier may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the table from the file."}}, - {-201068, {Category::Other, ActionRequired::ImmediateAction, "Configuration file string contains invalid character escape sequence."}}, - {-201069, {Category::Other, ActionRequired::ImmediateAction, "Local channel name specified is invalid. Local channel names are of the form /. Example: task1/chan1"}}, - {-201070, {Category::Configuration, ActionRequired::Warning, "Task does not include the Channels property. Specify the Channels property for this task."}}, - {-201071, {Category::Other, ActionRequired::Warning, "Task references a local channel from another task. Reference only global channels and local channels that belong to this task."}}, - {-201072, {Category::Other, ActionRequired::Warning, "Task references a local channel that does not exist in this task. Remove the reference to the missing local channel or create the local channel."}}, - {-201073, {Category::Other, ActionRequired::Warning, "Local channel specified is from a task that does not exist. Specify the task in question, move the local channel to an existing task, or change the local channel to a global channel."}}, - {-201074, {Category::Hardware, ActionRequired::Warning, "Import operation supports tasks, channels, and scales only, but a hardware object was found in the file. Remove the hardware objects from the input file."}}, - {-201075, {Category::Other, ActionRequired::Warning, "Import operation does not support tasks, channels, and scales, but such an object was found. Remove all tasks, channels, and scales from the input file."}}, - {-201076, {Category::Other, ActionRequired::ImmediateAction, "NI-DAQmx version specified in the input file is newer than the installed NI-DAQmx version. Change the version in the file to match the installed version. The import might still fail if the file contains properties that are not supported by the installed version of NI-DAQmx."}}, - {-201077, {Category::Hardware, ActionRequired::ImmediateAction, "Section name specified is invalid. The format of the section name is [ ]. Example: [DAQmxDevice Dev1]"}}, - {-201078, {Category::Other, ActionRequired::ImmediateAction, "Section identifier specified is invalid. Refer to the NI-DAQmx configuration file documentation for a list of valid section identifiers. The section identifier may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the section from the file."}}, - {-201079, {Category::Other, ActionRequired::ImmediateAction, "SCC slot number specified is invalid. Specify a slot number that is valid for the specified carrier."}}, - {-201080, {Category::Other, ActionRequired::Warning, "SCC specified cannot be placed in the slot specified. Specify a supported SCC for the given slot or specify a slot that supports the given SCC."}}, - {-201081, {Category::Other, ActionRequired::Warning, "Channel was listed more than once in the task. A task cannot contain a channel with the same name twice. Remove the duplicate entries from the configuration file."}}, - {-201082, {Category::Other, ActionRequired::Warning, "Hidden channel was listed more than once in the task. A task cannot contain a hidden channel with the same name twice. Remove the duplicate entries from the configuration file."}}, - {-201083, {Category::Other, ActionRequired::Warning, "Task must contain at least one channel. Add a channel to the task in the configuration file."}}, - {-201084, {Category::Other, ActionRequired::Warning, "Hidden channels listed for the task were not in the channels list for the task. Add the missing hidden channels to the channel list in the configuration file."}}, - {-201085, {Category::Configuration, ActionRequired::Warning, "Thermocouple CJC channel name property must be set when the thermocouple CJC source property is Channel. Set the thermocouple CJC channel name property or set the thermocouple CJC source property to a value other than Channel."}}, - {-201086, {Category::Other, ActionRequired::ImmediateAction, "Attribute name specified is invalid. Validate the attribute name using your ADE. The attribute may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the attribute from the file."}}, - {-201087, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require you to specify the Sample Clock rate. Use the Sample Clock Timing function/VI to specify a Sample Clock rate. You cannot specify a Sample Clock rate if Mode is set to On Demand."}}, - {-201088, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require a different Sample Clock Timebase Source than the one specified. Do not specify the Sample Clock Timebase Source. DAQmx will set the Sample Clock Timebase Source appropriately."}}, - {-201089, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require a different Sample Clock Timebase Rate than the one specified. Do not specify the Sample Clock Timebase Rate. DAQmx will set the Sample Clock Timebase Rate appropriately."}}, - {-201090, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require the driver to select the Sync Pulse Source. Do not specify the Sync Pulse Source. DAQmx will set the Sync Pulse Source appropriately."}}, - {-201091, {Category::Other, ActionRequired::Warning, "Minimum delay time between the sync pulse and start must be specified when using an external Sync Pulse Source. Specify SyncPulse.MinDelayToStart."}}, - {-201092, {Category::Other, ActionRequired::Warning, "Sync pulse cannot be exported when using an external sync pulse source. Do not export the sync pulse, or use the internal chassis sync pulse source."}}, - {-201093, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels that have incompatible hardware restrictions for their Sample Clock Rates. Remove incompatible physical channels from the task."}}, - {-201094, {Category::Hardware, ActionRequired::ImmediateAction, "An active device was specified for the attribute but it is not supported for channel expansion tasks. Do not specify an active device when setting the attribute or do not use channel expansion."}}, - {-201095, {Category::Software, ActionRequired::Warning, "Driver was unloaded and then reloaded at a different base address after the session was created. Session is unusable. Close and reopen the session."}}, - {-201096, {Category::Other, ActionRequired::Warning, "Sample clock timebase rate must be specified when using an external sample clock timebase."}}, - {-201097, {Category::Other, ActionRequired::Warning, "Sample Clock Rate requested is supported only if Enhanced Alias Rejection Enable is False. Set Enhanced Alias Rejection Enable to False or decrease the Sample Clock Rate."}}, - {-201098, {Category::Hardware, ActionRequired::Warning, "When enabling auto zero on this device, all channels that are using auto zero must have the same auto zero mode. Channels with auto zero disabled may be present in the same task as channels with auto zero enabled. Select the same auto zero mode for all channels that are using auto zero."}}, - {-201099, {Category::Configuration, ActionRequired::Warning, "Task specified cannot be saved because the DAQmx Timing properties were specified on a per device basis using the More: AI Convert: ActiveDevs property."}}, - {-201100, {Category::Other, ActionRequired::Warning, "Sample clock timebase divisor may not be specified when an external sample clock source is specified. Change the sample clock source to onboard clock or do not configure the sample clock timebase divisor."}}, - {-201101, {Category::Hardware, ActionRequired::Warning, "Number of channels in task exceeds the device maximum given the requested Timing Type. Reduce the number of channels or select a different Timing Type."}}, - {-201102, {Category::Hardware, ActionRequired::Warning, "Analog trigger source must be the first channel of the device in the acquisition or a valid analog trigger terminal. Create your channels in a different order so that this channel is first, select a different channel from this device, or select the first channel from another device in the task. If you explicitly named the virtual channel in DAQmx Create Channel you must use the name assigned to that channel."}}, - {-201103, {Category::Hardware, ActionRequired::Warning, "Device support an analog channel as the source of an analog pause trigger only when it is the only channel from this device in the task. Remove all of this device's channels currently in the task except the channel that will be used as the analog trigger source, change the analog trigger source to a terminal, or select a channel from another device that only has one channel in the task."}}, - {-201104, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to use an analog trigger in multiple situations with differing properties. Change the analog trigger properties so they are the same, select an analog trigger source from another device for one of the triggers, or do not use an analog trigger for all situations."}}, - {-201105, {Category::Hardware, ActionRequired::Warning, "Resource requested by this task has already been reserved by a different task with conflicting settings. Unreserve any other tasks using this device, or change their settings to be compatible with this task."}}, - {-201106, {Category::Other, ActionRequired::Warning, "Physical channel specified may only be used if the C Series module is installed in a slot that supports this physical channel. Move your cDAQ module to a slot that supports this physical channel."}}, - {-201107, {Category::Other, ActionRequired::Warning, "Selected lines do not support buffered operations if the C Series module is installed in the specified slot. Ensure only lines that support buffered operations are being used in the task. If using change detection timing, the task must be changed to nonbuffered to support these lines. Move your cDAQ module to a slot that supports buffered operations."}}, - {-201108, {Category::Hardware, ActionRequired::Warning, "Device does not support both analog modulation and digital modulation simultaneously."}}, - {-201109, {Category::Other, ActionRequired::Warning, "You cannot use the Ref In/Out connector as both an input and an output at the same time."}}, - {-201110, {Category::Other, ActionRequired::ImmediateAction, "Digital Modulation User Defined Waveform is invalid."}}, - {-201111, {Category::Hardware, ActionRequired::Warning, "Device does not support User Defined Waveform with OOK modulation."}}, - {-201112, {Category::Hardware, ActionRequired::Warning, "Device component test failed. If problem persists, contact National Instruments technical support at www.ni.com/support."}}, - {-201113, {Category::Other, ActionRequired::Warning, "Power level is too low. OOK modulation requires the bypass path to be used, and power levels this low must use the main path."}}, - {-201114, {Category::Hardware, ActionRequired::Warning, "Multi-device tasks with channels from both 446x and 447x devices require a 446x device to be in PXI slot 2."}}, - {-201115, {Category::Other, ActionRequired::Warning, "Waveform length must be a multiple of the waveform quantum."}}, - {-201117, {Category::Configuration, ActionRequired::Warning, "Property setting must be identical for all channels in the task."}}, - {-201118, {Category::Configuration, ActionRequired::Warning, "Operation must be performed on the entire task. It cannot be performed only on specific devices in the task. Do not use the indexer, Item property in Visual Basic, or index operator in C++ to specify device names when performing this operation."}}, - {-201119, {Category::Configuration, ActionRequired::Warning, "Next Write is Last property not settable if Regeneration Mode is set to Allow Regeneration."}}, - {-201120, {Category::Configuration, ActionRequired::Warning, "Property requested is incompatible with the given Timing Response Mode. NI-DAQmx can automatically select a compatible property value for you. To use the requested Timing Response Mode, do not set the specified property and allow NI-DAQmx to set it for you. To use the requested property value, choose a different value for the Timing Response Mode."}}, - {-201121, {Category::Other, ActionRequired::Warning, "Task cannot be reserved because the CPU does not support the Streaming SIMD Extensions (SSE)."}}, - {-201122, {Category::Configuration, ActionRequired::Warning, "Property requested is incompatible with the given Timing Type. NI-DAQmx can automatically select a compatible property value for you. To use the requested Timing Type, do not set the specified property and allow NI-DAQmx to set it for you. To use the requested property value, chose a different value for the Timing Type."}}, - {-201123, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog reference trigger only when it is the only channel from this device in the task. Remove all of the channels from this device in the task except the channel that you want to use as the analog trigger source, change the analog trigger source to a terminal, or select a channel from another device that only has one channel in the task."}}, - {-201124, {Category::Configuration, ActionRequired::Warning, "Only one task is permitted to have the Digital Output Memory Mapping for Programmed I/O Enable set to true at a time. If the value is unset, NI-DAQmx will choose a value that is compatible with the system while reserving the task. Do not set the property to true explicitly, set the property to false explicitly, or set the value to the default value to allow NI-DAQmx to choose a value that is compatible with the system."}}, - {-201125, {Category::Other, ActionRequired::Warning, "Channel properties conflict. If Analog Input Source is _aignd_vs_aignd, then Analog Input Coupling must be set to GND. If Analog Input Source is _external_channel, then Analog Input Coupling must be DC."}}, - {-201126, {Category::Configuration, ActionRequired::Warning, "DAQmx Timing property specified requires per device configuration. Explicitly specify the device(s) to which this property should apply."}}, - {-201127, {Category::Configuration, ActionRequired::ImmediateAction, "Your ratiometric device must use excitation for scaling. The Use Excitation for Scaling property cannot be set to false on this device. Use excitation for scaling by setting the Use Excitation for Scaling property to true. This will cause NI-DAQmx to return ratiometric data instead of voltage data which is not supported by ratiometric devices."}}, - {-201128, {Category::Hardware, ActionRequired::ImmediateAction, "Device index requested is invalid. The value of the index must be between one and the number of devices in the task."}}, - {-201129, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable cannot be set to true when Output Drive Type is Open Collector. Change Output Drive Type to Active Drive or change Memory Mapping for Programmed IO Enable to false."}}, - {-201130, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable setting is not compatible with some of the physical channels in the task. Change Memory Mapping for Programmed IO Enable to false or do not create the task with the incompatible physical channels."}}, - {-201131, {Category::Other, ActionRequired::Warning, "Reference and start trigger sources cannot be the same. Make the reference and start trigger sources different from one another."}}, - {-201132, {Category::Other, ActionRequired::Warning, "Attempted to write a sample beyond the final finite sample. The sample specified by the combination of position and offset will never be writable. Specify a position and offset which selects a sample up to but not beyond the final sample to generate."}}, - {-201133, {Category::Communication, ActionRequired::Warning, "Device cannot be configured for input or output because lines and/or terminals on this device are in use by another task or route. This operation requires temporarily reserving all lines and terminals for communication, which interferes with the other task or route. If possible, use DAQmx Control Task to reserve all tasks that use this device before committing any tasks that use this device. Otherwise, uncommit or unreserve the other task or disconnect the other route before attempting to configure the device for input or output."}}, - {-201134, {Category::Configuration, ActionRequired::Warning, "Number of values specified with Pause Trigger Digital Pattern property does not match the number of physical lines requested with the Pause Trigger Digital Pattern Source property. Change one or both of the properties so the two numbers are equal."}}, - {-201135, {Category::Configuration, ActionRequired::Warning, "Reference Trigger Digital Pattern Source property can be used only with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, - {-201136, {Category::Configuration, ActionRequired::Warning, "Pause Trigger Digital Pattern Source property can only be used with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, - {-201137, {Category::Configuration, ActionRequired::Warning, "Start Trigger Digital Pattern Source property can only be used with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, - {-201138, {Category::Other, ActionRequired::Warning, "Task cannot be restarted because the first sample is not available to generate."}}, - {-201139, {Category::Hardware, ActionRequired::Warning, "Hardware revision is newer that the latest revision supported by the currently installed driver. Please upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com."}}, - {-201140, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports this revision of the hardware. Please downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com."}}, - {-201141, {Category::Hardware, ActionRequired::Warning, "EEPROM format is newer than the latest revision supported by the currently installed driver. Either self-calibrate your device (this may modify the EEPROM format) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, - {-201142, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the EEPROM format. Either self-calibrate your device (this may modify the EEPROM format) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, - {-201143, {Category::Hardware, ActionRequired::Warning, "Hardware external calibration data format is newer than the latest revision supported by the currently installed driver. Either externally calibrate your device (this may modify the calibration data) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, - {-201144, {Category::Hardware, ActionRequired::Warning, "Hardware self-calibration data format is newer than the latest revision supported by the currently installed driver. Either self-calibrate your device (this may modify the calibration data) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded form ni.com. If uncertain, contact National Instruments technical support."}}, - {-201145, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the hardware external calibration data format. Either externally calibrate your device (this may modify the calibration data) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, - {-201146, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the hardware self-calibration data format. Either self-calibrate your device (this may modify the calibration data) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, - {-201147, {Category::Hardware, ActionRequired::Warning, "Calibration procedure has failed to resolve the calibration data format conflict. Perform a complete external calibration on your device. This may modify the calibration data."}}, - {-201148, {Category::Other, ActionRequired::Warning, "Channel you are triggering on is not enabled. Enable the trigger source channel."}}, - {-201149, {Category::Hardware, ActionRequired::ImmediateAction, "Number of input/output points entered for the specified channel is insufficient for calibration. At least two points are needed because this device has only gain error calibration constants and not offset calibration constants. Enter more points to eliminate this error."}}, - {-201150, {Category::Hardware, ActionRequired::Warning, "Simulated device cannot be imported to replace a non-simulated device of the same name. Change the device name in the import file and try importing again."}}, - {-201151, {Category::Hardware, ActionRequired::Warning, "PXI slot and PXI chassis numbers are required when creating a new simulated PXI device. Add PXI slot and chassis number values for the device in the import file."}}, - {-201152, {Category::Other, ActionRequired::Warning, "IsSimulated flags for SCXI chassis and SCXI modules must have the same value. Either make both simulated or make both non-simulated in the import file."}}, - {-201153, {Category::Other, ActionRequired::Warning, "Non-simulated SCXI module cannot be connected to a simulated digitizer. Change the SCXI Module IsSimulated flag or change the SCXI Module so that it connects to a digitizer with the same simulation setting."}}, - {-201154, {Category::Hardware, ActionRequired::Warning, "Non-simulated SCXI module cannot be connected to a simulated cabled device. Change the SCXI module IsSimulated flag or change the SCXI module so that it connects to a cabled device with the same simulation flag setting."}}, - {-201155, {Category::Other, ActionRequired::Warning, "SCXI module type specified does not support simulation. Remove the module from the import file or change the module type."}}, - {-201156, {Category::Other, ActionRequired::Warning, "IsSimulated flags for an SCC carrier and all of the contained modules must be set to the same value. Change the IsSimulated flags to match."}}, - {-201157, {Category::Hardware, ActionRequired::Warning, "Non-simulated SCC carriers cannot be connected to simulated devices. Change the cabled device of the SCC carrier or change the IsSimulated flags on the SCC carrier to true."}}, - {-201158, {Category::Other, ActionRequired::Warning, "IsSimulated flag for cDAQ chassis and C Series modules must match. Change the IsSimulated flags in the import file so that they match."}}, - {-201159, {Category::Other, ActionRequired::Warning, "cDAQ chassis does not have a slot that matches the specified slot number. The slot number specified is probably too large. Change the slot number to be a valid slot number."}}, - {-201160, {Category::Hardware, ActionRequired::Warning, "Device type specified does not support simulation. Remove the IsSimulated flag from the import file for this device or change the device type to one that supports simulation."}}, - {-201161, {Category::Other, ActionRequired::Warning, "Specified cDAQ chassis slot is already occupied by a C Series module. Change the slot numbers of the C Series modules in your import file so that they are unique."}}, - {-201162, {Category::Configuration, ActionRequired::Warning, "Physical channel cannot be used by the task because an output task has reserved this line and the Digital Input Tristate property is set to true. Set the Digital Input Tristate property to false."}}, - {-201163, {Category::Other, ActionRequired::Warning, "Physical channel cannot be used by the task because an input task has reserved this line to be tristated."}}, - {-201164, {Category::Other, ActionRequired::Warning, "Sample clock cannot be exported in this mode when the sample clock comes from an external source or an external timebase source."}}, - {-201165, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is too new. Downgrade the firmware for this device. If you need help downgrading, visit ni.com/support."}}, - {-201166, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is corrupt. Contact National Instruments for help with this device."}}, - {-201167, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be updated. Contact National Instruments for help with this device."}}, - {-201168, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is too old. Upgrade the firmware for this device."}}, - {-201169, {Category::Hardware, ActionRequired::ImmediateAction, "Device import failed because the device is not supported by the installed version and/or platform of NI-DAQmx. Change the device type or do not import this device."}}, - {-201170, {Category::Hardware, ActionRequired::Warning, "Device import failed because the device does not support simulation and a device to overwrite could not be found. Change the device type or do not import this device."}}, - {-201171, {Category::Configuration, ActionRequired::Warning, "Minimum temperature specified for the thermocouple measurement falls outside of the accuracy limit when using polynomial scaling. Specify a value greater than the minumum temperature for polynomial scaling with this thermocouple type, or set the Thermocouple Scale Type property to Table."}}, - {-201172, {Category::Hardware, ActionRequired::Warning, "AI channels on this device do not support using DC coupling while using IEPE excitation. Set excitation source to none or the coupling mode to AC."}}, - {-201173, {Category::Hardware, ActionRequired::Warning, "Power supply configuration failed. Reboot or cycle the power on the device."}}, - {-201174, {Category::Other, ActionRequired::Warning, "SCXI-1600 does not support import through MAX. Deselect the SCXI-1600 in the import dialog or remove it from the import file."}}, - {-201175, {Category::Configuration, ActionRequired::ImmediateAction, "Dev.AssociatedResourceIDs property is not supported by the device. Remove the Dev.AssociatedResourceIDs property from the import file."}}, - {-201176, {Category::Hardware, ActionRequired::Warning, "Sample clock rate specified is too fast for the burst handshaking timing type. Change the sample clock rate to be equal to or less than the maximum value or consider using the pipelined sample clock timing type. If you use the pipelined sample clock timing type, refer to the device documentation for the differences between the burst handshake timing type and the pipelined sample clock timing type."}}, - {-201177, {Category::Hardware, ActionRequired::Warning, "Device is not usable. The firmware was recently upgraded, and the system was not powered down and restarted. Power down the computer and restart."}}, - {-201178, {Category::Hardware, ActionRequired::Warning, "Sample clock rate specified is too fast for the sample clock timing type. Change the sample clock rate to be equal to or less than the maximum value or consider using the pipelined sample clock timing type. If you use the pipelined sample clock timing type, refer to device documentation for the differences between the sample clock timing type and the pipelined sample clock timing type."}}, - {-201179, {Category::Other, ActionRequired::Warning, "db reference value must be greater than zero."}}, - {-201180, {Category::Other, ActionRequired::Warning, "Input cal data point must be an AC Voltage for this module."}}, - {-201181, {Category::Other, ActionRequired::Warning, "Input source in not valid. Ensure that AI Input Source and AI Coupling are not both set for the same task."}}, - {-201182, {Category::Other, ActionRequired::Warning, "Internal excitation voltage selected for calibration is not valid."}}, - {-201183, {Category::Other, ActionRequired::Warning, "Internal excitation frequency selected for calibration is not valid."}}, - {-201184, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not a PXI device."}}, - {-201185, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not in the PXI chassis."}}, - {-201186, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not in the rightmost slot of the PXI chassis."}}, - {-201187, {Category::Other, ActionRequired::Warning, "Cold junction compensation channel cannot be used unless the corresponding analog input channel is configured to measure temperature using a thermocouple. Use the thermocouple version of the DAQmx Create Channel VI/function to configure the channel."}}, - {-201188, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce the number of programs your computer is executing concurrently or use a different computer to calibrate your device."}}, - {-201189, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. This device supports high-speed (480Mb/s) USB but it is connected to a full-speed (12 Mb/s) USB port. Connect this device to a high-speed (480 Mb/s) USB port, reduce the number of programs your computer is executing concurrently, or use a different computer to calibrate your device. If you are using a USB hub, ensure that it supports high-speed operation."}}, - {-201190, {Category::Hardware, ActionRequired::Warning, "Device is currently not usable and must be placed into firmware loader mode. Unplug the device USB cable and plug it back in. If the device is plugged into a USB hub, ensure that you unplug the device from the hub."}}, - {-201191, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported unless excitation is enabled. Enable excitation before attempting to access the property."}}, - {-201192, {Category::Communication, ActionRequired::Warning, "Connection to target failed for the requested configuration operation. Confirm that NI-DAQmx is installed on the target."}}, - {-201193, {Category::Other, ActionRequired::ImmediateAction, "SCXI chassis address specified is invalid. Specify an SCXI chassis address between 0 and 31."}}, - {-201194, {Category::Configuration, ActionRequired::Warning, "Property cannot be read before reading the corresponding Channels Exist property. NI-DAQmx retrieves the channel state from the hardware when the application reads the corresponding Channels Exist property. After reading the corresponding Channels Exist property, you can retrieve other information about these channels."}}, - {-201195, {Category::Other, ActionRequired::ImmediateAction, "PCI Express interface layer error detected. Contact National Instruments for support."}}, - {-201196, {Category::Other, ActionRequired::ImmediateAction, "PCI Express interface layer error detected. Contact National Instruments for support."}}, - {-201197, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes channels to use too much power. Those channels were disabled to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, - {-201198, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes a short between the specified physical channel and the voltage source. The output of the function generator has been suspended to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, - {-201199, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes too much power to be drawn from the specified source. The output of the source has been suspended to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, - {-201200, {Category::Communication, ActionRequired::Warning, "Requested operation could not be completed because the prototyping board has been removed or disabled. The prototyping board can be disabled by either switching the prototyping board switch to the off position, or by an incorrect connection on the prototyping board causing too much power to be drawn from the device. Ensure that all connections on the prototyping board are correct and that the prototyping board is properly inserted and powered on before attempting the operation."}}, - {-201201, {Category::Hardware, ActionRequired::ImmediateAction, "Offset error measured for this calibration task is out of range for the device. Ensure that the reference voltage is accurate, specified correctly, and connected to the correct channel. Also ensure that the measured output voltage is specified correctly and that the device is functioning properly."}}, - {-201202, {Category::Hardware, ActionRequired::ImmediateAction, "Gain error measured for this calibration task is out of range for the device. Ensure that the reference voltage is accurate, specified correctly, and connected to the correct channel. Also ensure that the measured output voltage is specified correctly and that the device is functioning properly."}}, - {-201203, {Category::Other, ActionRequired::Warning, "Virtual channel specified does not support the strain gage shunt calibration procedure."}}, - {-201204, {Category::Other, ActionRequired::Warning, "Virtual channel specified does not support the Wheatstone bridge shunt calibration procedure."}}, - {-201205, {Category::Hardware, ActionRequired::Warning, "Device simulation flag does not match the simulation flag of the RTSI cable."}}, - {-201206, {Category::Hardware, ActionRequired::Warning, "Task cannot contain a mixture of simulated devices and physical devices. Ensure the physical channels added to the task refer to all physical devices or all simulated devices."}}, - {-201207, {Category::Hardware, ActionRequired::Warning, "Active Device cannot be specified when reading or writing timing properties in this multidevice task, due to synchronization requirements."}}, - {-201208, {Category::Hardware, ActionRequired::Warning, "Sample rate specified is too fast for the ADC Timing Mode selected for this device. Decrease the sample rate or use a faster ADC Timing Mode."}}, - {-201209, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"generate\" instruction before \"break\" block."}}, - {-201210, {Category::Other, ActionRequired::Warning, "Waveform subset length is too small for the \"generate\" instruction before \"break\" block."}}, - {-201211, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"wait\" instruction before \"break\" block."}}, - {-201212, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"generate\" instruction in \"break\" block."}}, - {-201213, {Category::Other, ActionRequired::Warning, "Waveform subset length is too small for the \"generate\" instruction in \"break\" block."}}, - {-201214, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"wait\" instruction in \"break\" block."}}, - {-201215, {Category::Other, ActionRequired::Warning, "Marker position specified is either too close to the end or the beginning of the waveform, or too close to another marker in the \"generate\" statement in \"break\" block."}}, - {-201216, {Category::Other, ActionRequired::Warning, "Wait until trigger instruction not allowed in a \"break\" block."}}, - {-201217, {Category::Other, ActionRequired::Warning, "Repeat until trigger instruction not allowed in a \"break\" block."}}, - {-201218, {Category::Other, ActionRequired::Warning, "If-Else block not allowed in a \"break\" block."}}, - {-201219, {Category::Other, ActionRequired::Warning, "Break block cannot be nested in other \"break\" blocks."}}, - {-201220, {Category::Other, ActionRequired::Warning, "Clear trigger instruction not allowed in a \"break\" block."}}, - {-201221, {Category::Other, ActionRequired::Warning, "Break blocks are not allowed in finite or conditional loops."}}, - {-201222, {Category::Other, ActionRequired::Warning, "Generate or finite \"wait\" instruction expected before a \"break\" block."}}, - {-201223, {Category::Other, ActionRequired::Warning, "Tristate setting must be identical for all lines in the port."}}, - {-201224, {Category::Other, ActionRequired::Warning, "Tristate setting must be applied to all lines in the port. Include all lines in the port in the Active Channel list."}}, - {-201225, {Category::Hardware, ActionRequired::Warning, "Change detection timing cannot be used on this device while Memory Mapping for Programmed IO is enabled. Set MemMapEnable to false or use a different timing type."}}, - {-201226, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable setting must be the same for all virtual channels in the task."}}, - {-201227, {Category::Hardware, ActionRequired::Warning, "Timing engine requested can only be used with lines that span two contiguous ports. Use the default timing engine for the specified physical channels, use some lines from two contiguous ports, or use all of the physical data channels on the device."}}, - {-201228, {Category::Other, ActionRequired::Warning, "Watchdog timer task could not be created because one of the digital output lines in the task uses memory mapping for programmed I/O. Set DO.MemMapEnable to false for all lines in the task, or do not use a watchdog timer task."}}, - {-201229, {Category::Other, ActionRequired::Warning, "Memory mapping for programmed I/O cannot be enabled for the specified lines because a watchdog timer task uses these lines. Set DO.MemMapEnable to false for all lines in the task, or do not use a watchdog timer task."}}, - {-201230, {Category::Hardware, ActionRequired::Warning, "Simulation flag of the referenced device does not match the simulation flag of the target."}}, - {-201231, {Category::Other, ActionRequired::Warning, "Local channel is not referenced by the task specified in the local channel name."}}, - {-201232, {Category::Other, ActionRequired::Warning, "Target storage was altered by another process before the changes could be saved."}}, - {-201233, {Category::Other, ActionRequired::Warning, "Object specified could not be found in storage."}}, - {-201234, {Category::Other, ActionRequired::Warning, "Storage specified is not valid or could not be found."}}, - {-201235, {Category::Other, ActionRequired::Warning, "Required object dependency was not found in storage."}}, - {-201236, {Category::Communication, ActionRequired::Warning, "Communication mode specified is not valid for the SCXI Chassis."}}, - {-201237, {Category::Hardware, ActionRequired::ImmediateAction, "Physical channel name specified is invalid. Physical channel names are of the form /, for example, dev1/ai0."}}, - {-201238, {Category::Hardware, ActionRequired::ImmediateAction, "SCXI digitization is not supported by the device or physical channel."}}, - {-201239, {Category::Hardware, ActionRequired::ImmediateAction, "SCXI multiplexed digitization is not supported by the device."}}, - {-201240, {Category::Other, ActionRequired::ImmediateAction, "Digitization mode specified is not supported by the SCXI module."}}, - {-201241, {Category::Communication, ActionRequired::Warning, "Connector 0 on the SCXI chassis communication device must be cabled to the SCXI module."}}, - {-201242, {Category::Communication, ActionRequired::ImmediateAction, "SCXI chassis communication is not supported by the device."}}, - {-201243, {Category::Other, ActionRequired::ImmediateAction, "Address specified is invalid."}}, - {-201244, {Category::Other, ActionRequired::Warning, "Module type in the source storage does not match the module type in the destination."}}, - {-201245, {Category::Other, ActionRequired::Warning, "User defined information string entered exceeds the maximum allowable string length."}}, - {-201246, {Category::Hardware, ActionRequired::Warning, "Device cannot be created in MAX because the carrier contains no cartridge. Plug in a cartridge and attempt to create the device again."}}, - {-201247, {Category::Hardware, ActionRequired::Warning, "Device cannot be created in MAX because a driver could not be found for the device. You may need to upgrade NI-DAQmx."}}, - {-201248, {Category::Hardware, ActionRequired::Warning, "Device configuration may not be changed at this time because the device is locked."}}, - {-201249, {Category::Other, ActionRequired::ImmediateAction, "Wireless security setting is invalid. Ensure that all necessary settings are specified."}}, - {-201250, {Category::Communication, ActionRequired::Warning, "Connection to the network device has timed out. The network device did not respond properly for a period of time. If timeouts persist, contact your system administrator."}}, - {-201251, {Category::Hardware, ActionRequired::Warning, "Device could not be found on the network. This usually indicates an incorrect hostname or a DNS failure."}}, - {-201252, {Category::Hardware, ActionRequired::Warning, "Device cannot be reached because no known route to the device exists on the network."}}, - {-201253, {Category::Other, ActionRequired::Warning, "Network is currently unavailable. This usually indicates an unplugged network cable, a failing network component, or an improperly configured network."}}, - {-201254, {Category::Hardware, ActionRequired::Warning, "Serial numbers of the network device do not match the serial numbers NI-DAQmx expected. Replace the original device or module and try again, or use the reconnect button in MAX to locate the original device."}}, - {-201255, {Category::Hardware, ActionRequired::Warning, "EEPROM of this device has changed since this task began. Restart the task or reset the device to refresh the EEPROM contents."}}, - {-201256, {Category::Other, ActionRequired::Warning, "Wireless channel specified is not available for this country code configuration."}}, - {-201257, {Category::Other, ActionRequired::Warning, "Country code is not configured. This setting is required to determine available wireless channels."}}, - {-201258, {Category::Hardware, ActionRequired::Warning, "Wireless configuration has been rejected by the device."}}, - {-201259, {Category::Hardware, ActionRequired::Warning, "Network configuration has been rejected by the device."}}, - {-201260, {Category::Other, ActionRequired::Warning, "Manual control attribute cannot be read when manual control is disabled. Enable manual control before reading this attribute."}}, - {-201261, {Category::Other, ActionRequired::Warning, "Sample clock rate cannot be changed at this time. When changing the Sample clock rate for a running task, one full period of the Sample clock must complete at the previous rate before NI-DAQmx can safely update the timing circuitry."}}, - {-201262, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported for the bus type of the device."}}, - {-201263, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be downloaded. To retry downloading the firmware, unplug the device and plug it back in. If this problem continues, contact National Instruments for assistance."}}, - {-201264, {Category::Software, ActionRequired::Warning, "Scaled waveform is too large. After multiplication by the software scaling factor, the magnitude of each sample must be less than 1.0."}}, - {-201265, {Category::Hardware, ActionRequired::Warning, "Input voltage limits exceeded. Protection circuity disabled the inputs. Ensure proper voltage levels on device inputs."}}, - {-201266, {Category::Configuration, ActionRequired::ImmediateAction, "Property requested was not found. The property is either not supported by the object or has not been set."}}, - {-201267, {Category::Other, ActionRequired::ImmediateAction, "User defined information string entered is of an invalid length."}}, - {-201268, {Category::Hardware, ActionRequired::Warning, "Current limit specified cannot be applied to the channel because all current limit resources on the device have been reserved. Use a current limit setting that is already in use for another channel, or free a current limit resource by disabling current limiting on all channels that use a common current limit."}}, - {-201269, {Category::Other, ActionRequired::Warning, "Calibration operation cannot be completed unless the prototyping board is powered on."}}, - {-201270, {Category::Other, ActionRequired::Warning, "Certificate provided is not in PEM (Privacy Enhanced Mail) format. Only PEM certificates are supported."}}, - {-201271, {Category::Hardware, ActionRequired::Warning, "Product at the address provided was not the expected type. This may be due to a module being replaced or IP addresses on the network being reassigned. Reconnect to the device in MAX or delete it from your system and rediscover it."}}, - {-201272, {Category::Other, ActionRequired::ImmediateAction, "IP address provided is invalid. IP addresses must be of the form x.x.x.x where x is a number from 0 to 255."}}, - {-201273, {Category::Hardware, ActionRequired::Warning, "Network device is already in use by another host."}}, - {-201274, {Category::Hardware, ActionRequired::ImmediateAction, "Device specified is not supported in 64-bit applications. To use this device, configure your development environment to create a 32-bit application, or use a 32-bit development environment. Refer to the documentation for your development environment for more information."}}, - {-201275, {Category::Hardware, ActionRequired::Warning, "Device cannot be calibrated using the coupling specified. Calibrate using a different coupling mode."}}, - {-201276, {Category::Other, ActionRequired::Warning, "Certificate provided is not in PEM (Privacy-enhanced Electronic Mail) or DER (Distinguished Encoding Rules) format. Only PEM or DER certificates are accepted."}}, - {-201277, {Category::Hardware, ActionRequired::Warning, "Certificate file is too large to transfer to the device."}}, - {-201278, {Category::Hardware, ActionRequired::Warning, "Consecutive writes to a digital line occurred more frequently than the device can safely allow."}}, - {-201279, {Category::Other, ActionRequired::Warning, "Coupling specified conflicts with the Measurement Type of the channel. Configure the channel to use a coupling appropriate for the measurement and sensor. For example, use DC coupling for DC sensors."}}, - {-201280, {Category::Hardware, ActionRequired::ImmediateAction, "Vertical Offset is not supported by this device."}}, - {-201281, {Category::Hardware, ActionRequired::Warning, "Device does not support using more than one trigger at a time. Configure the device to use only one trigger, or use a device that supports using multiple triggers."}}, - {-201282, {Category::Hardware, ActionRequired::ImmediateAction, "Device power up failed. Try resetting the device. If the error persists contact National Instruments."}}, - {-201283, {Category::Communication, ActionRequired::ImmediateAction, "Internal serial communication bus failed. Try resetting the device. If the error persists, contact National Instruments."}}, - {-201284, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +3.3 V fuse on the device might have blown, or there might be a problem with the +3.3 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, - {-201285, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +5 V fuse on the device might have blown, or there might be a problem with the +5 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, - {-201286, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +12 V fuse on the device might have blown, or there might be a problem with the +12 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, - {-201287, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The -12 V fuse on the device might have blown, or there might be a problem with the -12 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, - {-201288, {Category::Configuration, ActionRequired::Warning, "Property specified cannot be set while the task is reserved. Set the property prior to reserving the task or unreserve the task prior to setting the property."}}, - {-201289, {Category::Hardware, ActionRequired::Warning, "Calibration procedure for your device does not support shorted inputs. Refer to the calibration procedure for your device for more information."}}, - {-201290, {Category::Other, ActionRequired::Warning, "WEP key must be either 10 or 26 characters long."}}, - {-201291, {Category::Hardware, ActionRequired::Warning, "Pulse specifications cannot be written to a finite counter output task on this device."}}, - {-201292, {Category::Other, ActionRequired::ImmediateAction, "Sample Clock Overrun and Underflow Behaviors must be set to consistent values. Either set Overrun Behavior to Stop Task and Error and Underflow Behavior to Halt Output and Error, or set Overrun Behavior to Ignore Overruns and Underflow Behavior to Pause Until Data Available."}}, - {-201293, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, - {-201294, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, - {-201295, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, - {-201296, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type specified is not supported for counter output tasks on this device. Change the Sample Timing Type to Implicit."}}, - {-201297, {Category::Other, ActionRequired::ImmediateAction, "Sample and hold is not supported for SCXI modules in parallel mode using digitizer channels other than 0 through 7. Disable sample and hold, use only digitizer channels 0 through 7, or use multiplexed mode."}}, - {-201298, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported in conjunction with a conflicting property."}}, - {-201299, {Category::Other, ActionRequired::Warning, "Log Only mode is only supported for buffered tasks. Either use Log and Read mode or configure the task as Finite or Continuous."}}, - {-201300, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported when logging data."}}, - {-201301, {Category::Other, ActionRequired::ImmediateAction, "Reading samples is not supported in the specified logging mode. To access the samples while logging, either open the file being written to or use a different logging mode."}}, - {-201302, {Category::Other, ActionRequired::ImmediateAction, "File permission error. You do not have the correct permissions for the file."}}, - {-201303, {Category::Other, ActionRequired::ImmediateAction, "Logging to this file format is not supported by NI-DAQmx. Convert the file to TDMS version 2.0 or later, or specify a different file."}}, - {-201304, {Category::Other, ActionRequired::ImmediateAction, "File path specified is invalid, or the file is not a valid TDMS file. Specify the location of a valid TDMS file."}}, - {-201305, {Category::Other, ActionRequired::Warning, "Disk is full. Free up disk space, or specify a different file path."}}, - {-201306, {Category::Other, ActionRequired::Warning, "File specified is already opened for output by another task. Specify a different file path."}}, - {-201307, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for this measurement type. Change the measurement type in order to use logging."}}, - {-201308, {Category::Hardware, ActionRequired::ImmediateAction, "Logging is not supported for finite counter tasks on this device. Change the Sample Mode of the task to continuous."}}, - {-201309, {Category::Other, ActionRequired::Warning, "Unable to write to disk. Ensure that the file is accessible. If the problem persists, try logging to a different file."}}, - {-201310, {Category::Other, ActionRequired::Warning, "TDMS support is not installed or is too old. Use an NI-DAQmx runtime that includes TDMS support, or install a supported version of TDMS from a stand-alone installer."}}, - {-201311, {Category::Other, ActionRequired::Warning, "File specified is already opened for output. NI-DAQmx requires exclusive write access."}}, - {-201312, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for this channel and/or measurement type. Use a different measurement type or channel."}}, - {-201313, {Category::Other, ActionRequired::Warning, "Non-responsive counter detected. NI-DAQmx reset the counter. Counter timebases at the specified speed must remain periodic, otherwise the counter can become non-responsive. Use an internal timebase or an external timebase that remains periodic."}}, - {-201314, {Category::Other, ActionRequired::Warning, "Multiple Sample Clock pulses were detected within one period of the input signal. Use a Sample Clock rate that is slower than the input signal. If you are using an external Sample Clock, ensure that clock signal is within the jitter and voltage level specifications and without glitches."}}, - {-201315, {Category::Other, ActionRequired::Warning, "Events cannot be configured after writing samples to the task."}}, - {-201316, {Category::Hardware, ActionRequired::Warning, "Timebase specified is too fast for a hardware-timed single-point counter output task."}}, - {-201317, {Category::Other, ActionRequired::Warning, "Multiple counters are not allowed in a buffered counter output task."}}, - {-201318, {Category::Other, ActionRequired::Warning, "Sample Clock pulse occurred before a pulse could be generated using the previous pulse specification. Use a Sample Clock that is slower than the pulse train you want to generate."}}, - {-201319, {Category::Hardware, ActionRequired::Warning, "Sample Clock pulse occurred before the previous sample was acquired from all channels in the task. Use a Sample Clock rate that allows time for the device to acquire samples from all channels. If you are using an external Sample Clock, ensure that clock signal is within the jitter and voltage level specifications and without glitches."}}, - {-201320, {Category::Other, ActionRequired::Warning, "Retriggering can only be enabled for finite task with a Start trigger configured."}}, - {-201321, {Category::Other, ActionRequired::Warning, "Memory-mapped task detected data corruption because the memory was accessed by another program, such as a debugger or virus scanner. Disable other programs that might access this memory, or disable memory mapping for the task."}}, - {-201322, {Category::Other, ActionRequired::Warning, "Memory mapping must be the same setting for all simultaneous tasks that use channels from a single subsystem."}}, - {-201323, {Category::Other, ActionRequired::ImmediateAction, "Sample Clock timing is not supported when using a two-counter measurement method. Use a one-counter measurement method, or use a different timing type."}}, - {-201324, {Category::Other, ActionRequired::Warning, "Multiple counters are not allowed in a single counter output task when using Sample Clock timing."}}, - {-201325, {Category::Other, ActionRequired::Warning, "Module specified cannot be used as the first stage of a dual -stage analog input channel."}}, - {-201326, {Category::Other, ActionRequired::Warning, "Module specified cannot be used as the second stage of a dual-stage analog input channel."}}, - {-201327, {Category::Other, ActionRequired::Warning, "Modules specified are not valid for dual-stage analog input channels."}}, - {-201328, {Category::Other, ActionRequired::Warning, "Second stage of a dual-stage analog input channel cannot be empty."}}, - {-201329, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism must be DMA when Sample Mode is Hardware Timed Single Point on this device."}}, - {-201330, {Category::Other, ActionRequired::Warning, "Pulse train specifications cannot be modified while the task is running if Auto Increment Count is greater than 0"}}, - {-201331, {Category::Hardware, ActionRequired::ImmediateAction, "Memory mapping is not supported on this device for non-buffered tasks using Sample Clock timing. Disable memory mapping or change the buffer size."}}, - {-201332, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for output tasks."}}, - {-201333, {Category::Other, ActionRequired::Warning, "Required scaling parameter has not been specified."}}, - {-201334, {Category::Other, ActionRequired::Warning, "Linear scaling requires unique electrical and physical values."}}, - {-201335, {Category::Other, ActionRequired::Warning, "Table scaling requires the same number of electrical values as physical values."}}, - {-201336, {Category::Other, ActionRequired::ImmediateAction, "Bridge scales are not supported for this measurement type. Use a custom scale for additional scaling."}}, - {-201337, {Category::Hardware, ActionRequired::Warning, "Device names must be 254 characters or shorter."}}, - {-201338, {Category::Other, ActionRequired::Warning, "Shunt resistor location specified is not valid for this calibration procedure."}}, - {-201339, {Category::Hardware, ActionRequired::Warning, "External timebase rate specified is too fast for this device. Reduce the timebase rate to less than 1/4 the device oscillator frequency."}}, - {-201340, {Category::Hardware, ActionRequired::Warning, "Firmware on the device is out of date. Use Measurement & Automation Explorer to update the device firmware."}}, - {-201341, {Category::Other, ActionRequired::Warning, "Accessory cannot be connected while the task runs. The accessory uses different scaling or is unsupported. Ensure the accessory is seated properly and restart the task."}}, - {-201342, {Category::Other, ActionRequired::Warning, "Unsupported accessory is connected to the module. Insert a supported accessory and restart the task."}}, - {-201343, {Category::Hardware, ActionRequired::Warning, "Overcurrent detected in the power supply for the accessory connected to the module. Check the external wiring and ensure the accessory, if present, is properly seated. Then, reset the module using DAQmx Reset Device or Measurement & Automation Explorer."}}, - {-201344, {Category::Configuration, ActionRequired::Warning, "ADC Timing Mode property was set to Custom, but the Custom Timing Mode property was not set. Specify a value for Custom Timing Mode or change the ADC Timing Mode."}}, - {-201345, {Category::Configuration, ActionRequired::ImmediateAction, "Custom Timing Mode property is not supported unless the ADC Timing Mode property is set to Custom. Set ADC Timing Mode to Custom before setting Custom Timing Mode."}}, - {-201346, {Category::Hardware, ActionRequired::Warning, "Synchronization Type cannot be Slave without configuring the device to use an external Sync Pulse. Set the Synchronization Type to Master or configure the device to use an external Sync Pulse."}}, - {-201347, {Category::Hardware, ActionRequired::Warning, "Sync Pulse was not detected before attempting to start the task. Ensure you connected the source of the Sync Pulse to the device."}}, - {-201348, {Category::Other, ActionRequired::Warning, "Retriggered counter tasks do not support trigger skew correction. Set the Synchronization Type to Default or disable retriggering."}}, - {-201349, {Category::Hardware, ActionRequired::Warning, "Multidevice tasks using the specified devices do not support a Start Trigger and Reference Trigger from different devices. Using triggers from different devices can cause unwanted latency or incorrect behavior. Use triggers from a single device or manually synchronize the devices."}}, - {-201350, {Category::Hardware, ActionRequired::Warning, "Synchronization Type cannot be Slave unless you configure the device to use a trigger with an external source. Configure an external trigger or set Synchronization Type to None or Master."}}, - {-201351, {Category::Hardware, ActionRequired::ImmediateAction, "Memory mapping is not supported by this device for on-demand acquisitions."}}, - {-201352, {Category::Configuration, ActionRequired::Warning, "Analog bus line(s) in use by another device. Verify other devices are not currently using the analog bus line(s). If you intend to share the line(s) between devices, ensure the Analog Bus Sharing Enabled property is True for all shared channels."}}, - {-201353, {Category::Other, ActionRequired::ImmediateAction, "Analog bus needed by the current operation is invalid. Verify that all carriers connected using expansion bridge(s) are functioning properly."}}, - {-201354, {Category::Hardware, ActionRequired::Warning, "Cards specified cannot be used to create a SwitchBlock device. Use the current set of cards as single-card devices, or use a different set of cards to create a valid combination."}}, - {-201355, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding the power limit for the carrier. To recover, call DAQmx Disconnect All, or reset the device. The device can be reset either programmatically or by using Measurement & Automation Explorer. Refer to your device documentation for more information."}}, - {-201356, {Category::Other, ActionRequired::ImmediateAction, "Topology specified is not supported by this card."}}, - {-201357, {Category::Hardware, ActionRequired::Warning, "Device must consist of at least one card."}}, - {-201358, {Category::Hardware, ActionRequired::Warning, "Simulation flag must be the same for the cards, devices, and carrier."}}, - {-201359, {Category::Hardware, ActionRequired::Warning, "Multicard devices must consist of cards contained in the same carrier."}}, - {-201360, {Category::Other, ActionRequired::ImmediateAction, "Carrier slot number specified for the card is invalid."}}, - {-201361, {Category::Hardware, ActionRequired::Warning, "Sync pulse cannot originate from the specified device for this combination of devices."}}, - {-201362, {Category::Hardware, ActionRequired::Warning, "Analog reference trigger and sync pulse must come from the same device."}}, - {-201363, {Category::Other, ActionRequired::Warning, "Minimum and maximum values specified are outside the bounds of the specified physical values for the table. Change the table or the minimum and maximum value appropriately."}}, - {-201364, {Category::Hardware, ActionRequired::Warning, "Trigger detected that could not be acted upon by the device. Slow down your trigger source."}}, - {-201365, {Category::Other, ActionRequired::Warning, "Onboard regeneration cannot be used when there are more than 16 channels in the task. Reduce the number of channels in the task or set Use Only Onboard Memory to false."}}, - {-201366, {Category::Other, ActionRequired::Warning, "Reference Clock signal was not found at the specified source."}}, - {-201367, {Category::Hardware, ActionRequired::ImmediateAction, "Filtering or digital synchronization of an internal signal is not supported by the device."}}, - {-201368, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid number of calibration adjustment points provided. Use DAQmx Adjust Calibration to provide calibration points for the device."}}, - {-201369, {Category::Hardware, ActionRequired::Warning, "Hostname specified is in use by another device."}}, - {-201370, {Category::Hardware, ActionRequired::Warning, "IP address specified is in use by another device."}}, - {-201371, {Category::Hardware, ActionRequired::Warning, "Multicast DNS service instance specified is in use by another device."}}, - {-201372, {Category::Other, ActionRequired::Warning, "Open thermocouple condition detected on thermocouple channel(s) you are attempting to calibrate. Ensure thermocouples are properly connected and functioning before performing lead offset nulling calibration."}}, - {-201373, {Category::Other, ActionRequired::Warning, "Output peer-to-peer streaming with the Stream statement is not allowed in a script with If Else, Repeat Until, or Break statements."}}, - {-201374, {Category::Other, ActionRequired::Warning, "Self-calibration failed. Performing an external calibration may fix the problem."}}, - {-201375, {Category::Hardware, ActionRequired::ImmediateAction, "Thermocouple lead offset nulling calibration is not supported by the specified channels. Make sure the device supports thermocouple lead offset nulling calibration. Make sure all channels are thermocouple channels. Make sure open thermocouple detection is enabled. Set skip unsupported channels to true."}}, - {-201376, {Category::Hardware, ActionRequired::ImmediateAction, "Data read from the EEPROM on the accessory attached to the device is invalid. Verify that any accessories configured with this device are connected. If the problem continues, contact National Instruments technical support. The device might need to be recalibrated or repaired by NI."}}, - {-201377, {Category::Hardware, ActionRequired::Warning, "Device is unusable while firmware update is in progress."}}, - {-201378, {Category::Other, ActionRequired::Warning, "Firmware version requested was not found on the system."}}, - {-201379, {Category::Hardware, ActionRequired::ImmediateAction, "Network devices are not supported on this platform."}}, - {-201380, {Category::Hardware, ActionRequired::ImmediateAction, "The requested operation is not supported by this device."}}, - {-201381, {Category::Communication, ActionRequired::Warning, "One or more connections to external power rails are drawing too much power. The operation has been aborted to prevent the device from using too much power. Remove the connection(s) to the external power rails and restart your task."}}, - {-201382, {Category::Other, ActionRequired::Warning, "The file write size specified is not evenly divisible by the volume sector size."}}, - {-201383, {Category::Other, ActionRequired::Warning, "The file write size specified is too large. Performance can suffer if the file write size is larger than one-fourth the size of the buffer length."}}, - {-201384, {Category::Other, ActionRequired::ImmediateAction, "The simulated C Series module is not supported on this simulated chassis."}}, - {-201385, {Category::Other, ActionRequired::Warning, "Self-calibration failed to converge. Performing an external calibration may fix the problem."}}, - {-201386, {Category::Other, ActionRequired::Warning, "Self-calibration failed. Contact National Instruments technical support at ni.com/support."}}, - {-201387, {Category::Other, ActionRequired::Warning, "The DAQmx Adjust DSA AI Calibration with Gain and Coupling function/VI was executed more than once for the same combination of gain and coupling settings. Call the DAQmx Adjust DSA AI Calibration with Gain and Coupling function/VI only once for the following combination of gain and coupling settings:"}}, - {-201388, {Category::Hardware, ActionRequired::Warning, "Network device is not reserved for this host."}}, - {-201389, {Category::Communication, ActionRequired::Warning, "Modules were inserted or removed while the connection to the network device was lost. Reset the chassis using DAQmx Reset Device or Measurement & Automation Explorer and wait for the modules to be redetected before proceeding."}}, - {-201390, {Category::Communication, ActionRequired::Warning, "Connection to the network device was lost. This can indicate an unplugged network cable, a failing network component, or a network device that is reserved by another host."}}, - {-201391, {Category::Hardware, ActionRequired::Warning, "Device could not complete calibration because calibration was not performed for all gain and coupling settings. Use DAQmx Adjust DSA AI Calibration function/VI to calibrate for the following gain and coupling settings:"}}, - {-201392, {Category::Hardware, ActionRequired::Warning, "Device does not support configuring tristate logic level in software."}}, - {-201393, {Category::Other, ActionRequired::ImmediateAction, "Tristate logic level is not supported on output only lines."}}, - {-201394, {Category::Hardware, ActionRequired::Warning, "Tristate logic level is only port configurable for this device."}}, - {-201395, {Category::Other, ActionRequired::Warning, "The task is not buffered or has no channels. If the task is not buffered, use the scalar version of this function. If the task has no channels, add one to the task."}}, - {-201396, {Category::Other, ActionRequired::ImmediateAction, "Filter Delay Removal is not supported when an analog start trigger is in use. Change Filter Delay Removal to false when using an analog start trigger. Refer to Filter Delay Removal in your DSA documentation for more details."}}, - {-201397, {Category::Hardware, ActionRequired::Warning, "Change detection has detected interrupts occurring at a higher rate than can be handled. The change detection task has been stopped to prevent the device from being reset because of this condition. If this is the result of unwanted noise on a digital signal, use a digital filter to eliminate unwanted digital transitions."}}, - {-201398, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value is not supported for this property. If you did not directly set this property to the unsupported value, check other properties that you have set, as they can influence the scaled value of this property."}}, - {-201399, {Category::Hardware, ActionRequired::Warning, "Multi-device timed DIO tasks require all modules to be the same type. You can select either all your serial digital modules or all your parallel digital modules in this task."}}, - {-201400, {Category::Other, ActionRequired::Warning, "Failed to reserve file size. File size pre-allocation might require you to run the application with administrator privileges. If the operating system uses User Account Control, configure this control properly."}}, - {-201401, {Category::Hardware, ActionRequired::Warning, "Retrieving properties from the network device failed. Make sure the device is connected."}}, - {-201402, {Category::Other, ActionRequired::Warning, "The samples per file specified is not evenly divisible by the file write size. Either change the samples per file or modify the file write size. If not explicitly set, the file write size can be inferred from the buffer size, which is based on the sample rate."}}, - {-201403, {Category::Other, ActionRequired::Warning, "You have specified a new file path but did not call DAQmx Start New File. To change the file path while logging, configure Logging.SampsPerFile or call DAQmx Start New File."}}, - {-201404, {Category::Hardware, ActionRequired::Warning, "One or more cards for your NI SwitchBlock device have been inserted and/or removed while your system was powered on. This can lead to unexpected behavior. Restart your system."}}, - {-201405, {Category::Other, ActionRequired::Warning, "An expansion bridge has been inserted or removed while your system is powered on. This can lead to unexpected behavior. Restart your system."}}, - {-201406, {Category::Other, ActionRequired::Warning, "The 5 V fuse on your NI SwitchBlock carrier is blown. Refer to your documentation for help with replacing the fuse."}}, - {-201407, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported unless Sample Mode is set to Hardware Timed Single Point."}}, - {-201408, {Category::Hardware, ActionRequired::Warning, "Averaging of data is only supported when the Sample Mode is set to Hardware Timed Single Point and the Sample Clock source is external to the device."}}, - {-201409, {Category::Hardware, ActionRequired::Warning, "The requested delay from Sample Clock is out of range for a hardware-timed single-point acquisition."}}, - {-201410, {Category::Hardware, ActionRequired::Warning, "The requested Sample Clock rate is too fast for hardware-timed single point. Consider decreasing the Sample Clock rate, increasing the convert rate, or decreasing the delay from the Sample Clock. If using an external Sample Clock source, you might also decrease the number of samples to average."}}, - {-201411, {Category::Communication, ActionRequired::Warning, "The accessory attached to the device does not support connections. Attach an accessory that supports connections."}}, - {-201412, {Category::Hardware, ActionRequired::Warning, "The specified accessory channels are not present on this device. The accessory channels should be specified for the device in the calibration session."}}, - {-201413, {Category::Hardware, ActionRequired::Warning, "There is no accessory attached to the device."}}, - {-201414, {Category::Communication, ActionRequired::ImmediateAction, "The specified connection is not supported on the attached accessory. Refer to your accessory documentation for supported connections."}}, - {-201415, {Category::Other, ActionRequired::ImmediateAction, "The module is not supported by the NI 9163."}}, - {-201416, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding its simultaneous relay drive limit. To recover, disconnect a relay or channel."}}, - {-201417, {Category::Other, ActionRequired::Warning, "Timing is configured without supplying a clock signal. Either supply an external clock or use an internal timebase."}}, - {-201418, {Category::Hardware, ActionRequired::Warning, "Device firmware has not been updated because the firmware file uploaded is corrupt or is not a valid firmware image file. Please verify that the file specified is a valid National Instruments firmware image."}}, - {-201419, {Category::Hardware, ActionRequired::Warning, "Device firmware has not been updated because the firmware file uploaded is for a different type of device or an older revision of this device. Please verify that the firmware file is correct for this device."}}, - {-201420, {Category::Hardware, ActionRequired::Warning, "The network device is currently reserved by another host. Specify whether you want to override the other host's reservation."}}, - {-201421, {Category::Configuration, ActionRequired::Warning, "The accessory attached to the device does not support this property."}}, - {-201422, {Category::Hardware, ActionRequired::ImmediateAction, "Your SwitchBlock carrier contains one or more cards with power characteristics unknown to the driver. To protect the hardware from overheating, all devices within your carrier are disallowed from drawing power. Upgrade your software driver to the latest version or shutdown your system and remove any unknown or invalid card(s)."}}, - {-201423, {Category::Communication, ActionRequired::Warning, "Communication with the chassis has been interrupted. Check the cabling and/or the wireless signal to the chassis. Then reset the chassis using DAQmx Reset Device or Device Reset in MAX to re-establish communication."}}, - {-201424, {Category::Hardware, ActionRequired::Warning, "The multidevice task cannot be synchronized in its current configuration."}}, - {-201425, {Category::Hardware, ActionRequired::Warning, "The multidevice task does not have a method for synchronizing timing that is compatible with all of the included devices."}}, - {-201426, {Category::Hardware, ActionRequired::Warning, "One or more devices do not support multidevice tasks."}}, - {-201427, {Category::Hardware, ActionRequired::ImmediateAction, "The specified device is not supported within the NI-DAQmx API."}}, - {-201428, {Category::Other, ActionRequired::Warning, "More than one sync pulse was detected. For proper operation, only a single sync pulse signal can be provided to all DSA modules in a task."}}, - {-201429, {Category::Other, ActionRequired::Warning, "Start trigger delay is not available when a C Series Delta-Sigma module or a Reference Clock module is in the task."}}, - {-201430, {Category::Other, ActionRequired::ImmediateAction, "You have requested an invalid number of reference voltages to write. Ensure the number of values to write is the same as the number of entries in the array."}}, - {-201431, {Category::Other, ActionRequired::Warning, "Calibration offset adjustment has failed because the wrong channel was selected. Check the module calibration procedure to decide which channel to use for the calibration offset adjustment."}}, - {-201432, {Category::Hardware, ActionRequired::Warning, "Calibration adjustment cannot be completed on a device performing different types of measurements (for instance, voltage and current measurements). Make sure only one measurement type is being calibrated in each calibration session."}}, - {-201433, {Category::Other, ActionRequired::Warning, "Write failed because a watchdog timer task expired and changed the direction of the lines to tristate after the digital output task was committed. To avoid this, unreserve and recommit the digital output task after the watchdog timer expiration has been cleared to reconfigure the lines to output."}}, - {-201434, {Category::Other, ActionRequired::Warning, "Configuration failed because the task tried to change the direction of a line while the watchdog timer is expired. Clear the expiration of the watchdog timer task before trying to change the direction of any line, even if the line is not watched by the watchdog timer task."}}, - {-201435, {Category::Other, ActionRequired::Warning, "No samples provided to DAQmx Write to initialize buffered generation."}}, - {-201436, {Category::Hardware, ActionRequired::Warning, "Unable to route signals through the analog bus that are composed of different wire modes. Please disconnect any devices of different wire modes from the analog bus before routing this device through the analog bus."}}, - {-201437, {Category::Hardware, ActionRequired::Warning, "The timeout value specified exceeds the maximum timeout value supported by this device."}}, - {-201438, {Category::Hardware, ActionRequired::ImmediateAction, "The device was rebooted after a watchdog timer expired due to unresponsive firmware or hardware components. A watchdog timer that times out can cause digital output lines to change state. To clear this error, reset or power cycle the device. Please also contact National Instruments technical support."}}, - {-201439, {Category::Other, ActionRequired::Warning, "Retriggering is not allowed for finite Sample Clock-timed counter output tasks. Reconfigure the task to use a different sample timing type or disable retriggering."}}, - {-201440, {Category::Hardware, ActionRequired::Warning, "Neither an external reference clock nor a sample clock timebase has been specified. For multi-device synchronization, you must specify the sync pulse source and either an external reference clock or sample clock timebase. Refer to the device documentation for details on multi-device synchronization."}}, - {-201441, {Category::Other, ActionRequired::Warning, "On an NI 449x, specify either the sync pulse source or the sample clock timebase source but not both."}}, - {-201442, {Category::Other, ActionRequired::Warning, "Cannot measure two-edge separation with both the first and second terminal set to the same signal and both the first and second edge set to the same edge. To measure the period of a signal, use a counter input period task. Otherwise, change one of the terminals to a different signal, or change one of the edges to be different from the other."}}, - {-201443, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The 4-bit FREQOUT counter can divide the 20 MHz, 10 MHz (20 MHz / 2), or 100 kHz (20 MHz / 200) timebase by a number between 1 and 16. Choose a frequency within this range."}}, - {-201444, {Category::Hardware, ActionRequired::Warning, "Multidevice tasks cannot use the on-demand sample timing type. Configure timing to synchronize and acquire samples from multiple devices."}}, - {-201445, {Category::Other, ActionRequired::Warning, "You must configure strain gage channels for each arm of the rosette. Specify the strain gage channel names."}}, - {-201446, {Category::Other, ActionRequired::Warning, "Each tee rosette requires two physical channels. Make sure the physical channel list contains two physical channels for each tee rosette."}}, - {-201447, {Category::Other, ActionRequired::Warning, "The selected rosette requires three physical channels. Make sure the physical channel list contains three physical channels for each rosette."}}, - {-201448, {Category::Other, ActionRequired::Warning, "No rosette measurements specified. Please specify one or more rosette measurements."}}, - {-201449, {Category::Communication, ActionRequired::Warning, "The requested port connection string is not in a valid format. The valid format is /port (e.g. Dev1/port2)."}}, - {-201450, {Category::Communication, ActionRequired::Warning, "The requested device does not support cDAQ Sync connections."}}, - {-201451, {Category::Other, ActionRequired::Warning, "The operation cannot be completed on only one port. Two ports are required."}}, - {-201452, {Category::Other, ActionRequired::Warning, "The operation has been aborted."}}, - {-201453, {Category::Communication, ActionRequired::Warning, "Cannot find disconnected connections between devices in different states (present and simulated). Please check requested set."}}, - {-201454, {Category::Other, ActionRequired::Warning, "Carrier physically unable to contain the declared cards."}}, - {-201455, {Category::Communication, ActionRequired::Warning, "cDAQ Sync connections are not allowed between physical and NI-DAQmx simulated devices. Use cDAQ Sync for either only physical devices or only NI-DAQmx simulated devices."}}, - {-201456, {Category::Communication, ActionRequired::Warning, "The devices attempting to be configured for cDAQ Sync do not have a common sync connection strategy."}}, - {-201457, {Category::Communication, ActionRequired::Warning, "cDAQ Sync cannot add a connection from a port to the same port. Add a connection to a different port instead."}}, - {-201458, {Category::Other, ActionRequired::ImmediateAction, "Specified timeout value is not supported. Set the timeout to to a value > 0 or -1 (wait infinitely)."}}, - {-201459, {Category::Communication, ActionRequired::Warning, "Specified devices do not support cDAQ Sync connections. Please select a different set of devices."}}, - {-201460, {Category::Communication, ActionRequired::Warning, "No devices scanned support cDAQ Sync connections. Requesting an empty string only scans physical devices (present and offline) and ignores NI-DAQmx simulated devices. Please check your hardware configuration."}}, - {-201461, {Category::Hardware, ActionRequired::Warning, "Reference clock is not present. This task requires a reference clock to be present before configuring hardware."}}, - {-201462, {Category::Communication, ActionRequired::Warning, "The attempted connection is not between an output port and an input port. Port 0 is input only. All other ports are output only. Please check your connection and try again."}}, - {-201463, {Category::Other, ActionRequired::Warning, "The requested ports are not reciprocal. Make sure that the ports point at each other."}}, - {-201464, {Category::Hardware, ActionRequired::Warning, "A hardware fault has occurred. Please contact National Instruments technical support. To clear the fault, power cycle the device."}}, - {-201465, {Category::Hardware, ActionRequired::Warning, "Cannot perform auto-configure on offline devices. Please remove offline devices from the requested set."}}, - {-201466, {Category::Communication, ActionRequired::Warning, "Cannot auto-configure connections between devices in different states (present, offline, and simulated). Please check requested set."}}, - {-201467, {Category::Configuration, ActionRequired::ImmediateAction, "Associated channels have conflicting properties. Make the conflicting property values consistent across channels to fix the error."}}, - {-201468, {Category::Hardware, ActionRequired::Warning, "The requested cDAQ Sync device cannot be configured because the master timebase is not present. Tasks containing cDAQ Sync devices that export or import a timebase must be committed in cascading order from the source to the destination. Use DAQmx Control Task to commit the master timebase source task prior to committing or starting a slave task."}}, - {-201469, {Category::Other, ActionRequired::Warning, "You selected a different digitizer and communicator for an SCXI module that is in multiplexed mode. Configure the SCXI module with the digitizer set to the same mode as the chassis communicator in MAX."}}, - {-201470, {Category::Other, ActionRequired::ImmediateAction, "Invalid calibration adjustment point(s) provided. Use DAQmx Get Calibration Adjustment Points to retrieve valid adjustment values."}}, - {-201471, {Category::Hardware, ActionRequired::Warning, "The physical channel string contains multiple devices. You can include multiple physical channels on a single device (for example, \"Dev1/ao0:3\") but not multiple physical channels on multiple devices (for example, \"Dev1/ao0:3, Dev2/ao2\")."}}, - {-201472, {Category::Other, ActionRequired::Warning, "You must specify exactly one timestamp channel for a Navigation With Timestamp read call."}}, - {-201474, {Category::Hardware, ActionRequired::ImmediateAction, "The device is not supported on the local system, is incompatible, or the installation is corrupt. Install and/or repair the appropriate driver."}}, - {-201475, {Category::Hardware, ActionRequired::Warning, "Auxiliary power not detected. Verify that the auxiliary power source is properly connected to the device and that the auxiliary input fuse has not blown. Refer to the NI-DCPower documentation for information about replacing the input fuse."}}, - {-201476, {Category::Other, ActionRequired::Warning, "Task reservation failed because a watchdog timer task is reserved. Unreserve or commit the watchdog timer task to reserve a new task."}}, - {-201477, {Category::Other, ActionRequired::Warning, "Reservation of watchdog timer task failed because another task is reserved or running. Stop and unreserve all other tasks before reserving a watchdog timer task."}}, - {-201478, {Category::Other, ActionRequired::Warning, "Watchdog timer task has expired. Reset the chassis to resume normal operation."}}, - {-201479, {Category::Configuration, ActionRequired::Warning, "The attribute/property ArmStart.Term cannot be queried when a software arm start trigger is configured because it cannot be exported to any terminal. Configure an external arm start trigger and query the desired attribute/property."}}, - {-201480, {Category::Hardware, ActionRequired::Warning, "There is already a session open to the device from another process, or a calibration session is open. You must close the open session, exit the application holding the device, or release the device in the Soft Front Panel."}}, - {-201481, {Category::Other, ActionRequired::Warning, "If you specify an expiration state for any line on an NI 9401 in the range of line 0:3 or line 4:7, you must specify an expiration state for every line in that range."}}, - {-201482, {Category::Other, ActionRequired::Warning, "The current number of channels chosen for calibration is incorrect. You must specify all channels for calibration."}}, - {-201483, {Category::Hardware, ActionRequired::Warning, "The selected master for the configured multi-device task is not able to export signals. Make sure that the first channel in the task is from a device on a chassis that has an NI 9469 capable of exporting signals to the slave devices. If you have any delta-sigma modules in your task, at least one must be in the master chassis. For time-based synchronization, ensure all the chassis in the task are in the same synchronization network."}}, - {-201484, {Category::Hardware, ActionRequired::Warning, "The current task contains channels from both delta-sigma and non delta-sigma devices. Make sure the first channel in the task is from a delta-sigma device and that it is located in a chassis that is able to share signals with its slave chassis through an NI 9469, or the task is running on devices that support time-based network synchronization."}}, - {-201485, {Category::Other, ActionRequired::Warning, "Measured data size does not match reference data size. The module acquires data and receives reference data in different functions. Please make sure these calibration functions are executed the same number of times during calibration."}}, - {-201486, {Category::Other, ActionRequired::Warning, "You must call DAQmx Setup Calibration first in order to calibrate this module."}}, - {-201487, {Category::Hardware, ActionRequired::Warning, "You must disable automatic firmware updates before attempting to manually update the firmware of your device."}}, - {-201488, {Category::Hardware, ActionRequired::Warning, "Firmware update failed. System attempted to update a different device than what you specified. Try updating again."}}, - {-201489, {Category::Other, ActionRequired::ImmediateAction, "Invalid state for firmware update. You must call the firmware update action after calling beginFirmwareAction and before calling disposeFirmwareAction."}}, - {-201490, {Category::Other, ActionRequired::Warning, "Firmware version being installed is older than the currently installed firmware."}}, - {-201491, {Category::Other, ActionRequired::Warning, "Firmware version being installed matches the currently installed version."}}, - {-201492, {Category::Hardware, ActionRequired::ImmediateAction, "Attempted operation is not supported on simulated devices."}}, - {-201493, {Category::Hardware, ActionRequired::Warning, "Shunt calibration failed. The calculated gain adjust is out of range. Ensure that the shunt calibration terminals are connected properly and that the shunt resistance and shunt element location settings match how the hardware is wired."}}, - {-201494, {Category::Hardware, ActionRequired::Warning, "Device does not support simultaneous calibration of multiple channels. Calibrate channels one channel at a time passing individual channels to different invocations of DAQmx Adjust Calibration."}}, - {-201495, {Category::Hardware, ActionRequired::Warning, "Device calibration requires all ranges to be calibrated for a single channel. Calibrate the ranges specified in the procedure."}}, - {-201496, {Category::Other, ActionRequired::Warning, "Voltage settings not calibrated. Ensure all voltage settings are calibrated before trying to calibrate bridge settings."}}, - {-201497, {Category::Other, ActionRequired::Warning, "You must run setupCalibration before running getCalDataPoints."}}, - {-201498, {Category::Hardware, ActionRequired::Warning, "AI channels on this device do not support using AC coupling while not using IEPE excitation. Enable IEPE excitation or set the coupling mode to DC."}}, - {-201499, {Category::Other, ActionRequired::Warning, "The selected calibration mode cannot query calibration data points. Make sure you follow the calibration procedure."}}, - {-201500, {Category::Other, ActionRequired::Warning, "The channel in calibration adjustment did not call calibration setup. Make sure you call calibration setup before calibration adjustment for this channel."}}, - {-201501, {Category::Other, ActionRequired::Warning, "The reference value input of calibration adjustment is out of range."}}, - {-201502, {Category::Configuration, ActionRequired::Warning, "DAC Offset Voltage Value is not set. When the DAC Offset Voltage Source property for a channel is set to External, the DAC Offset Voltage Value property must be set. Set the DAC Offset Voltage Value property so the value matches the offset voltage source connected to your device. Alternatively, use the internal DAC offset voltage source available on the device."}}, - {-209800, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of the next sample clock or change detection event which indicates that your program is not keeping up with the hardware clock or the external change event. For tasks using sample clock timing, slow down the hardware clock or else change your application so that it can keep up with the hardware clock. For tasks using change detection timing, decrease the frequency of your event or else change your application so that it can keep up with the change event."}}, - {200079, {Category::Other, ActionRequired::Warning, "When specifying \"No Change\" as a watchdog state on a DSA channel, the actual behavior is determined by the idle output behavior configured by the last task run on the module."}}, - {-209801, {Category::Hardware, ActionRequired::Warning, "DAQmx Write did not complete before the arrival of the next sample clock which indicates that your program is not keeping up with the hardware clock. Slow down the hardware clock or else change your application so that it can keep up with the hardware clock."}}, - {-209802, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock detected one or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates that your program is not keeping up with the sample clock. To remove this error, slow down the sample clock, or else change your application so that it can keep up with the sample clock. Alternatively, consider setting the Convert Errors to Warnings property to true and then handling the warning case appropriately."}}, - {-209803, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock detected 3 or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates your program is not keeping up with the sample clock, and data was subsequently lost before it could be read by the application. To remove this error, slow down the sample clock. Consider restructuring the application so you can call DAQmx Read more often. Setting the Convert Error to Warning property to True will not eliminate the error because the data is lost."}}, - {-209805, {Category::Other, ActionRequired::Warning, "Task with counter output detected a sample clock before the corresponding DAQmx Write was completed. This may have occurred because the frequency of the counter output is too low for the given sample clock rate. A full output period must complete before new data can be written. To avoid this problem make sure that the counter output frequency is significantly higher than the sample clock rate."}}, - {-200831, {Category::Other, ActionRequired::Warning, "On Demand Simultaneous Analog Output Enable cannot be set to true unless Sample Timing Type is On Demand."}}, - {-201045, {Category::Hardware, ActionRequired::ImmediateAction, "Device connector number specified is invalid. Enter a valid connector number."}}, - {-201116, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware timed non-buffered analog output is not supported on this device."}}, + {-209886, {Category::Configuration, ActionRequired::Warning, "Setting the specified property does not allow multiple task configuration of the sample clock."}}, + {-209885, {Category::Configuration, ActionRequired::ImmediateAction, "A property is set to a value that is not supported by multiple task configuration of the sample clock."}}, + {-209884, {Category::Hardware, ActionRequired::Warning, "A common sample rate for all specified tasks could not be found. If your application contains both fast- and slow-sampled devices, consider enabling allow repeated samples."}}, + {-209883, {Category::Other, ActionRequired::Warning, "A common sample rate for all specified tasks could not be found."}}, + {-209882, {Category::Hardware, ActionRequired::Warning, "The task contains multiple devices or chassis. Multiple task configuration only supports tasks with a single device or chassis."}}, + {-209881, {Category::Other, ActionRequired::Warning, "The task does not support configuring its sample clock rate via multiple task configuration."}}, + {-209880, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task may have a registered timing source. The debug session does not support debugging tasks with registered timing sources."}}, + {-209879, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task has logging enabled. The debug session does not support debugging tasks with logging enabled. Turn off logging for the target task and try again."}}, + {-209878, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the debug session's target task has registered events. The debug session does not support debugging tasks with registered events. Unregister the events for the target task and try again."}}, + {-209877, {Category::Other, ActionRequired::ImmediateAction, "Specified operation cannot be performed because the debug session's target task is invalid or does not exist."}}, + {-209876, {Category::Hardware, ActionRequired::ImmediateAction, "Requested function is not supported by the device."}}, + {-209875, {Category::Other, ActionRequired::Warning, "Multiple tasks were found that match the debug session target settings.The debug session does not support debugging more than one task at a time. Change the target settings to match a specific task and try again."}}, + {-209874, {Category::Other, ActionRequired::Warning, "A task was not found that matches the debug session target settings."}}, + {-209873, {Category::Other, ActionRequired::ImmediateAction, "Specified operation cannot be performed because it is not supported in a debug session."}}, + {-209872, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because it is not permitted in monitor mode.Make sure the debug session is in control mode before requesting this operation."}}, + {-209871, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed because your device contains multiple banks, and the property has different values for different banks. Get this property one bank at a time by changing the active device name to specify each individual bank."}}, + {-209870, {Category::Other, ActionRequired::ImmediateAction, "Timing source creation has failed because another timing source has already been registered for this task."}}, + {-209869, {Category::Hardware, ActionRequired::ImmediateAction, "Requested value is not a supported value for this hardware revision. However, it may be supported on later revisions. Visit ni.com/info, and enter the info code \"fielddaqfilter\" for additional information."}}, + {-209868, {Category::Other, ActionRequired::ImmediateAction, "To set the sensor power supply voltage level, you must specify the sensor power configuration."}}, + {-209867, {Category::Other, ActionRequired::ImmediateAction, "To enable the sensor power supply, you must specify the sensor power voltage level."}}, + {-209866, {Category::Hardware, ActionRequired::Warning, "The hardware cannot acquire data from the configured scanlist. Please enter the info code that follows at ni.com/info for additional information."}}, + {-209865, {Category::Other, ActionRequired::ImmediateAction, "All internal routes have been reserved. If you are using time-based synchronization, please refer to info code \"TimeTriggerLimits\" at ni.com/info for additional information."}}, + {-209864, {Category::Other, ActionRequired::Warning, "The requested Reset Delay cannot be set based on your task configuration. If you are using C Series modules from different chassis in the same task, it is possible that the sample rate and module types cannot be synchronized effectively."}}, + {-209863, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of time triggers available. Try disabling time triggers that are enabled on one or more DAQ tasks in your system. If no more time triggers can be disabled, try disabling other features that require internal routing resources. Please refer to info code \"TimeTriggerLimits\" at ni.com/info for more information."}}, + {-209862, {Category::Other, ActionRequired::ImmediateAction, "Exceeded total number of timestamps available. Try disabling timestamps that are user-defined or enabled by default on one or more DAQ tasks in your system."}}, + {-209861, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices in your task are not running the IEEE 802.1AS or IEEE 1588 synchronization protocol. Use the NI-Sync LabVIEW API to enable 802.1AS or 1588. Refer to the NI-Sync help or LabVIEW examples for more information."}}, + {-209860, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices could not be added to your task because they have existing coherency requirements that conflict with the new requirements of your current task. Stop the task(s) that use devices in this task and try running it again."}}, + {-209859, {Category::Hardware, ActionRequired::ImmediateAction, "The devices in your task must be synchronized to one another using the IEEE 802.1AS or IEEE 1588 synchronization protocol. Connect the devices, either directly or via an 802.1AS or 1588-capable switch."}}, + {-209858, {Category::Other, ActionRequired::ImmediateAction, "FieldDAQ bank name specified is invalid. FieldDAQ bank names are of the form -Bank. For example, FieldDAQ1-Bank1."}}, + {-209857, {Category::Hardware, ActionRequired::ImmediateAction, "Task contains physical channels on one or more devices that do not support the DAQmx hardware-timed single-point sample mode."}}, + {-209856, {Category::Other, ActionRequired::ImmediateAction, "Bank type in the source storage does not match the bank type in the destination."}}, + {-209855, {Category::Hardware, ActionRequired::ImmediateAction, "FieldDAQ device does not support the specified number of banks. The bank number specified may be too large. Change the bank number to be a valid bank number."}}, + {-209854, {Category::Other, ActionRequired::ImmediateAction, "The simulated FieldDAQ bank is not supported on this simulated FieldDAQ."}}, + {-209853, {Category::Other, ActionRequired::ImmediateAction, "The IsSimulated flags for FieldDAQ and banks must match. Change the IsSimulated flags in the import file so that they match."}}, + {-209852, {Category::Hardware, ActionRequired::ImmediateAction, "The specified device is no longer supported within the NI-DAQmx API."}}, + {-209851, {Category::Other, ActionRequired::ImmediateAction, "The requested Sample Timing Engine does not support Use Only Onboard Memory."}}, + {-209850, {Category::Other, ActionRequired::ImmediateAction, "Task name specified conflicts with an existing task name in another project."}}, + {-209849, {Category::Other, ActionRequired::Warning, "A time Arm Start Trigger and time Start Trigger are configured. Ensure the Arm Start Trigger comes first."}}, + {-209848, {Category::Hardware, ActionRequired::Warning, "The time trigger cannot be configured because your device has lost synchronization lock to the grand master."}}, + {-209847, {Category::Configuration, ActionRequired::ImmediateAction, "Specified value is not supported for this property. Supported values are -1 (infinite window) or non-negative numbers up to 15.768000e9."}}, + {-209846, {Category::Configuration, ActionRequired::Warning, "The property cannot be queried before or during a data acquisition. You must explicitly commit, run, and stop your task before attempting to read this property."}}, + {-209845, {Category::Configuration, ActionRequired::ImmediateAction, "The Sample Clock Timebase property you have requested is not supported by this task because it contains a reference clock device. Use the Reference Clock properties instead."}}, + {-209844, {Category::Other, ActionRequired::Warning, "Attempted to query a timestamp before it is available. Use the DAQmx Wait for Valid Timestamp VI/function to wait until the desired timestamp is available."}}, + {-209843, {Category::Hardware, ActionRequired::ImmediateAction, "Time operations are not supported by this device or task type."}}, + {-209842, {Category::Other, ActionRequired::Warning, "Timestamp requested is not enabled for this task."}}, + {-209841, {Category::Other, ActionRequired::Warning, "A time sync pulse and time start trigger are configured. Ensure the sync pulse comes first and the difference between them is larger than the task sync time."}}, + {-209840, {Category::Other, ActionRequired::Warning, "The configured time trigger is in the past."}}, + {-209839, {Category::Hardware, ActionRequired::Warning, "A time trigger configured is too far in the future. Use I/O Device Timescale instead of Host Timescale, configure the trigger at a point in the future closer to the trigger time, or schedule the trigger closer in time to the current Host Timescale time."}}, + {-209838, {Category::Configuration, ActionRequired::Warning, "Synchronization lock was lost during operation. If the occasional loss of synchronization is acceptable, change the Synchronization Unlock Behavior property to ignore sync loss. Otherwise, go to ni.com for more information about sync loss management."}}, + {-209837, {Category::Other, ActionRequired::Warning, "The timescales for time start trigger and time sync pulse must be the same."}}, + {-209836, {Category::Hardware, ActionRequired::Warning, "The devices in your task cannot be synchronized. This may be because there are no available synchronization mechanisms between the devices."}}, + {-209835, {Category::Configuration, ActionRequired::ImmediateAction, "The specified property requires all associated channels to use the same range as specified by the Maximum and Minimum properties. Try setting the same Maximum and Minimum Values on each channel or change the conflicting property."}}, + {-209834, {Category::Configuration, ActionRequired::Warning, "Sample rate exceeds the maximum sample rate for the number of channels and property values specified. Reduce the sample rate or number of channels. Changing the specified property values may also increase the maximum possible sample rate."}}, + {-209833, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Wait for Valid Timestamp is not supported by one or more devices in this task."}}, + {-209832, {Category::Other, ActionRequired::Warning, "Specified Trigger Window has elapsed without a trigger being detected."}}, + {-209831, {Category::Hardware, ActionRequired::Warning, "Not all devices in the task support the specified Trigger configuration."}}, + {-209830, {Category::Hardware, ActionRequired::Warning, "Not all devices in the task support the specified Data Transfer Mechanism."}}, + {-209829, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the data transfer throughput. Reduce the maximum data transfer rate of the device. You can also increase bandwidth by reducing the number of programs your computer is executing."}}, + {-209828, {Category::Hardware, ActionRequired::Warning, "All channels used for the analog trigger source must be on the same device. Remove trigger configurations from the task until all of the sources are channels from the same device."}}, + {-209827, {Category::Hardware, ActionRequired::Warning, "The device does not support using more than one trigger type at a time with the specified task configuration. Configure the device to use only one trigger type or to use a configuration that supports using multiple trigger types."}}, + {-209826, {Category::Other, ActionRequired::Warning, "Multiple source triggering requires the same number of values for all user-specified trigger configurations."}}, + {-209825, {Category::Configuration, ActionRequired::Warning, "The specified AO DAC range must be consistent with all reserved tasks on this device. Ensure that all reserved tasks on this device use the same value for the AO.DAC.Ref.Val channel attribute/property."}}, + {-209824, {Category::Other, ActionRequired::Warning, "The waveforms passed to DAQmx Write claim to be sampled at inconsistent rates. Check to make sure the data is sampled at the correct rate and either re-sample the data or correct the dt element of the waveforms."}}, + {-209823, {Category::Other, ActionRequired::Warning, "The function called is no longer supported by DAQmx."}}, + {-209822, {Category::Other, ActionRequired::ImmediateAction, "Negative duration values other than -1 are not supported. -1 indicates to read all samples."}}, + {-209821, {Category::Other, ActionRequired::Warning, "No samples were acquired within the specified duration. Increase the duration or sample rate so that at least one sample is acquired."}}, + {-209820, {Category::Other, ActionRequired::Warning, "The specified duration is too long. Specify a shorter duration."}}, + {-209819, {Category::Other, ActionRequired::Warning, "Duration-based reads are supported only in sample clock timing mode."}}, + {-209818, {Category::Other, ActionRequired::ImmediateAction, "The selected LED state is invalid."}}, + {-209817, {Category::Hardware, ActionRequired::Warning, "A device in your watchdog task does not support different output state types. Set all channels to the same output state type or remove the channels from the task."}}, + {-209816, {Category::Hardware, ActionRequired::Warning, "Self-test of the device has failed because the measured power supply voltage is outside of tolerance. Please contact National Instruments technical support."}}, + {-209815, {Category::Hardware, ActionRequired::Warning, "DAQmx Write does not support multiple samples in Hardware-Timed Single-Point tasks. Specify a single sample."}}, + {-209814, {Category::Configuration, ActionRequired::Warning, "You cannot use onboard regeneration for a task with this many channels. Reduce the number of channels in the task, use fewer modules with more the 16-bits of precision, or set the AO.UseOnlyOnBrdMem attribute/property to false."}}, + {-209813, {Category::Hardware, ActionRequired::Warning, "To create watchdog task on this device, you must specify expiration states for all lines. Specify states for the missing channels."}}, + {-209812, {Category::Hardware, ActionRequired::Warning, "The selected shunt source option for the shunt calibration is not valid for this device."}}, + {-209811, {Category::Hardware, ActionRequired::Warning, "The selected shunt select option for the shunt calibration is not valid for this device."}}, + {-209810, {Category::Hardware, ActionRequired::Warning, "This device does not support shunt calibration for the requested configuration of shunt select and shunt source. Refer to the shunt calibration documentation for your application development environment for more information."}}, + {-209809, {Category::Other, ActionRequired::Warning, "The selected channels do not support buffered operations when alone in a task. Add an additional channel which supports buffered operations to the task or reconfigure the task to use On-Demand timing."}}, + {-209808, {Category::Other, ActionRequired::ImmediateAction, "The specified feature is not supported on the attached accessory. Refer to your accessory documentation for accessories that support the requested feature."}}, + {-209807, {Category::Other, ActionRequired::Warning, "The threshold voltage value must be consistent when using the same terminal with RSE terminal configuration as a source for multiple inputs. For example, do not set 2.0 V on PFI0 for one input, and 3.0 V on PFI0 for another input."}}, + {-209806, {Category::Software, ActionRequired::Warning, "NI-DAQmx is not installed on the target system, is incompatible, or the installation is corrupt. Install or repair the driver software."}}, + {-209804, {Category::Configuration, ActionRequired::ImmediateAction, "Your device has lost synchronization lock to the grand master. Any timestamp values for the task may be invalid, but the task was not stopped because the SyncUnlockBehavior property is set to \"Ignore Lost Sync Lock.\" To query the status of your device, read either the ReadSyncUnlockedChansExist or WriteSyncUnlockedChansExist property."}}, + {-209803, {Category::Configuration, ActionRequired::ImmediateAction, "The Onboard Memory Empty value of the AO.DataXferReqCond attribute/property is not supported on this device. The value of this attribute/property is coerced to a different value after Output.BufSize is set. You can emulate the behavior of the Onboard Memory Empty value by setting Output.BufSize to a lower value. The minimum value for this attribute/property is 2."}}, + {-209802, {Category::Other, ActionRequired::Warning, "DAQmx Wait for Next Sample Clock detected one or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates that your program is not keeping up with the sample clock. To remove this warning, slow down the sample clock, or else change your application so that it can keep up with the sample clock."}}, + {-209801, {Category::Hardware, ActionRequired::Warning, "DAQmx Write did not complete before the arrival of the next sample clock which indicates that your program is not keeping up with the hardware clock. To remove this warning, slow down the hardware clock, or else change your application so that it can keep up with the hardware clock."}}, + {-209800, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of the next sample clock or change detection event, which indicates that your program is not keeping up with the hardware clock or the external change event. For tasks using sample clock timing, slow down the hardware clock or else change your application so that it can keep up with the hardware clock. For tasks using change detection timing, decrease the frequency of your event or else change your application so that it can keep up with the change event."}}, + {-201510, {Category::Other, ActionRequired::Warning, "The digital filtering properties must be consistent when using the same terminal as a source for multiple inputs. For example, digital filtering can either be enabled with the same minimum pulse width configuration whenever PFI0 is used, or disabled for all cases."}}, + {-201509, {Category::Other, ActionRequired::Warning, "The logic level behavior must be consistent when using the same terminal as a source for multiple inputs. For example, do not enable the pull-up on PFI0 for one input, and set it to none on PFI0 for another input."}}, + {-201508, {Category::Other, ActionRequired::Warning, "The terminal configuration must be consistent when using the same terminal as a source for multiple inputs. For example, do not set PFI0 to differential for one input, and PFI0 to RSE for another input."}}, + {-201507, {Category::Hardware, ActionRequired::ImmediateAction, "A fatal hardware clocking error has occurred. The device is unusable until you restart it. If the problem persists, please contact National Instruments Technical Support."}}, + {-201506, {Category::Hardware, ActionRequired::ImmediateAction, "A hardware clocking error has occurred. Try the operation again. If the problem persists, please contact National Instruments Technical Support."}}, + {-201505, {Category::Hardware, ActionRequired::Warning, "The chassis requires at least one DAQ device directly cabled to it. Edit the chassis and assign a device."}}, + {-201504, {Category::Hardware, ActionRequired::ImmediateAction, "A fatal hardware clocking error has occurred. The device is unusable until you restart it. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-201503, {Category::Software, ActionRequired::Warning, "The AI timing engine cannot be used for counter tasks. You can select a different timing engine or let the driver automatically select one."}}, + {-200078, {Category::Hardware, ActionRequired::ImmediateAction, "Using USB DAQ devices on Windows XP might result in corrupt data or other errors. Visit ni.com/info and enter info code \"WindowsXPUSBHotfix\" to obtain a patch."}}, + {-200077, {Category::Other, ActionRequired::Warning, "The NI PXIe-5611 is not configured properly and needs to be associated with an AWG and LO. Right-click on the NI PXIe-5611 and select 'Configure' to associate the AWG and LO. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, + {-200076, {Category::Other, ActionRequired::Warning, "The NI PXIe-5611 is not configured and needs to be associated with an AWG and LO. Right-click on the NI PXIe-5611 and select 'Configure' to associate the AWG and LO. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, + {-200075, {Category::Other, ActionRequired::Warning, "The NI PXI-5610 is not configured properly and needs to be associated with an AWG. Right-click on the NI PXI-5610 and select 'Configure' to associate the AWG. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, + {-200074, {Category::Other, ActionRequired::Warning, "The NI PXI-5610 is not configured and needs to be associated with an AWG. Right-click on the NI PXI-5610 and select 'Configure' to associate the AWG. For more information, refer to NI-RFSG documentation, RF Signal Generators Getting Started Guide."}}, + {-200073, {Category::Other, ActionRequired::Warning, "The NI PXI-5665 is not configured properly. Right-click on the NI PXIe-5606 and select 'Configure' to associate the digitizer and LO."}}, + {-200072, {Category::Other, ActionRequired::Warning, "The NI PXIe-5606 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5606 and select 'Configure' to associate the digitizer and LO."}}, + {-200071, {Category::Other, ActionRequired::Warning, "The NI PXIe-5667 (7 GHz) is not configured properly. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, + {-200070, {Category::Other, ActionRequired::Warning, "The NI PXI-5665 (14 GHz) is not configured properly. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, + {-200069, {Category::Other, ActionRequired::Warning, "The NI PXIe-5605 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5605 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5605 with additional IF conditioning and RF conditioning modules."}}, + {-200068, {Category::Other, ActionRequired::Warning, "The NI PXIe-5667 (3.6 GHz) is not configured properly. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, + {-200067, {Category::Other, ActionRequired::Warning, "The NI PXIe-5665 (3.6 GHz) is not configured properly. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, + {-200066, {Category::Other, ActionRequired::Warning, "The NI PXIe-5603 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5603 and select 'Configure' to associate the digitizer and LO. You can also associate the NI PXIe-5603 with additional IF conditioning and RF conditioning modules."}}, + {-200065, {Category::Other, ActionRequired::Warning, "The NI PXIe-5663E is not configured properly. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, + {-200064, {Category::Other, ActionRequired::Warning, "The NI PXIe-5663 is not configured properly. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, + {-200063, {Category::Other, ActionRequired::Warning, "The NI PXIe-5601 is not associated with a digitizer or an LO. Right-click on the NI PXIe-5601 and select 'Configure' to associate the digitizer and LO."}}, + {-200062, {Category::Other, ActionRequired::Warning, "The NI PXI-5661 is not configured properly. Right-click on the NI PXI-5600 and select 'Configure' to associate the digitizer."}}, + {-200061, {Category::Other, ActionRequired::Warning, "The NI PXI-5600 is not associated with a digitizer. Right-click on the NI PXI-5600 and select 'Configure' to associate the digitizer."}}, + {-200060, {Category::Other, ActionRequired::Warning, "The same data is being read repetitively."}}, + {-200059, {Category::Other, ActionRequired::Warning, "The selected ports are not connected, so there is nothing to disconnect."}}, + {-200058, {Category::Communication, ActionRequired::ImmediateAction, "The connection count stored on the EEPROM is invalid. Write a value to Accessory Connection Count to fix the problem. Contact National Instruments if the problem persists."}}, + {-200057, {Category::Hardware, ActionRequired::Warning, "The network device already exists in the system."}}, + {-200056, {Category::Communication, ActionRequired::Warning, "The connection count of the attached accessory has exceeded the recommended limit. Contact National Instruments if the accessory appears to be functioning improperly."}}, + {-200055, {Category::Hardware, ActionRequired::Warning, "Power-up state section of the device EEPROM appears to be corrupt. Reconfigure the digital power-up states and perform a self-calibration."}}, + {-200054, {Category::Hardware, ActionRequired::Warning, "EEPROM of the device appears to be corrupt. Contact National Instruments if the device appears to be functioning improperly."}}, + {-200053, {Category::Hardware, ActionRequired::Warning, "Sample Rate specified may exceed device capabilities for some devices in the task. Specify a slower sample rate, decrease the number of channels, or use a separate task for some of the devices in the task."}}, + {-200052, {Category::Other, ActionRequired::Warning, "Buffer size specified is not evenly divisible by 8 times the sector size. For optimal performance, use a buffer size that is a multiple of 8 times the sector size. Refer to the NI-DAQmx Help for more information."}}, + {-200051, {Category::Other, ActionRequired::ImmediateAction, "Input voltage limits exceeded. Protection circuity disabled the inputs, however proper voltage levels are now present, and the error state has been cleared."}}, + {-200050, {Category::Hardware, ActionRequired::ImmediateAction, "Output generation aborted by the reverse power protection circuitry of the device. Either the output signal exceeded the output power limit, or power was driven back into the output of the device by an external source. Error state has been cleared."}}, + {-200049, {Category::Hardware, ActionRequired::Warning, "Calibration changed the gain calibration constants only and not the offset calibration constants because the necessary offset calibration data was not available. This device needs a reference signal of 0.0 Volts at gains of 1, 15, 20, and 310 in order to perform an offset calibration."}}, + {-200048, {Category::Configuration, ActionRequired::Warning, "Requested property value exceeds device specification limits. Device performance is not guaranteed. Use values within device specifications, or set the Allow Out of Specification User Settings property to true."}}, + {-200047, {Category::Hardware, ActionRequired::Warning, "Self-calibration section of the EEPROM on the device appears to be corrupt. Perform a self-calibration on the device."}}, + {-200046, {Category::Hardware, ActionRequired::Warning, "External calibration section of the EEPROM on the device appears to be corrupt. Perform an external calibration on the device."}}, + {-200045, {Category::Hardware, ActionRequired::Warning, "EEPROM of the device appears to be corrupt. Contact National Instruments if the device appears to be functioning improperly."}}, + {-200044, {Category::Other, ActionRequired::ImmediateAction, "Invalid enumeration value was encountered during export. The exported file will require modification in order to successfully import."}}, + {-200043, {Category::Configuration, ActionRequired::Warning, "Date specified by the Channel Calibration Expiration Date property has expired. The channel calibration is applied in spite of this because the Apply Calibration if Expired property was set to true. To eliminate this warning, update the channel calibration, including the Expiration Date."}}, + {-200042, {Category::Hardware, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for one or more analog output channels. The device will continue to function, but the accuracy of the generated signals may be compromised. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, + {-200041, {Category::Hardware, ActionRequired::ImmediateAction, "Calibration constants stored in EEPROM produced an invalid value for one or more analog input channels. The device will continue to function, but the accuracy of the measurements may be compromised. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, + {-200040, {Category::Other, ActionRequired::Warning, "Sample clock rate specified is so high that it violates the settling time requirements for the generation. Reduce the sample clock rate, or the accuracy of the generated signal might be compromised."}}, + {-200039, {Category::Other, ActionRequired::ImmediateAction, "Data may be invalid because the settling time of the enabled filter exceeds the period between two conversions on the analog-to-digital converter (ADC) for a task with more than one channel. Disable the filter by setting AI Lowpass Enable to false, acquire data from only one channel in the task, or increase the time between two ADC conversions by reducing the Sample Clock Rate, the Sample Clock Delay, and/or the number of channels in the task."}}, + {-200038, {Category::Other, ActionRequired::ImmediateAction, "Data may be invalid because the settling time of the enabled filter exceeds the period between two conversions on the analog-to-digital converter (ADC) for a task with more than one channel. Disable the filter by setting AI Lowpass Enable to false, increase the time between two ADC conversions by reducing the AI Convert Rate, or acquire data from only one channel in the task."}}, + {-200037, {Category::Other, ActionRequired::Warning, "Settings requested through a previous DAQmx Write were overwritten before they could be applied. This occurred either because DAQmx Write was invoked more than once between two consecutive sample clocks or because the frequency of the generated pulse train is lower than the sample clock rate (it takes more than one sample clock period to generate one period of the pulse train). The settings requested by the most recent DAQmx Write will be applied on the next sample clock. To avoid this warning, make sure that DAQmx Write is invoked exactly once between two consecutive sample clocks and that the frequency of the generated pulse train is higher than the sample clock rate."}}, + {-200036, {Category::Hardware, ActionRequired::Warning, "Requested Sample Clock Rate is higher than the maximum supported per device specifications. Reduce the Sample Clock Rate or use a device which supports the requested Sample Clock Rate."}}, + {-200035, {Category::Other, ActionRequired::ImmediateAction, "Clock rate specified is less than the minimum conversion rate of the ADC. Your data may be invalid."}}, + {-200034, {Category::Hardware, ActionRequired::Warning, "A sensor on the device detected a temperature approaching the device's maximum recommended operating temperature. The device will shut down if its temperature exceeds the maximum recommended operating temperature. To avoid the shutdown, ensure the device temperature does not get above the maximum recommended operating temperature. You can often prevent the shutdown by periodically cleaning fan filters. Refer to user documentation for more information."}}, + {-200033, {Category::Other, ActionRequired::Warning, "DAQmx Write was invoked more than once between two consecutive sample clocks. Only the last DAQmx Write took effect. To eliminate this warning, invoke DAQmx Write only once between two consecutive sample clocks."}}, + {-200032, {Category::Other, ActionRequired::Warning, "Output gain was coerced to the nearest acceptable value, because the original value was too high given the RF Frequency."}}, + {-200031, {Category::Other, ActionRequired::Warning, "Output gain was coerced to the nearest acceptable value, because the original value was too low given the RF Frequency."}}, + {-200030, {Category::Hardware, ActionRequired::Warning, "A sensor on the device detected a temperature approaching the device's maximum recommended operating temperature. The device will shut down if its temperature exceeds the maximum recommended operating temperature. To avoid the shutdown, ensure the device temperature does not get above the maximum recommended operating temperature. You can often prevent the shutdown by periodically cleaning fan filters. Refer to user documentation for more information."}}, + {-200029, {Category::Other, ActionRequired::Warning, "RIS acquisition was completed, but some of the bins were not filled with a sufficient number of samples to perform the requested RIS averaging. Data for those bins was computed from the available samples. Consider increasing the timeout for the operation. Refer to documentation for details about RIS acquisitions."}}, + {-200028, {Category::Configuration, ActionRequired::ImmediateAction, "Some of the last samples acquired during the finite DMA acquisition are possibly invalid due to counter limitations. Get the Number of Possibly Invalid Samples property to see how many samples might be invalid. Use continuous sample mode for DMA acquisitions with this type of counter."}}, + {-200027, {Category::Other, ActionRequired::Warning, "Sample clock rate has been coerced to the minimum supported value because the specified value was too low. For lower sample clock rates, use an external sample clock or an external sample clock timebase."}}, + {-200026, {Category::Other, ActionRequired::Warning, "Requested string could not fit into the given buffer. Only the first part of the string was copied into the buffer. To allow for the terminating NULL character, the number of characters copied into the buffer is equal to the size of the buffer minus one. Call the function twice. Call the function initially to determine the string size. Use the second function call to get the full string value. In the first function call, pass NULL for the buffer and zero for the buffer size. The positive return value of the function is the string size (which includes the terminating NULL). Use this value to allocate a buffer of sufficient size, then use this buffer in the second function call."}}, + {-200025, {Category::Other, ActionRequired::Warning, "User-defined information to be stored in the EEPROM is too long. Only the leading portion was saved. Refer to documentation for information about the maximum length allowed for user-defined information."}}, + {-200024, {Category::Other, ActionRequired::ImmediateAction, "One of more of the properties saved with a later version of NI-DAQ are not supported by the installed version of NI-DAQ and are ignored. Upgrade the installed version of NI-DAQ to a version compatible with the version used when saving the properties to take advantage of all the saved properties."}}, + {-200022, {Category::Software, ActionRequired::Warning, "Attempted writing a sample value that was too small. The driver automatically coerced it to the minimum supported value."}}, + {-200021, {Category::Software, ActionRequired::Warning, "Attempted writing a sample value that was too large. The driver automatically coerced it to the maximum supported value."}}, + {-200020, {Category::Other, ActionRequired::Warning, "Requested number of pretrigger samples per channel could not be configured, so it was coerced to the minimum supported value."}}, + {-200019, {Category::Other, ActionRequired::Warning, "Requested read offset could not be configured, so the offset was coerced to the minimum supported value."}}, + {-200018, {Category::Other, ActionRequired::Warning, "Specified convert rate is too low to be generated using the onboard AI convert clock with the given timebase. The rate was coerced to the slowest possible convert rate. For slower rates, you must use an external convert clock or an external convert clock timebase."}}, + {-200017, {Category::Other, ActionRequired::Warning, "Specified sample rate is lower than the lowest rate that can be generated using the onboard clock. The rate was coerced to the slowest possible sample rate. For slower rates, use an external sample clock or an external sample clock timebase."}}, + {-200016, {Category::Hardware, ActionRequired::ImmediateAction, "An attempt has been made to query the date/time of the last self calibration of a device that has never been self-calibrated using the NI-DAQmx API, so the date/time is invalid. Self-calibrate the board using the NI-DAQmx API."}}, + {-200015, {Category::Hardware, ActionRequired::Warning, "While writing to the buffer during a regeneration, the actual data generated might have alternated between old data and new data. That is, while the driver was replacing the old pattern in the buffer with the new pattern, the device might have generated a portion of new data, then a portion of old data, and then a portion of new data again. Reduce the sample rate, use a larger buffer, or refer to documentation about DAQmx Write for information about other ways to avoid this warning."}}, + {-200014, {Category::Other, ActionRequired::Warning, "The combination of sample rate and buffer size settings could result in a large number of interrupts, causing the system to hang. Decrease your sample rate, or increase your buffer size. For acquisitions without a reference trigger, you can disallow buffer overwrites. For generations, you can disable the regeneration of old samples."}}, + {-200013, {Category::Other, ActionRequired::Warning, "User-defined information string entered exceeds the maximum allowable string length. The string will be truncated to its maximum allowable length."}}, + {-200012, {Category::Other, ActionRequired::ImmediateAction, "Clock rate specified exceeds the maximum conversion rate of the ADC. ADC overrun errors are likely."}}, + {-200011, {Category::Other, ActionRequired::Warning, "Clock rate specified is so high that it violates the settling time requirements for the acquisition. Reduce the clock rate, or the accuracy of the measurement might be compromised."}}, + {-200010, {Category::Other, ActionRequired::Warning, "Finite acquisition or generation has been stopped before the requested number of samples were acquired or generated."}}, + {-200009, {Category::Other, ActionRequired::Warning, "Counter 1 DMA acquisition started while starting, committing, stopping, or uncommitting an analog output (AO) task. This could cause the counter acquisition to stop. If possible, use counter 0 instead of counter 1. Otherwise, start/commit the AO task before starting the counter 1 DMA acquisition, and stop/uncommit the AO task after stopping the counter 1 DMA acquisition."}}, + {-200008, {Category::Other, ActionRequired::Warning, "Counter 0 DMA acquisition started while starting, committing, stopping, or uncommitting an analog input (AI) task. This could cause the counter acquisition to stop. If possible, use counter 1 instead of counter 0. Otherwise, start/commit the AI task before starting the counter 0 DMA acquisition, and stop/uncommit the AI task after stopping the counter 0 DMA acquisition."}}, + {-200007, {Category::Other, ActionRequired::ImmediateAction, "PLL was unlocked. Your data might be invalid."}}, + {-200005, {Category::Other, ActionRequired::ImmediateAction, "ADC for one or more channels was overloaded. Your data might be invalid."}}, + {-200004, {Category::Other, ActionRequired::ImmediateAction, "Input termination resistor for one or more channels was overloaded. Your data might be invalid."}}, + {-200003, {Category::Other, ActionRequired::Warning, "Absolute timestamp counter has rolled over."}}, + {-200003, {Category::Other, ActionRequired::Warning, "Channel cannot be used more than once inside a list of channels. If you need to use the same physical channel more than once inside your list of channels, refer to that physical channel under different names."}}, + {-200004, {Category::Hardware, ActionRequired::Warning, "Data requested has been overwritten in the device memory."}}, + {-200005, {Category::Other, ActionRequired::Warning, "Data requested has not been acquired yet."}}, + {-200006, {Category::Hardware, ActionRequired::Warning, "Record requested has been overwritten in the device memory."}}, + {-200007, {Category::Other, ActionRequired::Warning, "Record requested has not been acquired yet ."}}, + {-200008, {Category::Other, ActionRequired::Warning, "Stop trigger has not occurred yet."}}, + {-200009, {Category::Other, ActionRequired::Warning, "Timestamps have been overwritten. You can no longer read any data."}}, + {-200010, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, + {-200011, {Category::Other, ActionRequired::Warning, "Task cannot contain both input and output channels. Either use channels of one direction in a task or make two separate tasks."}}, + {-200012, {Category::Hardware, ActionRequired::Warning, "Specified physical channel does not support digital output. Change the direction of the task, use another terminal, or use another device."}}, + {-200014, {Category::Other, ActionRequired::Warning, "Terminal cannot appear multiple times within a single digital input or output task."}}, + {-200015, {Category::Communication, ActionRequired::Warning, "Communication with SCXI failed. The communication cable to the SCXI hardware might have been disconnected or exposed to excessive noise."}}, + {-200016, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, + {-200017, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Not enough new data has been sampled since the last read or the start of the measurement. Increase the sample rate, increase the timeout value, or decrease the number of samples to read."}}, + {-200018, {Category::Other, ActionRequired::Warning, "DAC conversion attempted before data to be converted was available. Decrease the output frequency to increase the period between DAC conversions, or reduce the size of your output buffer in order to write data more often. If you are using an external clock, check your signal for the presence of noise or glitches."}}, + {-200019, {Category::Other, ActionRequired::Warning, "ADC conversion attempted before the prior conversion was complete. Increase the period between ADC conversions. If you are using an external clock, check your signal for the presence of noise or glitches."}}, + {-200020, {Category::Hardware, ActionRequired::Warning, "Self-test of the device has failed."}}, + {-200022, {Category::Other, ActionRequired::Warning, "Resource requested by this task has already been reserved by a different task."}}, + {-200023, {Category::Other, ActionRequired::ImmediateAction, "Script contains an invalid character or symbol. Replace the invalid character with a valid symbol or alphanumeric character."}}, + {-200024, {Category::Other, ActionRequired::Warning, "Valid identifier expected but not found in script. The identifier should specify a valid waveform or script name. Identifiers cannot start with a number."}}, + {-200025, {Category::Other, ActionRequired::Warning, "Script name was expected, but not found in the script."}}, + {-200026, {Category::Other, ActionRequired::Warning, "Waveform name was expected, but not found in the script."}}, + {-200027, {Category::Other, ActionRequired::Warning, "Keyword was expected, but not found in the script."}}, + {-200028, {Category::Hardware, ActionRequired::Warning, "Waveform referenced in the script was not found in onboard memory. Write the waveform to the device before writing the script."}}, + {-200029, {Category::Other, ActionRequired::Warning, "Marker specified in a generate instruction exceeds the waveform boundaries. Change the marker position or positions to fit within the waveform, or increase the size of the waveform."}}, + {-200030, {Category::Other, ActionRequired::Warning, "Subset specified in a generate instruction exceeds the waveform boundaries. Change the subset start offset and/or subset length so the subset fits within the waveform, or increase the size of the waveform."}}, + {-200031, {Category::Other, ActionRequired::Warning, "Marker position specified is not a multiple of alignment quantum."}}, + {-200032, {Category::Other, ActionRequired::Warning, "Subset length specified is not valid. Change the subset length to be longer than zero samples and a multiple of the alignment quantum."}}, + {-200033, {Category::Other, ActionRequired::Warning, "Start offset of the subset is not a multiple of the alignment quantum."}}, + {-200034, {Category::Other, ActionRequired::Warning, "Marker position exceeds the length of the subset."}}, + {-200035, {Category::Other, ActionRequired::Warning, "Repeat loop is contained within too many levels of nested repeat loops. Unroll one of the \"repeat\" loops if possible, or change the script and run it several times. To unroll a loop, remove the \"repeat\" and \"end repeat\" instructions and explicitly replicate the instructions of the removed loop the desired number of times."}}, + {-200036, {Category::Other, ActionRequired::ImmediateAction, "Number of iterations specified for a finite \"repeat\" loop is invalid."}}, + {-200037, {Category::Other, ActionRequired::Warning, "Clear trigger instruction cannot be the last instruction of a \"repeat\" loop."}}, + {-200038, {Category::Other, ActionRequired::Warning, "Wait instruction cannot be the last instruction of a \"repeat until\" loop."}}, + {-200039, {Category::Hardware, ActionRequired::Warning, "Routing information associated with your device cannot be found."}}, + {-200040, {Category::Hardware, ActionRequired::Warning, "Source terminal to be routed could not be found on the device. Make sure the terminal name is valid for the specified device. Refer to Measurement & Automation Explorer for valid terminal names."}}, + {-200041, {Category::Hardware, ActionRequired::Warning, "Destination terminal to be routed could not be found on the device. Make sure the terminal name is valid for the specified device. Refer to Measurement & Automation Explorer or your hardware documentation for valid terminal names."}}, + {-200042, {Category::Hardware, ActionRequired::Warning, "Inversion requested is not possible. Either the hardware between the source and destination terminals does not support the inversion, or other routes in the task might be interfering with this route."}}, + {-200043, {Category::Hardware, ActionRequired::Warning, "Hardware necessary for this route is in use by another task or tasks."}}, + {-200044, {Category::Hardware, ActionRequired::Warning, "Route cannot be made between the source and destination terminals. Either the hardware does not support this route or other routes might be interfering with this route."}}, + {-200045, {Category::Hardware, ActionRequired::Warning, "Device was removed or powered down between task verification and reservation. Ensure that the device is not being reset."}}, + {-200046, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier at the end of the switch action. A connection separator, sequence separator, or valid switch action terminator must follow a switch action."}}, + {-200047, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid identifier after the device identifier in the list entry."}}, + {-200048, {Category::Other, ActionRequired::ImmediateAction, "Invalid trigger line in the \"\" or \"\" statement in the list entry. Refer to the documentation for valid trigger lines."}}, + {-200049, {Category::Other, ActionRequired::ImmediateAction, "Invalid value in the \"\" statement in the list entry. The syntax for a repeat statement is \"\". Refer to the documentation for valid integer values."}}, + {-200050, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid channel name in the list entry. Refer to the documentation for valid channel names for the device in use."}}, + {-200051, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier after a separator in the list entry."}}, + {-200052, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected connection operator, \"->\", in the list entry. Refer to the documentation for proper syntax for connections involving channel ranges."}}, + {-200053, {Category::Hardware, ActionRequired::Warning, "Channels in switch actions cannot span different devices."}}, + {-200054, {Category::Communication, ActionRequired::Warning, "Semicolon or a semicolon modifier must follow a connection range statement. Refer to the documentation for information on connection ranges and semicolon modifiers."}}, + {-200055, {Category::Hardware, ActionRequired::Warning, "Device identifier not specified in the list entry."}}, + {-200056, {Category::Other, ActionRequired::Warning, "Channel name not specified in the list entry."}}, + {-200057, {Category::Hardware, ActionRequired::Warning, "Duplicate device identifier in the device list. This is not allowed when waiting for devices to settle."}}, + {-200058, {Category::Other, ActionRequired::Warning, "Identifier in the list entry is too long."}}, + {-200059, {Category::Communication, ActionRequired::Warning, "List cannot end with the connection separator \"&\"."}}, + {-200060, {Category::Communication, ActionRequired::Warning, "Fully specified path cannot contain a connection range."}}, + {-200061, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier in the list entry. The connection separator \"&\" or sequence separator \"&&\" was expected."}}, + {-200062, {Category::Communication, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected connection operator \"->\" in the list entry."}}, + {-200063, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier instead of an expected terminator in the list entry."}}, + {-200064, {Category::Communication, ActionRequired::Warning, "Unexpected connection separator \"&\" or sequence separator \"&&\" in the list entry."}}, + {-200065, {Category::Hardware, ActionRequired::Warning, "Action at the designated position in the scanlist is not valid for the device."}}, + {-200066, {Category::Communication, ActionRequired::ImmediateAction, "Connection operator is invalid at the designated point in the list entry."}}, + {-200067, {Category::Hardware, ActionRequired::Warning, "Settling time constraints for the device could not be satisfied. Refer to the documentation for details about settling time constraints."}}, + {-200068, {Category::Hardware, ActionRequired::ImmediateAction, "Scanning is not supported by the specified device."}}, + {-200069, {Category::Hardware, ActionRequired::Warning, "Device specified is not a valid switch device."}}, + {-200070, {Category::Hardware, ActionRequired::ImmediateAction, "Advance trigger type specified is not supported by the device."}}, + {-200071, {Category::Other, ActionRequired::Warning, "Number of physical channels is too large."}}, + {-200072, {Category::Hardware, ActionRequired::ImmediateAction, "Duplicate channels in the list of physical channels are not supported by this device."}}, + {-200073, {Category::Hardware, ActionRequired::Warning, "SCXI module specified in the hardware configuration was not found. Make sure that the SCXI chassis is powered on, the SCXI cable is properly connected between the chassis communicator and the SCXI module, and that the cabled module specified in the hardware configuration is present in the specified slot."}}, + {-200074, {Category::Hardware, ActionRequired::Warning, "Device unable to store calibration constants. Make sure that your hardware is properly installed, and test the regular operation of the device."}}, + {-200075, {Category::Other, ActionRequired::Warning, "Voltage data supplied is outside of the specified range. Change the range or the data. Refer to the documentation for more information about possible ranges."}}, + {-200076, {Category::Other, ActionRequired::Warning, "Current data supplied is outside of the specified range."}}, + {-200077, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property."}}, + {-200078, {Category::Other, ActionRequired::Warning, "Analog input (AI) task started or committed during a counter 0 DMA acquisition. If possible, use counter 1 instead of counter 0. Otherwise, start/commit the AI task before starting the counter 0 DMA acquisition."}}, + {-200079, {Category::Other, ActionRequired::Warning, "Analog output (AO) task started or committed during a counter 1 DMA acquisition. If possible, use counter 0 instead of counter 1. Otherwise, commit the AO task before starting the counter 1 DMA acquisition."}}, + {-200081, {Category::Other, ActionRequired::Warning, "Sample rate exceeds the maximum sample rate for the number of channels specified. Reduce the sample rate or the number of channels. Increasing the convert rate or reducing the sample delay might also alleviate the problem, if you set either of them."}}, + {-200082, {Category::Other, ActionRequired::Warning, "Minimum is greater than or equal to the maximum. Ensure the maximum value is greater than the minimum value. If using a custom scale, ensure that the scaled maximum is greater than the scaled minimum."}}, + {-200086, {Category::Hardware, ActionRequired::ImmediateAction, "Physical channel range syntax in the input string is invalid because multiple devices were listed in the string."}}, + {-200087, {Category::Other, ActionRequired::ImmediateAction, "Channel is not in the task, and the channel is not a valid global channel. Make sure that the channel is in the task or that the channel is a valid global channel. If you explicitly named the virtual channel in DAQmx Create Channel, you must use the name assigned to that channel. Also, check for typing errors."}}, + {-200088, {Category::Other, ActionRequired::ImmediateAction, "Task specified is invalid or does not exist."}}, + {-200089, {Category::Other, ActionRequired::Warning, "Task name specified conflicts with an existing task name."}}, + {-200090, {Category::Software, ActionRequired::ImmediateAction, "Shared library was not found. This error might be the result of an inadvertent deletion of an NI-DAQmx component. Reinstall NI-DAQmx, or download the latest version of the driver from the National Instruments website at ni.com. If the error is still returned, contact NI Technical Support."}}, + {-200091, {Category::Software, ActionRequired::ImmediateAction, "Shared library version installed is incorrect. This error might be the result of an incorrect installation of NI-DAQmx or a related software package. Reinstall NI-DAQmx, or download the latest version of the driver from the National Instruments website at ni.com. If the error is still returned, contact NI Technical Support."}}, + {-200092, {Category::Other, ActionRequired::Warning, "Function supported for channel-based tasks only."}}, + {-200093, {Category::Configuration, ActionRequired::Warning, "Attempted to retrieve channel properties from a multichannel task without selecting a specific channel. Use the Active Channel property to select a specific channel from which to retrieve properties."}}, + {-200094, {Category::Other, ActionRequired::Warning, "Digital waveform expected as input."}}, + {-200095, {Category::Other, ActionRequired::Warning, "Analog waveform expected as input."}}, + {-200096, {Category::Other, ActionRequired::Warning, "Number of samples to read must be -1 or greater."}}, + {-200097, {Category::Configuration, ActionRequired::Warning, "Attempted to retrieve channel properties from a multichannel task with more than one channel selected. You must select an individual channel to retrieve channel properties. If you are programming with LabVIEW, use the Active Channel property to specify the individual channel."}}, + {-200098, {Category::Other, ActionRequired::Warning, "Number of terminals requested cannot be greater than 1."}}, + {-200099, {Category::Other, ActionRequired::Warning, "Physical channel not specified."}}, + {-200100, {Category::Other, ActionRequired::Warning, "Specified DAQmx Read only can be used to read from a single channel. Use the multichannel DAQmx Read."}}, + {-200101, {Category::Other, ActionRequired::Warning, "Number of channels in data to write does not match the number of channels in the task."}}, + {-200102, {Category::Other, ActionRequired::Warning, "Pattern width specified does not match the number of lines in the digital channel."}}, + {-200103, {Category::Other, ActionRequired::Warning, "Number of samples to write must be the same for every channel."}}, + {-200104, {Category::Other, ActionRequired::ImmediateAction, "Bracket character (\"[\" or \"]\") at the specified position in the list is invalid. Matching bracket cannot be found. Check for nested fully specified paths or incorrectly paired brackets."}}, + {-200105, {Category::Other, ActionRequired::ImmediateAction, "Channel is invalid for the excitation mode of the SCXI-1122. Disable multiplexed excitation, or use one of the physical channels between ai0 and ai7."}}, + {-200106, {Category::Configuration, ActionRequired::Warning, "Property must have the same value for all channels on this device."}}, + {-200107, {Category::Hardware, ActionRequired::Warning, "Module specified in the hardware configuration is not the module found. Make sure that the module specified in the hardware configuration is present in the specified slot."}}, + {-200108, {Category::Hardware, ActionRequired::Warning, "Calibration session is already open on this device. You can have only one open calibration session for each device. Use the handle obtained when the calibration session for this device was originally opened."}}, + {-200109, {Category::Other, ActionRequired::Warning, "Password is longer than four characters."}}, + {-200110, {Category::Other, ActionRequired::Warning, "Password supplied is incorrect."}}, + {-200111, {Category::Other, ActionRequired::Warning, "Password is required for this operation."}}, + {-200112, {Category::Other, ActionRequired::ImmediateAction, "Calibration handle is invalid. Open a calibration session to get a valid calibration handle. Use the valid calibration handle obtained when the calibration session was opened."}}, + {-200113, {Category::Hardware, ActionRequired::Warning, "Device temperature is outside of the required range for calibration."}}, + {-200116, {Category::Hardware, ActionRequired::Warning, "Lines on the 8255 chip for this device are configured for output. Cannot tristate these lines at this time. Read values using an input task on another port."}}, + {-200117, {Category::Other, ActionRequired::Warning, "Port C cannot be used for data input/output in a handshaking task."}}, + {-200118, {Category::Other, ActionRequired::Warning, "Port reserved for handshaking. Cannot reserve this port or any of its lines for another task at this time."}}, + {-200119, {Category::Other, ActionRequired::Warning, "Port is configured for static digital operations by another task. Cannot configure this port or any of its lines for handshaking at this time."}}, + {-200120, {Category::Other, ActionRequired::Warning, "Port is configured for input. Cannot configure this port or any of its lines for output at this time."}}, + {-200121, {Category::Other, ActionRequired::Warning, "Port is configured for output. Cannot configure this port or any of its lines for input at this time."}}, + {-200122, {Category::Other, ActionRequired::Warning, "Lines 0 through 3 of this port are configured for input. Cannot configure these lines for output at this time."}}, + {-200123, {Category::Other, ActionRequired::Warning, "Lines 0 through 3 of this port are configured for output. Cannot configure these lines for input at this time."}}, + {-200124, {Category::Other, ActionRequired::Warning, "Lines 4 to 7 of this port are configured for input. Cannot configure these lines for output at this time."}}, + {-200125, {Category::Other, ActionRequired::Warning, "Lines 4 through 7 of this port are configured for output. Cannot configure these lines for input at this time."}}, + {-200126, {Category::Hardware, ActionRequired::ImmediateAction, "Lines on port C cannot be used for both handshaking control and static digital operations on an 8255 chip. Handshaking tasks automatically reserve some lines on port C as control lines. These lines cannot be reserved for static digital operations when the device is configured for handshaking. There are two likely causes for this error: 1. An attempt was made to reserve the lines for static digital operations when a handshaking task was previously configured. 2. An attempt was made to create a handshaking task when the lines were previously reserved for static digital operations. Refer to the documentation for information about which lines on port C are not available when the 8255 chip is in handshaking mode."}}, + {-200127, {Category::Hardware, ActionRequired::Warning, "Port 0 or any of its lines cannot be used to create a handshaking task. Use port 1 or port 2 of the 8255 chip on this device for handshaking."}}, + {-200128, {Category::Configuration, ActionRequired::Warning, "Property must have the same value for all repeated physical channels. Set the same property value for all of the channels."}}, + {-200130, {Category::Other, ActionRequired::Warning, "Timebase divisor cannot be set for an external clock. You cannot divide down an externally supplied clock. If you want to divide down an external clock, specifiy an external timebase source instead and set the clock source to be internal."}}, + {-200131, {Category::Other, ActionRequired::Warning, "Analog trigger source must be the first channel in the acquisition or a valid analog trigger terminal. If you explicitly named the virtual channel in DAQmx Create Channel, you must use the name assigned to that channel."}}, + {-200132, {Category::Other, ActionRequired::Warning, "External timebase rate must be specified to translate the derived clock or timebase rate into ticks. Set the external timebase rate, or set the divisor instead of the clock or timebase rate."}}, + {-200133, {Category::Other, ActionRequired::Warning, "Counter timebase source, counter timebase rate, master timebase divisor, and master timebase rate settings are inconsistent with one another. The conflicting properties must satisfy the following constraint: Master Timebase Rate / Master Timebase Divisor = Counter Timebase Rate"}}, + {-200134, {Category::Other, ActionRequired::Warning, "Counter timebase source and counter timebase rate settings are inconsistent with one another. For internal counter timebase source selections, if the counter timebase rate is set, its value must match the rate corresponding to the counter timebase source. For example, 20 MHz corresponds to a rate of 20,000,000 Hz."}}, + {-200135, {Category::Other, ActionRequired::Warning, "Counter timebase source and counter timebase master timebase divisor settings are inconsistent with one another. If the divisor is specified, the following must apply: Master Timebase Rate / Counter Timebase Master Timebase Divisor = Rate corresponding to Counter Timebase Source."}}, + {-200136, {Category::Configuration, ActionRequired::Warning, "Frequency and Initial Delay property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraint: Counter Timebase Rate / Counter Maximum Count <= X <= Counter Timebase Rate / 2 where X = Frequency and 1 / Initial Delay, and where Counter Timebase Rate = Master Timebase Rate / Counter Timebase Master Timebase Divisor or is inferred from the Counter Timebase Source selection."}}, + {-200137, {Category::Configuration, ActionRequired::Warning, "Initial Delay, High Time, and Low Time property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following restraint: 2 / Counter Timebase Rate <= X <= Counter Maximum Count/ Counter Timebase Rate where X = Initial Delay, High Time, and Low Time, and where Counter Timebase Rate = Master Timebase Rate / Counter Timebase Master Timebase Divisor or is inferred from the Counter Timebase Source selection."}}, + {-200138, {Category::Other, ActionRequired::Warning, "A timebase could not be selected that covers the entire range specified in the Maximum and Minimum properties. The conflicting properties must satisfy the following constraints: Maximum <= Counter Maximum Count / Counter Timebase Rate Minimum >= 2 / Counter Timebase Rate."}}, + {-200139, {Category::Other, ActionRequired::Warning, "A timebase could not be selected that covers the entire range specified in the Maximum and Minimum properties. The conflicting properties must satisfy the following constraints: Maximum <= Counter Timebase Rate / 2 Minimum >= Counter Timebase Rate / Counter Maximum Count."}}, + {-200140, {Category::Other, ActionRequired::Warning, "Two consecutive active edges of the input signal occurred without a counter timebase edge. Use a faster counter timebase."}}, + {-200141, {Category::Other, ActionRequired::Warning, "Data was overwritten before it could be read by the system. If Data Transfer Mechanism is Interrupts, try using DMA or USB Bulk. Otherwise, divide the input signal before taking the measurement."}}, + {-200142, {Category::Configuration, ActionRequired::Warning, "Internal timebase could not be found that matches the rate specified in the Counter Timebase Rate property."}}, + {-200143, {Category::Configuration, ActionRequired::Warning, "Counter timebase rate must be specified for external counter timebase sources in order for frequency and/or time calculations to be made correctly. Set the Counter Timebase Rate property to the appropriate value for your external source."}}, + {-200144, {Category::Other, ActionRequired::Warning, "Pause trigger is only valid for continuous pulse generations. Change the sample mode to continuous, or do not use the pause trigger."}}, + {-200145, {Category::Other, ActionRequired::Warning, "Pause trigger is only valid for event counting if sample clock is not used."}}, + {-200146, {Category::Other, ActionRequired::Warning, "Pause and start triggers cannot both be active in this task."}}, + {-200147, {Category::Other, ActionRequired::Warning, "There cannot be multiple counters in the same task for input operations. Use a separate task for each counter."}}, + {-200148, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The FREQOUT counter is a 4-bit counter that can divide either the master timebase rate / 2 or the master timebase rate / 200 by a number between one and 16. Choose a frequency within this range."}}, + {-200149, {Category::Other, ActionRequired::Warning, "External timebase rate must be specified to translate the delay into ticks. Set the external timebase rate, or set the delay in units of ticks."}}, + {-200150, {Category::Other, ActionRequired::Warning, "Channel is not available when the module is in parallel mode."}}, + {-200151, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up for performing analog input operations on given channels. The SCXI module cabled to your digitizer cannot route analog signals from other modules to the digitizer, or is not configured to route them. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the analog input modules. The module your channels are on is one such module. Then, update the chassis configuration in MAX to reflect cabling change, and ensure that the cabled module is in multiplexed mode. Alternatively, you can use multiple digitizers and SCXI modules in parallel mode. For detailed information about cabling, refer to documentation."}}, + {-200152, {Category::Hardware, ActionRequired::ImmediateAction, "Data read from the EEPROM on the device is invalid. Verify that any accessories configured with this device are connected. If the problem continues, contact National Instruments Technical Support. The device might need to be recalibrated or repaired by NI."}}, + {-200153, {Category::Hardware, ActionRequired::Warning, "Reference voltage applied for calibration is outside the range defined for calibration of this device. Ensure that the reference voltage falls within the range specified for this device."}}, + {-200154, {Category::Hardware, ActionRequired::Warning, "Reference current applied for calibration is outside the range defined for calibration of this device. Ensure that the reference current falls within the range specified for this device."}}, + {-200155, {Category::Hardware, ActionRequired::Warning, "Reference resistance applied for calibration is outside the range defined for calibration of this device. Ensure that the reference resistance falls within the range specified for this device."}}, + {-200156, {Category::Hardware, ActionRequired::Warning, "Reference frequency applied for calibration is outside the range defined for calibration of this device. Ensure that the reference frequency falls within the range specified for this device."}}, + {-200157, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, + {-200158, {Category::Hardware, ActionRequired::Warning, "Requested operation could not be performed because the necessary digital lines could not be reserved by SCXI. Another task might have reserved these lines previously. For example, E Series devices use lines 0, 1, 2, and 4 on port 0 to communicate with the SCXI module."}}, + {-200159, {Category::Communication, ActionRequired::Warning, "Requested operation could not be performed because the digital lines are being used for communication with SCXI or a TEDS carrier. For example, E Series devices use lines 0, 1, 2, and 4 on port 0 to communicate with a SCXI module. Therefore, you cannot use lines 0, 1, 2, and 4 for regular digital I/O."}}, + {-200160, {Category::Other, ActionRequired::Warning, "Channel could not be created. All channels must be created before the task is verified. Before I/O can be performed or properties can be retrieved, tasks are verified. Channels must be created before these actions can occur."}}, + {-200161, {Category::Hardware, ActionRequired::Warning, "Device to which the sensor is attached does not have an available internal excitation source. Select another device with an available internal excitation source or supply external excitation."}}, + {-200162, {Category::Other, ActionRequired::Warning, "2-wire resistance configuration is incompatible with voltage excitation."}}, + {-200163, {Category::Other, ActionRequired::Warning, "Completion resistance value, R1, cannot be zero if the circuit uses voltage excitation."}}, + {-200166, {Category::Hardware, ActionRequired::ImmediateAction, "Output buffer underwrite. Your application was unable to write samples to the background buffer fast enough for the device to get new samples at the specified sample rate. To avoid this error, you can do any the following: 1. Increase the size of the background buffer by configuring the buffer. 2. Increase the number of samples you write each time you invoke a write operation. 3. Write samples more often. 4. Reduce your sample rate. 5. Change the data transfer mechanism from interrupts to DMA. 6. Initially write a sufficient number of samples to satisfy the specified data transfer request condition. 7. Reduce the number of applications that your computer is executing concurrently. In addition, if you do not need to ensure that each sample is generated once and only once, you can set the regeneration mode to allow regeneration."}}, + {-200167, {Category::Hardware, ActionRequired::Warning, "Device cannot acquire from _cjTemp and other channels in the same task. Create one task for reading _cjTemp and another task for the other channels."}}, + {-200168, {Category::Hardware, ActionRequired::Warning, "Number of channels to acquire exceeds the device maximum. Reduce the number of channels. In some cases, you can access a large number of channels if they are identically configured and created consecutively. Refer to the documentation for more information."}}, + {-200169, {Category::Other, ActionRequired::Warning, "Memory mapping can be enabled only if Data Transfer Mechanism is Programmed IO. Enable memory mapping only when Data Transfer Mechanism is Programmed IO."}}, + {-200170, {Category::Hardware, ActionRequired::Warning, "Physical channel specified does not exist on this device. Refer to the documentation for channels available on this device."}}, + {-200171, {Category::Other, ActionRequired::Warning, "Virtual channel cannot be created. Another virtual channel with this name already exists."}}, + {-200172, {Category::Other, ActionRequired::Warning, "Buffer size must be zero when Data Transfer Mechanism is Programmed IO. Set buffer size to zero or Data Transfer Mechanism to something other than Programmed IO."}}, + {-200173, {Category::Hardware, ActionRequired::ImmediateAction, "The combination of Sample Timebase Rate and Master Timebase Rate you specified is invalid. The driver computed the Sample Timebase Source Divisor by dividing the Master Timebase Rate by the Sample Timebase Rate. The resulting value for the Sample Timebase Source Divisor is not supported by your device. Refer to the documentation for more information about these three properties."}}, + {-200175, {Category::Hardware, ActionRequired::Warning, "Hardware is not responding. Ensure your hardware is powered on and all cables are properly connected."}}, + {-200176, {Category::Hardware, ActionRequired::Warning, "Operation is not permitted while the switch device is scanning."}}, + {-200177, {Category::Hardware, ActionRequired::Warning, "Operation is permitted only while the switch device is scanning."}}, + {-200178, {Category::Other, ActionRequired::Warning, "Task was created with a settling time different from the current settling time. When scanning, you must use the original settling time specified when the task was created."}}, + {-200179, {Category::Communication, ActionRequired::Warning, "Explicit connection between the channels already exists. You can make only one connection between these channels."}}, + {-200180, {Category::Other, ActionRequired::Warning, "Path between two switch channels is not available."}}, + {-200181, {Category::Hardware, ActionRequired::Warning, "Channel name specified is not valid for the switch device."}}, + {-200182, {Category::Other, ActionRequired::Warning, "Switch channels cannot be disconnected because there is no explicit path between them."}}, + {-200183, {Category::Other, ActionRequired::Warning, "Switch channel names cannot be duplicated in the path string."}}, + {-200184, {Category::Other, ActionRequired::Warning, "Leg in path cannot contain two channels that are already directly connected."}}, + {-200185, {Category::Other, ActionRequired::Warning, "Path contains a leg with two channels that cannot be directly connected."}}, + {-200186, {Category::Communication, ActionRequired::Warning, "Channels used to make the connection between two endpoints must be reserved for routing."}}, + {-200187, {Category::Other, ActionRequired::Warning, "Channel cannot be connected to itself."}}, + {-200188, {Category::Communication, ActionRequired::Warning, "Connection cannot be made between the specified channels because they are connected to different source channels."}}, + {-200189, {Category::Communication, ActionRequired::Warning, "Explicit connection cannot be made to a switch channel that is reserved for routing."}}, + {-200190, {Category::Communication, ActionRequired::Warning, "Disconnection path is not the same as the existing path. You can programmatically find out the existing path. Refer to your documentation for details."}}, + {-200191, {Category::Other, ActionRequired::Warning, "Task was created with a topology different from the current topology. When scanning, you must use the original topology specified when the task was created."}}, + {-200192, {Category::Hardware, ActionRequired::Warning, "Switch device supports continuous scanning only."}}, + {-200193, {Category::Hardware, ActionRequired::Warning, "Switch device does not support this operation."}}, + {-200194, {Category::Hardware, ActionRequired::Warning, "Hardware was unexpectedly powered off and back on. To recover, reset the device (either programmatically or by using Measurement & Automation Explorer)."}}, + {-200195, {Category::Hardware, ActionRequired::Warning, "Switch configuration has caused the switch device to exceed its power limit because there were too many closed relays. The switch was disabled. Reset it by doing one of the following: 1. Call DAQmx Switch Set Topology And Reset. 2. Call DAQmx Device Reset. 3. Use Measurement & Automation Explorer."}}, + {-200196, {Category::Hardware, ActionRequired::Warning, "Action at the end of the scan list is not valid for this device."}}, + {-200197, {Category::Configuration, ActionRequired::Warning, "Device does not support this property."}}, + {-200198, {Category::Other, ActionRequired::ImmediateAction, "Topology specified is invalid. Make sure the spelling of the topology is correct and that the switch supports that topology."}}, + {-200199, {Category::Hardware, ActionRequired::Warning, "Switch device must be reset before scanning. Reset the device by doing one of the following: 1. Call DAQmx Switch Set Topology And Reset. 2. Call DAQmx Device Reset. 3. Use Measurement & Automation Explorer."}}, + {-200200, {Category::Communication, ActionRequired::Warning, "Switch channel is already in exclusive use within another connection."}}, + {-200201, {Category::Hardware, ActionRequired::Warning, "Switch scan list is too large to fit in the onboard memory of the device."}}, + {-200202, {Category::Other, ActionRequired::ImmediateAction, "Relay name is invalid."}}, + {-200203, {Category::Hardware, ActionRequired::Warning, "Switch hardware is incapable of driving multiple trigger lines simultaneously."}}, + {-200204, {Category::Other, ActionRequired::Warning, "Unexpected identifier within the fully-specified path in the list."}}, + {-200205, {Category::Other, ActionRequired::Warning, "Topology does not support scanning."}}, + {-200206, {Category::Hardware, ActionRequired::Warning, "Advance trigger and Advance Complete event must use the same polarity in this particular switch device."}}, + {-200207, {Category::Hardware, ActionRequired::ImmediateAction, "Device identifier in the list entry is invalid."}}, + {-200208, {Category::Other, ActionRequired::ImmediateAction, "Range statement in the list entry contains an invalid character sequence."}}, + {-200209, {Category::Configuration, ActionRequired::Warning, "Duplicate device identifier found in the terminal list when trying to set the property. Only one instance of the device identifier is permitted."}}, + {-200210, {Category::Hardware, ActionRequired::Warning, "Multiple device identifiers from one chassis are not allowed in the terminal list."}}, + {-200211, {Category::Other, ActionRequired::Warning, "Multiple relay names were specified for a single relay operation."}}, + {-200212, {Category::Other, ActionRequired::Warning, "Measurement units specified for the channel are not valid for the Measurement Type of the channel."}}, + {-200213, {Category::Other, ActionRequired::Warning, "Pretrigger Samples per Channel requested plus minimum number of posttrigger samples exceed the requested Number of Samples per Channel. Decrease the number of Pretrigger Samples per Channel, or increase Number of Samples per Channel."}}, + {-200214, {Category::Hardware, ActionRequired::Warning, "Analog trigger circuitry unavailable on the device. Select a non-analog trigger type, or use a device with analog triggering hardware."}}, + {-200215, {Category::Other, ActionRequired::ImmediateAction, "Memory Mapping is not supported for buffered operations. Turn Memory Mapping off, set Buffer Size to 0, or do not configure the buffer for the operation."}}, + {-200216, {Category::Hardware, ActionRequired::Warning, "Buffered operations cannot use a Data Transfer Mechanism of Programmed I/O for this device and Channel Type. Non-buffered operations cannot use a Data Transfer Mechanism of Interrupts or DMA for this device and Channel Type."}}, + {-200217, {Category::Other, ActionRequired::Warning, "Buffered operations cannot use On Demand for Sample Timing Type. Set your buffer size to 0 for On Demand sample timing. Otherwise, configure your sample clock, or change your sample timing type for buffered operations."}}, + {-200218, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism must be Programmed I/O when not using hardware timing. Set Data Transfer Mechanism to Programmed I/O, configure your sample clock timing, or set Sample Timing Type to Sample Clock."}}, + {-200219, {Category::Hardware, ActionRequired::Warning, "Analog output virtual channels cannot be created out of order with respect to their physical channel numbers for the type of device you are using. For example, a virtual channel using physical channel ao0 must be created before a virtual channel with physical channel ao1."}}, + {-200220, {Category::Hardware, ActionRequired::ImmediateAction, "Device identifier is invalid."}}, + {-200221, {Category::Other, ActionRequired::Warning, "Amount of time allocated to perform this operation was exceeded."}}, + {-200222, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has been stopped to prevent an input buffer overwrite. Your application was unable to read samples from the buffer fast enough to prevent new samples from overwriting unread data. To avoid this error, you can do any of the following: 1. Increase the size of the buffer. 2. Increase the number of samples you read each time you invoke a read operation. 3. Read samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is running concurrently. In addition, if you do not need to read every sample that is acquired, you can configure the overwrite mode to overwrite unread data, and then use the Relative To and Offset properties to read the desired samples."}}, + {-200223, {Category::Hardware, ActionRequired::ImmediateAction, "Specified threshold and hysteresis values for this channel create a triggering range that is not supported by your device. On the SCXI-1126, threshold minus hysteresis must be between -0.5 and 4.48."}}, + {-200224, {Category::Hardware, ActionRequired::Warning, "No registered trigger lines could be found between the devices in the route. If you have a PXI chassis, identify the chassis correctly in MAX, and make sure it has been configured properly. If you are using PCI devices, make sure they are connected with a RTSI cable and that the RTSI cable is registered in MAX. Otherwise, make sure there is an available trigger line on the trigger bus shared between the devices."}}, + {-200225, {Category::Other, ActionRequired::Warning, "Trigger line requested could not be reserved because it is already in use."}}, + {-200226, {Category::Hardware, ActionRequired::Warning, "Trigger bus to which the device is connected does not have any free trigger lines for the driver to choose. To free up trigger lines, you can do any of the following: 1. Stop other tasks that are connected to the same trigger bus as this device. 2. Use DAQmx Disconnect Route to stop any immediate routes that span this trigger bus. 3. Make more trigger lines on this trigger bus available to the driver."}}, + {-200227, {Category::Hardware, ActionRequired::Warning, "Device does not have any free trigger lines for the device driver to choose. Although there might be trigger lines available on the respective trigger bus, the device cannot use the trigger bus because the device does not have enough free resources to do so. To free up trigger lines, you can do any of the following: 1. Stop other tasks that are connected to this device. 2. Use DAQmx Disconnect Route to stop any immediate routes that span this trigger bus and device."}}, + {-200228, {Category::Other, ActionRequired::Warning, "Buffer is too small to fit the string."}}, + {-200229, {Category::Other, ActionRequired::Warning, "Buffer is too small to fit read data."}}, + {-200230, {Category::Other, ActionRequired::Warning, "NULL pointer was passed for a required parameter."}}, + {-200231, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be set."}}, + {-200232, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be read."}}, + {-200233, {Category::Configuration, ActionRequired::Warning, "Property specified is not valid for this function."}}, + {-200234, {Category::Other, ActionRequired::Warning, "Buffer is too small for requested samples to be written."}}, + {-200235, {Category::Other, ActionRequired::Warning, "Explanation could not be found for the requested status code. Verify that the requested status code is correct."}}, + {-200236, {Category::Configuration, ActionRequired::Warning, "Property requested cannot be reset."}}, + {-200237, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications, and its rate is correctly specified. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200238, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference clock, make sure it is connected and within the jitter and voltage level specifications at all times, and its rate is correctly specified. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200239, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200240, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200241, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200242, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200243, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200244, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200245, {Category::Other, ActionRequired::Warning, "PLL could not phase-lock to the external reference clock. Make sure your reference clock is connected and that it is within the jitter and voltage specifications. Also, make sure the reference clock rate is correctly specified."}}, + {-200246, {Category::Other, ActionRequired::Warning, "PLL has lost phase-lock to the external reference clock. Make sure your reference clock is connected and that it is within the jitter and voltage level specifications at all times. Also, make sure the reference clock rate is correctly specified at all times."}}, + {-200247, {Category::Other, ActionRequired::Warning, "Integer was expected but not found in the script. Insert an appropriate integer at this location in the script."}}, + {-200248, {Category::Other, ActionRequired::Warning, "Specified marker position is too close to the end of the last \"generate\" statement in a \"repeat until\" loop. Move the marker position farther away from the end of the last \"generate\" statement in the \"repeat until\" loop."}}, + {-200249, {Category::Other, ActionRequired::Warning, "Length of waveform subset is too small for the last \"generate\" statement in a \"repeat until\" loop."}}, + {-200250, {Category::Other, ActionRequired::Warning, "Length of waveform is too small for the last \"generate\" statement in a \"repeat until\" loop."}}, + {-200251, {Category::Other, ActionRequired::Warning, "No DMA channels or USB Bulk Endpoints are available. Either shut down other tasks that might be using these resources or consider changing your data transfer mechanism to Interrupts if supported."}}, + {-200252, {Category::Other, ActionRequired::Warning, "Terminal cannot be tristated because it is busy. Disconnect any routes spanning this terminal, or stop any tasks using this terminal."}}, + {-200253, {Category::Hardware, ActionRequired::Warning, "Terminal could not be tristated because the hardware cannot tristate this terminal."}}, + {-200254, {Category::Hardware, ActionRequired::ImmediateAction, "Terminal for the device is invalid."}}, + {-200255, {Category::Hardware, ActionRequired::ImmediateAction, "Built-in temperature sensor is not supported on this channel. This channel is not configured to support a built-in temperature sensor. Make sure the accessory specified in the hardware configuration is correct and that the hardware supports a built-in temperature sensor on this channel."}}, + {-200256, {Category::Other, ActionRequired::ImmediateAction, "Specified topology cannot be used to reset the switch, because that topology is not supported by the connected terminal block. Refer to the documentation for supported topologies for the given terminal block, or disconnect the terminal block from the switch."}}, + {-200257, {Category::Configuration, ActionRequired::Warning, "Excitation property must be the same for related physical channels. Refer to the documentation for information about setting excitation across related physical channels."}}, + {-200258, {Category::Hardware, ActionRequired::Warning, "Gain value conflicts with specified AI Minimum and AI Maximum properties. The specified gain and AI Minimum and/or AI Maximum would cause the device to exceed the hardware limit. Lower the gain, or adjust AI Minimum and/or AI Maximum."}}, + {-200259, {Category::Configuration, ActionRequired::Warning, "Value selected for this jumper-controlled property must match the value specified in Measurement & Automation Explorer. Make sure the value specified in Measurement & Automation Explorer matches the value in your program and that the value corresponds to the selection made using the jumper on the device."}}, + {-200260, {Category::Other, ActionRequired::Warning, "Memory mapping has been enabled, and the sample clock has been configured; but the buffer size has not been set, and the data transfer mechanism has either not been set or was set to something other than Programmed I/O. Set the buffer size to 0, and/or change the data transfer mechanism to Programmed I/O."}}, + {-200261, {Category::Other, ActionRequired::Warning, "An attempt has been made to use an analog trigger in multiple situations with differing properties. Change the analog trigger properties so they are the same, or do not use an analog trigger for all situations."}}, + {-200262, {Category::Other, ActionRequired::Warning, "An attempt has been made to configure a trigger without configuring the appropriate sample clock properties or when Sample Timing Type was set to On Demand. Configure the sample clock type to something other than On Demand to use a trigger."}}, + {-200263, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog pause trigger only when it is the only channel in the task. Remove all of the channels currently in the task except the channel that will be used as the analog trigger source, or change the analog trigger source to a terminal."}}, + {-200264, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog reference trigger only when it is the only channel in the task. Remove all of the channels currently in the task except the channel that will be used as the analog trigger source, or change the analog trigger source to a terminal."}}, + {-200265, {Category::Hardware, ActionRequired::ImmediateAction, "An attempt has been made to use an invalid analog trigger source. Ensure that the trigger source you specify matches the name of the virtual channel in the task or matches the name of a non-scannable terminal that the device can use as an analog trigger source."}}, + {-200266, {Category::Other, ActionRequired::Warning, "Minimum and maximum values for the channel are not symmetric."}}, + {-200267, {Category::Hardware, ActionRequired::Warning, "Product of AO channel properties Maximum Value and Gain exceeds the maximum voltage for the device."}}, + {-200268, {Category::Other, ActionRequired::Warning, "Specified Offset is too small given AO Gain and Minimum Value. The following constraint must hold: Offset > (Gain * Minimum Value / 2)"}}, + {-200269, {Category::Other, ActionRequired::Warning, "Specified Offset is too large for the given AO Gain and Maximum Value. The following constraint must hold: Offset < (Gain * Maximum Value / 2)"}}, + {-200270, {Category::Other, ActionRequired::Warning, "Interpolation rate specified is not possible for the given sample rate."}}, + {-200271, {Category::Hardware, ActionRequired::Warning, "Product of AO Channel properties Minimum Value and Gain exceeds the minimum voltage for the device."}}, + {-200272, {Category::Other, ActionRequired::Warning, "Sample clock rate requested is too low for the selected divide-down clock. Use the high resolution clock, or increase your sample rate."}}, + {-200273, {Category::Configuration, ActionRequired::Warning, "Sample clock rate and the sample clock divisor values are inconsistent with one another. Consider settting either the sample clock rate or the sample clock divisor, but not both. This allows the driver to automatically select an appropriate value for the other property. Alternatively, make sure the sample clock rate and sample clock divisor satisfy the following constraint: rate = timebase / divisor"}}, + {-200274, {Category::Other, ActionRequired::Warning, "Sample clock rate desired is too high for an external clock being brought in through the backplane. Bring in your external sample clock through one of the higher-frequency front panel connectors, or use a lower sample rate."}}, + {-200275, {Category::Other, ActionRequired::Warning, "Sample rate desired is too low for an external clock being brought in through the ClkIn connector. Change the sample rate so it is within limits, or use DDC_ClkIn to bring in your sample clock."}}, + {-200276, {Category::Other, ActionRequired::Warning, "Reference clock source and sample clock source cannot be the same. Use different terminals to bring in your reference clock and sample clock, or use only one of them at a time."}}, + {-200277, {Category::Other, ActionRequired::ImmediateAction, "Invalid combination of position and offset. The position and offset specified a sample prior to the first sample acquired (sample 0). Make sure any negative read offset specified will select a valid sample when combined with the read position."}}, + {-200278, {Category::Other, ActionRequired::Warning, "Attempted to read a sample beyond the final sample acquired. The acquisition has stopped, therefore the sample specified by the combination of position and offset will never be available. Specify a position and offset which selects a sample up to, but not beyond, the final sample acquired. The final sample acquired can be determined by querying the total samples acquired after an acquisition has stopped."}}, + {-200279, {Category::Hardware, ActionRequired::Warning, "The application is not able to keep up with the hardware acquisition. Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem."}}, + {-200281, {Category::Hardware, ActionRequired::Warning, "Reading relative to the reference trigger or relative to the start of pretrigger samples position before the acquisition is complete. Wait for the acquisition to complete before reading, or increase your read timeout. Also, make sure the hardware is set up and wired correctly, the signal for the reference trigger is correct, and that the reference trigger occurs while the device is acquiring data."}}, + {-200282, {Category::Hardware, ActionRequired::ImmediateAction, "Reading relative to the reference trigger or relative to the start of a pretrigger sample is not supported with the current task configuration. If you have not configured a reference trigger or if one of your devices is utilizing an onboard buffer to transfer data after an acquisition has completed, reading relative to reference trigger or relative to the first pretrigger sample is not supported."}}, + {-200283, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has stopped to prevent the intermediate buffer from overflowing. The background was running too fast for the application to keep up, and the application was unable to read samples from the intermediate buffer fast enough to prevent losing samples. To avoid this error, you might reduce the sample rate, reduce the number of applications your computer is executing concurrently, or not read any samples until the acquisition is complete."}}, + {-200284, {Category::Other, ActionRequired::Warning, "Some or all of the samples requested have not yet been acquired. To wait for the samples to become available use a longer read timeout or read later in your program. To make the samples available sooner, increase the sample rate. If your task uses a start trigger, make sure that your start trigger is configured correctly. It is also possible that you configured the task for external timing, and no clock was supplied. If this is the case, supply an external clock."}}, + {-200286, {Category::Other, ActionRequired::Warning, "No data is available to read, because no acquisition has been started. Start the acquisition before attempting to read data, either explicitly or by enabling auto start and stop."}}, + {-200287, {Category::Other, ActionRequired::ImmediateAction, "Attempted to write to an invalid combination of position and offset. The position and offset specified a sample prior to the first sample generated (sample 0). Make sure any negative write offset specified will select a valid sample when combined with the write position."}}, + {-200288, {Category::Other, ActionRequired::Warning, "Attempted to write a sample beyond the final sample generated. The generation has stopped, therefore the sample specified by the combination of position and offset will never be available. Specify a position and offset which selects a sample up to, but not beyond, the final sample generated. The final sample generated can be determined by querying the total samples generated after a generation has stopped."}}, + {-200289, {Category::Hardware, ActionRequired::Warning, "Attempted to write samples that have already been generated or have already been sent to the device for generation. Increasing the buffer size or writing the data more frequently might correct the problem."}}, + {-200290, {Category::Other, ActionRequired::ImmediateAction, "The generation has stopped to prevent the regeneration of old samples. Your application was unable to write samples to the background buffer fast enough to prevent old samples from being regenerated. To avoid this error, you can do any of the following: 1. Increase the size of the background buffer by configuring the buffer. 2. Increase the number of samples you write each time you invoke a write operation. 3. Write samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is executing concurrently. In addition, if you do not need to write every sample that is generated, you can configure the regeneration mode to allow regeneration, and then use the Position and Offset attributes to write the desired samples."}}, + {-200291, {Category::Other, ActionRequired::ImmediateAction, "The generation has stopped because an intermediate buffer overflowed. The background was running too fast for the application to keep up, and the application was unable to write samples to the intermediate buffer fast enough to prevent regenerating old samples. To avoid this error, you can reduce the sample rate, reduce the number of applications your computer is executing concurrently, or write all samples before the generation starts."}}, + {-200292, {Category::Other, ActionRequired::Warning, "Some or all of the samples to write could not be written to the buffer yet. More space will free up as samples currently in the buffer are generated. To wait for more space to become available, use a longer write timeout. To make the space available sooner, increase the sample rate."}}, + {-200293, {Category::Other, ActionRequired::Warning, "The generation is not yet started, and not enough space is available in the buffer. Configure a larger buffer, or start the generation before writing more data than will fit in the buffer."}}, + {-200294, {Category::Other, ActionRequired::Warning, "Not enough samples were written to satisfy the initial data transfer request condition. To successfully start a generation, increase the number of samples initially written to the buffer before starting. Alternatively, decrease the number of samples required to start by changing the data transfer request condition."}}, + {-200295, {Category::Hardware, ActionRequired::Warning, "Attempt was made to write samples after start of generation where only onboard memory was used. In this case, all samples must be written to the device before the start of generation. No samples may be updated once the generation has started. If you wish to modify samples in the generation after the start of the generation, do not enable the onboard memory."}}, + {-200297, {Category::Configuration, ActionRequired::Warning, "This property is unavailable when using onboard memory."}}, + {-200300, {Category::Other, ActionRequired::ImmediateAction, "Invalid timing type for this channel."}}, + {-200301, {Category::Configuration, ActionRequired::Warning, "Cannot update the Pulse Generation property. The pulse generation with previous property settings must complete a full cycle before the property can be updated."}}, + {-200302, {Category::Other, ActionRequired::Warning, "Signal being measured is slower than the specified measurement time. Increase the measurement time, or use a different measurement method."}}, + {-200303, {Category::Other, ActionRequired::Warning, "External sample clock source must be specified for this application."}}, + {-200304, {Category::Other, ActionRequired::Warning, "External master timebase rate must be specified for this channel given the selected measurement units. Specify the master timebase rate, or use ticks as the measurements units."}}, + {-200305, {Category::Other, ActionRequired::Warning, "Desired finite pulse train generation is not possible. Change the number of samples to be generated, increase the rate of the pulse train, or choose a different timebase source. Refer to the documentation for more details."}}, + {-200306, {Category::Configuration, ActionRequired::Warning, "An attempt was made to set the Samples per Channel property to a value greater than the maximum supported number."}}, + {-200307, {Category::Software, ActionRequired::Warning, "Specified master timebase rate does not match specified master timebase source. Do not set the master timebase rate when you are using an internal master timebase source. In this case, the driver sets the master timebase rate for you."}}, + {-200308, {Category::Software, ActionRequired::Warning, "Specified sample timebase rate does not match specified sample timebase source. Do not set the sample timebase rate when you are using an internal sample timebase source. In this case, the driver sets the sample timebase rate for you."}}, + {-200309, {Category::Software, ActionRequired::Warning, "Specified master timebase divisor (belonging to sample clock timebase) is not appropriate for the specified sample timebase source. Do not set the master timebase divisor when you are using an internal sample timebase source. In this case, the driver sets the master timebase divisor for you."}}, + {-200310, {Category::Hardware, ActionRequired::Warning, "The waveform you are trying to allocate on the device has been previously allocated. Make sure you are not trying to allocate the same waveform twice, or delete the existing waveform before allocating it again."}}, + {-200311, {Category::Other, ActionRequired::Warning, "You cannot write data outside the boundaries of your waveform. Make sure you are not trying to write more data than your waveform can accomodate and that your write location and write offset are set correctly."}}, + {-200312, {Category::Hardware, ActionRequired::Warning, "Waveform is not in the device memory. Make sure you are referring to a previously allocated and/or written waveform by its correct name. Also, make sure that the waveform was not deleted."}}, + {-200313, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200314, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200315, {Category::Hardware, ActionRequired::Warning, "There is not enough free device memory for your waveform. Delete waveforms or scripts not in use to free memory. If you have deleted multiple waveforms or scripts, the memory might have become fragmented. To avoid fragmentation, you can change the order in which you write/delete your waveforms and scripts."}}, + {-200316, {Category::Hardware, ActionRequired::Warning, "Device data underflow. The device was not able to move data fast enough to keep up with the sample rate for the active script. Run the operation at a lower sample rate, or look for the following in the active script: markers might be too close together, waveforms might be too small, waits might be too short, or subsets might be too small. If you are using an external clock, the provided clock might have gone away during your generation."}}, + {-200317, {Category::Hardware, ActionRequired::Warning, "There is not enough free device memory for your script. Delete waveforms or scripts not in use to free memory. If you have deleted multiple waveforms or scripts, the memory might have become fragmented. To avoid fragmentation, you can change the order in which you write/delete your waveforms and scripts."}}, + {-200318, {Category::Other, ActionRequired::ImmediateAction, "Invalid excitation value specified to be used for scaling with full bridge configuration. Change the excitation value if you want it to be used for scaling with full bridge configuration. Alternatively, change the bridge configuration, or do not use excitation value for scaling."}}, + {-200319, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up to perform the analog input operation on given channels. The SCXI module cabled to your digitizer cannot route AI Convert Clock from the digitizer to the other modules. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the modules that can route the AI Convert signal, such as the module your channels are on. After cabling the digitizer to the module, update the chassis configuration in Measurement & Automation Explorer to reflect the cabling change. For detailed information about cabling, refer to the documentation."}}, + {-200320, {Category::Other, ActionRequired::Warning, "Your SCXI system is not set up for analog input with simultaneous sample and hold on the given channels. The SCXI module cabled to your digitizer cannot route the signal needed for simultaneous sample and hold from the digitizer to the other modules. To perform the desired operation with multiple SCXI modules and one digitizer, cable the digitizer to one of the modules that can route the signal needed for simultaneous sample and hold. The simultaneous sample and hold module in your chassis is one such module. After cabling the digitizer to the module, update the chassis configuration in Measurement & Automation Explorer to reflect the cabling change. For detailed information about cabling, refer to the documentation."}}, + {-200321, {Category::Hardware, ActionRequired::Warning, "Attenuation Value conflicts with the specified AI Minimum and AI Maximum properties. The specified attenuation and AI Minimum and/or AI Maximum would cause the device to exceed the hardware limit. You should increase the Attenuation Value or adjust the AI Minimum and/or AI Maximum."}}, + {-200322, {Category::Other, ActionRequired::Warning, "Data transfer has been stopped to prevent the computer from becoming completely unresponsive. Could not transfer enough data to satisfy the data transfer requirements with Interrupts as the Data Transfer Mechanism. Reduce your Sample Clock Rate, use DMA as your Data Transfer Mechanism, or use a different Data Transfer Request Condition."}}, + {-200323, {Category::Hardware, ActionRequired::Warning, "Cannot perform a multidevice scan with Advance Trigger Type set to None. Without the advance trigger, the devices in the scan list cannot be synchronized."}}, + {-200324, {Category::Hardware, ActionRequired::Warning, "NI-DAQmx is unable to communicate with the device. Make sure the device is present in and accessible to the system, is not currently being reset, and is not reserved by another driver such as Traditional NI-DAQ (Legacy)."}}, + {-200325, {Category::Other, ActionRequired::Warning, "Reverse coefficients must be specified to scale your data using the polynomial scale."}}, + {-200326, {Category::Other, ActionRequired::Warning, "An attempt has been made to perform a route when the source and the destination are the same terminal. In many cases, such as when configuring an external clock or a counter source, you must select a PFI, PXI Trigger, or RTSI line as the source terminal."}}, + {-200327, {Category::Other, ActionRequired::ImmediateAction, "You have specified an invalid value for dt in the waveform cluster. The value for dt must be greater than zero."}}, + {-200328, {Category::Hardware, ActionRequired::Warning, "Switch driver cannot open the topology configuration file for the switch device. A switch device cannot function without its configuration file. The configuration file is installed with the driver. The file might have been removed, renamed, or corrupted after installation. Make sure the configuration file is available to the driver at the expected location, or reinstall the product, as that will reinstall the configuration file."}}, + {-200329, {Category::Hardware, ActionRequired::ImmediateAction, "An error has occurred while attempting to configure the device for an analog input acquisition. If an external master timebase is being used, make sure the source is connected and generating an appropriate clock. Otherwise, contact National Instruments Technical Support."}}, + {-200330, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to use the PFI0 terminal of the device for both an analog and digital source. Use a terminal other than PFI0 as the source of your digital signal."}}, + {-200331, {Category::Other, ActionRequired::Warning, "Specified sample rate is lower than the lowest rate that can be generated using the onboard clock. The rate has been coerced to the slowest possible sample rate. For slower rates, use an external sample clock or an external sample clock timebase."}}, + {-200332, {Category::Hardware, ActionRequired::Warning, "Specified sample rate is higher than the fastest rate supported by the device."}}, + {-200333, {Category::Other, ActionRequired::Warning, "Delay from the start trigger is shorter than the shortest delay that can be generated using the onboard clock with a timebase suitable for generating the sample clock. For shorter delays, use a sample clock timebase with a higher rate, if applicable."}}, + {-200334, {Category::Other, ActionRequired::Warning, "Delay from start trigger is longer than the longest delay that can be generated using the onboard clock with a timebase suitable for generating the sample clock. For longer delays, use a slower sample clock timebase rate, if applicable."}}, + {-200335, {Category::Other, ActionRequired::Warning, "Specified AI convert rate is higher than the fastest rate possible with the current timebase."}}, + {-200336, {Category::Other, ActionRequired::Warning, "Delay from the sample clock is shorter than the shortest delay that can be generated using the onboard clock with a timebase suitable for generating the convert clock. For shorter delays, use a faster convert clock timebase rate, if applicable."}}, + {-200337, {Category::Other, ActionRequired::Warning, "Delay from the sample clock is longer than the longest delay that can be generated using the onboard clock with a timebase suitable for generating the convert clock. For longer delays, use a slower convert clock timebase rate, if applicable."}}, + {-200338, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to read the calibration temperature for a device without an internal temperature sensor."}}, + {-200339, {Category::Other, ActionRequired::Warning, "Pulse width measurement was started while the input signal was active, and no additional pulses were received, which caused the measurement not to complete during the specified timeout. When measuring a single pulse width, make sure the measurement counter is started before the pulse to be measured is active, or provide a timeout sufficient for at least one additional pulse to be measured."}}, + {-200340, {Category::Other, ActionRequired::Warning, "By setting Number of Samples per Channel to -1, you indicated that all available data should be read. This is not valid for acquisitions without a buffer. Specify a value greater than or equal to zero for Number of Samples per Channel. Do not specify a value of zero for Buffer Size when configuring the input buffer."}}, + {-200341, {Category::Configuration, ActionRequired::Warning, "Generation was configured to use only onboard memory, but the corresponding buffer is larger than onboard memory. Buffer size is provided implicitly when data is written or explicitly when the buffer is configured. Configure the generation so that the Use Only Onboard Memory property is false. Alternatively, you can make sure the number of samples written and/or the size of the configured buffer do not exceed the onboard memory size."}}, + {-200342, {Category::Hardware, ActionRequired::Warning, "Script is not in the device memory. Make sure you are referring to a previously written script by its correct name. Also, make sure the script has not been deleted."}}, + {-200343, {Category::Software, ActionRequired::Warning, "Driver cannot determine the number of samples to read for a continuous task that has not yet started. Start the task explicitly, or specify the number of samples to read in DAQmx Read."}}, + {-200344, {Category::Other, ActionRequired::ImmediateAction, "Requested number of samples per channel is invalid. The number of samples per channel must be an integer multiple of the number of samples per channel increment."}}, + {-200345, {Category::Other, ActionRequired::Warning, "Event delay is outside of the legal range. Change the value of the delay, and/or verify that the units are correct."}}, + {-200346, {Category::Other, ActionRequired::Warning, "Event pulse width is outside of the legal range. Change the value of the pulse width, and/or verify that the units are correct."}}, + {-200347, {Category::Other, ActionRequired::ImmediateAction, "Invalid intermediate buffer size. The size of the intermediate buffer must be an integer multiple of the intermediate buffer size increment."}}, + {-200348, {Category::Other, ActionRequired::Warning, "Scaled Values must be specified for the table scale."}}, + {-200349, {Category::Other, ActionRequired::Warning, "Prescaled Values must be specified for the table scale."}}, + {-200350, {Category::Other, ActionRequired::Warning, "Number of Prescaled Values needs to be equal to the number of Scaled Values in the table scale."}}, + {-200351, {Category::Other, ActionRequired::Warning, "Forward coefficients must be specified for the polynomial scale."}}, + {-200352, {Category::Other, ActionRequired::Warning, "Physical channel corresponding to the virtual channel specified for cold-junction compensation is already being used for a thermocouple measurement, so it cannot be used as the cold-junction compensation channel."}}, + {-200353, {Category::Configuration, ActionRequired::Warning, "Specified property value cannot be used, because it requires resources that are currently in use."}}, + {-200354, {Category::Configuration, ActionRequired::Warning, "Specified property value is not a valid terminal name."}}, + {-200355, {Category::Configuration, ActionRequired::Warning, "Specified property value cannot be used, because the hardware does not support it."}}, + {-200356, {Category::Other, ActionRequired::Warning, "Custom scale cannot be created. A saved scale with this name already exists."}}, + {-200357, {Category::Hardware, ActionRequired::Warning, "Measurement device cannot acquire data from the sensor in its current configuration. The voltage output range of your sensor does not overlap with the voltage input range of your measurement device. If your measurement device supports different gains or input ranges, try using a lower gain or a wider input range. If the device has a fixed gain/range, you might need to change sensor attribute settings such as Excitation Value or use a measurement device that supports a wider voltage input range."}}, + {-200358, {Category::Other, ActionRequired::Warning, "An attempt has been made to configure a reference trigger when the sample mode of the sample clock has been configured for continuous sampling. Reference trigger is only applicable for finite sampling. Change the sample mode to finite to use a reference trigger, or do not configure a reference trigger."}}, + {-200359, {Category::Other, ActionRequired::Warning, "Counter signals cannot be exported, because there is more than one counter channel in the task. Create separate tasks for each counter channel."}}, + {-200360, {Category::Other, ActionRequired::Warning, "CJC Source has been set to Channel, while the CJC channel has not been specified. Specify the CJC channel, or set CJC Source to a value other than Channel."}}, + {-200361, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus-bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also use a product with more onboard memory or reduce the number of programs your computer is executing concurrently."}}, + {-200362, {Category::Configuration, ActionRequired::Warning, "The Overloaded Channels Exist property was not read prior to reading the specified property. The driver retrieves the overload state from the hardware when the application reads the Overloaded Channels Exist property. After the Overloaded Channels Exist property has been read, other information about overloaded channels may be read, such as which channels are overloaded."}}, + {-200363, {Category::Hardware, ActionRequired::Warning, "Specified inversion cannot be satisfied, because the hardware does not support it."}}, + {-200364, {Category::Hardware, ActionRequired::ImmediateAction, "Specified polarity is not supported by the hardware."}}, + {-200365, {Category::Other, ActionRequired::Warning, "Specified inversion cannot be satisfied, because it requires resources that are currently in use by another route."}}, + {-200366, {Category::Other, ActionRequired::Warning, "Specified inversion cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, + {-200367, {Category::Other, ActionRequired::Warning, "Specified polarity cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, + {-200368, {Category::Hardware, ActionRequired::Warning, "Specified route cannot be satisfied, because the hardware does not support it."}}, + {-200369, {Category::Other, ActionRequired::Warning, "Specified route cannot be satisfied, because it requires resources that are currently in use by another route."}}, + {-200370, {Category::Other, ActionRequired::Warning, "Specified route cannot be satisfied, because it requires resources that are currently in use by another route within this task."}}, + {-200371, {Category::Other, ActionRequired::Warning, "Requested multiple virtual channels that correspond to the same physical channel within a task. A task cannot contain multiple physical channels of a specified type. Use different physical channels for each virtual channel."}}, + {-200372, {Category::Software, ActionRequired::ImmediateAction, "Trigger type requested to be sent as the software trigger is invalid."}}, + {-200373, {Category::Hardware, ActionRequired::ImmediateAction, "Trigger type requested to be sent as software trigger is not supported for the specified task running on the given device."}}, + {-200374, {Category::Other, ActionRequired::Warning, "Signal type requested to be exported is not valid."}}, + {-200375, {Category::Hardware, ActionRequired::ImmediateAction, "Signal type requested to be exported is not supported for the specified task running on the given device."}}, + {-200376, {Category::Other, ActionRequired::Warning, "Requested creation of a separate channel for each line is not possible when a digital port is specified as the physical channel. Specify a range of digital lines, such as \"Dev1/port0/line0:7\", as the physical channel."}}, + {-200377, {Category::Hardware, ActionRequired::ImmediateAction, "Requested operation is not supported by the device during a scan. The device only supports operations on front-end channels (for example, ch0, ch1, ... or cjtemp) while scanning. Other operations, such as operations on analog bus channels (such as ab0 and ab1), are not supported by the device during a scan. Make sure your scan list contains only supported operations."}}, + {-200378, {Category::Other, ActionRequired::Warning, "Custom scale specified does not exist."}}, + {-200379, {Category::Hardware, ActionRequired::ImmediateAction, "External clock frequency and external clock divisor values result in an invalid cutoff frequency for this device. The relationship between cutoff frequency, external clock frequency, and external clock divisor is: cutoffFreq = extClkFreq / (100 * extClkDiv) Change your external clock frequency or external clock divisor."}}, + {-200380, {Category::Communication, ActionRequired::Warning, "Strain gage calibration procedure has failed. Make sure the strain gages are connected to all the specified strain channels, the strain gage connections are appropriate for their bridge type configurations, the shunt resistor location is specified correctly, and your hardware jumpers (if any) are set up correctly."}}, + {-200381, {Category::Configuration, ActionRequired::Warning, "Unable to configure requested delay property given the current clock rate. Make sure the sample clock rate is greater than or equal to the phase shift DMC threshold of your device, or do not configure the delay. Consult your documentation for more information."}}, + {-200382, {Category::Other, ActionRequired::Warning, "Specified trigger type for pattern match mode could not be configured, because all pattern matchers are already in use."}}, + {-200383, {Category::Other, ActionRequired::ImmediateAction, "Reference Clock Source specified is invalid, given the Sample Clock Source. When Sample Clock Source is anything other than \"OnboardClock\", you must set Reference Clock Source to \"None\", and you cannot export the Reference Clock."}}, + {-200384, {Category::Other, ActionRequired::Warning, "Static output cannot be performed, because some data lines have already been reserved for a dynamic output."}}, + {-200385, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200386, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200387, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200388, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200389, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200390, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200391, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock or an external reference clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200392, {Category::Other, ActionRequired::Warning, "Specified output voltage is not valid with the given sample clock rate. Make sure your output voltage level is compatible with your sample clock rate by altering the output voltage level or the sample clock rate. Consult your documentation for more information."}}, + {-200393, {Category::Other, ActionRequired::Warning, "You are attempting to write to a read-only register."}}, + {-200394, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value for the property is invalid, because it is not an unsigned integer. Even though the datatype of the property is a floating point number, the value must be an unsigned integer less than or equal to 9,007,199,254,740,992 (2^53)."}}, + {-200395, {Category::Configuration, ActionRequired::Warning, "There are no shared trigger lines between the two devices which are acceptable to both devices. While each of these two devices support some shared trigger lines, none of these shared trigger lines work for both devices for the specified property and corresponding value. Consider routing the signal through the I/O connectors of the two devices, if applicable."}}, + {-200396, {Category::Hardware, ActionRequired::Warning, "There are no shared trigger lines between the two devices that are acceptable to both devices. While each of the two devices support some shared trigger lines, none of the shared trigger lines work for both devices for the specified source and destination terminals. Consider routing the signal through the I/O connectors of the two devices, if applicable."}}, + {-200397, {Category::Other, ActionRequired::Warning, "Unable to load NI-DAQmx dynamic link library NICAIU.DLL. Make sure that NI-DAQmx is installed on your computer."}}, + {-200398, {Category::Other, ActionRequired::Warning, "Unable to find function in NI-DAQmx dynamic link library NICAIU.DLL. The DLL exists on your computer, but the version is incorrect. Install the correct version of the DLL on your computer."}}, + {-200399, {Category::Other, ActionRequired::ImmediateAction, "No extended error information is available for the last error code. It is possible that there was a problem initializing the internal errors database. Please contact National Instruments Technical Support."}}, + {-200400, {Category::Other, ActionRequired::ImmediateAction, "Requested waveform length is invalid, because the number of samples is not an integer multiple of the waveform length increment."}}, + {-200401, {Category::Other, ActionRequired::Warning, "Number of points to compute over the range of x values is not positive. Specify a value greater than 0 for this input."}}, + {-200402, {Category::Other, ActionRequired::Warning, "Order of the reverse polynomial to compute is not positive. Specify a value greater than 0 for this input."}}, + {-200403, {Category::Other, ActionRequired::Warning, "Order of the reverse polynomial to compute is less than or equal to the number of points to compute over the range of x values. Reduce the order of the reverse polynomial or increase the number of points to compute over the range of x values."}}, + {-200404, {Category::Other, ActionRequired::Warning, "Forward and Reverse Coefficients for a polynomial scale are not specified. Each of these two sets of coefficients must contain at least one term. If only one set of coefficients is available, use the Compute Reverse Polynomial Coefficient utility to calculate the other set of coefficients."}}, + {-200405, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. If the coefficients are not available, you can pass the supplied Reverse Coefficients to the Compute Reverse Polynomial Coefficients utility to calculate the required Forward Coefficients."}}, + {-200406, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. If the coefficients are not available, use the Compute Reverse Polynomial Coefficient utility to calculate the required coefficients from the supplied Forward Coefficients."}}, + {-200407, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are all set to zero. At least one of these coefficients must be non-zero."}}, + {-200408, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are all set to zero. At least one of these coefficients must be non-zero."}}, + {-200409, {Category::Other, ActionRequired::Warning, "Slope for a linear scale is set to zero. The slope must be non-zero."}}, + {-200410, {Category::Configuration, ActionRequired::ImmediateAction, "Requested record number is invalid. Use the Records Done property to find out how many records are available. Record numbers start at 0. Use -1 for all available records."}}, + {-200411, {Category::Hardware, ActionRequired::Warning, "AC coupling is not allowed with 50 Ohm impedance for this device. Use DC coupling, or configure a different impedance setting."}}, + {-200412, {Category::Other, ActionRequired::ImmediateAction, "Requested analog input attenuation is invalid."}}, + {-200413, {Category::Other, ActionRequired::Warning, "Insufficient onboard memory for requested Number of Records and Samples per Channel combination. Reduce the Number of Records and/or Samples per Channel."}}, + {-200414, {Category::Other, ActionRequired::ImmediateAction, "Requested sample clock source is invalid."}}, + {-200415, {Category::Other, ActionRequired::ImmediateAction, "Requested reference clock source is invalid."}}, + {-200416, {Category::Other, ActionRequired::Warning, "Multiple records are not available with RIS."}}, + {-200417, {Category::Other, ActionRequired::Warning, "TDC is not enabled during RIS mode. TDC must be enabled when the digitizer is in the RIS mode. Enable TDC, or do not use RIS."}}, + {-200418, {Category::Other, ActionRequired::Warning, "Requested immediate trigger type while in RIS mode. Immediate triggering is not compatible with the RIS mode. Select a different trigger type, or do not use RIS."}}, + {-200419, {Category::Other, ActionRequired::ImmediateAction, "Requested Read Position is invalid in RIS mode."}}, + {-200420, {Category::Other, ActionRequired::Warning, "Requested sample rate exceeds maximum real-time sample rate. If you want a higher sampling rate and have a repetitive signal, enable RIS."}}, + {-200421, {Category::Other, ActionRequired::Warning, "Requested Hysteresis is not valid with the configured Trigger Level and AI Minimum. Configure the task so the following formula is satisfied: Trigger Level - Hysteresis > AI Minimum"}}, + {-200422, {Category::Other, ActionRequired::Warning, "Requested Trigger Level is not valid with the configured AI Minimum and AI Maximum. Configure the instrument so the following formula is satisfied: AI Minimum < Trigger Level < AI Maximum"}}, + {-200423, {Category::Other, ActionRequired::Warning, "Requested window trigger level is not valid with the configured AI Minimum and AI Maximum. Configure the instrument so the following formula is satisfied: AI Minimum < Window Trigger Level < AI Maximum"}}, + {-200424, {Category::Other, ActionRequired::Warning, "Requested video trigger line number is incompatible with the chosen video signal format."}}, + {-200425, {Category::Other, ActionRequired::Warning, "Requested hysteresis is not valid with the configured trigger level and AI Maximum. Configure the task so the following formula is satisfied: Trigger Level + Hysteresis < AI Maximum"}}, + {-200426, {Category::Other, ActionRequired::ImmediateAction, "Requested impedance for the external trigger is invalid. Specify an impedance that is appropriate for the external trigger, or choose a different trigger source."}}, + {-200427, {Category::Other, ActionRequired::ImmediateAction, "Configured reference clock rate is invalid. The reference clock rate must be within the valid range and a multiple of the increment value."}}, + {-200428, {Category::Other, ActionRequired::ImmediateAction, "Value passed to the Task/Channels In control is invalid. The value must refer to a valid task or valid virtual channels."}}, + {-200429, {Category::Other, ActionRequired::Warning, "Value passed to the Task/Channels In control is an empty string (or I/O control). The value must refer to a valid task or valid channels."}}, + {-200430, {Category::Other, ActionRequired::Warning, "I/O type of the physical channel does not match the I/O type required for the virtual channel you are creating."}}, + {-200431, {Category::Other, ActionRequired::Warning, "Selected physical channel does not support the measurement type required by the virtual channel you are creating. Create a channel of a measurement type that is supported by the physical channel, or select a physical channel that supports the measurement type."}}, + {-200432, {Category::Other, ActionRequired::Warning, "Selected physical channel does not support the output type required by the virtual channel you are creating. Create a channel of an output type that is supported by the physical channel, or select a physical channel that supports the output type."}}, + {-200433, {Category::Other, ActionRequired::Warning, "Scaled Values for a table scale must contain at least two values."}}, + {-200434, {Category::Other, ActionRequired::Warning, "Prescaled Values for a table scale must contain at least two values."}}, + {-200435, {Category::Other, ActionRequired::Warning, "Delay from sample clock is not available when an external convert source is specified. Change the convert source to onboard clock, or do not configure the delay from sample clock."}}, + {-200436, {Category::Other, ActionRequired::Warning, "Start trigger delay is not available when an external sample clock source is specified. Change the sample clock to onboard clock, or do not configure the start trigger delay."}}, + {-200437, {Category::Other, ActionRequired::ImmediateAction, "External calibration constants are invalid. Perform an external calibration. Contact National Instruments Technical Support if you need additional information."}}, + {-200438, {Category::Other, ActionRequired::ImmediateAction, "Invalid calibration area selected. Select self-calibration or external calibration."}}, + {-200439, {Category::Other, ActionRequired::Warning, "Requested operation only can be used during an external calibration session."}}, + {-200440, {Category::Other, ActionRequired::ImmediateAction, "Requested calibration close action is invalid. Select Store or Abort."}}, + {-200441, {Category::Other, ActionRequired::Warning, "Unable to detect the external stimulus frequency. Verify that the external stimulus is properly connected and has the correct frequency and amplitude."}}, + {-200442, {Category::Other, ActionRequired::Warning, "Unable to synchronize to the external stimulus frequency. Verify that the external stimulus has the correct frequency, amplitude, and stability. Consult the documentation for the calibration procedure for valid ranges."}}, + {-200443, {Category::Other, ActionRequired::Warning, "Attempt to store calibration constants without completing all the necessary external calibration steps. Refer to the documentation for the calibration procedure. Verify that all necessary steps are performed before closing the external calibration session."}}, + {-200444, {Category::Other, ActionRequired::ImmediateAction, "Invalid physical channel selected for calibration."}}, + {-200445, {Category::Hardware, ActionRequired::ImmediateAction, "Requested calibration function is not supported by the device."}}, + {-200446, {Category::Other, ActionRequired::Warning, "External stimulus voltage read was outside the expected range. Verify that the external stimulus voltage is properly connected and has the correct amplitude."}}, + {-200447, {Category::Other, ActionRequired::Warning, "Units for the channel must be set to From Custom Scale when a custom scale is used with a channel."}}, + {-200448, {Category::Configuration, ActionRequired::Warning, "DAC Range High is not equal to the DAC Reference Voltage Value. When you do not set the DAC Range High property, the driver always makes sure it is equal to the DAC Reference Voltage value. If you do set the DAC Range High property make sure DAC Range High and DAC Reference Voltage Value are equal."}}, + {-200449, {Category::Configuration, ActionRequired::Warning, "DAC Range Low must be equal to either the negative DAC Reference Voltage Value or to zero. If you do not set the DAC Range Low property, the driver sets it for you. Otherwise, make sure DAC Range Low is equal to either the negative DAC Reference Voltage Value or to zero."}}, + {-200450, {Category::Configuration, ActionRequired::Warning, "Specified property cannot be set while the task is running."}}, + {-200451, {Category::Configuration, ActionRequired::Warning, "You can get the specified property only while the task is committed or running."}}, + {-200452, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported by the device or is not applicable to the task."}}, + {-200453, {Category::Other, ActionRequired::ImmediateAction, "Specified timeout value is not supported. Supported timeout values are 0 (try or check once and return), positive numbers up to 4294967, and -1 (try or check until success or error)."}}, + {-200454, {Category::Configuration, ActionRequired::Warning, "You cannot get the specified property, because the task is not a buffered output task."}}, + {-200455, {Category::Configuration, ActionRequired::Warning, "You cannot get the specified property, because the task is not a buffered input task."}}, + {-200456, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because the task is not an output task."}}, + {-200457, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because the task is not an input task."}}, + {-200459, {Category::Other, ActionRequired::Warning, "Write failed, because there are no output channels in this task to which data can be written."}}, + {-200460, {Category::Other, ActionRequired::Warning, "Read failed, because there are no channels in this task from which data can be read."}}, + {-200461, {Category::Other, ActionRequired::ImmediateAction, "Specified channel name is invalid."}}, + {-200462, {Category::Configuration, ActionRequired::Warning, "Generation cannot be started because the output buffer is empty. Write data before starting a buffered generation. The following actions can empty the buffer: changing the size of the buffer, unreserving a task, setting the Regeneration Mode property, changing the Sample Mode, or configuring retriggering."}}, + {-200463, {Category::Other, ActionRequired::Warning, "Specified read or write operation failed, because the number of lines in the data for a channel does not match the number of lines in the channel. If you are using the Digital Waveform datatype, make sure the number of lines in the digital waveform matches the number of lines in the channel. If you are using boolean data, make sure the array dimension for lines in the data matches the number of lines in the channel."}}, + {-200464, {Category::Other, ActionRequired::Warning, "If performing a Write operation, the operation cannot be performed, because the number of channels in the specified data does not match the number of channels in this task. Adjust the data to match the number of channels in this task. If you are performing a read operation, the operation cannot be performed because this DAQmx Read only returns data from a single channel, and there are multiple channels in this task. Use the multichannel DAQmx Read."}}, + {-200465, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than what is supported by DAQmx Port Write. With the U8 version, channels must contain 8 bits or less; while for the U32 version, channels must contain 32 bits or less."}}, + {-200466, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than what is supported by DAQmx Port Read. With the U8 version, channels must contain 8 bits or less; while for the U32 version, channels must contain 32 bits or less."}}, + {-200467, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because it is empty."}}, + {-200469, {Category::Other, ActionRequired::Warning, "Specified channel cannot be loaded, because it was saved with an incompatible, more recent version of NI-DAQ. Create the channel again, or upgrade NI-DAQ to a version compatible with the version used to save the channel. Consult the documentation for the version of NI-DAQ used to create the channel for more details."}}, + {-200470, {Category::Other, ActionRequired::Warning, "Specified task cannot be loaded, because it was saved with an incompatible, more recent version of NI-DAQ. Create the task again, or upgrade NI-DAQ to a version compatible with the version used to save the task. Consult the documentation for the version of NI-DAQ used to create the task for more details."}}, + {-200472, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the auto start input to DAQmx Write is false, and timing for the task is not configured or Timing Type is set to On Demand. Set auto start to true, or configure timing and specify Timing Type other than On Demand."}}, + {-200473, {Category::Configuration, ActionRequired::Warning, "Read cannot be performed when the Auto Start property is false and the task is not running or committed. Start the task before reading, or set Auto Start to true."}}, + {-200474, {Category::Other, ActionRequired::Warning, "Specified operation did not complete, because the specified timeout expired."}}, + {-200475, {Category::Other, ActionRequired::Warning, "Specified operation can be performed only when the task is running. Start the task before requesting this operation."}}, + {-200477, {Category::Hardware, ActionRequired::Warning, "Specified operation cannot be performed when there are no devices in the task."}}, + {-200478, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed when there are no channels in the task."}}, + {-200479, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed while the task is running."}}, + {-200481, {Category::Hardware, ActionRequired::Warning, "Specified device cannot be added to the task, because it is already in the task."}}, + {-200482, {Category::Hardware, ActionRequired::Warning, "Specified device is not in the task."}}, + {-200483, {Category::Other, ActionRequired::Warning, "Specified virtual channel cannot be saved, because a virtual channel with that name already exists in Data Neighborhood in MAX. Save the virtual channel under a different name, or specify that the existing virtual channel should be replaced."}}, + {-200484, {Category::Other, ActionRequired::Warning, "Specified task cannot be saved, because a task with that name already exists in Data Neighborhood in MAX. Save the task under a different name, or specify that the existing task should be replaced."}}, + {-200485, {Category::Other, ActionRequired::Warning, "The specified task cannot be loaded, because it is not in Data Neighborhood. Check Data Neighborhood in MAX. Look for similar characters, such as the capital letter \"O\" and the number zero."}}, + {-200486, {Category::Other, ActionRequired::Warning, "Specified channel is not in the task."}}, + {-200488, {Category::Other, ActionRequired::Warning, "Specified virtual channel cannot be added to the task, because it does not exist. You cannot specify a physical channel. Instead, create a virtual channel using the DAQ Assistant or DAQmx Create Virtual Channel, and then add the virtual channel to the task."}}, + {-200489, {Category::Other, ActionRequired::Warning, "Specified channel cannot be added to the task, because a channel with the same name is already in the task."}}, + {-200490, {Category::Other, ActionRequired::Warning, "Sample value detected outside of the specified range."}}, + {-200491, {Category::Other, ActionRequired::Warning, "Reserved parameter must be zero."}}, + {-200492, {Category::Other, ActionRequired::Warning, "Reserved parameter must be NULL."}}, + {-200493, {Category::Other, ActionRequired::Warning, "Reserved character string parameter must be NULL or an empty string."}}, + {-200494, {Category::Hardware, ActionRequired::Warning, "Specified task cannot be loaded, because it requires a device that supports timing, and the associated device does not support timing. Create a new task without timing, or associate this task with a device that supports timing."}}, + {-200495, {Category::Software, ActionRequired::Warning, "An intermediate acquisition buffer has overflowed. The driver was unable to read samples from the intermediate buffer fast enough to prevent the buffer from overflowing."}}, + {-200496, {Category::Other, ActionRequired::ImmediateAction, "Pattern contains an invalid character."}}, + {-200497, {Category::Other, ActionRequired::Warning, "Attempted to enable output data lines that were not previously disabled. Make sure that you are enabling data lines for output only after explicitly disabling them."}}, + {-200498, {Category::Other, ActionRequired::ImmediateAction, "Syntax for a range of objects in the input string is invalid. For ranges of objects, specify a number immediately before and after every colon (\":\") in the input string. Or, if a name is specified after the colon, it must be identical to the name specified immediately before the colon. Colons are not allowed within the names of the individual objects."}}, + {-200499, {Category::Other, ActionRequired::Warning, "Value passed is not between 0 and 4,294,967,295 (unsigned 32-bit integer)."}}, + {-200500, {Category::Software, ActionRequired::ImmediateAction, "Error code could not be found. Reinstalling the driver might fix the issue. Otherwise, contact National Instruments technical support."}}, + {-200501, {Category::Other, ActionRequired::ImmediateAction, "EEPROM contains an invalid calibration date and/or time. The calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, + {-200502, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path pre-amplifier offset produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200503, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path pre-amplifier gain produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200504, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path post-amplifier gain and offset produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200505, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of direct path gain produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200506, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of main path output impedance produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200507, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of direct path output impedance produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200508, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of the oscillator frequency produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200509, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of calibration ADC produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200510, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path pre-amplifier offset. Refer to the documentation for a list of valid configuration values."}}, + {-200511, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path pre-amplifier gain. Refer to the documentation for a list of valid configuration values."}}, + {-200512, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path post-amplifier gain and offset. Refer to the documentation for a list of valid configuration values."}}, + {-200513, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the main path output impedance. Refer to the documentation for a list of valid configuration values."}}, + {-200514, {Category::Other, ActionRequired::ImmediateAction, "Requested an invalid configuration value for adjusting the direct path output impedance. Refer to the documentation for a list of valid configuration values."}}, + {-200515, {Category::Other, ActionRequired::ImmediateAction, "Specified number of reads to average from the calibration ADC is invalid. The number of reads to average must be greater than 0."}}, + {-200516, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the gain DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, + {-200517, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the offset DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or a self-calibration, or contact National Instruments Technical Support."}}, + {-200518, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the oscillator phase DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, perform a self-calibration, or contact National Instruments Technical Support."}}, + {-200519, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM produced an invalid value for the oscillator frequency DAC. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or contact National Instruments Technical Support."}}, + {-200520, {Category::Other, ActionRequired::ImmediateAction, "Calibration constants stored in the EEPROM and used to adjust reads from the cal ADC are invalid. An incorrect calibration might have been performed, or the calibration data in the EEPROM might have been corrupted. Perform an external calibration, or contact National Instruments Technical Support."}}, + {-200521, {Category::Hardware, ActionRequired::ImmediateAction, "A measurement taken during adjustment of the oscillator phase DAC produced an invalid calibration constant. Make sure that the measured values passed to the calibration VI or function are correct. Verify the calibration procedure, and repeat the calibration. If the problem persists, there might be a hardware malfunction with your device. Contact National Instruments Technical Support."}}, + {-200522, {Category::Other, ActionRequired::Warning, "A self-calibration cannot be performed during external calibration."}}, + {-200523, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read only returns data from a single channel, and there are multiple channels in the task. Use the multichannel version of DAQmx Read."}}, + {-200524, {Category::Other, ActionRequired::Warning, "Write cannot be performed, because the number of channels in the data does not match the number of channels in the task. When writing, supply data for all channels in the task. Alternatively, modify the task to contain the same number of channels as the data written."}}, + {-200525, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read does not match the type of channels in the task. Use the version of DAQmx Read that corresponds to the channel type."}}, + {-200526, {Category::Other, ActionRequired::Warning, "Write cannot be performed because this version of DAQmx Write does not match the type of channels in the task. Use the version of DAQmx Write that corresponds to the channel type."}}, + {-200527, {Category::Hardware, ActionRequired::ImmediateAction, "Requested values of the Minimum and Maximum properties for the counter channel are not supported for the given type of device. The values that can be specified for Minimum and Maximum depend on the counter timebase rate."}}, + {-200528, {Category::Other, ActionRequired::ImmediateAction, "Requested line grouping is invalid. Either choose one channel for all lines or one channel for each line as the line grouping."}}, + {-200529, {Category::Communication, ActionRequired::Warning, "Unexpected identifier following the switch operation in the connection list. Switch operations must be separated by a comma inside the connection list."}}, + {-200530, {Category::Other, ActionRequired::Warning, "Unexpected identifier following the relay name in the relay list. Relay names must be separated by a comma inside the relay list."}}, + {-200531, {Category::Other, ActionRequired::Warning, "Relay name is not specified in the list entry."}}, + {-200532, {Category::Other, ActionRequired::Warning, "Unexpected identifier following switch channel name."}}, + {-200533, {Category::Other, ActionRequired::Warning, "Identifier found in the script is too long. Use identifiers with no more than 511 characters."}}, + {-200534, {Category::Other, ActionRequired::Warning, "Waveform name is too long. Use waveform names with no more than 511 characters."}}, + {-200535, {Category::Configuration, ActionRequired::Warning, "Specified value is larger than the maximum value supported for this property."}}, + {-200536, {Category::Configuration, ActionRequired::Warning, "Specified value is smaller than the minimum value supported for this property."}}, + {-200537, {Category::Configuration, ActionRequired::ImmediateAction, "Supplied forward and reverse coefficients yield inconsistent results when they are used for computations related to this property. In other words, using the result of the forward scale as input to the reverse scale does not yield the original data. Based on the forward coefficients, the value for the property is invalid. Supply forward and reverse coefficients that yield consistent results."}}, + {-200538, {Category::Other, ActionRequired::ImmediateAction, "Action requested is invalid."}}, + {-200539, {Category::Hardware, ActionRequired::Warning, "Device does not support analog writes with multiple samples per channel. To output multiple samples, call DAQmx Analog Single Sample Write multiple times."}}, + {-200540, {Category::Configuration, ActionRequired::Warning, "DAC Reference Voltage Value is not set. When the DAC Reference Voltage Source property for a channel is set to External, the DAC Reference Voltage Value property must be set. Set the DAC Reference Voltage Value property so the value matches the reference voltage source connected to your device. Alternatively, consider using the internal DAC reference voltage source available on the device."}}, + {-200541, {Category::Hardware, ActionRequired::Warning, "Last Self Calibration Date/Time has not been stored on the device by NI-DAQmx. Self-calibrate the board using NI-DAQmx. Alternatively, externally calibrate the board using NI-DAQmx, and then call DAQmx Restore Last External Calibration Constants."}}, + {-200542, {Category::Hardware, ActionRequired::Warning, "Last Self Calibration Temperature has not been stored on the device by NI-DAQmx. Self-calibrate the board using NI-DAQmx. Alternatively, externally calibrate the board using NI-DAQmx, and then call DAQmx Restore Last External Calibration Constants."}}, + {-200543, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Date/Time has not been stored on the device by NI-DAQmx. Externally calibrate the board using NI-DAQmx."}}, + {-200544, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Temperature has not been stored on the device by NI-DAQmx. Externally calibrate the board using NI-DAQmx."}}, + {-200545, {Category::Hardware, ActionRequired::Warning, "Self-calibration failed. The self-calibration date has not changed. Disconnect the device from external signals, as they might introduce noise. Externally calibrate the device to recalibrate the onboard voltage reference that is used for self-calibration."}}, + {-200546, {Category::Hardware, ActionRequired::Warning, "External calibration failed, and the external calibration data has not been changed. Make sure that the reference signal used for the calibration is stable and that the voltage matches the value specified to the calibration software. Disconnect the device from any external signals that might be introducing noise."}}, + {-200547, {Category::Other, ActionRequired::Warning, "DAQmx Write failed, because a previous DAQmx Write automatically configured the output buffer size. The buffer size is equal to the original number of samples written per channel, so no more data can be written prior to starting the task. Start the generation before the second DAQmx Write, or set Auto Start to true in all occurences of DAQmx Write. To incrementally write into the buffer prior to starting the task, call DAQmx Configure Output Buffer before the first DAQmx Write."}}, + {-200548, {Category::Other, ActionRequired::Warning, "Requested coupling type is only valid when the trigger source is an external trigger channel."}}, + {-200549, {Category::Other, ActionRequired::ImmediateAction, "Self-calibration constants are invalid. Perform a self-calibration. Contact National Instruments Technical Support if you need additional information."}}, + {-200550, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference or sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that its rate matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200551, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external reference or sample clock, make sure it is connected and within the jitter and voltage level specifications at all times. Also, verify that its rate matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200552, {Category::Other, ActionRequired::ImmediateAction, "Specified string is not valid, because it contains an invalid character."}}, + {-200553, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its first character is a space character."}}, + {-200554, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its last character is a space character."}}, + {-200555, {Category::Other, ActionRequired::Warning, "Specified string is not valid, because its first character is an underscore."}}, + {-200556, {Category::Configuration, ActionRequired::Warning, "You only can get the specified property while the task is committed or while the task is running. Commit or start the task prior to getting the property."}}, + {-200557, {Category::Configuration, ActionRequired::Warning, "Specified property cannot be set while the task is running. Set the property prior to starting the task, or stop the task prior to setting the property."}}, + {-200558, {Category::Hardware, ActionRequired::Warning, "One task cannot contain multiple independent devices. Create one task for each independent device."}}, + {-200559, {Category::Other, ActionRequired::Warning, "Task cannot contain a channel with the specified channel type, because the task already contains channels with a different channel type. Create one task for each channel type."}}, + {-200560, {Category::Communication, ActionRequired::Warning, "Wait Until Done did not indicate that the task was done within the specified timeout. Increase the timeout, check the program, and make sure connections for external timing and triggering are in place."}}, + {-200561, {Category::Other, ActionRequired::Warning, "Attempted writing analog data that is too large or too small. Change Minimum Value and Maximum Value to reflect the range of the channel."}}, + {-200562, {Category::Other, ActionRequired::ImmediateAction, "Attempted writing digital data that is not supported."}}, + {-200563, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 8-bit version of DAQmx Port Read. Use a version of DAQmx Port Read that supports wider digital ports."}}, + {-200564, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 32-bit version of DAQmx Read. Use a version of DAQmx Read that returns an array of Boolean values or digital waveforms."}}, + {-200565, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 8-bit version of DAQmx Port Write. Use the version of DAQmx Port Write that supports wider digital ports."}}, + {-200566, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 32-bit version of DAQmx Port Write."}}, + {-200567, {Category::Other, ActionRequired::Warning, "Generation cannot be started, because the buffer size was changed since the last write, and this change caused data to be lost. Write data after changing the buffer size."}}, + {-200568, {Category::Configuration, ActionRequired::Warning, "Generation cannot be started, because the Regeneration Mode property was changed since the last write, and this change caused data to be lost. Write data after changing the Regeneration Mode property."}}, + {-200569, {Category::Other, ActionRequired::Warning, "Type of channel collection used to access the specified channel does not match the channel type. Access the channel through the channel collection that matches the channel type."}}, + {-200570, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between one and the number of channels in the task."}}, + {-200571, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to an internal source for channels in different channel groups. On this device, only one channel group at a time can be configured to use an internal source. Refer to the documentation for details."}}, + {-200572, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set differently for channels in one channel group on a device that supports only identical settings within a channel group. Refer to the documentation for more details."}}, + {-200573, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to different internal sources on some channels. On this device, Input Source Select must be set to the same value for all channels with internal sources. Refer to the documentation for more details."}}, + {-200574, {Category::Hardware, ActionRequired::Warning, "Driver cannot complete the route, because the only way to make the route requires a trigger bus line, and no trigger bus has been configured in MAX for this device. If you have a PXI chassis, make sure it has been properly identified in MAX. If you are using a PCI device, create a RTSI cable in MAX that includes your PCI device even if you are not using any RTSI cables."}}, + {-200575, {Category::Other, ActionRequired::Warning, "Requested value for Samples per Channel is too high when a reference trigger is used. In this case, Samples per Channel cannot exceed the sum of Pretrigger Samples per Channel and the maximum Post-trigger Samples per Channel. Reduce Samples per Channel. Alternatively, consider performing an acquisition with Continuous Sample Mode, or increase the Pretrigger Samples per Channel."}}, + {-200576, {Category::Hardware, ActionRequired::Warning, "CJC Source cannot be set to Built-In for the specified thermocouple channel. The physical channel does not support a built-in CJC temperature sensor. If your hardware contains a CJC temperature sensor on the physical channel corresponding to the built-in CJC source, make sure that the hardware configuration (including any accessories and/or terminal blocks) is correct. Alternatively, specify a different CJC Source, or use hardware with a built-in CJC temperature sensor."}}, + {-200577, {Category::Other, ActionRequired::Warning, "Requested AI Minimum value is too large."}}, + {-200578, {Category::Other, ActionRequired::Warning, "Requested AI Minimum value is too small."}}, + {-200579, {Category::Other, ActionRequired::Warning, "Requested AI Maximum value is too large."}}, + {-200580, {Category::Other, ActionRequired::Warning, "Requested AI Maximum value is too small."}}, + {-200581, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported, because Reference Clock Source is \"None\"."}}, + {-200582, {Category::Hardware, ActionRequired::Warning, "Values for AO channel properties lead to an output voltage that exceeds the maximum for the device."}}, + {-200583, {Category::Hardware, ActionRequired::Warning, "Values of the AO channel properties lead to an output voltage that is less than the minimum for the device."}}, + {-200584, {Category::Other, ActionRequired::ImmediateAction, "Write failed, because the number of samples to write per channel is invalid. The number of samples to write per channel must be an integer multiple of the samples to write per channel increment."}}, + {-200585, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within specifications. If you are generating your sample clock internally, please contact National Instruments Technical Support."}}, + {-200586, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within specifications. If you are generating your sample clock internally, please contact National Instruments Technical Support."}}, + {-200587, {Category::Hardware, ActionRequired::ImmediateAction, "Requested operation could not be performed, because the specified digital lines are either reserved or the device is not present in NI-DAQmx. It is possible that these lines are reserved by another task, the device is being used through the Traditional NI-DAQ interface, or the device is being reset. You might also get the error if the specified resource is currently in use by LabVIEW network variables bound to the DAQ Channel, or if the DAQ Channel is being used in any OPC Client software. If you are using these lines with another task, wait for the task to complete. If you are using the device through the Traditional NI-DAQ interface, and you want to use it with NI-DAQmx, reset (initialize) the device using the Traditional NI-DAQ interface. If you are resetting the device, wait for the reset to finish."}}, + {-200588, {Category::Other, ActionRequired::Warning, "Specified event handler cannot be removed, because it is installed on a different NI-DAQmx object. Remove the event handler from the NI-DAQmx object on which it was installed."}}, + {-200589, {Category::Other, ActionRequired::Warning, "Specified event handler cannot be removed, because it has already been removed."}}, + {-200590, {Category::Other, ActionRequired::ImmediateAction, "Specified event handler cannot be removed, because it is invalid. It has never been installed on this or any other NI-DAQmx object."}}, + {-200591, {Category::Other, ActionRequired::Warning, "Negative buffer size was supplied. The buffer size must be zero or greater."}}, + {-200592, {Category::Other, ActionRequired::Warning, "Given range in the input string contains too many objects. Check the string. If necessary, split the input string into smaller ranges."}}, + {-200593, {Category::Configuration, ActionRequired::Warning, "Value of this property cannot be determined until the containing task is verified. Before attempting to get the value of this property, you must make sure the task has been verified. You can do this by starting the task, using the task control method to verify the task, reading from the task if the Read Auto Start property is true, or writing to the task and specifying true for the auto start parameter."}}, + {-200594, {Category::Other, ActionRequired::ImmediateAction, "Value passed for the direction parameter is invalid. Use one of the values of the corresponding enumeration."}}, + {-200595, {Category::Other, ActionRequired::ImmediateAction, "Invalid identifier at the beginning of the switch operation in the list entry."}}, + {-200596, {Category::Hardware, ActionRequired::Warning, "Channels in the switch operation span different devices."}}, + {-200597, {Category::Other, ActionRequired::Warning, "Specified output operation cannot be satisfied, because it requires lines that are currently in use by another output operation."}}, + {-200598, {Category::Other, ActionRequired::ImmediateAction, "Repetition of a number in the Prescaled Values is invalid for input operations."}}, + {-200599, {Category::Other, ActionRequired::ImmediateAction, "Repetition of a number in Scaled Values is invalid for output operations."}}, + {-200600, {Category::Other, ActionRequired::Warning, "NI-DAQmx cannot generate virtual channel names for some of the physical channels specified, because the numeric suffix of the resulting channel names would be too large. Either explicitly specify a virtual channel name for each physical channel name, or decrease the numeric suffix of the last set of virtual channel names."}}, + {-200601, {Category::Configuration, ActionRequired::ImmediateAction, "Property not supported by this scale type."}}, + {-200602, {Category::Other, ActionRequired::Warning, "Prescaled Minimum cannot be equal to Prescaled Maximum for input operations."}}, + {-200603, {Category::Other, ActionRequired::Warning, "Scaled Minimum cannot be equal to Scaled Maximum for output operations."}}, + {-200604, {Category::Other, ActionRequired::Warning, "NULL pointer was passed for a required parameter."}}, + {-200605, {Category::Other, ActionRequired::Warning, "Given range in the input string contains a number that is too large. Check the string. Use smaller numbers in the range, or replace the range with a comma-separated list."}}, + {-200606, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between one and the number of channels in the task."}}, + {-200607, {Category::Other, ActionRequired::Warning, "Two signals cannot be simultaneously exported on the same terminal."}}, + {-200608, {Category::Other, ActionRequired::Warning, "Acquisition cannot be started, because the selected buffer size is too small. Increase the buffer size."}}, + {-200609, {Category::Other, ActionRequired::Warning, "Generation cannot be started, because the selected buffer size is too small. Increase the buffer size."}}, + {-200610, {Category::Other, ActionRequired::ImmediateAction, "Requested sample clock source is invalid for output. The specified sample clock source terminal is only supported for input."}}, + {-200611, {Category::Other, ActionRequired::Warning, "Operation cannot be performed, because there are no channels of the requested type in the task."}}, + {-200612, {Category::Other, ActionRequired::ImmediateAction, "Requested channel index is invalid. The value of the index must be between 0 and the number of channels in the task minus one."}}, + {-200613, {Category::Other, ActionRequired::ImmediateAction, "Acquisition has been stopped to prevent an input buffer overwrite. Your application was unable to read samples from the buffer fast enough to prevent new samples from overwriting unread data. To avoid this error, you can do any of the following: 1. Increase the size of the buffer. 2. Increase the number of samples you read each time you invoke a read operation. 3. Read samples more often. 4. Reduce the sample rate. 5. If your data transfer method is interrupts, try using DMA or USB Bulk. 6. Reduce the number of applications your computer is running concurrently. In addition, if you do not need to read every sample that is acquired, use the Relative To and Offset properties to read the desired samples."}}, + {-200614, {Category::Other, ActionRequired::Warning, "Combination of Samples to Read, Position, and Offset results in an attempt to read past the end of the record. You only can read samples within the record."}}, + {-200615, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200616, {Category::Other, ActionRequired::ImmediateAction, "Specified asynchronous operation handle is invalid."}}, + {-200617, {Category::Hardware, ActionRequired::Warning, "Output generation was aborted by the reverse power protection circuitry of the device. Either the output signal exceeded the output power limit, or power was being driven back into the output of the device by an external source. Correct the problem, then generate the signal again."}}, + {-200618, {Category::Hardware, ActionRequired::Warning, "Analog input virtual channels cannot be created out of order with respect to their physical channel numbers for the type of analog device you are using. For example, a virtual channel using physical channel ai0 must be created before a virtual channel with physical channel ai1."}}, + {-200619, {Category::Other, ActionRequired::Warning, "Chassis cannot be used for more than one scanning operation at the same time. Do only one scanning operation, or combine multiple scanning operations into a single operation."}}, + {-200620, {Category::Hardware, ActionRequired::Warning, "Requested multiple virtual channels that correspond to the same analog input physical channel within a single task. A task cannot contain multiple analog input physical channels for this type of device. Use different physical channels for each virtual channel."}}, + {-200621, {Category::Hardware, ActionRequired::Warning, "Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate. Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also reduce the number of programs your computer is executing concurrently."}}, + {-200622, {Category::Other, ActionRequired::ImmediateAction, "Requested number of samples to write is invalid. Change the number of samples to be written to a number equal to or greater than zero."}}, + {-200623, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature above the device's maximum recommended operating temperature. To use the device again, either turn the chassis/computer off until the device has cooled, or ensure the device has cooled, and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, + {-200624, {Category::Configuration, ActionRequired::Warning, "You have not specified an active channel when getting a property. Specify a single line as the active physical channel."}}, + {-200625, {Category::Configuration, ActionRequired::Warning, "You have specified more than one line as the active physical channel when getting a property. Specify a single line."}}, + {-200626, {Category::Other, ActionRequired::Warning, "An empty physical channel has been specified within the power up states array. Specify a correct physical channel."}}, + {-200627, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200628, {Category::Other, ActionRequired::ImmediateAction, "Pause and reference triggers are both configured, which is not supported in this task."}}, + {-200629, {Category::Hardware, ActionRequired::Warning, "Requested different values for properties that must have equal values on this device."}}, + {-200630, {Category::Other, ActionRequired::ImmediateAction, "Requested write offset is invalid, because it is not an integer multiple of the write increment."}}, + {-200631, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200632, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware clocking error occurred. If you are using an external sample clock, make sure it is connected and within the jitter and voltage level specifications. Also, verify that the rate of the external clock matches the specified clock rate. If you are generating your clock internally, please contact National Instruments Technical Support."}}, + {-200633, {Category::Other, ActionRequired::Warning, "Script name is the same as an existing waveform name. Make sure that the script name is different from the names of previously written or allocated waveforms."}}, + {-200634, {Category::Other, ActionRequired::Warning, "Waveform name is the same as an existing script name. Make sure that the waveform name is different from the names of previously written scripts."}}, + {-200635, {Category::Other, ActionRequired::Warning, "You have attempted to control a Watchdog Task, but the task supplied was not a Watchdog Task."}}, + {-200636, {Category::Communication, ActionRequired::Warning, "For this device, any connection specified in the scan list must wait for a trigger (;). If your scan list contains an action sequence similar to \"ch0->com0 &\" or \"ch0->com0 &&\", change the action sequence to \"ch0->com0;\"."}}, + {-200637, {Category::Communication, ActionRequired::Warning, "For this device, an action separator (& or &&) is required after breaking a connection in the scan list. If your scan list contains an action sequence similar to \"~ch0->com0;\", change the action sequence to \"~ch0->com0 &\" or \"~ch0->com0 &&\"."}}, + {-200638, {Category::Communication, ActionRequired::ImmediateAction, "For this device, two consecutive wait for triggers are not supported after any connection in the scan list. If your scan list contains an action sequence similar to \"ch0->com0;;\", change the action sequence to \"ch0->com0;\"."}}, + {-200639, {Category::Communication, ActionRequired::Warning, "For this device, connections specified in the scan list must be disconnected before making new connections. If your scanlist contains an action sequence similar to \"ch0->com0;;\", change the action sequence to \"ch0->com0; ~ch0->com0\"."}}, + {-200640, {Category::Hardware, ActionRequired::ImmediateAction, "For this device, send advance complete () is not supported after any wait for triggers (;) in the scan list. If your scan list contains an action sequence similar to \"ch0->com0; \", change the action sequence to \"ch0->com0;\"."}}, + {-200641, {Category::Configuration, ActionRequired::Warning, "Property cannot be set separately for each line. When setting this property, specify a virtual channel as the active channel."}}, + {-200642, {Category::Configuration, ActionRequired::Warning, "You have not specified an active channel when getting a property. Specify a single line as the active channel."}}, + {-200643, {Category::Configuration, ActionRequired::Warning, "You have specified more than one line when getting a property. Specify a single line as the active channel."}}, + {-200644, {Category::Other, ActionRequired::Warning, "Attempt to reset watchdog timer failed, because the timer had already expired. Clear expiration of the watchdog timer, or configure a longer watchdog timer timeout."}}, + {-200645, {Category::Other, ActionRequired::Warning, "Attempt to set the digital filter interval failed, because another task has already configured a different digital filter interval. Use the same digital filter interval in the two tasks, or wait for the other task to finish before starting or committing this task."}}, + {-200646, {Category::Hardware, ActionRequired::ImmediateAction, "Some of the physical channels in the task are configured for different filter intervals, which is not supported by this type of device. Configure all lines in the task to use the same digital filter interval."}}, + {-200647, {Category::Hardware, ActionRequired::Warning, "Specified physical channel does not support digital input. Change the direction of the task, use another terminal, or use another device. To read from digital output lines, create a digital output task and use DAQmx Read."}}, + {-200648, {Category::Hardware, ActionRequired::Warning, "Device identifier of the physical channel specified is not the same as the device used in the task. Use only the physical channels on the device used in the task."}}, + {-200649, {Category::Other, ActionRequired::Warning, "Specified a physical channel for change detection that is not contained by any channel in the task. Use only physical channels already contained by a channel, or create an additional channel containing the desired physical channel ."}}, + {-200650, {Category::Other, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because the specified physical channel only supports digital input, and the programmable powerup state does not apply."}}, + {-200651, {Category::Other, ActionRequired::Warning, "Attempt to set watchdog timer expiration state failed, because the specified physical channel only supports digital input, and watchdog timer expiration state does not apply."}}, + {-200652, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because only some of the channels from the port were specified. For this type of device, you must specify programmable powerup state for entire ports."}}, + {-200653, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup state failed, because some of the lines in a port were tristated and others were not. For this type of device, programmable powerup states of all lines in a port have to be either tristated or not tristated."}}, + {-200654, {Category::Hardware, ActionRequired::Warning, "Attempt to set watchdog timer expiration state failed, because some of the lines in a port were tristated, and others were not. For this type of device, watchdog timer expiration states of all lines in a port have to be either tristated or not tristated."}}, + {-200655, {Category::Configuration, ActionRequired::Warning, "Attempted to read more samples than what was configured in the acquisition. Restart the acquisition, increase the Samples Per Channel property, or set the Sample Mode property to Continuous Samples."}}, + {-200656, {Category::Configuration, ActionRequired::Warning, "Operation failed, because an attempt was made to use only the onboard memory for generation when regeneration of data was not allowed. Set the Regeneration Mode property to Allow Regeneration or set the Use Only Onboard Memory property to false."}}, + {-200657, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because you specified multiple channels, and the property has different values for different channels. Get this property one channel at a time."}}, + {-200658, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because your task contains multiple channels, and the property has different values for different channels. Get this property one channel at a time using Active Channel to specify each individual channel."}}, + {-200659, {Category::Configuration, ActionRequired::Warning, "Attempt to get property failed, because the single channel you specified corresponds to multiple physical channels, and the property has different values for those different physical channels. Get this property one physical channel at a time. For digital channels, you might have to specify a single digital line."}}, + {-200660, {Category::Other, ActionRequired::Warning, "Requested Sample Clock Rate is not available because this task shares the Sample Clock Source or the Sample Clock Timebase with another task. The other task has already programmed one of those properties in a manner inconsistent with the requested Sample Clock Rate. Specify a Sample Clock Rate consistent with the settings in the other task, or change the settings in the other task. Refer to documentation for more detailed information."}}, + {-200661, {Category::Other, ActionRequired::ImmediateAction, "Requested operation is not supported because the Reference Clock Source is \"None\"."}}, + {-200662, {Category::Hardware, ActionRequired::Warning, "Attempt to create a watchdog timer task failed because the device does not support the feature, or the wrong device type was specified. For NI CompactDAQ devices supporting this feature, specify the chassis name on which to create a watchdog timer task."}}, + {-200663, {Category::Hardware, ActionRequired::Warning, "Attempt to set programmable powerup states failed because the device does not support the feature."}}, + {-200664, {Category::Other, ActionRequired::Warning, "Specified operation cannot be performed because the task has not been started, committed, or reserved. Call DAQmx Start or DAQmx Control with action set to Commit or Reserve prior to requesting this operation."}}, + {-200665, {Category::Hardware, ActionRequired::ImmediateAction, "Expiration states requested are not supported by the lines in the port. For this device, the Watchdog Timer Expiration States must be either No Change for all lines in a port or a combination of values other than No Change for all lines in a port. For example, the combination of No Change for one line and High for another line is not supported, while a value of Low for one line and High for another line is supported."}}, + {-200666, {Category::Other, ActionRequired::Warning, "Attempt to configure a port or any of its lines for input failed, because this port is currently configured for digital output by the watchdog timer. Choose another port, or modify the watchdog timer task to set the expiration state of the port to Tristate or No Change."}}, + {-200667, {Category::Other, ActionRequired::Warning, "Attempt to configure a port or any of its lines to have an expiration state of Output failed, because the port or some of its lines are currently reserved for use by an input task. Set the expiration state of the port to Tristate or No Change, or choose a different port for digital input."}}, + {-200668, {Category::Other, ActionRequired::Warning, "Requested value is not a supported value for Watchdog Timer Timeout. Use special value -1.0 to indicate that the internal timer should be disabled, and the watchdog timer will expire based on the external expiration trigger, or specify another valid value."}}, + {-200669, {Category::Configuration, ActionRequired::Warning, "Attempt to set the Connect DAC Reference to Ground property failed, because the Allow Connecting DAC Reference to Ground property was not True. To connect DAQ reference to ground, you must set two properties to True: Connect DAC Reference to Ground and Allow Connecting DAC Reference to Ground."}}, + {-200670, {Category::Configuration, ActionRequired::Warning, "DAC Range Low is not equal in magnitude and opposite in sign from DAC Reference Value. If you do not set the DAC Range Low property, the driver sets it for you. Otherwise, ensure DAC Range Low and DAC Reference Voltage Value are equal in magnitude and opposite in sign."}}, + {-200671, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding its simultaneous relay drive limit. To recover, call DAQmx Disconnect All, or reset the device. The device can be reset either programmatically or by using Measurement & Automation Explorer."}}, + {-200672, {Category::Other, ActionRequired::Warning, "Input arrays are of different sizes. These arrays must have the same size."}}, + {-200673, {Category::Other, ActionRequired::Warning, "Multiple samples cannot be written using a single sample write. Ensure the waveform contains only a single sample."}}, + {-200674, {Category::Hardware, ActionRequired::ImmediateAction, "Switch operation failed due to a previous error. The device may have been powered off and back on. To use the device again, reset the device either programmatically or by using Measurement & Automation Explorer."}}, + {-200675, {Category::Hardware, ActionRequired::Warning, "Input Source Select is set to an internal source for channels in different channel groups. On this device, only one channel group at a time can be configured to use an internal source. Refer to documentation for details."}}, + {-200676, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set differently for channels in one channel group on a device that supports only identical settings within a channel group. Refer to documentation for details."}}, + {-200677, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to different internal sources on some channels. On this device, Input Source Select must be set the same way for all channels with internal sources. Refer to documentation for details."}}, + {-200678, {Category::Hardware, ActionRequired::ImmediateAction, "Write failed because at least one of the lines in the task is also in a watchdog timer task whose watchdog timer has expired. Clear the expiration of the watchdog timer before writing by using DAQmx Control Watchdog Task, by restarting the watchdog timer task, or by resetting the device programmatically or through the Measurements & Automation Explorer. To prevent this error in the future reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, + {-200679, {Category::Hardware, ActionRequired::Warning, "When Sample Mode is Hardware Timed Single Point, Memory Mapping for Programmed IO Enable cannot be true. Set Memory Mapping for Programmed IO Enable to false or change Sample Mode."}}, + {-200680, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature above the device's maximum recommended operating temperature. To use the device again, either turn the chassis/computer off until the device has cooled, or ensure the device has cooled, and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, + {-200681, {Category::Hardware, ActionRequired::ImmediateAction, "Route failed because either the source or destination of the route is also a line in a watchdog timer task whose watchdog timer has expired. Clear the expiration of the watchdog timer before routing by using DAQmx Control Watchdog Task, by restarting the watchdog timer task, or by resetting the device programmatically or through Measurements & Automation Explorer. To prevent this error in the future reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, + {-200682, {Category::Other, ActionRequired::ImmediateAction, "Data could not be read because the reference trigger master session is unavailable. To avoid this error, read data before closing the reference trigger master session."}}, + {-200683, {Category::Other, ActionRequired::Warning, "NI-DAQmx has detected a corrupt installation. Please re-install NI-DAQmx. If you continue to receive this message, please contact National Instruments for assistance."}}, + {-200684, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse duty cycle specified is not supported for this device given the pulse frequency and Counter Timebase Rate."}}, + {-200685, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse frequency specified is not supported for this device given the Counter Timebase Rate."}}, + {-200686, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse high time specified is not supported for this device given the Counter Timebase Rate."}}, + {-200687, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse low time specified is not supported for this device given the Counter Timebase Rate."}}, + {-200688, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse high tick count specified is not supported for this device."}}, + {-200689, {Category::Hardware, ActionRequired::ImmediateAction, "Pulse low tick count specified is not supported for this device."}}, + {-200690, {Category::Hardware, ActionRequired::ImmediateAction, "Buffered operations are not supported if Sample Mode is Hardware Timed Single Point. Do not configure a buffer, or change the Sample Mode value."}}, + {-200691, {Category::Other, ActionRequired::Warning, "Buffered operations are not compatible with the requested Wait Mode. Do not configure a buffer, or set Wait Mode to Yield."}}, + {-200692, {Category::Hardware, ActionRequired::Warning, "Number of samples per channel to write multiplied by the number of channels in the task cannot be an odd number for this device. Adjust the number of samples per channel to write or the number of channels in the task so that their product is an integer multiple of two."}}, + {-200693, {Category::Hardware, ActionRequired::Warning, "Buffer size (in samples per channel) multiplied by the number of channels in the task cannot be an odd number for this device. Adjust the buffer size or the number of channels in the task so that their product is an integer multiple of two."}}, + {-200694, {Category::Other, ActionRequired::Warning, "AI Minimum was not specified for an operation that requires it."}}, + {-200695, {Category::Other, ActionRequired::Warning, "AI Maximum was not specified for an operation that requires it."}}, + {-200696, {Category::Other, ActionRequired::ImmediateAction, "Bridge offset nulling calibration is not supported by the specified channels. Specify only the analog input channels that are configured to measure sensors in a bridge configuration."}}, + {-200697, {Category::Hardware, ActionRequired::Warning, "Calibration data could not be acquired. Ensure that the device(s) are configured and functioning properly."}}, + {-200698, {Category::Other, ActionRequired::Warning, "Route failed because the PXI chassis is not identified. The existence of the source terminal depends on the chassis being identified. Use the Measurements & Automation Explorer (MAX) to identify your chassis."}}, + {-200699, {Category::Other, ActionRequired::Warning, "Route failed because the PXI chassis is not identified. The existence of the destination terminal depends on the chassis being identified. Use the Measurements & Automation Explorer (MAX) to identify your chassis."}}, + {-200700, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a source terminal for devices in PXI slot 2. PXI slot 2 has specific PXI_Star lines, such as PXI_Star3. Move your device to one of slots 3 through 15, or select a different source terminal."}}, + {-200701, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a destination terminal for devices in PXI slot 2. PXI slot 2 has specific PXI_Star lines, such as PXI_Star3. Move your device to one of slots 3 through 15, or select a different destination terminal."}}, + {-200702, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a destination terminal for devices in PXI slots 16 and above. Move your device to one of slots 3 through 15, or select a different destination terminal."}}, + {-200703, {Category::Hardware, ActionRequired::Warning, "PXI_Star is not available as a source terminal for devices in PXI slots 16 and above. Move your device to one of slots 3 through 15, or select a different source terminal."}}, + {-200704, {Category::Hardware, ActionRequired::Warning, "PXI_Star is available as a source terminal only for devices in the star trigger controller slot (slot 2). To use PXI_Star (without any numbers), do not specify a star line number. To use PXI_Star, move your device to slot 2."}}, + {-200705, {Category::Hardware, ActionRequired::Warning, "PXI_Star is available as a destination terminal only for devices in the star trigger controller slot (slot 2). To use PXI_Star (without any numbers), do not specify a star line number. To use PXI_Star, move your device to slot 2."}}, + {-200706, {Category::Hardware, ActionRequired::Warning, "PXI_Clk10In is available as a destination terminal only for devices in the star trigger controller slot (slot 2). Move your device to PXI slot 2."}}, + {-200708, {Category::Configuration, ActionRequired::Warning, "Getting a property that pertains to multiple items failed because the value was different for different items. Get the specified property for one item at a time. For example, if you are getting a property for two markers, such as \"marker0:1\" or \"marker0, marker1\", and the property values are different for the two markers, you must get them in two steps (one for marker0 and another for marker1)."}}, + {-200709, {Category::Hardware, ActionRequired::Warning, "No TEDS sensor was detected on the specified physical channel. Ensure that your sensor is properly connected. If the sensor is connected to a TEDS interface device with addresses, make sure the configured address matches the address set on the interface device."}}, + {-200710, {Category::Configuration, ActionRequired::Warning, "Input Source Select property is set to an internal source with more than one channel in the task. On this device, an internal input source is supported only when there is one channel in the task. Remove all of the channels currently in the task except the channel that will be used to acquire the internal input source."}}, + {-200711, {Category::Configuration, ActionRequired::Warning, "An attempt has been made to use an analog trigger with the Input Source Select property set to an internal source. Either change the Input Source Select property ot specify an external source, or use a different analog trigger source."}}, + {-200712, {Category::Hardware, ActionRequired::ImmediateAction, "Digital input configuration failed because at least one of the lines in the task was in an expired watchdog task, and the expiration state of the line was set to output. Clear the expiration of the watchdog task by using DAQmx Control Task, by restarting the watchdog task, or by resetting the device either programmatically or by using Measurement & Automation Explorer. To prevent this error in the future, reset the watchdog timer more frequently or increase the watchdog timer timeout."}}, + {-200713, {Category::Hardware, ActionRequired::Warning, "Channels specified cannot appear in the same task on this device. Create a separate task for each of the channels specified."}}, + {-200714, {Category::Hardware, ActionRequired::Warning, "Acquisition has stopped because the driver could not transfer the data from the device to the computer memory fast enough. This was caused by computer system limitations. Reduce your sample clock rate, the number of channels in the task, or the number of programs your computer is executing concurrently."}}, + {-200715, {Category::Other, ActionRequired::Warning, "Digital input detected a new sample clock before the previous sample was latched into onboard memory. If you are using an external sample clock, ensure that it is connected, within the jitter and voltage level specifications, and without glitches. If applicable, reduce your sample clock rate or use a product capable of higher sample clock rates."}}, + {-200716, {Category::Other, ActionRequired::Warning, "Digital output detected a new sample clock edge before the previous sample could be written from the onboard memory. If you are using an external sample clock, ensure that it is connected, within jitter and voltage level specifications, and without glitches. If applicable, reduce your sample clock rate or use a product capable of higher sample clock rates."}}, + {-200717, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AI offset calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200718, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AI gain calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200719, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AO offset calibration constant. If performing an external calibration, ensure that the reference voltage value passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200720, {Category::Other, ActionRequired::ImmediateAction, "Measurement taken during calibration produced an invalid AO gain calibration constant. If performing an external calibration, ensure that the reference voltage passed to the calibration VI or function is correct. Repeat the calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200721, {Category::Other, ActionRequired::ImmediateAction, "Computed frequency resolution of the VCXO CalDAC circuitry is not sufficient to perform timebase calibration. Ensure that the reference frequency is stable and that the frequency passed to the calibration VI or function is correct. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200722, {Category::Other, ActionRequired::ImmediateAction, "Timebase calibration algorithm failed to converge within the required tolerance. Ensure that the reference frequency is stable and that the frequency passed to the calibration VI or function is correct. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200723, {Category::Other, ActionRequired::ImmediateAction, "Variance of the measured external reference frequency is too large to perform timebase calibration. Ensure that the reference frequency is stable. Repeat the external timebase calibration. If the error persists, contact National Instruments Technical Support."}}, + {-200724, {Category::Configuration, ActionRequired::ImmediateAction, "Digital Input Tristate property has different values for different channels in the task, which is not supported for this type of device. Change the property to a single value for all channels in the task, or use more than one task."}}, + {-200725, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for handshaking input. These lines cannot be used in a static input task. Use a line that is not in a handshaking input task or stop using the line in the handshaking input task."}}, + {-200726, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for static input. These lines cannot be used in a handshaking input task. Use a port that is not already used by a static input task or stop using the line in the static input task."}}, + {-200727, {Category::Other, ActionRequired::Warning, "Some or all of the lines in the task are used by another task for handshaking control. These lines cannot be used in a static input task. Use a line that is not also a control line in a handshaking task, or stop using the line for handshaking control."}}, + {-200728, {Category::Other, ActionRequired::Warning, "Some or all of the handshaking control lines for this task are used by another task for static input. These lines cannot be used for handshaking control. Use a port whose handshaking control lines are not already used by a static input task or stop using the lines for handshaking control."}}, + {-200729, {Category::Configuration, ActionRequired::ImmediateAction, "Value of the Tristate property for some or all of the channels in the task is False, and Sample Timing Type is Handshake, which is not supported by this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, + {-200730, {Category::Configuration, ActionRequired::ImmediateAction, "Value of Tristate property for some or all of the channels in the task is False, and Sample Timing Type is Change Detection, which is not supported by this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, + {-200731, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode is Hardware Timed, and Sample Timing Type is On Demand, which is not supported by this device. Change Sample Mode or Sample Timing Type."}}, + {-200732, {Category::Configuration, ActionRequired::ImmediateAction, "Some of all of the lines in the task have had their Digital Filter Enable property set, which is not supported when the value of the Tristate property is False. Change the value of the Tristate property, or do not set the Digital Filter Enable property."}}, + {-200733, {Category::Configuration, ActionRequired::ImmediateAction, "Some or all of the lines in the task have ahd their Digital Filter Minimum Pulse Width property set, which is not supported when the value of the Tristate property is False. Change the value of the Tristate property, or do not set the Digital Filter Minimum Pulse Width property."}}, + {-200734, {Category::Hardware, ActionRequired::Warning, "Device does not support DMA for the Data Transfer Mechanism when performing non-buffered acquisitions. Set Data Transfer Mechanism to Programmed I/O."}}, + {-200735, {Category::Other, ActionRequired::Warning, "Given the specified Reference Clock Source, you must set the Reference Clock Rate to a value equal to the frequency of the supplied signal."}}, + {-200736, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The FREQOUT counter is a 4-bit counter that can divide either the 10 MHz Timebase or the 100 kHz Timebase by a number between one and sixteen. Chose a frequency within this range."}}, + {-200737, {Category::Configuration, ActionRequired::Warning, "For this type of device, the Input Buffer Size (in Samples per Channel) must be equal to the value of the Sample Quanity-Samples per Channel property when Sample Mode is Finite Samples."}}, + {-200738, {Category::Other, ActionRequired::Warning, "Specified timing source does not exist."}}, + {-200739, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported for the given timing source."}}, + {-200740, {Category::Other, ActionRequired::Warning, "Task used as the timing source for a Timed Loop was started before the Timed Loop was executed. Let the Timed Loop start the task, or use the task without the Timed Loop."}}, + {-200741, {Category::Other, ActionRequired::ImmediateAction, "A TEDS sensor not supported by DAQmx is connected to the specified physical channel. Consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, + {-200742, {Category::Other, ActionRequired::ImmediateAction, "Memory of the TEDS sensor connected to the specified physical channel is corrupted, as indicated by an invalid check-sum. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, + {-200743, {Category::Hardware, ActionRequired::Warning, "For this device, a TEDS terminal block must be connected to the device and configured in MAX in order to perform a TEDS operation."}}, + {-200744, {Category::Software, ActionRequired::Warning, "Specified reference clock rate does not match the specified reference clock source. Do not set the refererence clock rate when you are using an internal reference clock source. In this case, the driver sets the reference clock rate for you."}}, + {-200745, {Category::Configuration, ActionRequired::Warning, "Frequency and Initial Delay property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraints: Counter Timebase Rate / Counter Maximum Count <= Frequency <= Counter Timebase Rate / 4 Counter Timebase Rate / Counter Maximum Count <= 1 / Initial Delay <= Counter Timebase Rate / 2 If the Counter Timebase Rate is not specified, it is inferred from the Counter Timebase Source selection."}}, + {-200746, {Category::Configuration, ActionRequired::Warning, "Initial Delay, High Time, and Low Time property values are inconsistent with one or more counter timebase properties. The conflicting properties must satisfy the following constraints: 2 / Counter Timebase Rate <= Initial Delay <= Counter Maximum Count / Counter Timebase Rate 2 / Counter Timebase Rate <= High Time <= Counter Maximum Count / Counter Timebase Rate 2 / Counter Timebase Rate <= Low Time <= Counter Maximum Count / Counter Timebase Rate If the Counter Timebase Rate is not specified, it is inferred from the Counter Timebase Source selection."}}, + {-200747, {Category::Other, ActionRequired::ImmediateAction, "Acquisition type specified is not supported by the FREQOUT channel. To use the FREQOUT channel, set the acquisition type to a value supported by FREQOUT. To use specified output type, use a different counter output channel."}}, + {-200748, {Category::Hardware, ActionRequired::Warning, "DAQmx Write was invoked more than once between two consecutive sample clocks. When Sample Mode is Hardware Timed Single Point, invoke DAQmx Write only once between two consecutive sample clocks."}}, + {-200749, {Category::Other, ActionRequired::ImmediateAction, "Specified gain is not supported."}}, + {-200750, {Category::Other, ActionRequired::ImmediateAction, "Specified voltage is invalid for the given gain."}}, + {-200751, {Category::Other, ActionRequired::Warning, "Sample Timing Type was set to Change Detection but no physical channels on which to detect changes were specified. Specify the Change Detection Digital Input Rising and/or Falling Edge Physical Channels, or specify a different Sample Timing Type."}}, + {-200752, {Category::Other, ActionRequired::ImmediateAction, "You have specified more than one physical channel as the active channel which is not supported. Specify a single physical channel."}}, + {-200753, {Category::Other, ActionRequired::ImmediateAction, "TEDS sensor data or the Virtual TEDS data file contains an error which was detected during parsing. Ensure your TEDS sensor or Virtual TEDS data file conforms to the specification. If this is not possible, use custom scales with the sensor."}}, + {-200754, {Category::Other, ActionRequired::ImmediateAction, "TEDS template specifies parameters that are not supported by DAQmx. Use custom scales with this sensor."}}, + {-200755, {Category::Other, ActionRequired::Warning, "TEDS sensor data or Virtual TEDS data file contains multiple calibration templates. Only one calibration template is supported by DAQmx. Use custom scales with this sensor."}}, + {-200756, {Category::Other, ActionRequired::Warning, "Type of TEDS sensor associated with the channel is incompatible with the Measurement Type. Use the TEDS sensor for measurements compatible with the sensor."}}, + {-200757, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type is set to On Demand which is not supported for analog input on this device. Set Sample Timing Type to Sample Clock. You can achieve this whlie setting related properties through DAQmx VIs or functions for configuring timing."}}, + {-200758, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type is set to On Demand which is not supported for analog output on this device. Set Sample Timing Type to Sample Clock. You can achieve this while setting related properties through DAQmx VIs or functions for configuring timing."}}, + {-200759, {Category::Software, ActionRequired::Warning, "Range specified by the AO Maximum and Minimum Value, and AO Voltage Units properties does not lie within the range specified by the AO DAC Range High and Low properties. Change the values of these properties. If you do not specify AO DAC Range High and Low, the driver will set them based on other properties."}}, + {-200760, {Category::Configuration, ActionRequired::Warning, "Range specified by the AO Maximum and Minimum Value, and AO Voltage Units properties does not lie within the range specified by the AO Gain property. Change the values of these properties. If you do not specify AO Gain, the driver will set it based on other properties."}}, + {-200761, {Category::Configuration, ActionRequired::ImmediateAction, "Task cannot issue sync pulse because another task is currently running on this device. For this type of device, the task can issue a sync pulse if it is the only task running on the device. If your task is not being used for synchronization, set the Sync Pulse Source property to \"\" or \"None\" to avoid receiving an error."}}, + {-200762, {Category::Hardware, ActionRequired::Warning, "Task cannot issue sync pulse because the task has an external sample clock timebase. For this type of device, the task can issue a sync pulse if the Sample Clock Timebase Source is Onboard Clock."}}, + {-200763, {Category::Hardware, ActionRequired::Warning, "For analog input with the current Data Transfer Mechanism on this type of device, the input buffer size (in samples per channel) must be an integer multiple of the transfer size. Change the Data Transfer Mechanism or the input buffer size."}}, + {-200764, {Category::Other, ActionRequired::Warning, "TEDS sensor connected to the specified physical channel uses a linear mapping method and specifies the linear slope to be zero. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, + {-200765, {Category::Software, ActionRequired::ImmediateAction, "Mapping method of the TEDS sensor connected to the specified physical channel is invalid or is not supported by the driver. If the sensor is defective, replace it or have it repaired. Otherwise, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, + {-200766, {Category::Software, ActionRequired::ImmediateAction, "Legacy template ID of the TEDS sensor connected to the specified physical channel is invalid or is not supported by the driver. If the sensor is defective, replace it or have it repaired. Otherwise, consider using MAX to create a Task, Global Channel, or a Scale to acquire data using this sensor."}}, + {-200767, {Category::Other, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O which is not supported for buffered analog output. Change Data Transfer Mechanism or use non-buffered analog output."}}, + {-200768, {Category::Other, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported for non-buffered analog output. Set your Data Transfer Mechanism to Programmed I/O or use buffered analog output."}}, + {-200769, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, + {-200770, {Category::Other, ActionRequired::Warning, "Digital Filter Enable and Digital Synchronization Enable properties cannot be true at the same time."}}, + {-200771, {Category::Configuration, ActionRequired::Warning, "Digital Filter Enable is set to true but the Minimum Pulse Width property is not configured. Configure the Minimum Pulse Width property or set Digital Filter Enable to false."}}, + {-200772, {Category::Other, ActionRequired::Warning, "Digital filtering is not available for the given terminal."}}, + {-200773, {Category::Other, ActionRequired::Warning, "Digital synchronization is not available for the given terminal."}}, + {-200774, {Category::Configuration, ActionRequired::Warning, "Terminal has already been configured with a different Minimum Pulse Width by another property in this task."}}, + {-200775, {Category::Other, ActionRequired::Warning, "Terminal has already been configured with a different Minimum Pulse Width by another task."}}, + {-200776, {Category::Configuration, ActionRequired::Warning, "Desired Minimum Pulse Width could not be produced. Minimum Pulse Width is affected by the Digital Filter Timebase Source and the Digital Filter Timebase Rate. To see how these two property settings can affect the Minimum Pulse Width, refer to product documentation for more details."}}, + {-200777, {Category::Hardware, ActionRequired::Warning, "Desired Minimum Pulse Width could not be produced by the device."}}, + {-200778, {Category::Hardware, ActionRequired::Warning, "Sample Mode is set to a value other than Hardware Timed Single Point. This is the only value supported for counter generations when Sample Timing Type is set to Sample Clock. Change the Sample Mode or the Sample Timing Type."}}, + {-200779, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate the Reverse Coefficients from the Forward Coefficients if only one set of coefficients is available."}}, + {-200780, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate the Reverse Coefficients from the Forward Coefficients if only one set of coefficients is available."}}, + {-200781, {Category::Other, ActionRequired::Warning, "Forward and Reverse Coefficients for a polynomial scale are not specified. Each of these two sets of coefficients must contain at least one term. The polynomial scale class constructor has overloads that can calculate one set of coefficients from the other set if only one set is available."}}, + {-200782, {Category::Other, ActionRequired::Warning, "Reverse Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term."}}, + {-200783, {Category::Other, ActionRequired::Warning, "Forward Coefficients for a polynomial scale are not specified. This set of coefficients must contain at least one term."}}, + {-200784, {Category::Other, ActionRequired::Warning, "Virtual TEDS file could not be found at the specified location. Specify correct location for the Virtual TEDS file."}}, + {-200785, {Category::Other, ActionRequired::ImmediateAction, "Timing source created is invalid because of the Sample Timing Type settings. To use this timing source with a Timed Loop, set the Sample Timing Type to Change Detection. You can configure the Sample Timing Type to Change Detection while setting related properties through the DAQmx Timing (Change Detection) VI or function."}}, + {-200786, {Category::Other, ActionRequired::Warning, "Requested Sample Clock Rate cannot be generated given the specified external Sample Clock Timebase Rate. To keep the specified Sample Clock Timebase Rate, use one of the Sample Clock Rates that can be generated."}}, + {-200787, {Category::Hardware, ActionRequired::ImmediateAction, "Specified Start Trigger Type is not supported for counter output tasks when the Sample Mode is Hardware Timed Single Point on this type of device. Set the Start Trigger Type to None to use this Sample Mode."}}, + {-200788, {Category::Hardware, ActionRequired::Warning, "Measured bridge offset is outside the limits allowed for offset nulling calibration for this device. Ensure your sensor is wired and functioning properly, and that its output offset is within device limits."}}, + {-200789, {Category::Other, ActionRequired::Warning, "Read cannot be performed because this version of DAQmx Read uses a data type that is too small for the channels in this task. Use a different version of DAQmx Read."}}, + {-200790, {Category::Other, ActionRequired::Warning, "Write cannot be performed because this version of DAQmx Write uses a data type that is too small for the channels in this task. Use a different version of DAQmx Write."}}, + {-200791, {Category::Other, ActionRequired::Warning, "TEDS cannot be configured for the specified channel. Ensure that your TEDS sensor is connected to the channel through a TEDS interface (for example BNC-2096, SC-2350, or SCXI-1314T), and that this interface is configured in MAX. Alternatively a virtual TEDS file can be used."}}, + {-200792, {Category::Other, ActionRequired::ImmediateAction, "You have specified more than one physical channel which is not supported. Specify a single physical channel."}}, + {-200793, {Category::Hardware, ActionRequired::ImmediateAction, "For a device of this type, setting the AO Idle Output Behavior to Maintain Existing Value is not supported when analog output is synchronized."}}, + {-200794, {Category::Other, ActionRequired::Warning, "You cannot use DAQmx Write for multiple counter channels within one task. If appropriate, create one task per counter output channel. To update multiple counter channels within one task use counter output properties."}}, + {-200795, {Category::Hardware, ActionRequired::Warning, "There was an overflow of the device onboard memory while performing a hardware timed non-buffered generation. Write only one sample per channel between two consecutive sample clocks to avoid this condition."}}, + {-200796, {Category::Hardware, ActionRequired::Warning, "Hardware timed non-buffered analog output could not be performed because Memory Mapping for Programmed I/O Enable was set to true. Disable memory mapping for hardware timed non-buffered analog output."}}, + {-200797, {Category::Other, ActionRequired::ImmediateAction, "An empty string was specified as a terminal name which is not supported. Specify a valid terminal name."}}, + {-200798, {Category::Hardware, ActionRequired::Warning, "Device does not support change detection for lines that do not allow digital input. Use lines that allow digital input for change detection."}}, + {-200799, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Create Timing Source created an invalid source because the specified Sample Mode is not supported when the signal is Event Counting. To use this timing source with a Timed Loop, change the Sample Mode."}}, + {-200800, {Category::Other, ActionRequired::ImmediateAction, "Event source signal specified is not supported with the Measurement Type and/or Sample Timing Type of the task."}}, + {-200801, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Create Timing Source created an invalid source because the requested signal is not supported for counter output. To use this task as the timing source with a Timed Loop, specify the Counter Output Event as the signal."}}, + {-200802, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the task is not started, the sample timing type is something other than On Demand, and the output buffer size is zero. Call DAQmx Start before DAQmx Write, set auto start to true on DAQmx Write, modify the sample timing type, or change the output buffer size."}}, + {-200803, {Category::Hardware, ActionRequired::Warning, "Write cannot be performed before you start the task for on demand or hardware-timed single-point operations. Start the task before you write samples, set the autostart input on DAQmx Write to true, or use hardware timing with a sample mode of finite or continuous."}}, + {-200804, {Category::Hardware, ActionRequired::Warning, "Last External Calibration Date/Time is not available, because the last external calibration if the device was not performed using the NI-DAQmx API. Last External Calibration Date/Time will become available after you perform external calibration of the device using the NI-DAQmx API."}}, + {-200806, {Category::Hardware, ActionRequired::Warning, "Requested Minimum Pulse Width cannot be applied because the programmable filter clock has already been configured with a different Minimum Pulse Width by another task. For this type of device, there is only one programmable filter clock per device."}}, + {-200807, {Category::Hardware, ActionRequired::Warning, "Requested Minimum Pulse Width cannot be applied because the programmable filter clock has already been configured with a different Minimum Pulse Width when a different terminal was configured by the same task. For this type of device, there is only one programmable filter clock per device, and the device can use only one external timebase filter at a time."}}, + {-200808, {Category::Other, ActionRequired::Warning, "TEDS sensors cannot be configured on real-time (RT) systems. Use MAX to configure the TEDS sensor instead."}}, + {-200809, {Category::Other, ActionRequired::Warning, "TEDS sensors cannot be cleared on real-time (RT) systems."}}, + {-200810, {Category::Other, ActionRequired::Warning, "Requested string contains characters that cannot be interpreted by DAQmx due to installed language support and system locale settings. Ensure that the appropriate language support is installed on the system, and that the system locale is set correctly. For most Windows operating systems, this is done through the Regional Settings option in Control Panel. For a LabVIEW RT target, you should install \"Language Support for LabVIEW RT\" and change the locale setting for the remote system under the \"System Settings\" tab in MAX."}}, + {-200811, {Category::Other, ActionRequired::Warning, "Specified string contains characters that cannot be interpreted by DAQmx due to installed language support and system locale settings. If possible, do not use this character. Otherwise, ensure that the appropriate language support is installed on the system, and that the system locale is set correctly. For most Windows operating systems, this is done through the Regional Settings option in the Control Panel. For a LabVIEW RT target, you should install \"Language Support for LabVIEW RT\" and change the locale setting for the remote system under the \"System Setting\" tab in MAX."}}, + {-200812, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to configure a trigger when analog output Sample Mode was set to Hardware Timed Single Point. Configure the analog output sample mode to something other than Hardware Timed Single Point to use a trigger."}}, + {-200813, {Category::Other, ActionRequired::ImmediateAction, "Selected Sample Mode is not supported with counter input position measurements."}}, + {-200814, {Category::Other, ActionRequired::ImmediateAction, "Onboard Clock is not supported as an Input Terminal for counter measurements. Refer to user documentation for a list of supported input terminals."}}, + {-200815, {Category::Other, ActionRequired::Warning, "TEDS sensor specifies a value for the Minimum Physical Value that is greater than or equal to the Maximum Physical Value. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, + {-200816, {Category::Other, ActionRequired::Warning, "TEDS sensor specifies a value for the Minimum Electrical Value that is greater than or equal to the Maximum Electrical Value. Replace the sensor or have the sensor repaired. If the memory is the only defective part of the sensor, consider using MAX to create a Task, a Global Channel, or a Scale to acquire data using this sensor."}}, + {-200817, {Category::Hardware, ActionRequired::Warning, "Excitation Value can only be zero when the Input Terminal Configuration is set to Differential on this device. Change the Input Terminal Configuration or set the Excitation Value to zero."}}, + {-200818, {Category::Hardware, ActionRequired::Warning, "Device has shut down because a sensor on the device detected a temperature in excess of the maximum recommended operating temperature. Possible causes incude excessive current on the device channels and inadequate chassis cooling. To use the device again, reduce the current and/or improve the chassis cooling. Ensure that the device has cooled and reset the device (either programmatically or through Measurements & Automation Explorer)."}}, + {-200819, {Category::Configuration, ActionRequired::ImmediateAction, "Programmed I/O is not supported as the Data Transfer Mechanism when the Use Only On Board Memory property is set to true. Change the Data Transfer Mechanism or set Use Only On Board Memory to false."}}, + {-200820, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode of Hardware Timed Single Point is not supported for analog input channels on this type of device when the number of channels in the task is odd (not divisible by 2). Add a channel to the task, remove a channel from the task, or use a different Sample Mode."}}, + {-200821, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Mode of Hardware Timed Single Point is not supported for analog input channels on this type of device. Use a different Sample Mode, or select a device which supports Hardware Timed Single Point."}}, + {-200822, {Category::Other, ActionRequired::Warning, "Attempt to write to the PROM on the TEDS failed because the TEDS sensor does not contain a PROM. Write the Basic TEDS data to the EEPROM of the sensor or replace the sensor."}}, + {-200823, {Category::Other, ActionRequired::Warning, "Attempt to write to the PROM on the TEDS sensor failed because the PROM has already been written and it cannot be rewritten. Do not write the Basic TEDS data to the TEDS sensor or replace the sensor."}}, + {-200824, {Category::Other, ActionRequired::Warning, "Attempt to write the Basic TEDS data to the EEPROM failed because the PROM on the TEDS sensor already contains Basic TEDS data. A TEDS sensor can contain the Basic TEDS data in either the PROM or the EEPROM, but not in both. Do not write the Basic TEDS data to the TEDS sensor or replace the sensor."}}, + {-200825, {Category::Other, ActionRequired::Warning, "Write failed because the data size is greater than the size of the EEPROM on the TEDS sensor. Make sure the data size does not exceed the EEPROM size."}}, + {-200826, {Category::Other, ActionRequired::ImmediateAction, "TEDS sensor data being written to the TEDS sensor contains an error. Ensure your TEDS sensor data conforms to the specification."}}, + {-200827, {Category::Other, ActionRequired::ImmediateAction, "Virtual TEDS data file being written to the TEDS sensor contains an error. Ensure your Virtual TEDS data file conforms to the specification."}}, + {-200828, {Category::Other, ActionRequired::ImmediateAction, "Writing to TEDS sensors is not supported on real-time (RT) systems."}}, + {-200829, {Category::Other, ActionRequired::Warning, "DAQmx Write failed because the counter channels have different Output Types. Writes to multiple counter output channels are supported only when all of the counters have identical Output Types. Use identical Output Types for all channels. Alternatively, create multiple tasks (one for each Output Type)."}}, + {-200830, {Category::Hardware, ActionRequired::Warning, "On Demand Simultaneous Analog Output Enable and Memory Mapping for Programmed IO Enable cannot both be set to true for this device."}}, + {-200832, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported if the Sample Timing Type is On Demand, the Auto Start property is false, and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or change the Sample Timing Type."}}, + {-200833, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported if the Sample Mode is Hardware Timed Single Point, the Auto Start property is false, and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or change the Sample Mode."}}, + {-200834, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Read is not supported for non-buffered acquisitions if the Auto Start property is false and the task is not running. Start the task before reading samples by calling DAQmx Start Task, set the Read.Auto Start property to true, or call DAQmx Configure Input Buffer with a buffer size greater than zero."}}, + {-200835, {Category::Hardware, ActionRequired::Warning, "SCXI device cannot be used in this task because the power to the device was turned off after the task had been created. Call DAQmx Clear Task and then create a new task to use this SCXI device."}}, + {-200836, {Category::Other, ActionRequired::Warning, "Attempt to write to the TEDS sensor failed, possibly because the sensor is not connected properly or because the sensor is defective. Make sure the TEDS sensor is properly connected. Write to the TEDS sensor again. If the write fails again, try using another TEDS sensor. You may need to have the original TEDS sensor repaired."}}, + {-200837, {Category::Hardware, ActionRequired::Warning, "Samples per Channel must be an integer multiple of the transfer size for this device with the current Data Transfer Mechanism. Change Samples per Channel or the Data Transfer Mechanism."}}, + {-200838, {Category::Hardware, ActionRequired::Warning, "Output buffer size (in samples per channel) must be an integer multiple of the transfer size for this device with the current Data Transfer Mechanism. Change the output buffer size or the Data Transfer Mechanism."}}, + {-200839, {Category::Configuration, ActionRequired::Warning, "Tristate property cannot be set to False for any channel in the task when Sample Timing Type is Sample Clock on this device. Set the Tristate property to True for all channels or change the Sample Timing Type."}}, + {-200840, {Category::Hardware, ActionRequired::ImmediateAction, "Prescaler value requested is not supported by this device, given the requested Timebase Source. Set Prescaler to 1, or change the Timebase Source."}}, + {-200841, {Category::Hardware, ActionRequired::ImmediateAction, "Prescaler value requested is not supported by this device, given the requested Input Terminal. Set Prescaler to 1, or change the Input Terminal."}}, + {-200842, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, + {-200843, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of three sample clocks which indicates that your program is not keeping up with the hardware clock. Slow down the hardware clock or else change your application so that it can keep up with the hardware clock."}}, + {-200844, {Category::Other, ActionRequired::Warning, "Task contains a 'freqout' counter channel, which cannot be updated while the task is running. Create separate tasks for the 'freqout' channel and the other counter channels if you wish to write to the other counter channels. Alternatively, stop the task, reprogram the counters, and restart the task."}}, + {-200845, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O or DMA, the only values supported for non-buffered operations for this device and Channel Type. Set your Data Transfer Mechanism to Programmed I/O or DMA, or use buffering."}}, + {-200846, {Category::Other, ActionRequired::Warning, "Write cannot be performed when the auto start input to DAQmx Write is false, task is not running, and timing for the task is not configured or Timing Type is set to On Demand. Set auto start to true, start the task, or configure timing and specify Timing Type other than On Demand."}}, + {-200847, {Category::Hardware, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O, which is not supported for buffered operations for this device and Channel Type. Change Data Transfer Mechanism or do not use buffering."}}, + {-200848, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Every N Samples Event is not supported within non-buffered tasks. To receive Every N Samples Event notifications, configure your task to use buffering."}}, + {-200849, {Category::Other, ActionRequired::Warning, "Number of samples to wait in a finite wait instruction must be a multiple of the alignment quantum."}}, + {-200850, {Category::Other, ActionRequired::Warning, "Number of samples to wait in a finite wait instruction must be greater than 0."}}, + {-200851, {Category::Hardware, ActionRequired::Warning, "Physical channel specified is not available through the cabled device connector used for the SCC carrier. To use the specified channel with an SCC, connect the SCC carrier to the appropriate connector on the cabled device and specify the new configuration through MAX."}}, + {-200852, {Category::Hardware, ActionRequired::Warning, "Given devices cannot be synchronized in a multiple-device task. Ensure that one of the devices in the task is in PXI slot 2, or specify the Synchronization Pulse Source and the Sample Clock Timebase Source to be from a device in PXI slot 2, even if that device is not in the task."}}, + {-200853, {Category::Hardware, ActionRequired::Warning, "Terminal specified must include the device name for the given multiple-device task. Include the device name in the terminal name. Example syntax is myDevice3/PFI4."}}, + {-200854, {Category::Hardware, ActionRequired::Warning, "Given devices cannot be synchronized in a multiple-device task because the Sample Clock Timebase Source specifies a different device from the Synchronization Pulse Source. Modify the Synchronization Pulse Source and/or the Sample Clock Timebase Source to be from the same device or leave one or both unspecified."}}, + {-200855, {Category::Hardware, ActionRequired::Warning, "Devices cannot be added to a task after configuring timing, triggering, buffers, and/or exported signals. Add all devices to the task before configuring other aspects of the task."}}, + {-200856, {Category::Hardware, ActionRequired::ImmediateAction, "Simulation disabling is not supported for this device, because it was created as a simulated device."}}, + {-200857, {Category::Other, ActionRequired::ImmediateAction, "Specified low pass cutoff frequency is not supported."}}, + {-200858, {Category::Hardware, ActionRequired::Warning, "To use Sample Clock as the Sample Timing Type for analog output on this device, call DAQmx Write before DAQmx Start."}}, + {-200859, {Category::Hardware, ActionRequired::Warning, "To use Sample Clock as the Sample Timing Type for analog output on this device, specify buffer size greater than 0 in DAQmx Configure Output Buffer."}}, + {-200860, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of specified AI Maximum Sound Pressure Level and AI Microphone Sensitivity settings is not supported by the device. Consider using a microphone with lower sensitivity. If clipping signals at high levels is acceptable, you can use the microphone with specified sensitivity as long as you reduce the AI Maximum Sound Pressure."}}, + {-200861, {Category::Configuration, ActionRequired::ImmediateAction, "Combination of specified AI Maximum Sound Pressure Level, AI Microphone Sensitivity, and other related AI property settings is not supported by the device. Change the values of the related AI properties or do not set them at all. If you do not set the related AI properties, NI-DAQmx sets them for you. Alternatively, consider using a microphone with lower sensitivity."}}, + {-200862, {Category::Hardware, ActionRequired::ImmediateAction, "One or more devices from a multiple-device task are in an unidentified PXI chassis, which is not supported. Identify the PXI chassis in MAX."}}, + {-200863, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock is not supported by the given device for tasks containing channels of the given type or timing type. DAQmx Wait for Next Sample Clock is only supported for the hardware-timed single-point timing type."}}, + {-200864, {Category::Other, ActionRequired::Warning, "Data Transfer Request Condition being set to When Acquisition Complete is only supported when the Reference Trigger Type is other than None. Change the Data Transfer Request Condition or configure a reference trigger for the task."}}, + {-200865, {Category::Other, ActionRequired::Warning, "Data Transfer Request Condition is set to When Acquisition Complete, but the Number of Samples per Channel is greater than the On Board Buffer Size. Decrease the Number of Samples per Channel, remove some channels from the task, or change the Data Transfer Request Condition."}}, + {-200866, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference and Offset Values. To keep the specified AO DAC Reference and Offset Values, change the AO Minimum and Maximum Values. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, + {-200867, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference Value. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. To keep the specified AO DAC Reference Value, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, + {-200868, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Reference Value. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Reference Value. To keep the specified AO DAC Reference Value, change the AO Minimum and Maximum Values."}}, + {-200869, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Offset Value. To keep the specified AO Minimum and Maximum Values, supply an appropriate offset and specify the corresponding AO DAC Offset Value. To keep the specified AO DAC Offset Value, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC reference and specify the corresponding AO DAC Reference Value."}}, + {-200870, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Offset Value. To keep the specified AO Minimum and Maximum Values, supply an appropriate offset and specify the corresponding AO DAC Offset Value. To keep the specified AO DAC Offset Value, change the AO Minimum and Maximum Values."}}, + {-200871, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High, and AO DAC Offset Value. To keep the specified AO DAC Range and Offset Values, change the AO Minimum and Maximum Values. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, + {-200872, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range Low and High. To keep the specified AO DAC Range Low and High, change the AO Minimum and Maximum Values. Alternatively, supply an appropriate external DAC offset and specify the corresponding AO DAC Offset Value. When supplying an external DAC offset, to get the optimum accuracy, you should manually calibrate the offset. Refer to user documentation for details."}}, + {-200873, {Category::Other, ActionRequired::ImmediateAction, "Specified AO Maximum and Minimum Values are not supported given the specified AO DAC Range Low and High. To keep the specified AO Minimum and Maximum Values, supply higher reference voltage and specify the corresponding AO DAC Range Low and High. To keep the specified AO DAC Range Low and High, change the AO Minimum and Maximum Values."}}, + {-200874, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the low and/or high time while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, + {-200875, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the frequency and/or the duty cycle while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, + {-200876, {Category::Other, ActionRequired::Warning, "DAQmx Write is supported for counter output channels only while the task is running. To use DAQmx Write with the given task, invoke DAQmx Start prior to DAQmx Write. To specify the low and/or high ticks while the task is not running, set DAQmx properties instead of invoking DAQmx Write."}}, + {-200877, {Category::Other, ActionRequired::ImmediateAction, "Requested Every N Samples Event Interval is not supported for the given Data Transfer Mechanism and buffer size. To keep DMA or USB Bulk as the Data Transfer Mechanism, modify the buffer size and/or the Every N Samples Event Interval so the buffer size is an even multiple of the Every N Samples Event Interval. To keep the same Every N Samples Event Interval and buffer size, change the Data Transfer Mechanism to Interrupts if supported."}}, + {-200878, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 16-bit version of DAQmx Port Read. Use a version of DAQmx Port Read that supports wider digital ports."}}, + {-200879, {Category::Other, ActionRequired::Warning, "Specified digital channel contains more bits than supported by the 16-bit version of DAQmx Port Write. Use the version of DAQmx Port Write that supports wider digital ports."}}, + {-200880, {Category::Other, ActionRequired::Warning, "Zero is not a supported value for the Every N Samples Event Interval. Specify an event interval greater than zero."}}, + {-200881, {Category::Other, ActionRequired::Warning, "Every N Samples Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, + {-200882, {Category::Other, ActionRequired::ImmediateAction, "Specified channel is not a valid global channel. Ensure that the Channel Name matches a channel in the Data Neighborhood in MAX. Check for typing errors."}}, + {-200883, {Category::Other, ActionRequired::Warning, "Task specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support at least one of the specified properties. Save the task with 'allow interactive editing' set to false, or specify only properties supported by the DAQ Assistant."}}, + {-200884, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support at least one of the specified properties. Save the channel with 'allow interactive editing' set to false, or specify only properties supported by the DAQ Assistant."}}, + {-200885, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of Reference Clock Source and Sample Clock Timebase Source specified is not supported by this device. To use the Reference Clock Source specified, do not set the Sample Clock Timebase Source. NI-DAQmx will set it to its default value: OnboardClock. To use the Sample Clock Timebase Source specified, do not set the Reference Clock Source. NI-DAQmx will set it to its default value: none."}}, + {-200886, {Category::Other, ActionRequired::ImmediateAction, "Start Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, + {-200887, {Category::Other, ActionRequired::ImmediateAction, "Start Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, + {-200888, {Category::Other, ActionRequired::ImmediateAction, "Reference Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, + {-200889, {Category::Other, ActionRequired::ImmediateAction, "Reference Trigger Digital Pattern Source requested is not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, + {-200890, {Category::Other, ActionRequired::ImmediateAction, "Active Edge requested is not supported because the Sample Clock Source is OnboardClock. To use the selected Sample Clock Source, set Sample Clock Active Edge to Rising Edge."}}, + {-200891, {Category::Hardware, ActionRequired::Warning, "Export of sample clock is supported by this device only when the Sample Clock Source is OnboardClock. Consider alternative methods for gaining access to the clock signal."}}, + {-200892, {Category::Hardware, ActionRequired::Warning, "When the Sample Timing Type is Change Detection and the Trigger Type is Digital Pattern Match, the relevant physical channels must be consistent for this device. Specifically, the Change Detection Rising Edge Physical Channels must match the physical channels from the Trigger Digital Pattern Source for which the Trigger Digital Pattern string is 0 or 1."}}, + {-200893, {Category::Hardware, ActionRequired::Warning, "Change Detection Rising and Falling Edge Physical Channels must be set identically on this device."}}, + {-200894, {Category::Other, ActionRequired::Warning, "Number of values specified via the Start Trigger Digital Pattern does not match the number of physical lines requested via the Start Trigger Digital Pattern Source. Change one or both of the properties so these two numbers are equal."}}, + {-200895, {Category::Other, ActionRequired::Warning, "Number of values specified in Reference Trigger Digital Pattern does not match the number of physical lines requested in Reference Trigger Digital Pattern Source. Change one or both of the properties so these two numbers are equal."}}, + {-200896, {Category::Hardware, ActionRequired::Warning, "Export of the requested trigger is supported on this device only when the corresponding Trigger Type is Digital Edge."}}, + {-200897, {Category::Hardware, ActionRequired::ImmediateAction, "Task contains a physical channel not supported by this device, given the requested Sample Timing Type. To keep the Sample Timing Type, use physical lines from port0/line0 through port3/line7. To access the requested channel, change the Sample Timing Type."}}, + {-200898, {Category::Hardware, ActionRequired::ImmediateAction, "Partial use of physical lines within a physical port is not supported by this device, given the requested Sample Timing Type. Consider specifying the entire port and tristating the lines you do not want driven."}}, + {-200899, {Category::Hardware, ActionRequired::Warning, "Port 1 cannot be used without port 0 on this device given the Sample Timing Type. You can use ports 0 and 2 by themselves. To use port 1, you also need to use port 0."}}, + {-200900, {Category::Hardware, ActionRequired::Warning, "Port 3 cannot be used without port 2 on this device given the Sample Timing Type. You can use ports 0 and 2 by themselves. To use port 3, you also need to use port 2."}}, + {-200901, {Category::Other, ActionRequired::ImmediateAction, "Digital Pattern string specified contains an invalid character."}}, + {-200902, {Category::Other, ActionRequired::Warning, "Data Voltage Low Level and Data Voltage High Level must be within a common voltage range."}}, + {-200903, {Category::Configuration, ActionRequired::ImmediateAction, "Reference clock is not supported by this device. Do not set the Reference Clock property."}}, + {-200904, {Category::Configuration, ActionRequired::ImmediateAction, "Start Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Start Trigger Type property. NI-DAQmx automatically selects a compatible Start Trigger Type setting. To use the requested Start Trigger Type, select a different Timing Type."}}, + {-200905, {Category::Configuration, ActionRequired::ImmediateAction, "Handshake Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Handshake Trigger Type property. NI-DAQmx automatically selects a compatible Handshake Trigger Type setting. To use the requested Handshake Trigger Type, select a different Timing Type."}}, + {-200906, {Category::Configuration, ActionRequired::ImmediateAction, "Pause Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Pause Trigger Type property. NI-DAQmx automatically selects a compatible Pause Trigger Type setting. To use the requested Pause Trigger Type, select a different Timing Type."}}, + {-200907, {Category::Configuration, ActionRequired::ImmediateAction, "Reference Trigger Type requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Reference Trigger Type property. NI-DAQmx automatically selects a compatible Reference Trigger Type setting. To use the requested Reference Trigger Type, select a different Timing Type."}}, + {-200908, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Clock Source requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Clock Source property. NI-DAQmx automatically selects a compatible Sample Clock Source setting. To use the requested Sample Clock Source, select a different Timing Type."}}, + {-200909, {Category::Configuration, ActionRequired::ImmediateAction, "20 Mhz Timebase Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the 20 Mhz Timebase Output Terminal property. NI-DAQmx automatically selects a compatible20 Mhz Timebase Output Terminal. To use the requested 20 Mhz Timebase Output Terminal, select a different Timing Type."}}, + {-200910, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Clock Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Clock Output Terminal property. NI-DAQmx automatically selects a compatible Sample Clock Output Terminal. To use the requested Sample Clock Output Terminal, select a different Timing Type."}}, + {-200911, {Category::Configuration, ActionRequired::ImmediateAction, "Start Trigger Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Start Trigger Output Terminal property. NI-DAQmx automatically selects a compatible Start Trigger Output Terminal. To use the requested Start Trigger Output Terminal, select a different Timing Type."}}, + {-200912, {Category::Configuration, ActionRequired::ImmediateAction, "Reference Trigger Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Reference Trigger Output Terminal property. NI-DAQmx automatically selects a compatible Reference Trigger Output Terminal. To use the requested Reference Trigger Output Terminal, select a different Timing Type."}}, + {-200913, {Category::Configuration, ActionRequired::ImmediateAction, "Ready For Transfer Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Ready For Transfer Event Output Terminal property. NI-DAQmx automatically selects a compatible Reference Trigger Event Output Terminal. To use the requested Ready For Transfer Trigger Event Output Terminal, select a different Timing Type."}}, + {-200914, {Category::Configuration, ActionRequired::ImmediateAction, "Change Detection Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Change Detection Event Output Terminal property. NI-DAQmx automatically selects a compatible Change Detection Output Terminal. To use the requested Change Detection Event Output Terminal, select a different Timing Type."}}, + {-200915, {Category::Configuration, ActionRequired::ImmediateAction, "Handshake Event Output Terminal requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Handshake Event Output Terminal property. NI-DAQmx automatically selects a compatible Handshake Event Output Terminal. To use the requested Handshake Event Output Terminal, select a different Timing Type."}}, + {-200916, {Category::Configuration, ActionRequired::ImmediateAction, "Sample Timebase Divisor requested is not supported given the requested Timing Type. To use the requested Timing Type, do not set the Sample Timebase Divisor property. NI-DAQmx automatically selects a compatible Sample Timebase Divisor. To use the requested Sample Timebase Divisor, select a different Timing Type."}}, + {-200917, {Category::Hardware, ActionRequired::Warning, "Every N Samples Event Interval requested must be an integer multiple of two for analog output tasks on this device."}}, + {-200918, {Category::Other, ActionRequired::Warning, "Global channel name specified is already used for a task in the Data Neighborhood. NI-DAQmx does not support overlapping task and global channel names. Select a different name."}}, + {-200919, {Category::Other, ActionRequired::Warning, "Task name specified is already used for a global channel in the Data Neighborhood. NI-DAQmx does not support overlapping task and global channel names. Select a different name."}}, + {-200920, {Category::Other, ActionRequired::ImmediateAction, "Requested Every N Samples Event Interval is not supported for the given buffer size. Modify the buffer size and/or the Every N Samples Event Interval so the buffer size is an even multiple of the Every N Samples Event Interval."}}, + {-200921, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the only digital channels with multiple lines supported by the DAQ Assistant are entire ports. Save the channel with 'allow interactive editing' set to false. Alternatively, change the channel so it contains an entire port, or break it up into channels with individual lines."}}, + {-200922, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with interactive editing allowed, because the DAQ Assistant does not support digital channels with different settings for different lines. Save the channel with 'allow interactive editing' set to false. Alternatively, set all the lines in the channel identically, or break the channel up into channels with individual lines."}}, + {-200923, {Category::Configuration, ActionRequired::ImmediateAction, "Wait Mode property is not supported for the given non-buffered task. Do not use this property inside the task, or change the task to be buffered."}}, + {-200924, {Category::Other, ActionRequired::ImmediateAction, "Wait Mode specified is not supported for the given non-buffered task. Specify a different Wait Mode, or change the task to be buffered."}}, + {-200925, {Category::Other, ActionRequired::ImmediateAction, "Rising and Falling Edge Physical Channels for Change Detection requested are not supported because at least one of the channels is not tristated. Ensure all the corresponding channels are tristated or choose different channels."}}, + {-200926, {Category::Other, ActionRequired::ImmediateAction, "Rising and Falling Edge Physical Channels for Change Detection requested are not supported because at least one of the corresponding channels is not in the task. Ensure all the corresponding channels are in the task or choose different channels."}}, + {-200927, {Category::Configuration, ActionRequired::Warning, "Trigger Type was set to Digital Pattern Match but no physical channels were specified as the Digital Pattern Source. Specify physical channels for property."}}, + {-200928, {Category::Hardware, ActionRequired::Warning, "Pattern match hardware for this device can only be used for one trigger."}}, + {-200929, {Category::Hardware, ActionRequired::ImmediateAction, "Two specified ports alone are not supported given the Sample Timing Type on this device. To use only two ports, specify ports 0 and 1, or ports 2 and 3. To use the two ports specified, use four ports (0, 1, 2, and 3) on the device, and disregard data from the unwanted ports."}}, + {-200930, {Category::Hardware, ActionRequired::ImmediateAction, "Two specified ports alone are not supported given the Sample Timing Type on this device. To use only two ports, specify ports 0 and 1, or ports 2 and 3. To use the two ports specified, use four ports (0, 1, 2, and 3) on the device. Ensure the lines from the unwanted ports are unwired, tristated, or are connected so no equipment can be damaged."}}, + {-200931, {Category::Hardware, ActionRequired::ImmediateAction, "Three ports alone are not supported given the Sample Timing Type on this device. Specify four ports (0, 1, 2, and 3), and disregard data from the unwanted port."}}, + {-200932, {Category::Hardware, ActionRequired::ImmediateAction, "Three ports alone are not supported given the Sample Timing Type on this device. Specify four ports (0, 1, 2, and 3). Ensure the lines from the unwanted port are unwired, tristated, or are connected so no equipment can be damaged."}}, + {-200933, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Expiration Date is not specified, and Channel Calibration Enable property is set to True. To use channel calibration, specify the Expiration Date; otherwise, set Channel Calibration Enable to false."}}, + {-200934, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Expiration Date has passed, and the Channel Calibration Apply Calibration if Expired property is False. Update the channel calibration, including the Expiration Date, or set Apply Calibration If Expired to True."}}, + {-200935, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Scale Type is not specified and Channel Calibration Enable property is set to True. To use channel calibration, specify the Scale Type; otherwise, set Channel Calibration Enable to false."}}, + {-200936, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Table Pre-Scaled Values property is not specified when the Channel Calibration Scale Type is Table."}}, + {-200937, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Table Scaled Values property is not specified when the Channel Calibration Scale Type is Table."}}, + {-200938, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the number of elements in the array specified for the Channel Calibration Table Pre-Scaled Values property is not equal to the number of elements in the array specified for Channel Calibration Table Scaled Values."}}, + {-200939, {Category::Other, ActionRequired::ImmediateAction, "The Channel Calibration Table Scale Pre-Scaled Values specified is not supported, because one of the numbers appears more than once in the specified array. Ensure unique numbers are specified in the array."}}, + {-200940, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Polynomial Forward Coefficients property is not specified when the Channel Calibration Scale Type is Polynomial."}}, + {-200941, {Category::Configuration, ActionRequired::Warning, "Operation cannot be performed, because the Channel Calibration Polynomial Reverse Coefficients property is not specified when the Channel Calibration Scale Type is Polynomial."}}, + {-200942, {Category::Other, ActionRequired::ImmediateAction, "Call mechanism set to synchronous event callbacks is not supported for DAQmx events on this platform. To use DAQmx events on this platform, set the call mechanism to asynchronous event callbacks."}}, + {-200943, {Category::Configuration, ActionRequired::Warning, "Operation failed because the Data Transfer Custom Threshold property is not set, and the Data Transfer Request Condition is set to Onboard Memory Custom Threshold. Specify a value for the Data Transfer Custom Threshold, or change the Data Transfer Request Condition."}}, + {-200944, {Category::Configuration, ActionRequired::Warning, "Operation failed because the Data Transfer Custom Threshold property is set, and no value is specified for the Data Transfer Request Condition. To use the specified Data Transfer Custom Threshold, set Data Transfer Request Condition to Onboard Memory Custom Threshold. If you set Data Transfer Request Condition to any value other than Onboard Memory Custom Threshold, the Data Transfer Custom Threshold property is ignored."}}, + {-200945, {Category::Hardware, ActionRequired::Warning, "Operation failed because the Data Transfer Request Condition is set to Onboard Memory Custom Threshold. This device supports this Data Transfer Request Condition only when the Data Transfer Mechanism is set to DMA. To use the specified Data Transfer Request Condition, set Data Transfer Mechanism to DMA. Otherwise, specify a different Data Transfer Request Condition."}}, + {-200946, {Category::Hardware, ActionRequired::Warning, "Task could not be started, because the driver could not write enough data to the device. This was due to system and/or bus-bandwidth limitations. Reduce the number of programs your computer is executing concurrently. If possible, perform operations with heavy bus usage sequentially instead of in parallel. If you can't eliminate the problem, contact National Instruments support at ni.com/support."}}, + {-200947, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Events are not supported in this version of LabVIEW. To use DAQmx Events, install LabVIEW 7.1 and the LabVIEW 7.1.1 patch. The patch is available at ni.com/downloads."}}, + {-200948, {Category::Other, ActionRequired::Warning, "DAQmx tasks cannot provide a source for a Timed Loop and contain a DAQmx Signal Event at the same time. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Tasks that contain a Timed Loop can contain DAQmx Events as long as the events are not a type of DAQmx Signal Event. See documentation for more details."}}, + {-200949, {Category::Other, ActionRequired::Warning, "You can only register one DAQmx Signal Event at a time on a task. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Unregister the event before registering it again."}}, + {-200950, {Category::Other, ActionRequired::Warning, "Done Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, + {-200951, {Category::Other, ActionRequired::Warning, "DAQmx Write for counter output detected that no sample clock has occurred since the last call to write which means that the writes are happening at a rate that exceeds the sample clock rate. To avoid this problem use the Wait for Next Sample Clock in your application."}}, + {-200952, {Category::Hardware, ActionRequired::Warning, "Event Output Terminal cannot include the Trigger Source terminal in the same task for this device."}}, + {-200953, {Category::Hardware, ActionRequired::Warning, "Start Trigger Source cannot be the same as the Sample Clock Source in the same task for this device."}}, + {-200954, {Category::Hardware, ActionRequired::Warning, "Sample Clock Output Terminal cannot include the Start Trigger Source terminal in the same task for this device."}}, + {-200955, {Category::Configuration, ActionRequired::ImmediateAction, "Two channels in the task have different raw data format property values, which is not supported. All channels in the task must have identical raw data format property values when raw data compression is configured. Only include channels with identical raw data format property values in the task when compression is configured."}}, + {-200956, {Category::Other, ActionRequired::Warning, "Raw data compression has been configured for a channel that does not support raw data compression. Remove the channel from the task or set the Raw Data Compression Type to None."}}, + {-200957, {Category::Other, ActionRequired::Warning, "Compressed Sample Size exceeds the Resolution of the channel. Configure the Compressed Sample Size to be less than or equal to the channel Resolution."}}, + {-200958, {Category::Hardware, ActionRequired::Warning, "TEDS interface device configured in MAX was not detected. Make sure that the type of TEDS interface device configured in MAX is correct and that the device is properly connected."}}, + {-200959, {Category::Configuration, ActionRequired::ImmediateAction, "Two channels in the task have different raw data compression property values, which is not supported. All channels in the task must have the same raw data compression property values."}}, + {-200960, {Category::Software, ActionRequired::Warning, "DAQmx software event cannot be registered because the task is running. Register all your DAQmx software events prior to starting the task."}}, + {-200961, {Category::Hardware, ActionRequired::ImmediateAction, "Firmware for the device could not be downloaded, and the device cannot be used. This failure is due to a missing or damaged firmware image file. Reinstall the driver to eliminate this error."}}, + {-200962, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be downloaded, and the device cannot be used. The failure may be due to damaged hardware. Contact National Instruments support at ni.com/support"}}, + {-200963, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Sample Timing Type is not allowed, because there is already another task with analog output channels from the same device configured for a different Sample Timing Type. This is not supported on this device. Change your application so that all the channels from this device are used in one task, set Sample Timing Type to On Demand for all tasks, or consider using two devices for the two tasks."}}, + {-200964, {Category::Other, ActionRequired::ImmediateAction, "Every N Samples Acquired Into Buffer Event cannot be registered, because it is not supported for output tasks. Use the Every N Samples Transferred From Buffer Event."}}, + {-200965, {Category::Other, ActionRequired::ImmediateAction, "Every N Samples Transferred from Buffer Event cannot be registered, because it is not supported for input tasks. Use the Every N Samples Acquired Into Buffer Event."}}, + {-200966, {Category::Other, ActionRequired::Warning, "Every N Samples Acquired Into Buffer Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, + {-200967, {Category::Other, ActionRequired::Warning, "Every N Samples Transferred From Buffer Event registration has failed because the event is already registered within the task. Unregister the event before registering it again."}}, + {-200968, {Category::Other, ActionRequired::Warning, "Requested operation cannot be performed inside the aysnchronous DAQmx Event callback thread. Use synchronous callback mechanism or perform the operation in a different thread."}}, + {-200969, {Category::Other, ActionRequired::Warning, "TEDS operation failed because the corresponding physical channel is not an analog input channel."}}, + {-200970, {Category::Hardware, ActionRequired::Warning, "Every N Samples Event Interval requested must be an integer multiple of two for analog input tasks on this device."}}, + {-200971, {Category::Configuration, ActionRequired::Warning, "Property cannot be set because the task is not running or committed. Start or commit the task prior to setting the specified property."}}, + {-200972, {Category::Configuration, ActionRequired::Warning, "Property cannot be set because the task is not running. Start the task prior to setting the specified property."}}, + {-200973, {Category::Configuration, ActionRequired::Warning, "Property cannot be queried because the task is not running. Start the task prior to getting the specified property."}}, + {-200974, {Category::Hardware, ActionRequired::ImmediateAction, "Allow Connecting DAC Reference to Ground at Runtime set to True is not supported by this device when DAC Reference Voltage Source is set to External."}}, + {-200975, {Category::Configuration, ActionRequired::ImmediateAction, "Querying the Counter Output Ready for New Value property is not supported by this device when the Sample Mode is set to Hardware Timed Single Point. Use DAQmx Wait for Next Sample Clock before DAQmx Write to make sure the counter is ready to accept the new value."}}, + {-200976, {Category::Other, ActionRequired::Warning, "Thermocouple CJC (cold junction compensation) Channel specified cannot be used for CJC because the corresponding physical channel does not support temperature measurement. Select a different CJC Channel, set CJC Source to Internal, or set CJC Source to Constant Value and use CJC Value to specify the temperature of the cold junction."}}, + {-200977, {Category::Other, ActionRequired::Warning, "Channel specified cannot be saved with Allow Interactive Editing set to True, because the DAQ Assistant does not support polynomial calibration scales. Save the channel with Allow Interactive Editing set to False, or use a table calibration scale."}}, + {-200978, {Category::Software, ActionRequired::Warning, "DAQmx Software Events cannot be registered with different call mechanisms on the same task. The software events for a task must all be registered with synchronous callbacks or they must be all registered with asynchronous callbacks."}}, + {-200979, {Category::Other, ActionRequired::Warning, "When you use synchronous events, you can clear, stop, abort, unreserve, or start a task only from the thread in which you registered synchronous events."}}, + {-200980, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Every N Samples Transferred from Buffer Event is not supported by the channel types or devices in your task."}}, + {-200981, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Every N Samples Acquired into Buffer Event is not supported by the channel types or devices in your task."}}, + {-200982, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Signal Events are not supported by your device. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event."}}, + {-200983, {Category::Configuration, ActionRequired::Warning, "You only can get the specified property while the task is reserved, committed or while the task is running. Reserve, commit or start the task prior to getting the property."}}, + {-200984, {Category::Other, ActionRequired::Warning, "Auto Start cannot be set to True when one or more DAQmx events are registered for the task. Set Auto Start to False and start the task manually."}}, + {-200985, {Category::Other, ActionRequired::Warning, "DAQmx Write parameter Auto Start cannot be set to True when one or more DAQmx events are registered for the task. Set Auto Start to false and start the task manually."}}, + {-200986, {Category::Software, ActionRequired::Warning, "DAQmx software event cannot be unregistered because the task is running. Unregister all your DAQmx software events prior to starting the task."}}, + {-200987, {Category::Hardware, ActionRequired::ImmediateAction, "DAQmx Signal Event type requested is not supported by the channel types or the devices in your task. DAQmx Signal events include the Counter Output event, the Sample Complete Event, the Sample Clock Event, and the Digital Change Detection event. Refer to product documentation for more details on which DAQmx Signal Events are supported by the channel types and devices in your task."}}, + {-200988, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of requested values for Read Wait Mode and Wait ffor Next Sample Clock Wait Mode properties is not supported for the given task on this device. Set both properties to Wait for Interrupt or do not set either of the properties to Wait for Interrupt."}}, + {-200989, {Category::Hardware, ActionRequired::ImmediateAction, "Combination of requested values for Read Wait Mode and Wait for Next Sample Clock Wait Mode properties is not supported for the given task on this device. Set both properties to Wait for Interrupt or set Read Wait Mode to a value other than Wait for Interrupt."}}, + {-200990, {Category::Other, ActionRequired::Warning, "All synchronous events for the task must be registered from the same thread."}}, + {-200991, {Category::Other, ActionRequired::Warning, "Task cannot be stopped, because at least one installed event handler has not been removed. Remove all installed event handlers by calling CNiDAQmxEvent::RemoveEventHandler or CNiDAQmxEvent::RemoveAllEventHandlers. See the documentation for more information."}}, + {-200992, {Category::Software, ActionRequired::Warning, "DAQmx Software Events are generated too quickly for the driver to keep up, and some of them have been lost. Reduce the rate at which your application is generating the events. Consider reconfiguring the events you are using, or using different events."}}, + {-200993, {Category::Other, ActionRequired::Warning, "DAQmx Write failed, because it was called before the previously written value was output. This is likely a result of the sample clock period being shorter than the period of the generated pulse train. To correct this issue, increase your sample clock period and/or reduce the period of the generated pulse train."}}, + {-200994, {Category::Configuration, ActionRequired::Warning, "Requested property cannot be set while the task is running and the Sample Mode is set to Hardware Timing Single Point. Use DAQmx Write instead of setting the property."}}, + {-200995, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Memory Mapping for Programmed IO Enable value, True, is not supported when Sample Mode is set to Hardware Timed Single Point. Change one or both of the properties."}}, + {-200996, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism is not set to Programmed I/O, which is the only value supported when the Sample Mode is Hardware Timed Single Point. Set your Data Transfer Mechanism to Programmed I/O or change the Sample Mode."}}, + {-200997, {Category::Hardware, ActionRequired::ImmediateAction, "Requested Sample Timing Type value, On Demand, is not supported when Sample Mode is Hardware Timed Single Point. Change Sample Timing Type and/or Sample Mode."}}, + {-200998, {Category::Hardware, ActionRequired::Warning, "Hardware Timed Single Point is not a supported Sample Mode for the specified Measurement Type. Change Sample Mode and/or Measurement Type."}}, + {-200999, {Category::Configuration, ActionRequired::ImmediateAction, "Requested property, Ready For New Value, is not supported when the Sample Timing Type is On Demand. To use the Ready For New Value property, change the Sample Timing Type."}}, + {-201000, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Events are not supported in this version of LabVIEW. LabVIEW 8.0 or later is required to use DAQmx Events."}}, + {-201001, {Category::Other, ActionRequired::Warning, "Sample Clock Rate requested is supported only if Enhanced Alias Rejection Enable is True. Set Enhanced Alias Rejection Enable to True or increase the Sample Clock Rate."}}, + {-201002, {Category::Other, ActionRequired::Warning, "Sample Clock Rate must match the frequency of the internal timebase specified as the Sample Clock Source. To use the specified Sample Clock Rate, set the Sample Clock Source to OnboardClock. To use the specified timebase as the Sample Clock, set the Sample Clock Rate to the frequency of that timebase."}}, + {-201003, {Category::Hardware, ActionRequired::Warning, "Device cannot be accessed. Possible causes: Device is no longer present in the system. Device is not powered. Device is powered, but was temporarily without power. Device is damaged. Ensure the device is properly connected and powered. Turn the computer off and on again. If you suspect that the device is damaged, contact National Instruments at ni.com/support."}}, + {-201004, {Category::Hardware, ActionRequired::Warning, "Device does not support simultaneous calibration of multiple channels. Calibrate channels one channel at a time, passing individual channels to different invocations of DAQmx Setup Calibration."}}, + {-201005, {Category::Other, ActionRequired::Warning, "Invoke DAQmx Setup Calibration before invoking the corresponding DAQmx Adjust Calibration."}}, + {-201006, {Category::Hardware, ActionRequired::Warning, "Device does not support an external calibration password."}}, + {-201007, {Category::Other, ActionRequired::Warning, "Generate or finite \"Wait\" instruction expected before \"If-Else\" block. Insert a \"Generate\" or finite \"Wait\" instruction before the If-Else block."}}, + {-201008, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"Generate\" instruction before the \"If-Else\" block."}}, + {-201009, {Category::Other, ActionRequired::Warning, "Length of waveform subset is too small for the \"Generate\" instruction before \"If-Else\" block."}}, + {-201010, {Category::Other, ActionRequired::Warning, "Marker position specified is too close to the end of the waveform in the \"Generate\" statement before the \"If-Else\" block."}}, + {-201011, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"Wait\" instruction before the \"If-Else\" block."}}, + {-201012, {Category::Other, ActionRequired::Warning, "Clear Trigger instruction cannot be the last instruction in an \"If-Else\" block."}}, + {-201013, {Category::Other, ActionRequired::Warning, "If-Else blocks are not allowed in \"Repeat Until\" loops."}}, + {-201014, {Category::Other, ActionRequired::Warning, "If-Else blocks are not allowed in \"Finite Repeat\" loops. If possible, remove the \"Repeat\" and \"End Repeat\" instructions and explicitly duplicate the instructions originally in the loop the desired number of times."}}, + {-201015, {Category::Other, ActionRequired::Warning, "PLL lock operation failed or timed out. Ensure the module is fully inserted into the carrier."}}, + {-201016, {Category::Other, ActionRequired::Warning, "Too many compiled instructions in loop. \"Generate\" and \"Wait\" instructions each result in at least one compiled instruction. Each marker adds an additional compiled instruction. Clear instruction does not result in a compiled instruction. If possible, reduce the number of generate instructions by concatenating the waveforms on two or more consecutive generate instructions."}}, + {-201017, {Category::Other, ActionRequired::ImmediateAction, "Byte order marker of the specified file is not supported by NI-DAQmx. For tab-delimeted files, NI-DAQmx supports UTF-8, UTF-16 / UCS-2 little endian, and UTF-32 / UCS-4 little endian. For ini files, NI-DAQmx only supports UTF-8. Save the file in one of the supported formats with the appropriate byte order marker."}}, + {-201018, {Category::Hardware, ActionRequired::Warning, "You have selected an external clock source for the task, but the device importing the clock does not have the longest pipeline of all the devices in the task. This leads to an incomplete acquisition on that device because the device will not receive enough Sample Clock pulses. Route the external clock signal into the device with the longest pipeline. Refer to device documentation for information on pipeline depth."}}, + {-201019, {Category::Hardware, ActionRequired::ImmediateAction, "Pause triggering is not supported in a multi-device task. To configure pause triggering in a multi-device configuration, you must use no more than one device per task and manually route the clock signals in the application."}}, + {-201020, {Category::Other, ActionRequired::Warning, "Lines specified do not support change detection. Select lines that support change detection."}}, + {-201021, {Category::Other, ActionRequired::Warning, "Write recovery could not complete before detecting another Sample Clock pulse. Reduce the Sample Clock rate, increase the frequency of the generated pulse train, or set Write Recovery Mode to Poll."}}, + {-201022, {Category::Other, ActionRequired::Warning, "Write recovery could not complete before detecting another Sample Clock pulse. Reduce the Sample Clock rate or increase the frequency of the generated pulse train."}}, + {-201023, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Write failed because the previously written value has not been generated. This error can occur if the Sample Clock period is shorter than the period of the generated pulse train. Reduce the Sample Clock rate, increase the frequency of the generated pulse train, or set Write Recovery Mode to Poll."}}, + {-201024, {Category::Other, ActionRequired::ImmediateAction, "DAQmx Write failed because the previously written value has not been generated. This error can occur if the Sample Clock period is shorter than the period of the generated pulse train. Reduce the Sample Clock rate or increase the frequency of the generated pulse train."}}, + {-201025, {Category::Hardware, ActionRequired::ImmediateAction, "Non-buffered hardware-timed operations are not supported for this device and Channel Type. Set the Buffer Size to greater than 0, do not configure Sample Clock timing, or set Sample Timing Type to On Demand."}}, + {-201026, {Category::Hardware, ActionRequired::ImmediateAction, "Data Transfer Mechanism is set to Programmed I/O which is not supported for hardware-timed operations for this device and Channel Type. Change Data Transfer Mechanism, do not configure Sample Clock timing, or set Sample Timing Type to On Demand."}}, + {-201027, {Category::Configuration, ActionRequired::ImmediateAction, "Counter task detected three or more missed Sample Clock pulses. Samples were lost before the application could read them. Decrease the Sample Clock rate or restructure the application so that DAQmx Read runs more frequently. Setting the Convert Error to Warning property to True does not eliminate the error, because samples were lost."}}, + {-201028, {Category::Other, ActionRequired::Warning, "Name specified is already in use. Specify a name that is not currently in use."}}, + {-201029, {Category::Hardware, ActionRequired::Warning, "Device specified is already connected to a RTSI cable. To connect the device to another RTSI cable, remove it from the RTSI cable to which it is currently connected."}}, + {-201030, {Category::Hardware, ActionRequired::Warning, "Device specified cannot be connected to a RTSI cable. If the device does not have a RTSI connector, you cannot connect it to a RTSI cable. If the device is a PXI device then it is automatically connected to the PXI backplane, and therefore does not need to be manually configured as connected to a RTSI cable."}}, + {-201031, {Category::Other, ActionRequired::Warning, "Address specified is already in use. Specify an address that is not in use."}}, + {-201032, {Category::Other, ActionRequired::ImmediateAction, "SCXI slot number specified is invalid. Specify a slot number that is valid for the specified chassis."}}, + {-201033, {Category::Other, ActionRequired::Warning, "Slot specified is already occupied. Either specify a slot that is unoccupied or remove the module occupying the desired slot."}}, + {-201034, {Category::Other, ActionRequired::ImmediateAction, "Cascade digitization mode is not supported for SCXI. Select a different digitization mode."}}, + {-201035, {Category::Configuration, ActionRequired::Warning, "Digitizing Device Channels property is specified, but the Digitization Mode property is not set to parallel. Either remove the Digitizing Device Channels property or set the Digitizing property to parallel."}}, + {-201036, {Category::Other, ActionRequired::ImmediateAction, "Format of the time value specified is invalid. Enter the time value in the format: YYYY-MM-DDTHH:mm:ssZ UTC Where YYYY is the four digit year, MM is the two digit month, DD is the two digit day of the month, HH is the two digit hour of the day (24 hour clock), mm is the two digit minutes into the hour, and ss is the two digit seconds into the minute. T is a literal separator between date and time. For example, the string: 2004-10-19T16:30:45Z UTC Represents October 19th, 2004 at 4:30:45 PM GMT."}}, + {-201037, {Category::Other, ActionRequired::ImmediateAction, "Time value specified is invalid. Ensure that the time entered has only valid values for each of the fields in the time format. For example: the month section must be between 01 and 12."}}, + {-201038, {Category::Configuration, ActionRequired::Warning, "Author property cannot be set on a local channel. Remove the author property from the local channel."}}, + {-201039, {Category::Configuration, ActionRequired::Warning, "Object lacks a required property. Add the required property to the object."}}, + {-201040, {Category::Configuration, ActionRequired::Warning, "Object specified contains an extra property. Remove the extra property from the object."}}, + {-201041, {Category::Other, ActionRequired::Warning, "Product type and product number specified do not refer to the same product. Remove either the product type or the product number from the object."}}, + {-201042, {Category::Hardware, ActionRequired::Warning, "Device specification provided does not match any hardware in the system. Change the device specification to match a device present in your system. You can also change your device specification to be less specific."}}, + {-201043, {Category::Hardware, ActionRequired::Warning, "Device specification provided matches more than one device in the system. Change the device specification to be more specific."}}, + {-201044, {Category::Hardware, ActionRequired::ImmediateAction, "Specified accessory name is invalid. The name of the accessory should be in this format: accessoryProductType / connectedDeviceIdentifier / connectorNumber Connector numbers start at zero. A device with only one connector only has a connector zero."}}, + {-201046, {Category::Hardware, ActionRequired::Warning, "Accessory type specified cannot be connected to the specified device. Enter an accessory type that can be connected to the device specified."}}, + {-201047, {Category::Hardware, ActionRequired::Warning, "Device and connector specified by the accessory can not be configured because there is already an accessory configured for that connector and device. Enter a device and connector that is not currently occupied, or remove the configuration of the existing accessory."}}, + {-201048, {Category::Other, ActionRequired::Warning, "Accessory setting specified does not apply to the accessory type. Remove the non-applicable accessory setting from the accessory specification."}}, + {-201049, {Category::Hardware, ActionRequired::Warning, "Digitizing device specified for the SCC carrier is not capable of digitizing for SCC carriers. Specify a device that is capable of digitizing for SCC carriers."}}, + {-201050, {Category::Other, ActionRequired::Warning, "Carrier specified for the SCC module could not be found. Ensure that the SCC carrier specified for the module is also defined in the configuration file."}}, + {-201051, {Category::Hardware, ActionRequired::Warning, "Controlling device specified for the TEDS interface is not capable of controlling a TEDS interface."}}, + {-201052, {Category::Other, ActionRequired::Warning, "Physical channels specified for the TEDS interface are too great in number for the specified type of TEDS interface. Reduce the number of physical channels specified."}}, + {-201053, {Category::Other, ActionRequired::Warning, "Physical channel specified for the TEDS interface is already connected to a TEDS interface. Enter a physical channel that is not currently occupied, or remove the existing physical channel configuration."}}, + {-201054, {Category::Other, ActionRequired::ImmediateAction, "Enumerated value specified is not a valid value for that enumeration. The enumerated value may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or change the value to one supported by the version of NI-DAQmx you have installed."}}, + {-201055, {Category::Configuration, ActionRequired::Warning, "Object contains two references to the same property. Remove one of the duplicate properties."}}, + {-201056, {Category::Other, ActionRequired::ImmediateAction, "Numeric value specified is in an invalid format. Remove any non-numeric characters from the specified numeric value."}}, + {-201057, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware product type specified is invalid. Enter a valid product type. If the product number you entered is an actual product type, ensure the product type is appropriate for the object you are configuring. For example, do not use the product type of a PXI device where an SCXI module is expected."}}, + {-201058, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware product number specified is invalid. Enter a valid product number. If the product number you entered is an actual product number, ensure the product type is appropriate for the object you are configuring. For example, do not use the product number of a PXI device where an SCXI module is expected."}}, + {-201059, {Category::Hardware, ActionRequired::Warning, "Device information retrieval failed because PXI chassis is not identified. Use MAX or nipxiconfig to identify your chassis."}}, + {-201060, {Category::Other, ActionRequired::ImmediateAction, "Syntax error encountered in INI file. Valid INI syntax allows for the following 3 types of lines: section headers, items, and comments. A section header begins with an open bracket and ends with a closed bracket. Example: [mySection] An item has an equals sign in between two strings. Example: myItem = 46 A comment begins with a semicolon. Example: ; This is my comment."}}, + {-201061, {Category::Configuration, ActionRequired::Warning, "Property specified cannot return its value because the custom scale for the channel does not include the value in the range or table of pre-scaled values. Ensure that the custom scale includes all potential values for this property in the range or table of pre-scaled values, or use a linear or polynomial scale."}}, + {-201062, {Category::Other, ActionRequired::Warning, "Selected lines do not support buffered operations. Ensure only lines that support buffered operations are being used in the task. If using change detection timing, the task must be changed to non-buffered to support these lines."}}, + {-201063, {Category::Hardware, ActionRequired::Warning, "Device ID value in the driver does not match the device ID value from the device. Ensure the correct driver is being used for this device."}}, + {-201064, {Category::Other, ActionRequired::Warning, "Configuration file is missing the required header fields. Add required header information at the top of the text file prior to any data."}}, + {-201065, {Category::Configuration, ActionRequired::Warning, "Configuration file contains property names or values that are not contained within a valid table. Add the appropriate start of table string prior to property names."}}, + {-201066, {Category::Configuration, ActionRequired::Warning, "Property setting found in a column with no property name heading. Remove the property setting from the column or add the property name to the table definition."}}, + {-201067, {Category::Other, ActionRequired::ImmediateAction, "Configuration file contains an invalid start of table identifier. The table identifier may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the table from the file."}}, + {-201068, {Category::Other, ActionRequired::ImmediateAction, "Configuration file string contains invalid character escape sequence."}}, + {-201069, {Category::Other, ActionRequired::ImmediateAction, "Local channel name specified is invalid. Local channel names are of the form /. Example: task1/chan1"}}, + {-201070, {Category::Configuration, ActionRequired::Warning, "Task does not include the Channels property. Specify the Channels property for this task."}}, + {-201071, {Category::Other, ActionRequired::Warning, "Task references a local channel from another task. Reference only global channels and local channels that belong to this task."}}, + {-201072, {Category::Other, ActionRequired::Warning, "Task references a local channel that does not exist in this task. Remove the reference to the missing local channel or create the local channel."}}, + {-201073, {Category::Other, ActionRequired::Warning, "Local channel specified is from a task that does not exist. Specify the task in question, move the local channel to an existing task, or change the local channel to a global channel."}}, + {-201074, {Category::Hardware, ActionRequired::Warning, "Import operation supports tasks, channels, and scales only, but a hardware object was found in the file. Remove the hardware objects from the input file."}}, + {-201075, {Category::Other, ActionRequired::Warning, "Import operation does not support tasks, channels, and scales, but such an object was found. Remove all tasks, channels, and scales from the input file."}}, + {-201076, {Category::Other, ActionRequired::ImmediateAction, "NI-DAQmx version specified in the input file is newer than the installed NI-DAQmx version. Change the version in the file to match the installed version. The import might still fail if the file contains properties that are not supported by the installed version of NI-DAQmx."}}, + {-201077, {Category::Hardware, ActionRequired::ImmediateAction, "Section name specified is invalid. The format of the section name is [ ]. Example: [DAQmxDevice Dev1]"}}, + {-201078, {Category::Other, ActionRequired::ImmediateAction, "Section identifier specified is invalid. Refer to the NI-DAQmx configuration file documentation for a list of valid section identifiers. The section identifier may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the section from the file."}}, + {-201079, {Category::Other, ActionRequired::ImmediateAction, "SCC slot number specified is invalid. Specify a slot number that is valid for the specified carrier."}}, + {-201080, {Category::Other, ActionRequired::Warning, "SCC specified cannot be placed in the slot specified. Specify a supported SCC for the given slot or specify a slot that supports the given SCC."}}, + {-201081, {Category::Other, ActionRequired::Warning, "Channel was listed more than once in the task. A task cannot contain a channel with the same name twice. Remove the duplicate entries from the configuration file."}}, + {-201082, {Category::Other, ActionRequired::Warning, "Hidden channel was listed more than once in the task. A task cannot contain a hidden channel with the same name twice. Remove the duplicate entries from the configuration file."}}, + {-201083, {Category::Other, ActionRequired::Warning, "Task must contain at least one channel. Add a channel to the task in the configuration file."}}, + {-201084, {Category::Other, ActionRequired::Warning, "Hidden channels listed for the task were not in the channels list for the task. Add the missing hidden channels to the channel list in the configuration file."}}, + {-201085, {Category::Configuration, ActionRequired::Warning, "Thermocouple CJC channel name property must be set when the thermocouple CJC source property is Channel. Set the thermocouple CJC channel name property or set the thermocouple CJC source property to a value other than Channel."}}, + {-201086, {Category::Other, ActionRequired::ImmediateAction, "Attribute name specified is invalid. Validate the attribute name using your ADE. The attribute may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the attribute from the file."}}, + {-201087, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require you to specify the Sample Clock rate. Use the Sample Clock Timing function/VI to specify a Sample Clock rate. You cannot specify a Sample Clock rate if Mode is set to On Demand."}}, + {-201088, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require a different Sample Clock Timebase Source than the one specified. Do not specify the Sample Clock Timebase Source. DAQmx will set the Sample Clock Timebase Source appropriately."}}, + {-201089, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require a different Sample Clock Timebase Rate than the one specified. Do not specify the Sample Clock Timebase Rate. DAQmx will set the Sample Clock Timebase Rate appropriately."}}, + {-201090, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels on one or more devices that require the driver to select the Sync Pulse Source. Do not specify the Sync Pulse Source. DAQmx will set the Sync Pulse Source appropriately."}}, + {-201091, {Category::Other, ActionRequired::Warning, "Minimum delay time between the sync pulse and start must be specified when using an external Sync Pulse Source. Specify SyncPulse.MinDelayToStart."}}, + {-201092, {Category::Other, ActionRequired::Warning, "Sync pulse cannot be exported when using an external sync pulse source. Do not export the sync pulse, or use the internal chassis sync pulse source."}}, + {-201093, {Category::Hardware, ActionRequired::Warning, "Task contains physical channels that have incompatible hardware restrictions for their Sample Clock Rates. Remove incompatible physical channels from the task."}}, + {-201094, {Category::Hardware, ActionRequired::ImmediateAction, "An active device was specified for the attribute but it is not supported for channel expansion tasks. Do not specify an active device when setting the attribute or do not use channel expansion."}}, + {-201095, {Category::Software, ActionRequired::Warning, "Driver was unloaded and then reloaded at a different base address after the session was created. Session is unusable. Close and reopen the session."}}, + {-201096, {Category::Other, ActionRequired::Warning, "Sample clock timebase rate must be specified when using an external sample clock timebase."}}, + {-201097, {Category::Other, ActionRequired::Warning, "Sample Clock Rate requested is supported only if Enhanced Alias Rejection Enable is False. Set Enhanced Alias Rejection Enable to False or decrease the Sample Clock Rate."}}, + {-201098, {Category::Hardware, ActionRequired::Warning, "When enabling auto zero on this device, all channels that are using auto zero must have the same auto zero mode. Channels with auto zero disabled may be present in the same task as channels with auto zero enabled. Select the same auto zero mode for all channels that are using auto zero."}}, + {-201099, {Category::Configuration, ActionRequired::Warning, "Task specified cannot be saved because the DAQmx Timing properties were specified on a per device basis using the More: AI Convert: ActiveDevs property."}}, + {-201100, {Category::Other, ActionRequired::Warning, "Sample clock timebase divisor may not be specified when an external sample clock source is specified. Change the sample clock source to onboard clock or do not configure the sample clock timebase divisor."}}, + {-201101, {Category::Hardware, ActionRequired::Warning, "Number of channels in task exceeds the device maximum given the requested Timing Type. Reduce the number of channels or select a different Timing Type."}}, + {-201102, {Category::Hardware, ActionRequired::Warning, "Analog trigger source must be the first channel of the device in the acquisition or a valid analog trigger terminal. Create your channels in a different order so that this channel is first, select a different channel from this device, or select the first channel from another device in the task. If you explicitly named the virtual channel in DAQmx Create Channel you must use the name assigned to that channel."}}, + {-201103, {Category::Hardware, ActionRequired::Warning, "Device support an analog channel as the source of an analog pause trigger only when it is the only channel from this device in the task. Remove all of this device's channels currently in the task except the channel that will be used as the analog trigger source, change the analog trigger source to a terminal, or select a channel from another device that only has one channel in the task."}}, + {-201104, {Category::Hardware, ActionRequired::Warning, "An attempt has been made to use an analog trigger in multiple situations with differing properties. Change the analog trigger properties so they are the same, select an analog trigger source from another device for one of the triggers, or do not use an analog trigger for all situations."}}, + {-201105, {Category::Hardware, ActionRequired::Warning, "Resource requested by this task has already been reserved by a different task with conflicting settings. Unreserve any other tasks using this device, or change their settings to be compatible with this task."}}, + {-201106, {Category::Other, ActionRequired::Warning, "Physical channel specified may only be used if the C Series module is installed in a slot that supports this physical channel. Move your cDAQ module to a slot that supports this physical channel."}}, + {-201107, {Category::Other, ActionRequired::Warning, "Selected lines do not support buffered operations if the C Series module is installed in the specified slot. Ensure only lines that support buffered operations are being used in the task. If using change detection timing, the task must be changed to nonbuffered to support these lines. Move your cDAQ module to a slot that supports buffered operations."}}, + {-201108, {Category::Hardware, ActionRequired::Warning, "Device does not support both analog modulation and digital modulation simultaneously."}}, + {-201109, {Category::Other, ActionRequired::Warning, "You cannot use the Ref In/Out connector as both an input and an output at the same time."}}, + {-201110, {Category::Other, ActionRequired::ImmediateAction, "Digital Modulation User Defined Waveform is invalid."}}, + {-201111, {Category::Hardware, ActionRequired::Warning, "Device does not support User Defined Waveform with OOK modulation."}}, + {-201112, {Category::Hardware, ActionRequired::Warning, "Device component test failed. If problem persists, contact National Instruments technical support at www.ni.com/support."}}, + {-201113, {Category::Other, ActionRequired::Warning, "Power level is too low. OOK modulation requires the bypass path to be used, and power levels this low must use the main path."}}, + {-201114, {Category::Hardware, ActionRequired::Warning, "Multi-device tasks with channels from both 446x and 447x devices require a 446x device to be in PXI slot 2."}}, + {-201115, {Category::Other, ActionRequired::Warning, "Waveform length must be a multiple of the waveform quantum."}}, + {-201117, {Category::Configuration, ActionRequired::Warning, "Property setting must be identical for all channels in the task."}}, + {-201118, {Category::Configuration, ActionRequired::Warning, "Operation must be performed on the entire task. It cannot be performed only on specific devices in the task. Do not use the indexer, Item property in Visual Basic, or index operator in C++ to specify device names when performing this operation."}}, + {-201119, {Category::Configuration, ActionRequired::Warning, "Next Write is Last property not settable if Regeneration Mode is set to Allow Regeneration."}}, + {-201120, {Category::Configuration, ActionRequired::Warning, "Property requested is incompatible with the given Timing Response Mode. NI-DAQmx can automatically select a compatible property value for you. To use the requested Timing Response Mode, do not set the specified property and allow NI-DAQmx to set it for you. To use the requested property value, choose a different value for the Timing Response Mode."}}, + {-201121, {Category::Other, ActionRequired::Warning, "Task cannot be reserved because the CPU does not support the Streaming SIMD Extensions (SSE)."}}, + {-201122, {Category::Configuration, ActionRequired::Warning, "Property requested is incompatible with the given Timing Type. NI-DAQmx can automatically select a compatible property value for you. To use the requested Timing Type, do not set the specified property and allow NI-DAQmx to set it for you. To use the requested property value, chose a different value for the Timing Type."}}, + {-201123, {Category::Hardware, ActionRequired::Warning, "Device supports an analog channel as the source of an analog reference trigger only when it is the only channel from this device in the task. Remove all of the channels from this device in the task except the channel that you want to use as the analog trigger source, change the analog trigger source to a terminal, or select a channel from another device that only has one channel in the task."}}, + {-201124, {Category::Configuration, ActionRequired::Warning, "Only one task is permitted to have the Digital Output Memory Mapping for Programmed I/O Enable set to true at a time. If the value is unset, NI-DAQmx will choose a value that is compatible with the system while reserving the task. Do not set the property to true explicitly, set the property to false explicitly, or set the value to the default value to allow NI-DAQmx to choose a value that is compatible with the system."}}, + {-201125, {Category::Other, ActionRequired::Warning, "Channel properties conflict. If Analog Input Source is _aignd_vs_aignd, then Analog Input Coupling must be set to GND. If Analog Input Source is _external_channel, then Analog Input Coupling must be DC."}}, + {-201126, {Category::Configuration, ActionRequired::Warning, "DAQmx Timing property specified requires per device configuration. Explicitly specify the device(s) to which this property should apply."}}, + {-201127, {Category::Configuration, ActionRequired::ImmediateAction, "Your ratiometric device must use excitation for scaling. The Use Excitation for Scaling property cannot be set to false on this device. Use excitation for scaling by setting the Use Excitation for Scaling property to true. This will cause NI-DAQmx to return ratiometric data instead of voltage data which is not supported by ratiometric devices."}}, + {-201128, {Category::Hardware, ActionRequired::ImmediateAction, "Device index requested is invalid. The value of the index must be between one and the number of devices in the task."}}, + {-201129, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable cannot be set to true when Output Drive Type is Open Collector. Change Output Drive Type to Active Drive or change Memory Mapping for Programmed IO Enable to false."}}, + {-201130, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable setting is not compatible with some of the physical channels in the task. Change Memory Mapping for Programmed IO Enable to false or do not create the task with the incompatible physical channels."}}, + {-201131, {Category::Other, ActionRequired::Warning, "Reference and start trigger sources cannot be the same. Make the reference and start trigger sources different from one another."}}, + {-201132, {Category::Other, ActionRequired::Warning, "Attempted to write a sample beyond the final finite sample. The sample specified by the combination of position and offset will never be writable. Specify a position and offset which selects a sample up to but not beyond the final sample to generate."}}, + {-201133, {Category::Communication, ActionRequired::Warning, "Device cannot be configured for input or output because lines and/or terminals on this device are in use by another task or route. This operation requires temporarily reserving all lines and terminals for communication, which interferes with the other task or route. If possible, use DAQmx Control Task to reserve all tasks that use this device before committing any tasks that use this device. Otherwise, uncommit or unreserve the other task or disconnect the other route before attempting to configure the device for input or output."}}, + {-201134, {Category::Configuration, ActionRequired::Warning, "Number of values specified with Pause Trigger Digital Pattern property does not match the number of physical lines requested with the Pause Trigger Digital Pattern Source property. Change one or both of the properties so the two numbers are equal."}}, + {-201135, {Category::Configuration, ActionRequired::Warning, "Reference Trigger Digital Pattern Source property can be used only with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, + {-201136, {Category::Configuration, ActionRequired::Warning, "Pause Trigger Digital Pattern Source property can only be used with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, + {-201137, {Category::Configuration, ActionRequired::Warning, "Start Trigger Digital Pattern Source property can only be used with the data lines of the devices. Do not specify a PFI or a RTSI line in the pattern match source."}}, + {-201138, {Category::Other, ActionRequired::Warning, "Task cannot be restarted because the first sample is not available to generate."}}, + {-201139, {Category::Hardware, ActionRequired::Warning, "Hardware revision is newer that the latest revision supported by the currently installed driver. Please upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com."}}, + {-201140, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports this revision of the hardware. Please downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com."}}, + {-201141, {Category::Hardware, ActionRequired::Warning, "EEPROM format is newer than the latest revision supported by the currently installed driver. Either self-calibrate your device (this may modify the EEPROM format) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, + {-201142, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the EEPROM format. Either self-calibrate your device (this may modify the EEPROM format) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, + {-201143, {Category::Hardware, ActionRequired::Warning, "Hardware external calibration data format is newer than the latest revision supported by the currently installed driver. Either externally calibrate your device (this may modify the calibration data) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, + {-201144, {Category::Hardware, ActionRequired::Warning, "Hardware self-calibration data format is newer than the latest revision supported by the currently installed driver. Either self-calibrate your device (this may modify the calibration data) or upgrade your driver to the version supplied with the device. Driver updates can also be downloaded form ni.com. If uncertain, contact National Instruments technical support."}}, + {-201145, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the hardware external calibration data format. Either externally calibrate your device (this may modify the calibration data) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, + {-201146, {Category::Hardware, ActionRequired::Warning, "Currently installed driver no longer supports the hardware self-calibration data format. Either self-calibrate your device (this may modify the calibration data) or downgrade your driver to the version supplied with the device. Older driver versions can also be downloaded from ni.com. If uncertain, contact National Instruments technical support."}}, + {-201147, {Category::Hardware, ActionRequired::Warning, "Calibration procedure has failed to resolve the calibration data format conflict. Perform a complete external calibration on your device. This may modify the calibration data."}}, + {-201148, {Category::Other, ActionRequired::Warning, "Channel you are triggering on is not enabled. Enable the trigger source channel."}}, + {-201149, {Category::Hardware, ActionRequired::ImmediateAction, "Number of input/output points entered for the specified channel is insufficient for calibration. At least two points are needed because this device has only gain error calibration constants and not offset calibration constants. Enter more points to eliminate this error."}}, + {-201150, {Category::Hardware, ActionRequired::Warning, "Simulated device cannot be imported to replace a non-simulated device of the same name. Change the device name in the import file and try importing again."}}, + {-201151, {Category::Hardware, ActionRequired::Warning, "PXI slot and PXI chassis numbers are required when creating a new simulated PXI device. Add PXI slot and chassis number values for the device in the import file."}}, + {-201152, {Category::Other, ActionRequired::Warning, "IsSimulated flags for SCXI chassis and SCXI modules must have the same value. Either make both simulated or make both non-simulated in the import file."}}, + {-201153, {Category::Other, ActionRequired::Warning, "Non-simulated SCXI module cannot be connected to a simulated digitizer. Change the SCXI Module IsSimulated flag or change the SCXI Module so that it connects to a digitizer with the same simulation setting."}}, + {-201154, {Category::Hardware, ActionRequired::Warning, "Non-simulated SCXI module cannot be connected to a simulated cabled device. Change the SCXI module IsSimulated flag or change the SCXI module so that it connects to a cabled device with the same simulation flag setting."}}, + {-201155, {Category::Other, ActionRequired::Warning, "SCXI module type specified does not support simulation. Remove the module from the import file or change the module type."}}, + {-201156, {Category::Other, ActionRequired::Warning, "IsSimulated flags for an SCC carrier and all of the contained modules must be set to the same value. Change the IsSimulated flags to match."}}, + {-201157, {Category::Hardware, ActionRequired::Warning, "Non-simulated SCC carriers cannot be connected to simulated devices. Change the cabled device of the SCC carrier or change the IsSimulated flags on the SCC carrier to true."}}, + {-201158, {Category::Other, ActionRequired::Warning, "IsSimulated flag for cDAQ chassis and C Series modules must match. Change the IsSimulated flags in the import file so that they match."}}, + {-201159, {Category::Other, ActionRequired::Warning, "cDAQ chassis does not have a slot that matches the specified slot number. The slot number specified is probably too large. Change the slot number to be a valid slot number."}}, + {-201160, {Category::Hardware, ActionRequired::Warning, "Device type specified does not support simulation. Remove the IsSimulated flag from the import file for this device or change the device type to one that supports simulation."}}, + {-201161, {Category::Other, ActionRequired::Warning, "Specified cDAQ chassis slot is already occupied by a C Series module. Change the slot numbers of the C Series modules in your import file so that they are unique."}}, + {-201162, {Category::Configuration, ActionRequired::Warning, "Physical channel cannot be used by the task because an output task has reserved this line and the Digital Input Tristate property is set to true. Set the Digital Input Tristate property to false."}}, + {-201163, {Category::Other, ActionRequired::Warning, "Physical channel cannot be used by the task because an input task has reserved this line to be tristated."}}, + {-201164, {Category::Other, ActionRequired::Warning, "Sample clock cannot be exported in this mode when the sample clock comes from an external source or an external timebase source."}}, + {-201165, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is too new. Downgrade the firmware for this device. If you need help downgrading, visit ni.com/support."}}, + {-201166, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is corrupt. Contact National Instruments for help with this device."}}, + {-201167, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be updated. Contact National Instruments for help with this device."}}, + {-201168, {Category::Hardware, ActionRequired::Warning, "Firmware for this device is too old. Upgrade the firmware for this device."}}, + {-201169, {Category::Hardware, ActionRequired::ImmediateAction, "Device import failed because the device is not supported by the installed version and/or platform of NI-DAQmx. Change the device type or do not import this device."}}, + {-201170, {Category::Hardware, ActionRequired::Warning, "Device import failed because the device does not support simulation and a device to overwrite could not be found. Change the device type or do not import this device."}}, + {-201171, {Category::Configuration, ActionRequired::Warning, "Minimum temperature specified for the thermocouple measurement falls outside of the accuracy limit when using polynomial scaling. Specify a value greater than the minumum temperature for polynomial scaling with this thermocouple type, or set the Thermocouple Scale Type property to Table."}}, + {-201172, {Category::Hardware, ActionRequired::Warning, "AI channels on this device do not support using DC coupling while using IEPE excitation. Set excitation source to none or the coupling mode to AC."}}, + {-201173, {Category::Hardware, ActionRequired::Warning, "Power supply configuration failed. Reboot or cycle the power on the device."}}, + {-201174, {Category::Other, ActionRequired::Warning, "SCXI-1600 does not support import through MAX. Deselect the SCXI-1600 in the import dialog or remove it from the import file."}}, + {-201175, {Category::Configuration, ActionRequired::ImmediateAction, "Dev.AssociatedResourceIDs property is not supported by the device. Remove the Dev.AssociatedResourceIDs property from the import file."}}, + {-201176, {Category::Hardware, ActionRequired::Warning, "Sample clock rate specified is too fast for the burst handshaking timing type. Change the sample clock rate to be equal to or less than the maximum value or consider using the pipelined sample clock timing type. If you use the pipelined sample clock timing type, refer to the device documentation for the differences between the burst handshake timing type and the pipelined sample clock timing type."}}, + {-201177, {Category::Hardware, ActionRequired::Warning, "Device is not usable. The firmware was recently upgraded, and the system was not powered down and restarted. Power down the computer and restart."}}, + {-201178, {Category::Hardware, ActionRequired::Warning, "Sample clock rate specified is too fast for the sample clock timing type. Change the sample clock rate to be equal to or less than the maximum value or consider using the pipelined sample clock timing type. If you use the pipelined sample clock timing type, refer to device documentation for the differences between the sample clock timing type and the pipelined sample clock timing type."}}, + {-201179, {Category::Other, ActionRequired::Warning, "db reference value must be greater than zero."}}, + {-201180, {Category::Other, ActionRequired::Warning, "Input cal data point must be an AC Voltage for this module."}}, + {-201181, {Category::Other, ActionRequired::Warning, "Input source in not valid. Ensure that AI Input Source and AI Coupling are not both set for the same task."}}, + {-201182, {Category::Other, ActionRequired::Warning, "Internal excitation voltage selected for calibration is not valid."}}, + {-201183, {Category::Other, ActionRequired::Warning, "Internal excitation frequency selected for calibration is not valid."}}, + {-201184, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not a PXI device."}}, + {-201185, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not in the PXI chassis."}}, + {-201186, {Category::Communication, ActionRequired::Warning, "Device specified for PXI backplane communication is not in the rightmost slot of the PXI chassis."}}, + {-201187, {Category::Other, ActionRequired::Warning, "Cold junction compensation channel cannot be used unless the corresponding analog input channel is configured to measure temperature using a thermocouple. Use the thermocouple version of the DAQmx Create Channel VI/function to configure the channel."}}, + {-201188, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. Reduce the number of programs your computer is executing concurrently or use a different computer to calibrate your device."}}, + {-201189, {Category::Hardware, ActionRequired::Warning, "Onboard device memory overflow. Because of system and/or bus bandwidth limitations, the driver could not read data from the device fast enough to keep up with the device throughput. This device supports high-speed (480Mb/s) USB but it is connected to a full-speed (12 Mb/s) USB port. Connect this device to a high-speed (480 Mb/s) USB port, reduce the number of programs your computer is executing concurrently, or use a different computer to calibrate your device. If you are using a USB hub, ensure that it supports high-speed operation."}}, + {-201190, {Category::Hardware, ActionRequired::Warning, "Device is currently not usable and must be placed into firmware loader mode. Unplug the device USB cable and plug it back in. If the device is plugged into a USB hub, ensure that you unplug the device from the hub."}}, + {-201191, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported unless excitation is enabled. Enable excitation before attempting to access the property."}}, + {-201192, {Category::Communication, ActionRequired::Warning, "Connection to target failed for the requested configuration operation. Confirm that NI-DAQmx is installed on the target."}}, + {-201193, {Category::Other, ActionRequired::ImmediateAction, "SCXI chassis address specified is invalid. Specify an SCXI chassis address between 0 and 31."}}, + {-201194, {Category::Configuration, ActionRequired::Warning, "Property cannot be read before reading the corresponding Channels Exist property. NI-DAQmx retrieves the channel state from the hardware when the application reads the corresponding Channels Exist property. After reading the corresponding Channels Exist property, you can retrieve other information about these channels."}}, + {-201195, {Category::Other, ActionRequired::ImmediateAction, "PCI Express interface layer error detected. Contact National Instruments for support."}}, + {-201196, {Category::Other, ActionRequired::ImmediateAction, "PCI Express interface layer error detected. Contact National Instruments for support."}}, + {-201197, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes channels to use too much power. Those channels were disabled to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, + {-201198, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes a short between the specified physical channel and the voltage source. The output of the function generator has been suspended to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, + {-201199, {Category::Hardware, ActionRequired::Warning, "Circuit connected to the prototyping board causes too much power to be drawn from the specified source. The output of the source has been suspended to prevent the device from using too much power. Turn the prototyping board power switch to the off position; correct the circuit connected to the prototyping board; then turn the prototyping board power switch back on."}}, + {-201200, {Category::Communication, ActionRequired::Warning, "Requested operation could not be completed because the prototyping board has been removed or disabled. The prototyping board can be disabled by either switching the prototyping board switch to the off position, or by an incorrect connection on the prototyping board causing too much power to be drawn from the device. Ensure that all connections on the prototyping board are correct and that the prototyping board is properly inserted and powered on before attempting the operation."}}, + {-201201, {Category::Hardware, ActionRequired::ImmediateAction, "Offset error measured for this calibration task is out of range for the device. Ensure that the reference voltage is accurate, specified correctly, and connected to the correct channel. Also ensure that the measured output voltage is specified correctly and that the device is functioning properly."}}, + {-201202, {Category::Hardware, ActionRequired::ImmediateAction, "Gain error measured for this calibration task is out of range for the device. Ensure that the reference voltage is accurate, specified correctly, and connected to the correct channel. Also ensure that the measured output voltage is specified correctly and that the device is functioning properly."}}, + {-201203, {Category::Other, ActionRequired::Warning, "Virtual channel specified does not support the strain gage shunt calibration procedure."}}, + {-201204, {Category::Other, ActionRequired::Warning, "Virtual channel specified does not support the Wheatstone bridge shunt calibration procedure."}}, + {-201205, {Category::Hardware, ActionRequired::Warning, "Device simulation flag does not match the simulation flag of the RTSI cable."}}, + {-201206, {Category::Hardware, ActionRequired::Warning, "Task cannot contain a mixture of simulated devices and physical devices. Ensure the physical channels added to the task refer to all physical devices or all simulated devices."}}, + {-201207, {Category::Hardware, ActionRequired::Warning, "Active Device cannot be specified when reading or writing timing properties in this multidevice task, due to synchronization requirements."}}, + {-201208, {Category::Hardware, ActionRequired::Warning, "Sample rate specified is too fast for the ADC Timing Mode selected for this device. Decrease the sample rate or use a faster ADC Timing Mode."}}, + {-201209, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"generate\" instruction before \"break\" block."}}, + {-201210, {Category::Other, ActionRequired::Warning, "Waveform subset length is too small for the \"generate\" instruction before \"break\" block."}}, + {-201211, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"wait\" instruction before \"break\" block."}}, + {-201212, {Category::Other, ActionRequired::Warning, "Waveform length is too small for the \"generate\" instruction in \"break\" block."}}, + {-201213, {Category::Other, ActionRequired::Warning, "Waveform subset length is too small for the \"generate\" instruction in \"break\" block."}}, + {-201214, {Category::Other, ActionRequired::Warning, "Wait duration is too small for the \"wait\" instruction in \"break\" block."}}, + {-201215, {Category::Other, ActionRequired::Warning, "Marker position specified is either too close to the end or the beginning of the waveform, or too close to another marker in the \"generate\" statement in \"break\" block."}}, + {-201216, {Category::Other, ActionRequired::Warning, "Wait until trigger instruction not allowed in a \"break\" block."}}, + {-201217, {Category::Other, ActionRequired::Warning, "Repeat until trigger instruction not allowed in a \"break\" block."}}, + {-201218, {Category::Other, ActionRequired::Warning, "If-Else block not allowed in a \"break\" block."}}, + {-201219, {Category::Other, ActionRequired::Warning, "Break block cannot be nested in other \"break\" blocks."}}, + {-201220, {Category::Other, ActionRequired::Warning, "Clear trigger instruction not allowed in a \"break\" block."}}, + {-201221, {Category::Other, ActionRequired::Warning, "Break blocks are not allowed in finite or conditional loops."}}, + {-201222, {Category::Other, ActionRequired::Warning, "Generate or finite \"wait\" instruction expected before a \"break\" block."}}, + {-201223, {Category::Other, ActionRequired::Warning, "Tristate setting must be identical for all lines in the port."}}, + {-201224, {Category::Other, ActionRequired::Warning, "Tristate setting must be applied to all lines in the port. Include all lines in the port in the Active Channel list."}}, + {-201225, {Category::Hardware, ActionRequired::Warning, "Change detection timing cannot be used on this device while Memory Mapping for Programmed IO is enabled. Set MemMapEnable to false or use a different timing type."}}, + {-201226, {Category::Other, ActionRequired::Warning, "Memory Mapping for Programmed IO Enable setting must be the same for all virtual channels in the task."}}, + {-201227, {Category::Hardware, ActionRequired::Warning, "Timing engine requested can only be used with lines that span two contiguous ports. Use the default timing engine for the specified physical channels, use some lines from two contiguous ports, or use all of the physical data channels on the device."}}, + {-201228, {Category::Other, ActionRequired::Warning, "Watchdog timer task could not be created because one of the digital output lines in the task uses memory mapping for programmed I/O. Set DO.MemMapEnable to false for all lines in the task, or do not use a watchdog timer task."}}, + {-201229, {Category::Other, ActionRequired::Warning, "Memory mapping for programmed I/O cannot be enabled for the specified lines because a watchdog timer task uses these lines. Set DO.MemMapEnable to false for all lines in the task, or do not use a watchdog timer task."}}, + {-201230, {Category::Hardware, ActionRequired::Warning, "Simulation flag of the referenced device does not match the simulation flag of the target."}}, + {-201231, {Category::Other, ActionRequired::Warning, "Local channel is not referenced by the task specified in the local channel name."}}, + {-201232, {Category::Other, ActionRequired::Warning, "Target storage was altered by another process before the changes could be saved."}}, + {-201233, {Category::Other, ActionRequired::Warning, "Object specified could not be found in storage."}}, + {-201234, {Category::Other, ActionRequired::Warning, "Storage specified is not valid or could not be found."}}, + {-201235, {Category::Other, ActionRequired::Warning, "Required object dependency was not found in storage."}}, + {-201236, {Category::Communication, ActionRequired::Warning, "Communication mode specified is not valid for the SCXI Chassis."}}, + {-201237, {Category::Hardware, ActionRequired::ImmediateAction, "Physical channel name specified is invalid. Physical channel names are of the form /, for example, dev1/ai0."}}, + {-201238, {Category::Hardware, ActionRequired::ImmediateAction, "SCXI digitization is not supported by the device or physical channel."}}, + {-201239, {Category::Hardware, ActionRequired::ImmediateAction, "SCXI multiplexed digitization is not supported by the device."}}, + {-201240, {Category::Other, ActionRequired::ImmediateAction, "Digitization mode specified is not supported by the SCXI module."}}, + {-201241, {Category::Communication, ActionRequired::Warning, "Connector 0 on the SCXI chassis communication device must be cabled to the SCXI module."}}, + {-201242, {Category::Communication, ActionRequired::ImmediateAction, "SCXI chassis communication is not supported by the device."}}, + {-201243, {Category::Other, ActionRequired::ImmediateAction, "Address specified is invalid."}}, + {-201244, {Category::Other, ActionRequired::Warning, "Module type in the source storage does not match the module type in the destination."}}, + {-201245, {Category::Other, ActionRequired::Warning, "User defined information string entered exceeds the maximum allowable string length."}}, + {-201246, {Category::Hardware, ActionRequired::Warning, "Device cannot be created in MAX because the carrier contains no cartridge. Plug in a cartridge and attempt to create the device again."}}, + {-201247, {Category::Hardware, ActionRequired::Warning, "Device cannot be created in MAX because a driver could not be found for the device. You may need to upgrade NI-DAQmx."}}, + {-201248, {Category::Hardware, ActionRequired::Warning, "Device configuration may not be changed at this time because the device is locked."}}, + {-201249, {Category::Other, ActionRequired::ImmediateAction, "Wireless security setting is invalid. Ensure that all necessary settings are specified."}}, + {-201250, {Category::Communication, ActionRequired::Warning, "Connection to the network device has timed out. The network device did not respond properly for a period of time. If timeouts persist, contact your system administrator."}}, + {-201251, {Category::Hardware, ActionRequired::Warning, "Device could not be found on the network. This usually indicates an incorrect hostname or a DNS failure."}}, + {-201252, {Category::Hardware, ActionRequired::Warning, "Device cannot be reached because no known route to the device exists on the network."}}, + {-201253, {Category::Other, ActionRequired::Warning, "Network is currently unavailable. This usually indicates an unplugged network cable, a failing network component, or an improperly configured network."}}, + {-201254, {Category::Hardware, ActionRequired::Warning, "Serial numbers of the network device do not match the serial numbers NI-DAQmx expected. Replace the original device or module and try again, or use the reconnect button in MAX to locate the original device."}}, + {-201255, {Category::Hardware, ActionRequired::Warning, "EEPROM of this device has changed since this task began. Restart the task or reset the device to refresh the EEPROM contents."}}, + {-201256, {Category::Other, ActionRequired::Warning, "Wireless channel specified is not available for this country code configuration."}}, + {-201257, {Category::Other, ActionRequired::Warning, "Country code is not configured. This setting is required to determine available wireless channels."}}, + {-201258, {Category::Hardware, ActionRequired::Warning, "Wireless configuration has been rejected by the device."}}, + {-201259, {Category::Hardware, ActionRequired::Warning, "Network configuration has been rejected by the device."}}, + {-201260, {Category::Other, ActionRequired::Warning, "Manual control attribute cannot be read when manual control is disabled. Enable manual control before reading this attribute."}}, + {-201261, {Category::Other, ActionRequired::Warning, "Sample clock rate cannot be changed at this time. When changing the Sample clock rate for a running task, one full period of the Sample clock must complete at the previous rate before NI-DAQmx can safely update the timing circuitry."}}, + {-201262, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported for the bus type of the device."}}, + {-201263, {Category::Hardware, ActionRequired::Warning, "Firmware for this device could not be downloaded. To retry downloading the firmware, unplug the device and plug it back in. If this problem continues, contact National Instruments for assistance."}}, + {-201264, {Category::Software, ActionRequired::Warning, "Scaled waveform is too large. After multiplication by the software scaling factor, the magnitude of each sample must be less than 1.0."}}, + {-201265, {Category::Hardware, ActionRequired::Warning, "Input voltage limits exceeded. Protection circuity disabled the inputs. Ensure proper voltage levels on device inputs."}}, + {-201266, {Category::Configuration, ActionRequired::ImmediateAction, "Property requested was not found. The property is either not supported by the object or has not been set."}}, + {-201267, {Category::Other, ActionRequired::ImmediateAction, "User defined information string entered is of an invalid length."}}, + {-201268, {Category::Hardware, ActionRequired::Warning, "Current limit specified cannot be applied to the channel because all current limit resources on the device have been reserved. Use a current limit setting that is already in use for another channel, or free a current limit resource by disabling current limiting on all channels that use a common current limit."}}, + {-201269, {Category::Other, ActionRequired::Warning, "Calibration operation cannot be completed unless the prototyping board is powered on."}}, + {-201270, {Category::Other, ActionRequired::Warning, "Certificate provided is not in PEM (Privacy Enhanced Mail) format. Only PEM certificates are supported."}}, + {-201271, {Category::Hardware, ActionRequired::Warning, "Product at the address provided was not the expected type. This may be due to a module being replaced or IP addresses on the network being reassigned. Reconnect to the device in MAX or delete it from your system and rediscover it."}}, + {-201272, {Category::Other, ActionRequired::ImmediateAction, "IP address provided is invalid. IP addresses must be of the form x.x.x.x where x is a number from 0 to 255."}}, + {-201273, {Category::Hardware, ActionRequired::Warning, "Network device is already in use by another host."}}, + {-201274, {Category::Hardware, ActionRequired::ImmediateAction, "Device specified is not supported in 64-bit applications. To use this device, configure your development environment to create a 32-bit application, or use a 32-bit development environment. Refer to the documentation for your development environment for more information."}}, + {-201275, {Category::Hardware, ActionRequired::Warning, "Device cannot be calibrated using the coupling specified. Calibrate using a different coupling mode."}}, + {-201276, {Category::Other, ActionRequired::Warning, "Certificate provided is not in PEM (Privacy-enhanced Electronic Mail) or DER (Distinguished Encoding Rules) format. Only PEM or DER certificates are accepted."}}, + {-201277, {Category::Hardware, ActionRequired::Warning, "Certificate file is too large to transfer to the device."}}, + {-201278, {Category::Hardware, ActionRequired::Warning, "Consecutive writes to a digital line occurred more frequently than the device can safely allow."}}, + {-201279, {Category::Other, ActionRequired::Warning, "Coupling specified conflicts with the Measurement Type of the channel. Configure the channel to use a coupling appropriate for the measurement and sensor. For example, use DC coupling for DC sensors."}}, + {-201280, {Category::Hardware, ActionRequired::ImmediateAction, "Vertical Offset is not supported by this device."}}, + {-201281, {Category::Hardware, ActionRequired::Warning, "Device does not support using more than one trigger at a time. Configure the device to use only one trigger, or use a device that supports using multiple triggers."}}, + {-201282, {Category::Hardware, ActionRequired::ImmediateAction, "Device power up failed. Try resetting the device. If the error persists contact National Instruments."}}, + {-201283, {Category::Communication, ActionRequired::ImmediateAction, "Internal serial communication bus failed. Try resetting the device. If the error persists, contact National Instruments."}}, + {-201284, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +3.3 V fuse on the device might have blown, or there might be a problem with the +3.3 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, + {-201285, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +5 V fuse on the device might have blown, or there might be a problem with the +5 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, + {-201286, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The +12 V fuse on the device might have blown, or there might be a problem with the +12 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, + {-201287, {Category::Hardware, ActionRequired::ImmediateAction, "Improper chassis power levels detected. The -12 V fuse on the device might have blown, or there might be a problem with the -12 V rail on the chassis. Try resetting the device. If the error persists, contact National Instruments."}}, + {-201288, {Category::Configuration, ActionRequired::Warning, "Property specified cannot be set while the task is reserved. Set the property prior to reserving the task or unreserve the task prior to setting the property."}}, + {-201289, {Category::Hardware, ActionRequired::Warning, "Calibration procedure for your device does not support shorted inputs. Refer to the calibration procedure for your device for more information."}}, + {-201290, {Category::Other, ActionRequired::Warning, "WEP key must be either 10 or 26 characters long."}}, + {-201291, {Category::Hardware, ActionRequired::Warning, "Pulse specifications cannot be written to a finite counter output task on this device."}}, + {-201292, {Category::Other, ActionRequired::ImmediateAction, "Sample Clock Overrun and Underflow Behaviors must be set to consistent values. Either set Overrun Behavior to Stop Task and Error and Underflow Behavior to Halt Output and Error, or set Overrun Behavior to Ignore Overruns and Underflow Behavior to Pause Until Data Available."}}, + {-201293, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, + {-201294, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, + {-201295, {Category::Hardware, ActionRequired::Warning, "Device could not complete the calibration operation. Calibration could fail for the following reasons: 1. The actual reference signal applied for calibration was different from the value you specified. Ensure that the reference signal applied is the same as the values that were input. 2. The reference signal was not stable over the period of time that the hardware was being calibrated. Ensure that the reference signal specified is free of noise and does not drift over the duration of the calibration. 3. The device is not functioning properly."}}, + {-201296, {Category::Hardware, ActionRequired::ImmediateAction, "Sample Timing Type specified is not supported for counter output tasks on this device. Change the Sample Timing Type to Implicit."}}, + {-201297, {Category::Other, ActionRequired::ImmediateAction, "Sample and hold is not supported for SCXI modules in parallel mode using digitizer channels other than 0 through 7. Disable sample and hold, use only digitizer channels 0 through 7, or use multiplexed mode."}}, + {-201298, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported in conjunction with a conflicting property."}}, + {-201299, {Category::Other, ActionRequired::Warning, "Log Only mode is only supported for buffered tasks. Either use Log and Read mode or configure the task as Finite or Continuous."}}, + {-201300, {Category::Configuration, ActionRequired::ImmediateAction, "Property specified is not supported when logging data."}}, + {-201301, {Category::Other, ActionRequired::ImmediateAction, "Reading samples is not supported in the specified logging mode. To access the samples while logging, either open the file being written to or use a different logging mode."}}, + {-201302, {Category::Other, ActionRequired::ImmediateAction, "File permission error. You do not have the correct permissions for the file."}}, + {-201303, {Category::Other, ActionRequired::ImmediateAction, "Logging to this file format is not supported by NI-DAQmx. Convert the file to TDMS version 2.0 or later, or specify a different file."}}, + {-201304, {Category::Other, ActionRequired::ImmediateAction, "File path specified is invalid, or the file is not a valid TDMS file. Specify the location of a valid TDMS file."}}, + {-201305, {Category::Other, ActionRequired::Warning, "Disk is full. Free up disk space, or specify a different file path."}}, + {-201306, {Category::Other, ActionRequired::Warning, "File specified is already opened for output by another task. Specify a different file path."}}, + {-201307, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for this measurement type. Change the measurement type in order to use logging."}}, + {-201308, {Category::Hardware, ActionRequired::ImmediateAction, "Logging is not supported for finite counter tasks on this device. Change the Sample Mode of the task to continuous."}}, + {-201309, {Category::Other, ActionRequired::Warning, "Unable to write to disk. Ensure that the file is accessible. If the problem persists, try logging to a different file."}}, + {-201310, {Category::Other, ActionRequired::Warning, "TDMS support is not installed or is too old. Use an NI-DAQmx runtime that includes TDMS support, or install a supported version of TDMS from a stand-alone installer."}}, + {-201311, {Category::Other, ActionRequired::Warning, "File specified is already opened for output. NI-DAQmx requires exclusive write access."}}, + {-201312, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for this channel and/or measurement type. Use a different measurement type or channel."}}, + {-201313, {Category::Other, ActionRequired::Warning, "Non-responsive counter detected. NI-DAQmx reset the counter. Counter timebases at the specified speed must remain periodic, otherwise the counter can become non-responsive. Use an internal timebase or an external timebase that remains periodic."}}, + {-201314, {Category::Other, ActionRequired::Warning, "Multiple Sample Clock pulses were detected within one period of the input signal. Use a Sample Clock rate that is slower than the input signal. If you are using an external Sample Clock, ensure that clock signal is within the jitter and voltage level specifications and without glitches."}}, + {-201315, {Category::Other, ActionRequired::Warning, "Events cannot be configured after writing samples to the task."}}, + {-201316, {Category::Hardware, ActionRequired::Warning, "Timebase specified is too fast for a hardware-timed single-point counter output task."}}, + {-201317, {Category::Other, ActionRequired::Warning, "Multiple counters are not allowed in a buffered counter output task."}}, + {-201318, {Category::Other, ActionRequired::Warning, "Sample Clock pulse occurred before a pulse could be generated using the previous pulse specification. Use a Sample Clock that is slower than the pulse train you want to generate."}}, + {-201319, {Category::Hardware, ActionRequired::Warning, "Sample Clock pulse occurred before the previous sample was acquired from all channels in the task. Use a Sample Clock rate that allows time for the device to acquire samples from all channels. If you are using an external Sample Clock, ensure that clock signal is within the jitter and voltage level specifications and without glitches."}}, + {-201320, {Category::Other, ActionRequired::Warning, "Retriggering can only be enabled for finite task with a Start trigger configured."}}, + {-201321, {Category::Other, ActionRequired::Warning, "Memory-mapped task detected data corruption because the memory was accessed by another program, such as a debugger or virus scanner. Disable other programs that might access this memory, or disable memory mapping for the task."}}, + {-201322, {Category::Other, ActionRequired::Warning, "Memory mapping must be the same setting for all simultaneous tasks that use channels from a single subsystem."}}, + {-201323, {Category::Other, ActionRequired::ImmediateAction, "Sample Clock timing is not supported when using a two-counter measurement method. Use a one-counter measurement method, or use a different timing type."}}, + {-201324, {Category::Other, ActionRequired::Warning, "Multiple counters are not allowed in a single counter output task when using Sample Clock timing."}}, + {-201325, {Category::Other, ActionRequired::Warning, "Module specified cannot be used as the first stage of a dual -stage analog input channel."}}, + {-201326, {Category::Other, ActionRequired::Warning, "Module specified cannot be used as the second stage of a dual-stage analog input channel."}}, + {-201327, {Category::Other, ActionRequired::Warning, "Modules specified are not valid for dual-stage analog input channels."}}, + {-201328, {Category::Other, ActionRequired::Warning, "Second stage of a dual-stage analog input channel cannot be empty."}}, + {-201329, {Category::Hardware, ActionRequired::Warning, "Data Transfer Mechanism must be DMA when Sample Mode is Hardware Timed Single Point on this device."}}, + {-201330, {Category::Other, ActionRequired::Warning, "Pulse train specifications cannot be modified while the task is running if Auto Increment Count is greater than 0"}}, + {-201331, {Category::Hardware, ActionRequired::ImmediateAction, "Memory mapping is not supported on this device for non-buffered tasks using Sample Clock timing. Disable memory mapping or change the buffer size."}}, + {-201332, {Category::Other, ActionRequired::ImmediateAction, "Logging is not supported for output tasks."}}, + {-201333, {Category::Other, ActionRequired::Warning, "Required scaling parameter has not been specified."}}, + {-201334, {Category::Other, ActionRequired::Warning, "Linear scaling requires unique electrical and physical values."}}, + {-201335, {Category::Other, ActionRequired::Warning, "Table scaling requires the same number of electrical values as physical values."}}, + {-201336, {Category::Other, ActionRequired::ImmediateAction, "Bridge scales are not supported for this measurement type. Use a custom scale for additional scaling."}}, + {-201337, {Category::Hardware, ActionRequired::Warning, "Device names must be 254 characters or shorter."}}, + {-201338, {Category::Other, ActionRequired::Warning, "Shunt resistor location specified is not valid for this calibration procedure."}}, + {-201339, {Category::Hardware, ActionRequired::Warning, "External timebase rate specified is too fast for this device. Reduce the timebase rate to less than 1/4 the device oscillator frequency."}}, + {-201340, {Category::Hardware, ActionRequired::Warning, "Firmware on the device is out of date. Use Measurement & Automation Explorer to update the device firmware."}}, + {-201341, {Category::Other, ActionRequired::Warning, "Accessory cannot be connected while the task runs. The accessory uses different scaling or is unsupported. Ensure the accessory is seated properly and restart the task."}}, + {-201342, {Category::Other, ActionRequired::Warning, "Unsupported accessory is connected to the module. Insert a supported accessory and restart the task."}}, + {-201343, {Category::Hardware, ActionRequired::Warning, "Overcurrent detected in the power supply for the accessory connected to the module. Check the external wiring and ensure the accessory, if present, is properly seated. Then, reset the module using DAQmx Reset Device or Measurement & Automation Explorer."}}, + {-201344, {Category::Configuration, ActionRequired::Warning, "ADC Timing Mode property was set to Custom, but the Custom Timing Mode property was not set. Specify a value for Custom Timing Mode or change the ADC Timing Mode."}}, + {-201345, {Category::Configuration, ActionRequired::ImmediateAction, "Custom Timing Mode property is not supported unless the ADC Timing Mode property is set to Custom. Set ADC Timing Mode to Custom before setting Custom Timing Mode."}}, + {-201346, {Category::Hardware, ActionRequired::Warning, "Synchronization Type cannot be Slave without configuring the device to use an external Sync Pulse. Set the Synchronization Type to Master or configure the device to use an external Sync Pulse."}}, + {-201347, {Category::Hardware, ActionRequired::Warning, "Sync Pulse was not detected before attempting to start the task. Ensure you connected the source of the Sync Pulse to the device."}}, + {-201348, {Category::Other, ActionRequired::Warning, "Retriggered counter tasks do not support trigger skew correction. Set the Synchronization Type to Default or disable retriggering."}}, + {-201349, {Category::Hardware, ActionRequired::Warning, "Multidevice tasks using the specified devices do not support a Start Trigger and Reference Trigger from different devices. Using triggers from different devices can cause unwanted latency or incorrect behavior. Use triggers from a single device or manually synchronize the devices."}}, + {-201350, {Category::Hardware, ActionRequired::Warning, "Synchronization Type cannot be Slave unless you configure the device to use a trigger with an external source. Configure an external trigger or set Synchronization Type to None or Master."}}, + {-201351, {Category::Hardware, ActionRequired::ImmediateAction, "Memory mapping is not supported by this device for on-demand acquisitions."}}, + {-201352, {Category::Configuration, ActionRequired::Warning, "Analog bus line(s) in use by another device. Verify other devices are not currently using the analog bus line(s). If you intend to share the line(s) between devices, ensure the Analog Bus Sharing Enabled property is True for all shared channels."}}, + {-201353, {Category::Other, ActionRequired::ImmediateAction, "Analog bus needed by the current operation is invalid. Verify that all carriers connected using expansion bridge(s) are functioning properly."}}, + {-201354, {Category::Hardware, ActionRequired::Warning, "Cards specified cannot be used to create a SwitchBlock device. Use the current set of cards as single-card devices, or use a different set of cards to create a valid combination."}}, + {-201355, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding the power limit for the carrier. To recover, call DAQmx Disconnect All, or reset the device. The device can be reset either programmatically or by using Measurement & Automation Explorer. Refer to your device documentation for more information."}}, + {-201356, {Category::Other, ActionRequired::ImmediateAction, "Topology specified is not supported by this card."}}, + {-201357, {Category::Hardware, ActionRequired::Warning, "Device must consist of at least one card."}}, + {-201358, {Category::Hardware, ActionRequired::Warning, "Simulation flag must be the same for the cards, devices, and carrier."}}, + {-201359, {Category::Hardware, ActionRequired::Warning, "Multicard devices must consist of cards contained in the same carrier."}}, + {-201360, {Category::Other, ActionRequired::ImmediateAction, "Carrier slot number specified for the card is invalid."}}, + {-201361, {Category::Hardware, ActionRequired::Warning, "Sync pulse cannot originate from the specified device for this combination of devices."}}, + {-201362, {Category::Hardware, ActionRequired::Warning, "Analog reference trigger and sync pulse must come from the same device."}}, + {-201363, {Category::Other, ActionRequired::Warning, "Minimum and maximum values specified are outside the bounds of the specified physical values for the table. Change the table or the minimum and maximum value appropriately."}}, + {-201364, {Category::Hardware, ActionRequired::Warning, "Trigger detected that could not be acted upon by the device. Slow down your trigger source."}}, + {-201365, {Category::Other, ActionRequired::Warning, "Onboard regeneration cannot be used when there are more than 16 channels in the task. Reduce the number of channels in the task or set Use Only Onboard Memory to false."}}, + {-201366, {Category::Other, ActionRequired::Warning, "Reference Clock signal was not found at the specified source."}}, + {-201367, {Category::Hardware, ActionRequired::ImmediateAction, "Filtering or digital synchronization of an internal signal is not supported by the device."}}, + {-201368, {Category::Hardware, ActionRequired::ImmediateAction, "Invalid number of calibration adjustment points provided. Use DAQmx Adjust Calibration to provide calibration points for the device."}}, + {-201369, {Category::Hardware, ActionRequired::Warning, "Hostname specified is in use by another device."}}, + {-201370, {Category::Hardware, ActionRequired::Warning, "IP address specified is in use by another device."}}, + {-201371, {Category::Hardware, ActionRequired::Warning, "Multicast DNS service instance specified is in use by another device."}}, + {-201372, {Category::Other, ActionRequired::Warning, "Open thermocouple condition detected on thermocouple channel(s) you are attempting to calibrate. Ensure thermocouples are properly connected and functioning before performing lead offset nulling calibration."}}, + {-201373, {Category::Other, ActionRequired::Warning, "Output peer-to-peer streaming with the Stream statement is not allowed in a script with If Else, Repeat Until, or Break statements."}}, + {-201374, {Category::Other, ActionRequired::Warning, "Self-calibration failed. Performing an external calibration may fix the problem."}}, + {-201375, {Category::Hardware, ActionRequired::ImmediateAction, "Thermocouple lead offset nulling calibration is not supported by the specified channels. Make sure the device supports thermocouple lead offset nulling calibration. Make sure all channels are thermocouple channels. Make sure open thermocouple detection is enabled. Set skip unsupported channels to true."}}, + {-201376, {Category::Hardware, ActionRequired::ImmediateAction, "Data read from the EEPROM on the accessory attached to the device is invalid. Verify that any accessories configured with this device are connected. If the problem continues, contact National Instruments technical support. The device might need to be recalibrated or repaired by NI."}}, + {-201377, {Category::Hardware, ActionRequired::Warning, "Device is unusable while firmware update is in progress."}}, + {-201378, {Category::Other, ActionRequired::Warning, "Firmware version requested was not found on the system."}}, + {-201379, {Category::Hardware, ActionRequired::ImmediateAction, "Network devices are not supported on this platform."}}, + {-201380, {Category::Hardware, ActionRequired::ImmediateAction, "The requested operation is not supported by this device."}}, + {-201381, {Category::Communication, ActionRequired::Warning, "One or more connections to external power rails are drawing too much power. The operation has been aborted to prevent the device from using too much power. Remove the connection(s) to the external power rails and restart your task."}}, + {-201382, {Category::Other, ActionRequired::Warning, "The file write size specified is not evenly divisible by the volume sector size."}}, + {-201383, {Category::Other, ActionRequired::Warning, "The file write size specified is too large. Performance can suffer if the file write size is larger than one-fourth the size of the buffer length."}}, + {-201384, {Category::Other, ActionRequired::ImmediateAction, "The simulated C Series module is not supported on this simulated chassis."}}, + {-201385, {Category::Other, ActionRequired::Warning, "Self-calibration failed to converge. Performing an external calibration may fix the problem."}}, + {-201386, {Category::Other, ActionRequired::Warning, "Self-calibration failed. Contact National Instruments technical support at ni.com/support."}}, + {-201387, {Category::Other, ActionRequired::Warning, "The DAQmx Adjust DSA AI Calibration with Gain and Coupling function/VI was executed more than once for the same combination of gain and coupling settings. Call the DAQmx Adjust DSA AI Calibration with Gain and Coupling function/VI only once for the following combination of gain and coupling settings:"}}, + {-201388, {Category::Hardware, ActionRequired::Warning, "Network device is not reserved for this host."}}, + {-201389, {Category::Communication, ActionRequired::Warning, "Modules were inserted or removed while the connection to the network device was lost. Reset the chassis using DAQmx Reset Device or Measurement & Automation Explorer and wait for the modules to be redetected before proceeding."}}, + {-201390, {Category::Communication, ActionRequired::Warning, "Connection to the network device was lost. This can indicate an unplugged network cable, a failing network component, or a network device that is reserved by another host."}}, + {-201391, {Category::Hardware, ActionRequired::Warning, "Device could not complete calibration because calibration was not performed for all gain and coupling settings. Use DAQmx Adjust DSA AI Calibration function/VI to calibrate for the following gain and coupling settings:"}}, + {-201392, {Category::Hardware, ActionRequired::Warning, "Device does not support configuring tristate logic level in software."}}, + {-201393, {Category::Other, ActionRequired::ImmediateAction, "Tristate logic level is not supported on output only lines."}}, + {-201394, {Category::Hardware, ActionRequired::Warning, "Tristate logic level is only port configurable for this device."}}, + {-201395, {Category::Other, ActionRequired::Warning, "The task is not buffered or has no channels. If the task is not buffered, use the scalar version of this function. If the task has no channels, add one to the task."}}, + {-201396, {Category::Other, ActionRequired::ImmediateAction, "Filter Delay Removal is not supported when an analog start trigger is in use. Change Filter Delay Removal to false when using an analog start trigger. Refer to Filter Delay Removal in your DSA documentation for more details."}}, + {-201397, {Category::Hardware, ActionRequired::Warning, "Change detection has detected interrupts occurring at a higher rate than can be handled. The change detection task has been stopped to prevent the device from being reset because of this condition. If this is the result of unwanted noise on a digital signal, use a digital filter to eliminate unwanted digital transitions."}}, + {-201398, {Category::Configuration, ActionRequired::ImmediateAction, "Requested value is not supported for this property. If you did not directly set this property to the unsupported value, check other properties that you have set, as they can influence the scaled value of this property."}}, + {-201399, {Category::Hardware, ActionRequired::Warning, "Multi-device timed DIO tasks require all modules to be the same type. You can select either all your serial digital modules or all your parallel digital modules in this task."}}, + {-201400, {Category::Other, ActionRequired::Warning, "Failed to reserve file size. File size pre-allocation might require you to run the application with administrator privileges. If the operating system uses User Account Control, configure this control properly."}}, + {-201401, {Category::Hardware, ActionRequired::Warning, "Retrieving properties from the network device failed. Make sure the device is connected."}}, + {-201402, {Category::Other, ActionRequired::Warning, "The samples per file specified is not evenly divisible by the file write size. Either change the samples per file or modify the file write size. If not explicitly set, the file write size can be inferred from the buffer size, which is based on the sample rate."}}, + {-201403, {Category::Other, ActionRequired::Warning, "You have specified a new file path but did not call DAQmx Start New File. To change the file path while logging, configure Logging.SampsPerFile or call DAQmx Start New File."}}, + {-201404, {Category::Hardware, ActionRequired::Warning, "One or more cards for your NI SwitchBlock device have been inserted and/or removed while your system was powered on. This can lead to unexpected behavior. Restart your system."}}, + {-201405, {Category::Other, ActionRequired::Warning, "An expansion bridge has been inserted or removed while your system is powered on. This can lead to unexpected behavior. Restart your system."}}, + {-201406, {Category::Other, ActionRequired::Warning, "The 5 V fuse on your NI SwitchBlock carrier is blown. Refer to your documentation for help with replacing the fuse."}}, + {-201407, {Category::Configuration, ActionRequired::ImmediateAction, "Specified property is not supported unless Sample Mode is set to Hardware Timed Single Point."}}, + {-201408, {Category::Hardware, ActionRequired::Warning, "Averaging of data is only supported when the Sample Mode is set to Hardware Timed Single Point and the Sample Clock source is external to the device."}}, + {-201409, {Category::Hardware, ActionRequired::Warning, "The requested delay from Sample Clock is out of range for a hardware-timed single-point acquisition."}}, + {-201410, {Category::Hardware, ActionRequired::Warning, "The requested Sample Clock rate is too fast for hardware-timed single point. Consider decreasing the Sample Clock rate, increasing the convert rate, or decreasing the delay from the Sample Clock. If using an external Sample Clock source, you might also decrease the number of samples to average."}}, + {-201411, {Category::Communication, ActionRequired::Warning, "The accessory attached to the device does not support connections. Attach an accessory that supports connections."}}, + {-201412, {Category::Hardware, ActionRequired::Warning, "The specified accessory channels are not present on this device. The accessory channels should be specified for the device in the calibration session."}}, + {-201413, {Category::Hardware, ActionRequired::Warning, "There is no accessory attached to the device."}}, + {-201414, {Category::Communication, ActionRequired::ImmediateAction, "The specified connection is not supported on the attached accessory. Refer to your accessory documentation for supported connections."}}, + {-201415, {Category::Other, ActionRequired::ImmediateAction, "The module is not supported by the NI 9163."}}, + {-201416, {Category::Hardware, ActionRequired::Warning, "Switch device has been disabled to prevent it from exceeding its simultaneous relay drive limit. To recover, disconnect a relay or channel."}}, + {-201417, {Category::Other, ActionRequired::Warning, "Timing is configured without supplying a clock signal. Either supply an external clock or use an internal timebase."}}, + {-201418, {Category::Hardware, ActionRequired::Warning, "Device firmware has not been updated because the firmware file uploaded is corrupt or is not a valid firmware image file. Please verify that the file specified is a valid National Instruments firmware image."}}, + {-201419, {Category::Hardware, ActionRequired::Warning, "Device firmware has not been updated because the firmware file uploaded is for a different type of device or an older revision of this device. Please verify that the firmware file is correct for this device."}}, + {-201420, {Category::Hardware, ActionRequired::Warning, "The network device is currently reserved by another host. Specify whether you want to override the other host's reservation."}}, + {-201421, {Category::Configuration, ActionRequired::Warning, "The accessory attached to the device does not support this property."}}, + {-201422, {Category::Hardware, ActionRequired::ImmediateAction, "Your SwitchBlock carrier contains one or more cards with power characteristics unknown to the driver. To protect the hardware from overheating, all devices within your carrier are disallowed from drawing power. Upgrade your software driver to the latest version or shutdown your system and remove any unknown or invalid card(s)."}}, + {-201423, {Category::Communication, ActionRequired::Warning, "Communication with the chassis has been interrupted. Check the cabling and/or the wireless signal to the chassis. Then reset the chassis using DAQmx Reset Device or Device Reset in MAX to re-establish communication."}}, + {-201424, {Category::Hardware, ActionRequired::Warning, "The multidevice task cannot be synchronized in its current configuration."}}, + {-201425, {Category::Hardware, ActionRequired::Warning, "The multidevice task does not have a method for synchronizing timing that is compatible with all of the included devices."}}, + {-201426, {Category::Hardware, ActionRequired::Warning, "One or more devices do not support multidevice tasks."}}, + {-201427, {Category::Hardware, ActionRequired::ImmediateAction, "The specified device is not supported within the NI-DAQmx API."}}, + {-201428, {Category::Other, ActionRequired::Warning, "More than one sync pulse was detected. For proper operation, only a single sync pulse signal can be provided to all DSA modules in a task."}}, + {-201429, {Category::Other, ActionRequired::Warning, "Start trigger delay is not available when a C Series Delta-Sigma module or a Reference Clock module is in the task."}}, + {-201430, {Category::Other, ActionRequired::ImmediateAction, "You have requested an invalid number of reference voltages to write. Ensure the number of values to write is the same as the number of entries in the array."}}, + {-201431, {Category::Other, ActionRequired::Warning, "Calibration offset adjustment has failed because the wrong channel was selected. Check the module calibration procedure to decide which channel to use for the calibration offset adjustment."}}, + {-201432, {Category::Hardware, ActionRequired::Warning, "Calibration adjustment cannot be completed on a device performing different types of measurements (for instance, voltage and current measurements). Make sure only one measurement type is being calibrated in each calibration session."}}, + {-201433, {Category::Other, ActionRequired::Warning, "Write failed because a watchdog timer task expired and changed the direction of the lines to tristate after the digital output task was committed. To avoid this, unreserve and recommit the digital output task after the watchdog timer expiration has been cleared to reconfigure the lines to output."}}, + {-201434, {Category::Other, ActionRequired::Warning, "Configuration failed because the task tried to change the direction of a line while the watchdog timer is expired. Clear the expiration of the watchdog timer task before trying to change the direction of any line, even if the line is not watched by the watchdog timer task."}}, + {-201435, {Category::Other, ActionRequired::Warning, "No samples provided to DAQmx Write to initialize buffered generation."}}, + {-201436, {Category::Hardware, ActionRequired::Warning, "Unable to route signals through the analog bus that are composed of different wire modes. Please disconnect any devices of different wire modes from the analog bus before routing this device through the analog bus."}}, + {-201437, {Category::Hardware, ActionRequired::Warning, "The timeout value specified exceeds the maximum timeout value supported by this device."}}, + {-201438, {Category::Hardware, ActionRequired::ImmediateAction, "The device was rebooted after a watchdog timer expired due to unresponsive firmware or hardware components. A watchdog timer that times out can cause digital output lines to change state. To clear this error, reset or power cycle the device. Please also contact National Instruments technical support."}}, + {-201439, {Category::Other, ActionRequired::Warning, "Retriggering is not allowed for finite Sample Clock-timed counter output tasks. Reconfigure the task to use a different sample timing type or disable retriggering."}}, + {-201440, {Category::Hardware, ActionRequired::Warning, "Neither an external reference clock nor a sample clock timebase has been specified. For multi-device synchronization, you must specify the sync pulse source and either an external reference clock or sample clock timebase. Refer to the device documentation for details on multi-device synchronization."}}, + {-201441, {Category::Other, ActionRequired::Warning, "On an NI 449x, specify either the sync pulse source or the sample clock timebase source but not both."}}, + {-201442, {Category::Other, ActionRequired::Warning, "Cannot measure two-edge separation with both the first and second terminal set to the same signal and both the first and second edge set to the same edge. To measure the period of a signal, use a counter input period task. Otherwise, change one of the terminals to a different signal, or change one of the edges to be different from the other."}}, + {-201443, {Category::Other, ActionRequired::Warning, "FREQOUT counter cannot generate the desired frequency. The 4-bit FREQOUT counter can divide the 20 MHz, 10 MHz (20 MHz / 2), or 100 kHz (20 MHz / 200) timebase by a number between 1 and 16. Choose a frequency within this range."}}, + {-201444, {Category::Hardware, ActionRequired::Warning, "Multidevice tasks cannot use the on-demand sample timing type. Configure timing to synchronize and acquire samples from multiple devices."}}, + {-201445, {Category::Other, ActionRequired::Warning, "You must configure strain gage channels for each arm of the rosette. Specify the strain gage channel names."}}, + {-201446, {Category::Other, ActionRequired::Warning, "Each tee rosette requires two physical channels. Make sure the physical channel list contains two physical channels for each tee rosette."}}, + {-201447, {Category::Other, ActionRequired::Warning, "The selected rosette requires three physical channels. Make sure the physical channel list contains three physical channels for each rosette."}}, + {-201448, {Category::Other, ActionRequired::Warning, "No rosette measurements specified. Please specify one or more rosette measurements."}}, + {-201449, {Category::Communication, ActionRequired::Warning, "The requested port connection string is not in a valid format. The valid format is /port (e.g. Dev1/port2)."}}, + {-201450, {Category::Communication, ActionRequired::Warning, "The requested device does not support cDAQ Sync connections."}}, + {-201451, {Category::Other, ActionRequired::Warning, "The operation cannot be completed on only one port. Two ports are required."}}, + {-201452, {Category::Other, ActionRequired::Warning, "The operation has been aborted."}}, + {-201453, {Category::Communication, ActionRequired::Warning, "Cannot find disconnected connections between devices in different states (present and simulated). Please check requested set."}}, + {-201454, {Category::Other, ActionRequired::Warning, "Carrier physically unable to contain the declared cards."}}, + {-201455, {Category::Communication, ActionRequired::Warning, "cDAQ Sync connections are not allowed between physical and NI-DAQmx simulated devices. Use cDAQ Sync for either only physical devices or only NI-DAQmx simulated devices."}}, + {-201456, {Category::Communication, ActionRequired::Warning, "The devices attempting to be configured for cDAQ Sync do not have a common sync connection strategy."}}, + {-201457, {Category::Communication, ActionRequired::Warning, "cDAQ Sync cannot add a connection from a port to the same port. Add a connection to a different port instead."}}, + {-201458, {Category::Other, ActionRequired::ImmediateAction, "Specified timeout value is not supported. Set the timeout to to a value > 0 or -1 (wait infinitely)."}}, + {-201459, {Category::Communication, ActionRequired::Warning, "Specified devices do not support cDAQ Sync connections. Please select a different set of devices."}}, + {-201460, {Category::Communication, ActionRequired::Warning, "No devices scanned support cDAQ Sync connections. Requesting an empty string only scans physical devices (present and offline) and ignores NI-DAQmx simulated devices. Please check your hardware configuration."}}, + {-201461, {Category::Hardware, ActionRequired::Warning, "Reference clock is not present. This task requires a reference clock to be present before configuring hardware."}}, + {-201462, {Category::Communication, ActionRequired::Warning, "The attempted connection is not between an output port and an input port. Port 0 is input only. All other ports are output only. Please check your connection and try again."}}, + {-201463, {Category::Other, ActionRequired::Warning, "The requested ports are not reciprocal. Make sure that the ports point at each other."}}, + {-201464, {Category::Hardware, ActionRequired::Warning, "A hardware fault has occurred. Please contact National Instruments technical support. To clear the fault, power cycle the device."}}, + {-201465, {Category::Hardware, ActionRequired::Warning, "Cannot perform auto-configure on offline devices. Please remove offline devices from the requested set."}}, + {-201466, {Category::Communication, ActionRequired::Warning, "Cannot auto-configure connections between devices in different states (present, offline, and simulated). Please check requested set."}}, + {-201467, {Category::Configuration, ActionRequired::ImmediateAction, "Associated channels have conflicting properties. Make the conflicting property values consistent across channels to fix the error."}}, + {-201468, {Category::Hardware, ActionRequired::Warning, "The requested cDAQ Sync device cannot be configured because the master timebase is not present. Tasks containing cDAQ Sync devices that export or import a timebase must be committed in cascading order from the source to the destination. Use DAQmx Control Task to commit the master timebase source task prior to committing or starting a slave task."}}, + {-201469, {Category::Other, ActionRequired::Warning, "You selected a different digitizer and communicator for an SCXI module that is in multiplexed mode. Configure the SCXI module with the digitizer set to the same mode as the chassis communicator in MAX."}}, + {-201470, {Category::Other, ActionRequired::ImmediateAction, "Invalid calibration adjustment point(s) provided. Use DAQmx Get Calibration Adjustment Points to retrieve valid adjustment values."}}, + {-201471, {Category::Hardware, ActionRequired::Warning, "The physical channel string contains multiple devices. You can include multiple physical channels on a single device (for example, \"Dev1/ao0:3\") but not multiple physical channels on multiple devices (for example, \"Dev1/ao0:3, Dev2/ao2\")."}}, + {-201472, {Category::Other, ActionRequired::Warning, "You must specify exactly one timestamp channel for a Navigation With Timestamp read call."}}, + {-201474, {Category::Hardware, ActionRequired::ImmediateAction, "The device is not supported on the local system, is incompatible, or the installation is corrupt. Install and/or repair the appropriate driver."}}, + {-201475, {Category::Hardware, ActionRequired::Warning, "Auxiliary power not detected. Verify that the auxiliary power source is properly connected to the device and that the auxiliary input fuse has not blown. Refer to the NI-DCPower documentation for information about replacing the input fuse."}}, + {-201476, {Category::Other, ActionRequired::Warning, "Task reservation failed because a watchdog timer task is reserved. Unreserve or commit the watchdog timer task to reserve a new task."}}, + {-201477, {Category::Other, ActionRequired::Warning, "Reservation of watchdog timer task failed because another task is reserved or running. Stop and unreserve all other tasks before reserving a watchdog timer task."}}, + {-201478, {Category::Other, ActionRequired::Warning, "Watchdog timer task has expired. Reset the chassis to resume normal operation."}}, + {-201479, {Category::Configuration, ActionRequired::Warning, "The attribute/property ArmStart.Term cannot be queried when a software arm start trigger is configured because it cannot be exported to any terminal. Configure an external arm start trigger and query the desired attribute/property."}}, + {-201480, {Category::Hardware, ActionRequired::Warning, "There is already a session open to the device from another process, or a calibration session is open. You must close the open session, exit the application holding the device, or release the device in the Soft Front Panel."}}, + {-201481, {Category::Other, ActionRequired::Warning, "If you specify an expiration state for any line on an NI 9401 in the range of line 0:3 or line 4:7, you must specify an expiration state for every line in that range."}}, + {-201482, {Category::Other, ActionRequired::Warning, "The current number of channels chosen for calibration is incorrect. You must specify all channels for calibration."}}, + {-201483, {Category::Hardware, ActionRequired::Warning, "The selected master for the configured multi-device task is not able to export signals. Make sure that the first channel in the task is from a device on a chassis that has an NI 9469 capable of exporting signals to the slave devices. If you have any delta-sigma modules in your task, at least one must be in the master chassis. For time-based synchronization, ensure all the chassis in the task are in the same synchronization network."}}, + {-201484, {Category::Hardware, ActionRequired::Warning, "The current task contains channels from both delta-sigma and non delta-sigma devices. Make sure the first channel in the task is from a delta-sigma device and that it is located in a chassis that is able to share signals with its slave chassis through an NI 9469, or the task is running on devices that support time-based network synchronization."}}, + {-201485, {Category::Other, ActionRequired::Warning, "Measured data size does not match reference data size. The module acquires data and receives reference data in different functions. Please make sure these calibration functions are executed the same number of times during calibration."}}, + {-201486, {Category::Other, ActionRequired::Warning, "You must call DAQmx Setup Calibration first in order to calibrate this module."}}, + {-201487, {Category::Hardware, ActionRequired::Warning, "You must disable automatic firmware updates before attempting to manually update the firmware of your device."}}, + {-201488, {Category::Hardware, ActionRequired::Warning, "Firmware update failed. System attempted to update a different device than what you specified. Try updating again."}}, + {-201489, {Category::Other, ActionRequired::ImmediateAction, "Invalid state for firmware update. You must call the firmware update action after calling beginFirmwareAction and before calling disposeFirmwareAction."}}, + {-201490, {Category::Other, ActionRequired::Warning, "Firmware version being installed is older than the currently installed firmware."}}, + {-201491, {Category::Other, ActionRequired::Warning, "Firmware version being installed matches the currently installed version."}}, + {-201492, {Category::Hardware, ActionRequired::ImmediateAction, "Attempted operation is not supported on simulated devices."}}, + {-201493, {Category::Hardware, ActionRequired::Warning, "Shunt calibration failed. The calculated gain adjust is out of range. Ensure that the shunt calibration terminals are connected properly and that the shunt resistance and shunt element location settings match how the hardware is wired."}}, + {-201494, {Category::Hardware, ActionRequired::Warning, "Device does not support simultaneous calibration of multiple channels. Calibrate channels one channel at a time passing individual channels to different invocations of DAQmx Adjust Calibration."}}, + {-201495, {Category::Hardware, ActionRequired::Warning, "Device calibration requires all ranges to be calibrated for a single channel. Calibrate the ranges specified in the procedure."}}, + {-201496, {Category::Other, ActionRequired::Warning, "Voltage settings not calibrated. Ensure all voltage settings are calibrated before trying to calibrate bridge settings."}}, + {-201497, {Category::Other, ActionRequired::Warning, "You must run setupCalibration before running getCalDataPoints."}}, + {-201498, {Category::Hardware, ActionRequired::Warning, "AI channels on this device do not support using AC coupling while not using IEPE excitation. Enable IEPE excitation or set the coupling mode to DC."}}, + {-201499, {Category::Other, ActionRequired::Warning, "The selected calibration mode cannot query calibration data points. Make sure you follow the calibration procedure."}}, + {-201500, {Category::Other, ActionRequired::Warning, "The channel in calibration adjustment did not call calibration setup. Make sure you call calibration setup before calibration adjustment for this channel."}}, + {-201501, {Category::Other, ActionRequired::Warning, "The reference value input of calibration adjustment is out of range."}}, + {-201502, {Category::Configuration, ActionRequired::Warning, "DAC Offset Voltage Value is not set. When the DAC Offset Voltage Source property for a channel is set to External, the DAC Offset Voltage Value property must be set. Set the DAC Offset Voltage Value property so the value matches the offset voltage source connected to your device. Alternatively, use the internal DAC offset voltage source available on the device."}}, + {-209800, {Category::Hardware, ActionRequired::Warning, "DAQmx Read did not complete before the arrival of the next sample clock or change detection event which indicates that your program is not keeping up with the hardware clock or the external change event. For tasks using sample clock timing, slow down the hardware clock or else change your application so that it can keep up with the hardware clock. For tasks using change detection timing, decrease the frequency of your event or else change your application so that it can keep up with the change event."}}, + {200079, {Category::Other, ActionRequired::Warning, "When specifying \"No Change\" as a watchdog state on a DSA channel, the actual behavior is determined by the idle output behavior configured by the last task run on the module."}}, + {-209801, {Category::Hardware, ActionRequired::Warning, "DAQmx Write did not complete before the arrival of the next sample clock which indicates that your program is not keeping up with the hardware clock. Slow down the hardware clock or else change your application so that it can keep up with the hardware clock."}}, + {-209802, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock detected one or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates that your program is not keeping up with the sample clock. To remove this error, slow down the sample clock, or else change your application so that it can keep up with the sample clock. Alternatively, consider setting the Convert Errors to Warnings property to true and then handling the warning case appropriately."}}, + {-209803, {Category::Configuration, ActionRequired::ImmediateAction, "DAQmx Wait for Next Sample Clock detected 3 or more missed sample clocks since the last call to Wait for Next Sample Clock which indicates your program is not keeping up with the sample clock, and data was subsequently lost before it could be read by the application. To remove this error, slow down the sample clock. Consider restructuring the application so you can call DAQmx Read more often. Setting the Convert Error to Warning property to True will not eliminate the error because the data is lost."}}, + {-209805, {Category::Other, ActionRequired::Warning, "Task with counter output detected a sample clock before the corresponding DAQmx Write was completed. This may have occurred because the frequency of the counter output is too low for the given sample clock rate. A full output period must complete before new data can be written. To avoid this problem make sure that the counter output frequency is significantly higher than the sample clock rate."}}, + {-200831, {Category::Other, ActionRequired::Warning, "On Demand Simultaneous Analog Output Enable cannot be set to true unless Sample Timing Type is On Demand."}}, + {-201045, {Category::Hardware, ActionRequired::ImmediateAction, "Device connector number specified is invalid. Enter a valid connector number."}}, + {-201116, {Category::Hardware, ActionRequired::ImmediateAction, "Hardware timed non-buffered analog output is not supported on this device."}}, }; } \ No newline at end of file diff --git a/driver/ni/factory.cpp b/driver/ni/factory.cpp index 98b6f766ef..d185014f14 100644 --- a/driver/ni/factory.cpp +++ b/driver/ni/factory.cpp @@ -12,11 +12,11 @@ #include "nlohmann/json.hpp" std::pair, bool> ni::Factory::configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ) { LOG(INFO) << "[NI Factory ] Configuring task: " << task.key << std::endl; - if(task.type == "ni_scanner") // TODO change to ni_scan_task + if (task.type == "ni_scanner") // TODO change to ni_scan_task return {ni::ScannerTask::configure(ctx, task), true}; if (task.type == "ni_analog_read" || task.type == "ni_digital_read") return {ni::ReaderTask::configure(ctx, task), true}; @@ -29,51 +29,51 @@ std::pair, bool> ni::Factory::configureTask( // creates initial task (scanner) -std::vector > > +std::vector > > ni::Factory::configureInitialTasks( - const std::shared_ptr &ctx, - const synnax::Rack &rack -){ + const std::shared_ptr &ctx, + const synnax::Rack &rack +) { std::cout << "Configuring initial tasks" << std::endl; // generate task list std::vector > > tasks; // check for existing tasks - auto [existing, err] = rack.tasks.list(); - if(err){ + auto [existing, err] = rack.tasks.list(); + if (err) { LOG(ERROR) << "[ni] Failed to list existing tasks: " << err; return tasks; } bool hasScanner = false; - for(const auto &t: existing){ - if(t.type == "ni_scanner"){ + for (const auto &t: existing) { + if (t.type == "ni_scanner") { LOG(INFO) << "[ni] found existing scanner task with key: " << t.key << - " skipping creation." << std::endl; + " skipping creation." << std::endl; hasScanner = true; } } - if(!hasScanner){ + if (!hasScanner) { std::cout << "Creating niScanner task" << std::endl; auto sy_task = synnax::Task( - rack.key, - "ni scanner", - "ni_scanner", - "" + rack.key, + "ni scanner", + "ni_scanner", + "" ); auto err = rack.tasks.create(sy_task); LOG(INFO) << "[ni] created scanner task with key: " << sy_task.key; - if(err){ + if (err) { LOG(ERROR) << "[ni] Failed to create scanner task: " << err; return tasks; } auto [task, ok] = configureTask(ctx, sy_task); - if(!ok){ + if (!ok) { LOG(ERROR) << "[ni] Failed to configure scanner task: " << err; return tasks; } - tasks.emplace_back(std::pair > ({sy_task, std::move(task)})); + tasks.emplace_back(std::pair >({sy_task, std::move(task)})); } return tasks; } \ No newline at end of file diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 4bc814b482..1d78bfeb3c 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -11,36 +11,36 @@ #include const std::map ni::UNITS_MAP = { - {"Volts", DAQmx_Val_Volts}, - {"Amps", DAQmx_Val_Amps}, - {"DegF", DAQmx_Val_DegF}, - {"DegC", DAQmx_Val_DegC}, - {"DegR", DAQmx_Val_DegR}, - {"Kelvins", DAQmx_Val_Kelvins}, - {"Strain", DAQmx_Val_Strain}, - {"Ohms", DAQmx_Val_Ohms}, - {"Hz", DAQmx_Val_Hz}, - {"Seconds", DAQmx_Val_Seconds}, - {"Meters", DAQmx_Val_Meters}, - {"Inches", DAQmx_Val_Inches}, - {"Degrees", DAQmx_Val_Degrees}, - {"Radians", DAQmx_Val_Radians}, - {"g", DAQmx_Val_g}, - {"MetersPerSecondSquared", DAQmx_Val_MetersPerSecondSquared}, - {"Newtons", DAQmx_Val_Newtons}, - {"Pounds", DAQmx_Val_Pounds}, - {"KilogramForce", DAQmx_Val_KilogramForce}, - {"PoundsPerSquareInch", DAQmx_Val_PoundsPerSquareInch}, - {"Bar", DAQmx_Val_Bar}, - {"Pascals", DAQmx_Val_Pascals}, - {"VoltsPerVolt", DAQmx_Val_VoltsPerVolt}, - {"mVoltsPerVolt", DAQmx_Val_mVoltsPerVolt}, - {"NewtonMeters", DAQmx_Val_NewtonMeters}, - {"InchOunces", DAQmx_Val_InchOunces}, - {"InchPounds", DAQmx_Val_InchPounds}, - {"FootPounds", DAQmx_Val_FootPounds}, - {"Strain", DAQmx_Val_Strain}, - {"FromTEDS", DAQmx_Val_FromTEDS} + {"Volts", DAQmx_Val_Volts}, + {"Amps", DAQmx_Val_Amps}, + {"DegF", DAQmx_Val_DegF}, + {"DegC", DAQmx_Val_DegC}, + {"DegR", DAQmx_Val_DegR}, + {"Kelvins", DAQmx_Val_Kelvins}, + {"Strain", DAQmx_Val_Strain}, + {"Ohms", DAQmx_Val_Ohms}, + {"Hz", DAQmx_Val_Hz}, + {"Seconds", DAQmx_Val_Seconds}, + {"Meters", DAQmx_Val_Meters}, + {"Inches", DAQmx_Val_Inches}, + {"Degrees", DAQmx_Val_Degrees}, + {"Radians", DAQmx_Val_Radians}, + {"g", DAQmx_Val_g}, + {"MetersPerSecondSquared", DAQmx_Val_MetersPerSecondSquared}, + {"Newtons", DAQmx_Val_Newtons}, + {"Pounds", DAQmx_Val_Pounds}, + {"KilogramForce", DAQmx_Val_KilogramForce}, + {"PoundsPerSquareInch", DAQmx_Val_PoundsPerSquareInch}, + {"Bar", DAQmx_Val_Bar}, + {"Pascals", DAQmx_Val_Pascals}, + {"VoltsPerVolt", DAQmx_Val_VoltsPerVolt}, + {"mVoltsPerVolt", DAQmx_Val_mVoltsPerVolt}, + {"NewtonMeters", DAQmx_Val_NewtonMeters}, + {"InchOunces", DAQmx_Val_InchOunces}, + {"InchPounds", DAQmx_Val_InchPounds}, + {"FootPounds", DAQmx_Val_FootPounds}, + {"Strain", DAQmx_Val_Strain}, + {"FromTEDS", DAQmx_Val_FromTEDS} }; /////////////////////////////////////////////////////////////////////////////////// @@ -48,17 +48,17 @@ const std::map ni::UNITS_MAP = { /////////////////////////////////////////////////////////////////////////////////// -void ni::Source::getIndexKeys(){ +void ni::Source::getIndexKeys() { LOG(INFO) << "[NI Reader] acquiring index channels for task " << this->reader_config.task_name; std::set index_keys; //iterate through channels in reader config - for (auto &channel : this->reader_config.channels){ + for (auto &channel: this->reader_config.channels) { auto [channel_info, err] = this->ctx->client->channels.retrieve(channel.channel_key); // TODO handle error with breaker - if (err != freighter::NIL){ + if (err != freighter::NIL) { this->logError("failed to retrieve channel " + std::to_string(channel.channel_key)); return; - } else{ + } else { index_keys.insert(channel_info.index); } } @@ -66,13 +66,13 @@ void ni::Source::getIndexKeys(){ LOG(INFO) << "[NI Reader] acquiring index channels for task 2 " << this->reader_config.task_name; // now iterate through the set and add all the index channels as configs - for (auto it = index_keys.begin(); it != index_keys.end(); ++it){ + for (auto it = index_keys.begin(); it != index_keys.end(); ++it) { auto index_key = *it; auto [channel_info, err] = this->ctx->client->channels.retrieve(index_key); - if (err != freighter::NIL){ + if (err != freighter::NIL) { this->logError("failed to retrieve channel " + std::to_string(index_key)); return; - } else{ + } else { ni::ChannelConfig index_channel; index_channel.channel_key = channel_info.key; index_channel.channel_type = "index"; @@ -85,22 +85,22 @@ void ni::Source::getIndexKeys(){ ni::Source::Source( - TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task): task_handle(task_handle), ctx(ctx), task(task){ + TaskHandle task_handle, + const std::shared_ptr &ctx, + const synnax::Task task) : task_handle(task_handle), ctx(ctx), task(task) { } // TODO return error status for thsi function -void ni::Source::parseConfig(config::Parser &parser){ +void ni::Source::parseConfig(config::Parser &parser) { // Get Acquisition Rate and Stream Rates this->reader_config.sample_rate = parser.required("sample_rate"); this->reader_config.stream_rate = parser.required("stream_rate"); this->reader_config.device_key = parser.required("device"); this->reader_config.timing_source = "none"; // parser.required("timing_source"); TODO: uncomment this when ui provides timing source - if(parser.optional("test", false)){ + if (parser.optional("test", false)) { this->reader_config.device_name = parser.required("device_location"); - } else{ + } else { auto [dev, err] = this->ctx->client->hardware.retrieveDevice(this->reader_config.device_key); if (err != freighter::NIL) { this->logError("failed to retrieve device " + this->reader_config.device_name); @@ -111,7 +111,7 @@ void ni::Source::parseConfig(config::Parser &parser){ this->parseChannels(parser); } -int ni::Source::init(){ +int ni::Source::init() { // Create parser auto config_parser = config::Parser(this->task.config); this->reader_config.task_name = this->task.name; @@ -120,46 +120,49 @@ int ni::Source::init(){ // Parse configuration and make sure it is valid this->parseConfig(config_parser); - if (!config_parser.ok()){ + if (!config_parser.ok()) { json error_json = config_parser.error_json(); error_json["running"] = false; // Log error - this->logError("failed to parse configuration for " + this->reader_config.task_name + " Parser Error: " + config_parser.error_json().dump()); + this->logError("failed to parse configuration for " + this->reader_config.task_name + " Parser Error: " + + config_parser.error_json().dump()); this->ctx->setState({.task = task.key, - .variant = "error", - .details = config_parser.error_json()}); + .variant = "error", + .details = config_parser.error_json()}); return -1; } - this->getIndexKeys(); + this->getIndexKeys(); // Create breaker auto breaker_config = breaker::Config{ - .name = task.name, - .base_interval = 1 * SECOND, - .max_retries = 20, - .scale = 1.2, + .name = task.name, + .base_interval = 1 * SECOND, + .max_retries = 20, + .scale = 1.2, }; this->breaker = breaker::Breaker(breaker_config); int err = this->createChannels(); - if(err){ + if (err) { this->logError("failed to create channels for " + this->reader_config.task_name); return -1; } // Configure buffer size and read resources - if(this->reader_config.sample_rate < this->reader_config.stream_rate){ + if (this->reader_config.sample_rate < this->reader_config.stream_rate) { this->logError("Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); this->err_info["error type"] = "Configuration Error"; this->err_info["error details"] = "Stream rate is greater than sample rate"; this->err_info["running"] = false; this->ctx->setState({.task = this->reader_config.task_key, - .variant = "error", - .details = err_info}); + .variant = "error", + .details = err_info}); return -1; } - + LOG(INFO) << "[NI Reader] configuring timing for NI hardware for task " << this->reader_config.task_name; - if (this->configureTiming()) this->logError("[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); + if (this->configureTiming()) this->logError( + "[NI Reader] Failed while configuring timing for NI hardware for task " + + this->reader_config.task_name); LOG(INFO) << "[NI Reader] successfully configured NI hardware for task " << this->reader_config.task_name; @@ -167,66 +170,66 @@ int ni::Source::init(){ } - -freighter::Error ni::Source::start(){ - if(this->running.exchange(true) || !this->ok()){ +freighter::Error ni::Source::start() { + if (this->running.exchange(true) || !this->ok()) { return freighter::NIL; } - if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))){ - this->logError("failed while starting reader for task " + this->reader_config.task_name + " requires reconfigure"); + if (this->checkNIError(ni::NiDAQmxInterface::StartTask(this->task_handle))) { + this->logError( + "failed while starting reader for task " + this->reader_config.task_name + " requires reconfigure"); this->clearTask(); return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); - }else{ + } else { this->sample_thread = std::thread(&ni::Source::acquireData, this); } ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", true} - } - }); + .task = task.key, + .variant = "success", + .details = { + {"running", true} + } + }); LOG(INFO) << "[NI Reader] starting reader for task " << this->reader_config.task_name; return freighter::NIL; } -freighter::Error ni::Source::stop(){ +freighter::Error ni::Source::stop() { LOG(INFO) << "[NI Reader] stopping reader for task " << this->reader_config.task_name; - if(!this->running.exchange(false)){ + if (!this->running.exchange(false)) { return freighter::NIL; } - if(this->sample_thread.joinable()) this->sample_thread.join(); - - if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))){ + if (this->sample_thread.joinable()) this->sample_thread.join(); + + if (this->checkNIError(ni::NiDAQmxInterface::StopTask(this->task_handle))) { this->logError("failed while stopping reader for task " + this->reader_config.task_name); return freighter::Error(driver::CRITICAL_HARDWARE_ERROR); } data_queue.reset(); LOG(INFO) << "[NI Reader] stopped reader for task " << this->reader_config.task_name; ctx->setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); - return freighter::NIL; + .task = task.key, + .variant = "success", + .details = { + {"running", false} + } + }); + return freighter::NIL; } -void ni::Source::clearTask(){ - if (this->checkNIError(ni::NiDAQmxInterface::ClearTask(this->task_handle))){ +void ni::Source::clearTask() { + if (this->checkNIError(ni::NiDAQmxInterface::ClearTask(this->task_handle))) { this->logError("failed while clearing reader for task " + this->reader_config.task_name); } } -ni::Source::~Source(){ - this->clearTask(); +ni::Source::~Source() { + this->clearTask(); } -int ni::Source::checkNIError(int32 error){ - if (error < 0){ +int ni::Source::checkNIError(int32 error) { + if (error < 0) { char errBuff[4096] = {'\0'}; ni::NiDAQmxInterface::GetExtendedErrorInfo(errBuff, 4096); @@ -234,10 +237,10 @@ int ni::Source::checkNIError(int32 error){ this->err_info["error type"] = "Vendor Error"; this->err_info["message"] = errBuff; this->err_info["running"] = false; - + this->ctx->setState({.task = this->reader_config.task_key, - .variant = "error", - .details = err_info}); + .variant = "error", + .details = err_info}); LOG(ERROR) << "[NI Reader] Vendor error: " << this->err_info["message"]; this->ok_state = false; @@ -246,30 +249,30 @@ int ni::Source::checkNIError(int32 error){ return 0; } -bool ni::Source::ok(){ +bool ni::Source::ok() { return this->ok_state; } -std::vector ni::Source::getChannelKeys(){ +std::vector ni::Source::getChannelKeys() { std::vector keys; - for (auto &channel : this->reader_config.channels){ + for (auto &channel: this->reader_config.channels) { keys.push_back(channel.channel_key); } return keys; } -void ni::Source::logError(std::string err_msg){ +void ni::Source::logError(std::string err_msg) { LOG(ERROR) << "[NI Reader] " << err_msg; this->ok_state = false; return; } -void ni::Source::stoppedWithErr(const freighter::Error &err){ +void ni::Source::stoppedWithErr(const freighter::Error &err) { this->running = false; this->stop(); this->logError("stopped with error: " + err.message()); this->ctx->setState({.task = this->reader_config.task_key, - .variant = "error", - .details = err.message()}); + .variant = "error", + .details = err.message()}); } \ No newline at end of file diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 0920b4ff30..109d94bc59 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -25,10 +25,10 @@ #include "client/cpp/synnax.h" #include "driver/task/task.h" #include "driver/pipeline/acquisition.h" -#include "driver/errors/errors.h" +#include "driver/errors/errors.h" #include "driver/breaker/breaker.h" #include "driver/pipeline/control.h" -#include "nlohmann/json.hpp" +#include "nlohmann/json.hpp" #include "driver/task/task.h" #include "driver/config/config.h" #include "driver/ni/error.h" @@ -37,21 +37,21 @@ #include "driver/ni/scale.h" #include "ai_channels.h" -namespace ni{ - typedef struct ChannelConfig{ +namespace ni { + typedef struct ChannelConfig { uint32_t channel_key; std::string name; std::string channel_type; ni::Analog ni_channel; } ChannelConfig; - typedef struct ReaderConfig{ + typedef struct ReaderConfig { std::string device_key; std::vector channels; std::uint64_t sample_rate = 0; std::uint64_t stream_rate = 0; std::string device_name; - std::string task_name; + std::string task_name; std::string timing_source; // for sample clock std::uint64_t period = 0; synnax::ChannelKey task_key; @@ -67,35 +67,49 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // NiSource // /////////////////////////////////////////////////////////////////////////////////// - class Source : public pipeline::Source{ + class Source : public pipeline::Source { public: explicit Source(TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task); + const std::shared_ptr &ctx, + const synnax::Task task); + - int init(); + ~Source(); + void clearTask(); - int checkNIError(int32 error); + + int checkNIError(int32 error); + void logError(std::string err_msg); + std::vector getChannelKeys(); - virtual void parseConfig(config::Parser & parser); + virtual void parseConfig(config::Parser &parser); + virtual freighter::Error start(); + virtual freighter::Error stop(); + virtual void stoppedWithErr(const freighter::Error &err) override; - virtual bool ok(); + + virtual bool ok(); + virtual void getIndexKeys(); - + virtual std::pair read() = 0; - virtual void parseChannels(config::Parser & parser) = 0; - virtual int configureTiming() = 0; + + virtual void parseChannels(config::Parser &parser) = 0; + + virtual int configureTiming() = 0; + virtual void acquireData() = 0; + virtual int createChannels() = 0; - typedef struct DataPacket{ - void* data; // actual data + typedef struct DataPacket { + void *data; // actual data uint64_t t0; // initial timestamp uint64_t tf; // final timestamp int32 samplesReadPerChannel; @@ -107,7 +121,7 @@ namespace ni{ ReaderConfig reader_config; uint64_t numChannels = 0; int numSamplesPerChannel = 0; - int bufferSize = 0; + int bufferSize = 0; bool ok_state = true; json err_info; @@ -122,21 +136,28 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // AnalogReadSource // /////////////////////////////////////////////////////////////////////////////////// - class AnalogReadSource : public Source{ + class AnalogReadSource : public Source { public: explicit AnalogReadSource( - TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task - ) : Source(task_handle, ctx, task){} + TaskHandle task_handle, + const std::shared_ptr &ctx, + const synnax::Task task + ) : Source(task_handle, ctx, task) {} std::pair read() override; + void acquireData() override; + int configureTiming() override; + int createChannels() override; + Analog parseChannel(config::Parser &parser, std::string channel_type); + void parseChannels(config::Parser &parser) override; + int createChannel(ChannelConfig &channel); + // NI related resources uint64_t numAIChannels = 0; }; @@ -145,54 +166,66 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // DigitalReadSource // /////////////////////////////////////////////////////////////////////////////////// - class DigitalReadSource : public Source{ + class DigitalReadSource : public Source { public: explicit DigitalReadSource( - TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task - ) : Source(task_handle, ctx, task){} + TaskHandle task_handle, + const std::shared_ptr &ctx, + const synnax::Task task + ) : Source(task_handle, ctx, task) {} std::pair read() override; + void acquireData() override; + int configureTiming() override; + int createChannels() override; - void parseChannels(config::Parser & parser) override; - }; + void parseChannels(config::Parser &parser) override; + }; /////////////////////////////////////////////////////////////////////////////////// // StateSource // /////////////////////////////////////////////////////////////////////////////////// - class StateSource : public pipeline::Source{ - public: - explicit StateSource() = default; - explicit StateSource( std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, std::vector &drive_state_channel_keys); - std::pair read(); - freighter::Error start(); - freighter::Error stop(); - synnax::Frame getDriveState(); - void updateState(std::queue &modified_state_keys, std::queue &modified_state_values); - private: - std::mutex state_mutex; - std::condition_variable waiting_reader; - std::uint64_t state_rate; - std::chrono::duration state_period; - std::map state_map; - synnax::ChannelKey drive_state_index_key; + class StateSource : public pipeline::Source { + public: + explicit StateSource() = default; + + explicit StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, + std::vector &drive_state_channel_keys); + + std::pair read(); + + freighter::Error start(); + + freighter::Error stop(); + + synnax::Frame getDriveState(); + + void updateState(std::queue &modified_state_keys, + std::queue &modified_state_values); + + private: + std::mutex state_mutex; + std::condition_variable waiting_reader; + std::uint64_t state_rate; + std::chrono::duration state_period; + std::map state_map; + synnax::ChannelKey drive_state_index_key; }; /////////////////////////////////////////////////////////////////////////////////// // DigitalWriteSink // /////////////////////////////////////////////////////////////////////////////////// - typedef struct WriterConfig{ + typedef struct WriterConfig { std::vector channels; std::uint64_t state_rate = 0; std::string device_name; std::string device_key; - std::string task_name; + std::string task_name; synnax::ChannelKey task_key; @@ -204,31 +237,41 @@ namespace ni{ std::queue modified_state_values; } WriterConfig; - class DigitalWriteSink : public pipeline::Sink{ + class DigitalWriteSink : public pipeline::Sink { public: explicit DigitalWriteSink(TaskHandle task_handle, - const std::shared_ptr &ctx, - const synnax::Task task); + const std::shared_ptr &ctx, + const synnax::Task task); int init(); + freighter::Error write(synnax::Frame frame); + freighter::Error stop(); + freighter::Error start(); + std::vector getCmdChannelKeys(); + std::vector getStateChannelKeys(); + void getIndexKeys(); + bool ok(); + ~DigitalWriteSink(); std::shared_ptr writer_state_source; private: freighter::Error formatData(synnax::Frame frame); + void parseConfig(config::Parser &parser); + int checkNIError(int32 error); - uint8_t *writeBuffer; - int bufferSize = 0; + uint8_t *writeBuffer; + int bufferSize = 0; int numSamplesPerChannel = 0; std::int64_t numChannels = 0; TaskHandle task_handle = 0; @@ -237,7 +280,7 @@ namespace ni{ bool ok_state = true; std::shared_ptr ctx; - WriterConfig writer_config; + WriterConfig writer_config; breaker::Breaker breaker; std::atomic running = false; }; @@ -246,28 +289,35 @@ namespace ni{ // Scanner // /////////////////////////////////////////////////////////////////////////////////// class Scanner { - public: - explicit Scanner() = default; - explicit Scanner( const std::shared_ptr &ctx, - const synnax::Task &task); - ~Scanner(); - void scan(); - bool ok(); - json getDevices(); - void createDevices(); - private: - json getDeviceProperties(NISysCfgResourceHandle resource); - - - json devices; - bool ok_state = true; - NISysCfgSessionHandle session; - NISysCfgFilterHandle filter; - NISysCfgEnumResourceHandle resources_handle; - synnax::Task task; - std::shared_ptr ctx; + public: + explicit Scanner() = default; + + explicit Scanner(const std::shared_ptr &ctx, + const synnax::Task &task); + + ~Scanner(); + + void scan(); + + bool ok(); + + json getDevices(); + + void createDevices(); + + private: + json getDeviceProperties(NISysCfgResourceHandle resource); + + + json devices; + bool ok_state = true; + NISysCfgSessionHandle session; + NISysCfgFilterHandle filter; + NISysCfgEnumResourceHandle resources_handle; + synnax::Task task; + std::shared_ptr ctx; }; - + ///////////////////////////////////////////////////////////////////////////////////////////// // // // TASK INTERFACES // @@ -279,21 +329,28 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// class ScannerTask final : public task::Task { public: - explicit ScannerTask( const std::shared_ptr &ctx, - synnax::Task task); + explicit ScannerTask(const std::shared_ptr &ctx, + synnax::Task task); void exec(task::Command &cmd) override; - static std::unique_ptr configure( const std::shared_ptr &ctx, - const synnax::Task &task); + + static std::unique_ptr configure(const std::shared_ptr &ctx, + const synnax::Task &task); + void run(); + void start(); + void stop() override; + bool ok(); + ~ScannerTask(); + private: std::atomic running; ni::Scanner scanner; - std::shared_ptr ctx; + std::shared_ptr ctx; synnax::Task task; std::thread thread; bool ok_state = true; @@ -305,25 +362,28 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// class ReaderTask final : public task::Task { public: - - explicit ReaderTask( const std::shared_ptr &ctx, - synnax::Task task, - std::shared_ptr source, - std::shared_ptr ni_source, - synnax::WriterConfig writer_config, - const breaker::Config breaker_config); + + explicit ReaderTask(const std::shared_ptr &ctx, + synnax::Task task, + std::shared_ptr source, + std::shared_ptr ni_source, + synnax::WriterConfig writer_config, + const breaker::Config breaker_config); void exec(task::Command &cmd) override; void stop() override; + void start(); + bool ok(); - static std::unique_ptr configure( const std::shared_ptr &ctx, - const synnax::Task &task); + static std::unique_ptr configure(const std::shared_ptr &ctx, + const synnax::Task &task); + private: - std::atomic running = false; + std::atomic running = false; std::shared_ptr ctx; synnax::Task task; pipeline::Acquisition daq_read_pipe; // source is a daqreader @@ -336,29 +396,33 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// class WriterTask final : public task::Task { public: - explicit WriterTask( const std::shared_ptr &ctx, - synnax::Task task, - std::shared_ptr sink, - std::shared_ptr ni_sink, - std::shared_ptr writer_state_source, - synnax::WriterConfig writer_config, - synnax::StreamerConfig streamer_config, - const breaker::Config breaker_config); + explicit WriterTask(const std::shared_ptr &ctx, + synnax::Task task, + std::shared_ptr sink, + std::shared_ptr ni_sink, + std::shared_ptr writer_state_source, + synnax::WriterConfig writer_config, + synnax::StreamerConfig streamer_config, + const breaker::Config breaker_config); void exec(task::Command &cmd) override; + void stop() override; + void start(); - static std::unique_ptr configure( const std::shared_ptr &ctx, - const synnax::Task &task); + static std::unique_ptr configure(const std::shared_ptr &ctx, + const synnax::Task &task); + bool ok(); - ~WriterTask(){ + + ~WriterTask() { LOG(INFO) << "WriterTask destructor called"; } private: - std::atomic running = false; + std::atomic running = false; std::shared_ptr ctx; synnax::Task task; pipeline::Control cmd_write_pipe; @@ -371,14 +435,14 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // Factory // /////////////////////////////////////////////////////////////////////////////////// - class Factory final : public task::Factory{ + class Factory final : public task::Factory { public: - std::pair, bool> configureTask( const std::shared_ptr &ctx, - const synnax::Task &task) override; + std::pair, bool> configureTask(const std::shared_ptr &ctx, + const synnax::Task &task) override; std::vector > > - configureInitialTasks( const std::shared_ptr &ctx, - const synnax::Rack &rack) override; + configureInitialTasks(const std::shared_ptr &ctx, + const synnax::Rack &rack) override; ~Factory() = default; diff --git a/driver/ni/nidaqmx_api.h b/driver/ni/nidaqmx_api.h index 5910c5993f..0a73fc145e 100644 --- a/driver/ni/nidaqmx_api.h +++ b/driver/ni/nidaqmx_api.h @@ -8,415 +8,453 @@ // included in the file licenses/APL.txt. #pragma once + #include "daqmx.h" namespace ni { -class NiDAQmxInterface { -public: + class NiDAQmxInterface { + public: + + static int32 + CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], + int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, + const char customScaleName[]); + + static int32 + CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping); + + static int32 + CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping); + + static int32 + CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, + uInt64 sampsPerChan); + + static int32 StartTask(TaskHandle task); + + static int32 StopTask(TaskHandle task); + + static int32 ClearTask(TaskHandle task); + + static int32 + ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], + uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved); + + static int32 + ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], + uInt32 arraySizeInBytes, int32 *sampsPerChanRead, int32 *numBytesPerSamp, bool32 *reserved); + + static int32 + WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, + const uInt8 writeArray[], int32 *sampsPerChanWritten, bool32 *reserved); + + // int32 GetExtendedErrorInfo(char errorString[], uInt32 bufferSize); + static int32 GetExtendedErrorInfo(char errorString[], uInt32 bufferSize); + + static int32 CreateLinScale(const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, + const char scaledUnits[]); + + static int32 CreateMapScale(const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, + float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]); + + static int32 CreatePolynomialScale(const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, + const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, + int32 preScaledUnits, const char scaledUnits[]); + + static int32 CreateTableScale(const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, + const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, + const char scaledUnits[]); - static int32 CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]); - static int32 CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping); - static int32 CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping); - static int32 CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan); - static int32 StartTask(TaskHandle task); - static int32 StopTask(TaskHandle task); - static int32 ClearTask(TaskHandle task); - static int32 ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved); - static int32 ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], uInt32 arraySizeInBytes, int32* sampsPerChanRead, int32* numBytesPerSamp, bool32* reserved); - static int32 WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved); - // int32 GetExtendedErrorInfo(char errorString[], uInt32 bufferSize); - static int32 GetExtendedErrorInfo(char errorString[], uInt32 bufferSize); + static int32 + CalculateReversePolyCoeff(const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, + float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, + float64 reverseCoeffs[]); - static int32 CreateLinScale (const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, const char scaledUnits[]); - static int32 CreateMapScale (const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]); - static int32 CreatePolynomialScale (const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, int32 preScaledUnits, const char scaledUnits[]); - static int32 CreateTableScale (const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, const char scaledUnits[]); - static int32 CalculateReversePolyCoeff (const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, float64 reverseCoeffs[]); - static int32 CreateTask(const char sessionName[], TaskHandle* task); + static int32 CreateTask(const char sessionName[], TaskHandle *task); -}; + }; } // virtual ~NiDAQmxLibraryInterface() {} - // virtual int32 AddCDAQSyncConnection(const char portList[]) = 0; - // virtual int32 AddGlobalChansToTask(TaskHandle task, const char channelNames[]) = 0; - // virtual int32 AddNetworkDevice(const char ipAddress[], const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize) = 0; - // virtual int32 AreConfiguredCDAQSyncPortsDisconnected(const char chassisDevicesPorts[], float64 timeout, bool32* disconnectedPortsExist) = 0; - // virtual int32 AutoConfigureCDAQSyncConnections(const char chassisDevicesPorts[], float64 timeout) = 0; - // virtual int32 CalculateReversePolyCoeff(const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, float64 reverseCoeffs[]) = 0; - // virtual int32 CfgAnlgEdgeRefTrig(TaskHandle task, const char triggerSource[], int32 triggerSlope, float64 triggerLevel, uInt32 pretriggerSamples) = 0; - // virtual int32 CfgAnlgEdgeStartTrig(TaskHandle task, const char triggerSource[], int32 triggerSlope, float64 triggerLevel) = 0; - // virtual int32 CfgAnlgMultiEdgeRefTrig(TaskHandle task, const char triggerSources[], const int32 triggerSlopeArray[], const float64 triggerLevelArray[], uInt32 pretriggerSamples, uInt32 arraySize) = 0; - // virtual int32 CfgAnlgMultiEdgeStartTrig(TaskHandle task, const char triggerSources[], const int32 triggerSlopeArray[], const float64 triggerLevelArray[], uInt32 arraySize) = 0; - // virtual int32 CfgAnlgWindowRefTrig(TaskHandle task, const char triggerSource[], int32 triggerWhen, float64 windowTop, float64 windowBottom, uInt32 pretriggerSamples) = 0; - // virtual int32 CfgAnlgWindowStartTrig(TaskHandle task, const char triggerSource[], int32 triggerWhen, float64 windowTop, float64 windowBottom) = 0; - // virtual int32 CfgBurstHandshakingTimingExportClock(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan, float64 sampleClkRate, const char sampleClkOutpTerm[], int32 sampleClkPulsePolarity, int32 pauseWhen, int32 readyEventActiveLevel) = 0; - // virtual int32 CfgBurstHandshakingTimingImportClock(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan, float64 sampleClkRate, const char sampleClkSrc[], int32 sampleClkActiveEdge, int32 pauseWhen, int32 readyEventActiveLevel) = 0; - // virtual int32 CfgChangeDetectionTiming(TaskHandle task, const char risingEdgeChan[], const char fallingEdgeChan[], int32 sampleMode, uInt64 sampsPerChan) = 0; - // virtual int32 CfgDigEdgeRefTrig(TaskHandle task, const char triggerSource[], int32 triggerEdge, uInt32 pretriggerSamples) = 0; - // virtual int32 CfgDigEdgeStartTrig(TaskHandle task, const char triggerSource[], int32 triggerEdge) = 0; - // virtual int32 CfgDigPatternRefTrig(TaskHandle task, const char triggerSource[], const char triggerPattern[], int32 triggerWhen, uInt32 pretriggerSamples) = 0; - // virtual int32 CfgDigPatternStartTrig(TaskHandle task, const char triggerSource[], const char triggerPattern[], int32 triggerWhen) = 0; - // virtual int32 CfgHandshakingTiming(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan) = 0; - // virtual int32 CfgImplicitTiming(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan) = 0; - // virtual int32 CfgInputBuffer(TaskHandle task, uInt32 numSampsPerChan) = 0; - // virtual int32 CfgOutputBuffer(TaskHandle task, uInt32 numSampsPerChan) = 0; - // virtual int32 CfgPipelinedSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan) = 0; - // virtual int32 CfgTimeStartTrig(TaskHandle task, CVIAbsoluteTime when, int32 timescale) = 0; - // virtual int32 CfgWatchdogAOExpirStates(TaskHandle task, const char channelNames[], const float64 expirStateArray[], const int32 outputTypeArray[], uInt32 arraySize) = 0; - // virtual int32 CfgWatchdogCOExpirStates(TaskHandle task, const char channelNames[], const int32 expirStateArray[], uInt32 arraySize) = 0; - // virtual int32 CfgWatchdogDOExpirStates(TaskHandle task, const char channelNames[], const int32 expirStateArray[], uInt32 arraySize) = 0; - // virtual int32 ClearTEDS(const char physicalChannel[]) = 0; - // virtual int32 ConfigureLogging(TaskHandle task, const char filePath[], int32 loggingMode, const char groupName[], int32 operation) = 0; - // virtual int32 ConfigureTEDS(const char physicalChannel[], const char filePath[]) = 0; - // virtual int32 ConnectTerms(const char sourceTerminal[], const char destinationTerminal[], int32 signalModifiers) = 0; - // virtual int32 ControlWatchdogTask(TaskHandle task, int32 action) = 0; - // virtual int32 CreateAIAccel4WireDCVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]) = 0; - // virtual int32 CreateAIAccelChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIAccelChargeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const char customScaleName[]) = 0; - // virtual int32 CreateAIChargeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateAICurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; - // virtual int32 CreateAICurrentRMSChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIForceBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIForceBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIForceBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIForceIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIFreqVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 thresholdLevel, float64 hysteresis, const char customScaleName[]) = 0; - // virtual int32 CreateAIMicrophoneChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, int32 units, float64 micSensitivity, float64 maxSndPressLevel, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIPosEddyCurrProxProbeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIPosLVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; - // virtual int32 CreateAIPosRVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; - // virtual int32 CreateAIPowerChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 voltageSetpoint, float64 currentSetpoint, bool32 outputEnable) = 0; - // virtual int32 CreateAIPressureBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIPressureBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIPressureBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIRTDChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 rtdType, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, float64 r0) = 0; - // virtual int32 CreateAIResistanceChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIRosetteStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance) = 0; - // virtual int32 CreateAIStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 initialBridgeVoltage, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance, const char customScaleName[]) = 0; - // virtual int32 CreateAITempBuiltInSensorChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 units) = 0; - // virtual int32 CreateAIThrmcplChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 thermocoupleType, int32 cjcSource, float64 cjcVal, const char cjcChannel[]) = 0; - // virtual int32 CreateAIThrmstrChanIex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, float64 a, float64 b, float64 c) = 0; - // virtual int32 CreateAIThrmstrChanVex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 a, float64 b, float64 c, float64 r1) = 0; - // virtual int32 CreateAITorqueBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAITorqueBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAITorqueBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; - // virtual int32 CreateAIVelocityIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateAIVoltageChanWithExcit(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]) = 0; - // virtual int32 CreateAIVoltageRMSChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateAOCurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateAOFuncGenChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 type, float64 freq, float64 amplitude, float64 offset) = 0; - // virtual int32 CreateAOVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateCIAngEncoderChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 decodingType, bool32 zidxEnable, float64 zidxVal, int32 zidxPhase, int32 units, uInt32 pulsesPerRev, float64 initialAngle, const char customScaleName[]) = 0; - // virtual int32 CreateCIAngVelocityChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 decodingType, int32 units, uInt32 pulsesPerRev, const char customScaleName[]) = 0; - // virtual int32 CreateCICountEdgesChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 edge, uInt32 initialCount, int32 countDirection) = 0; - // virtual int32 CreateCIDutyCycleChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minFreq, float64 maxFreq, int32 edge, const char customScaleName[]) = 0; - // virtual int32 CreateCIFreqChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 edge, int32 measMethod, float64 measTime, uInt32 divisor, const char customScaleName[]) = 0; - // virtual int32 CreateCIGPSTimestampChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 syncMethod, const char customScaleName[]) = 0; - // virtual int32 CreateCILinEncoderChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 decodingType, bool32 zidxEnable, float64 zidxVal, int32 zidxPhase, int32 units, float64 distPerPulse, float64 initialPos, const char customScaleName[]) = 0; - // virtual int32 CreateCILinVelocityChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 decodingType, int32 units, float64 distPerPulse, const char customScaleName[]) = 0; - // virtual int32 CreateCIPeriodChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 edge, int32 measMethod, float64 measTime, uInt32 divisor, const char customScaleName[]) = 0; - // virtual int32 CreateCIPulseChanFreq(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units) = 0; - // virtual int32 CreateCIPulseChanTicks(TaskHandle task, const char counter[], const char nameToAssignToChannel[], const char sourceTerminal[], float64 minVal, float64 maxVal) = 0; - // virtual int32 CreateCIPulseChanTime(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units) = 0; - // virtual int32 CreateCIPulseWidthChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 startingEdge, const char customScaleName[]) = 0; - // virtual int32 CreateCISemiPeriodChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateCITwoEdgeSepChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 firstEdge, int32 secondEdge, const char customScaleName[]) = 0; - // virtual int32 CreateCOPulseChanFreq(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 idleState, float64 initialDelay, float64 freq, float64 dutyCycle) = 0; - // virtual int32 CreateCOPulseChanTicks(TaskHandle task, const char counter[], const char nameToAssignToChannel[], const char sourceTerminal[], int32 idleState, int32 initialDelay, int32 lowTicks, int32 highTicks) = 0; - // virtual int32 CreateCOPulseChanTime(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 idleState, float64 initialDelay, float64 lowTime, float64 highTime) = 0; - // virtual int32 CreateLinScale(const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, const char scaledUnits[]) = 0; - // virtual int32 CreateMapScale(const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]) = 0; - // virtual int32 CreatePolynomialScale(const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, int32 preScaledUnits, const char scaledUnits[]) = 0; - // virtual int32 CreateTEDSAIAccelChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAICurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIForceBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIForceIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIMicrophoneChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, int32 units, float64 maxSndPressLevel, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIPosLVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIPosRVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIPressureBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIRTDChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal) = 0; - // virtual int32 CreateTEDSAIResistanceChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 initialBridgeVoltage, float64 leadWireResistance, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIThrmcplChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 cjcSource, float64 cjcVal, const char cjcChannel[]) = 0; - // virtual int32 CreateTEDSAIThrmstrChanIex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal) = 0; - // virtual int32 CreateTEDSAIThrmstrChanVex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 r1) = 0; - // virtual int32 CreateTEDSAITorqueBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; - // virtual int32 CreateTEDSAIVoltageChanWithExcit(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; - // virtual int32 CreateTableScale(const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, const char scaledUnits[]) = 0; - // virtual int32 CreateWatchdogTimerTaskEx(const char deviceName[], const char sessionName[], TaskHandle* task, float64 timeout) = 0; - // virtual int32 DeleteNetworkDevice(const char deviceName[]) = 0; - // virtual int32 DeleteSavedGlobalChan(const char channelName[]) = 0; - // virtual int32 DeleteSavedScale(const char scaleName[]) = 0; - // virtual int32 DeleteSavedTask(const char taskName[]) = 0; - // virtual int32 DeviceSupportsCal(const char deviceName[], bool32* calSupported) = 0; - // virtual int32 DisableRefTrig(TaskHandle task) = 0; - // virtual int32 DisableStartTrig(TaskHandle task) = 0; - // virtual int32 DisconnectTerms(const char sourceTerminal[], const char destinationTerminal[]) = 0; - // virtual int32 ExportSignal(TaskHandle task, int32 signalID, const char outputTerminal[]) = 0; - // virtual int32 GetAIChanCalCalDate(TaskHandle task, const char channelName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; - // virtual int32 GetAIChanCalExpDate(TaskHandle task, const char channelName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; - // virtual int32 GetAnalogPowerUpStatesWithOutputType(const char channelNames[], float64 stateArray[], int32 channelTypeArray[], uInt32* arraySize) = 0; - // virtual int32 GetArmStartTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetArmStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetAutoConfiguredCDAQSyncConnections(char portList[], uInt32 portListSize) = 0; - // virtual int32 GetBufferAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetCalInfoAttributeBool(const char deviceName[], int32 attribute, bool32* value) = 0; - // virtual int32 GetCalInfoAttributeDouble(const char deviceName[], int32 attribute, float64* value) = 0; - // virtual int32 GetCalInfoAttributeString(const char deviceName[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetCalInfoAttributeUInt32(const char deviceName[], int32 attribute, uInt32* value) = 0; - // virtual int32 GetChanAttributeBool(TaskHandle task, const char channel[], int32 attribute, bool32* value) = 0; - // virtual int32 GetChanAttributeDouble(TaskHandle task, const char channel[], int32 attribute, float64* value) = 0; - // virtual int32 GetChanAttributeDoubleArray(TaskHandle task, const char channel[], int32 attribute, float64 value[], uInt32 size) = 0; - // virtual int32 GetChanAttributeInt32(TaskHandle task, const char channel[], int32 attribute, int32* value) = 0; - // virtual int32 GetChanAttributeString(TaskHandle task, const char channel[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetChanAttributeUInt32(TaskHandle task, const char channel[], int32 attribute, uInt32* value) = 0; - // virtual int32 GetDeviceAttributeBool(const char deviceName[], int32 attribute, bool32* value) = 0; - // virtual int32 GetDeviceAttributeDouble(const char deviceName[], int32 attribute, float64* value) = 0; - // virtual int32 GetDeviceAttributeDoubleArray(const char deviceName[], int32 attribute, float64 value[], uInt32 size) = 0; - // virtual int32 GetDeviceAttributeInt32(const char deviceName[], int32 attribute, int32* value) = 0; - // virtual int32 GetDeviceAttributeInt32Array(const char deviceName[], int32 attribute, int32 value[], uInt32 size) = 0; - // virtual int32 GetDeviceAttributeString(const char deviceName[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetDeviceAttributeUInt32(const char deviceName[], int32 attribute, uInt32* value) = 0; - // virtual int32 GetDeviceAttributeUInt32Array(const char deviceName[], int32 attribute, uInt32 value[], uInt32 size) = 0; - // virtual int32 GetDigitalLogicFamilyPowerUpState(const char deviceName[], int32* logicFamily) = 0; - // virtual int32 GetDisconnectedCDAQSyncPorts(char portList[], uInt32 portListSize) = 0; - // virtual int32 GetErrorString(int32 errorCode, char errorString[], uInt32 bufferSize) = 0; - // virtual int32 GetExportedSignalAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetExportedSignalAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; - // virtual int32 GetExportedSignalAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetExportedSignalAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetExportedSignalAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetExtCalLastDateAndTime(const char deviceName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; - // virtual int32 GetFirstSampClkWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetFirstSampTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetNthTaskChannel(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; - // virtual int32 GetNthTaskDevice(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; - // virtual int32 GetNthTaskReadChannel(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; - // virtual int32 GetPersistedChanAttributeBool(const char channel[], int32 attribute, bool32* value) = 0; - // virtual int32 GetPersistedChanAttributeString(const char channel[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetPersistedScaleAttributeBool(const char scaleName[], int32 attribute, bool32* value) = 0; - // virtual int32 GetPersistedScaleAttributeString(const char scaleName[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetPersistedTaskAttributeBool(const char taskName[], int32 attribute, bool32* value) = 0; - // virtual int32 GetPersistedTaskAttributeString(const char taskName[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetPhysicalChanAttributeBool(const char physicalChannel[], int32 attribute, bool32* value) = 0; - // virtual int32 GetPhysicalChanAttributeBytes(const char physicalChannel[], int32 attribute, uInt8 value[], uInt32 size) = 0; - // virtual int32 GetPhysicalChanAttributeDouble(const char physicalChannel[], int32 attribute, float64* value) = 0; - // virtual int32 GetPhysicalChanAttributeDoubleArray(const char physicalChannel[], int32 attribute, float64 value[], uInt32 size) = 0; - // virtual int32 GetPhysicalChanAttributeInt32(const char physicalChannel[], int32 attribute, int32* value) = 0; - // virtual int32 GetPhysicalChanAttributeInt32Array(const char physicalChannel[], int32 attribute, int32 value[], uInt32 size) = 0; - // virtual int32 GetPhysicalChanAttributeString(const char physicalChannel[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetPhysicalChanAttributeUInt32(const char physicalChannel[], int32 attribute, uInt32* value) = 0; - // virtual int32 GetPhysicalChanAttributeUInt32Array(const char physicalChannel[], int32 attribute, uInt32 value[], uInt32 size) = 0; - // virtual int32 GetReadAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetReadAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; - // virtual int32 GetReadAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetReadAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetReadAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetReadAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; - // virtual int32 GetRealTimeAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetRealTimeAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetRealTimeAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetRefTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetScaleAttributeDouble(const char scaleName[], int32 attribute, float64* value) = 0; - // virtual int32 GetScaleAttributeDoubleArray(const char scaleName[], int32 attribute, float64 value[], uInt32 size) = 0; - // virtual int32 GetScaleAttributeInt32(const char scaleName[], int32 attribute, int32* value) = 0; - // virtual int32 GetScaleAttributeString(const char scaleName[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetSelfCalLastDateAndTime(const char deviceName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; - // virtual int32 GetStartTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetSyncPulseTimeWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; - // virtual int32 GetSystemInfoAttributeString(int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetSystemInfoAttributeUInt32(int32 attribute, uInt32* value) = 0; - // virtual int32 GetTaskAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetTaskAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetTaskAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetTimingAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetTimingAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; - // virtual int32 GetTimingAttributeExBool(TaskHandle task, const char deviceNames[], int32 attribute, bool32* value) = 0; - // virtual int32 GetTimingAttributeExDouble(TaskHandle task, const char deviceNames[], int32 attribute, float64* value) = 0; - // virtual int32 GetTimingAttributeExInt32(TaskHandle task, const char deviceNames[], int32 attribute, int32* value) = 0; - // virtual int32 GetTimingAttributeExString(TaskHandle task, const char deviceNames[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetTimingAttributeExTimestamp(TaskHandle task, const char deviceNames[], int32 attribute, CVIAbsoluteTime* value) = 0; - // virtual int32 GetTimingAttributeExUInt32(TaskHandle task, const char deviceNames[], int32 attribute, uInt32* value) = 0; - // virtual int32 GetTimingAttributeExUInt64(TaskHandle task, const char deviceNames[], int32 attribute, uInt64* value) = 0; - // virtual int32 GetTimingAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetTimingAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetTimingAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime* value) = 0; - // virtual int32 GetTimingAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetTimingAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; - // virtual int32 GetTrigAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetTrigAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; - // virtual int32 GetTrigAttributeDoubleArray(TaskHandle task, int32 attribute, float64 value[], uInt32 size) = 0; - // virtual int32 GetTrigAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetTrigAttributeInt32Array(TaskHandle task, int32 attribute, int32 value[], uInt32 size) = 0; - // virtual int32 GetTrigAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetTrigAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime* value) = 0; - // virtual int32 GetTrigAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetWatchdogAttributeBool(TaskHandle task, const char lines[], int32 attribute, bool32* value) = 0; - // virtual int32 GetWatchdogAttributeDouble(TaskHandle task, const char lines[], int32 attribute, float64* value) = 0; - // virtual int32 GetWatchdogAttributeInt32(TaskHandle task, const char lines[], int32 attribute, int32* value) = 0; - // virtual int32 GetWatchdogAttributeString(TaskHandle task, const char lines[], int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetWriteAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; - // virtual int32 GetWriteAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; - // virtual int32 GetWriteAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; - // virtual int32 GetWriteAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; - // virtual int32 GetWriteAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; - // virtual int32 GetWriteAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; - // virtual int32 IsTaskDone(TaskHandle task, bool32* isTaskDone) = 0; - // virtual int32 LoadTask(const char sessionName[], TaskHandle* task) = 0; - // virtual int32 PerformBridgeOffsetNullingCalEx(TaskHandle task, const char channel[], bool32 skipUnsupportedChannels) = 0; - // virtual int32 PerformBridgeShuntCalEx(TaskHandle task, const char channel[], float64 shuntResistorValue, int32 shuntResistorLocation, int32 shuntResistorSelect, int32 shuntResistorSource, float64 bridgeResistance, bool32 skipUnsupportedChannels) = 0; - // virtual int32 PerformStrainShuntCalEx(TaskHandle task, const char channel[], float64 shuntResistorValue, int32 shuntResistorLocation, int32 shuntResistorSelect, int32 shuntResistorSource, bool32 skipUnsupportedChannels) = 0; - // virtual int32 PerformThrmcplLeadOffsetNullingCal(TaskHandle task, const char channel[], bool32 skipUnsupportedChannels) = 0; - // virtual int32 ReadAnalogScalarF64(TaskHandle task, float64 timeout, float64* value, bool32* reserved) = 0; - // virtual int32 ReadBinaryI16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadBinaryI32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadBinaryU16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadBinaryU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCounterF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCounterF64Ex(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCounterScalarF64(TaskHandle task, float64 timeout, float64* value, bool32* reserved) = 0; - // virtual int32 ReadCounterScalarU32(TaskHandle task, float64 timeout, uInt32* value, bool32* reserved) = 0; - // virtual int32 ReadCounterU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCounterU32Ex(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCtrFreq(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, float64 readArrayFrequency[], float64 readArrayDutyCycle[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCtrFreqScalar(TaskHandle task, float64 timeout, float64* frequency, float64* dutyCycle, bool32* reserved) = 0; - // virtual int32 ReadCtrTicks(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, uInt32 readArrayHighTicks[], uInt32 readArrayLowTicks[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCtrTicksScalar(TaskHandle task, float64 timeout, uInt32* highTicks, uInt32* lowTicks, bool32* reserved) = 0; - // virtual int32 ReadCtrTime(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, float64 readArrayHighTime[], float64 readArrayLowTime[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadCtrTimeScalar(TaskHandle task, float64 timeout, float64* highTime, float64* lowTime, bool32* reserved) = 0; - // virtual int32 ReadDigitalScalarU32(TaskHandle task, float64 timeout, uInt32* value, bool32* reserved) = 0; - // virtual int32 ReadDigitalU16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadDigitalU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadDigitalU8(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadPowerBinaryI16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int16 readArrayVoltage[], int16 readArrayCurrent[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadPowerF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArrayVoltage[], float64 readArrayCurrent[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; - // virtual int32 ReadPowerScalarF64(TaskHandle task, float64 timeout, float64* voltage, float64* current, bool32* reserved) = 0; - // virtual int32 ReadRaw(TaskHandle task, int32 numSampsPerChan, float64 timeout, uInt8 readArray[], uInt32 arraySizeInBytes, int32* sampsRead, int32* numBytesPerSamp, bool32* reserved) = 0; - // virtual int32 RegisterDoneEvent(TaskHandle task, uInt32 options, DAQmxDoneEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 RegisterEveryNSamplesEvent(TaskHandle task, int32 everyNSamplesEventType, uInt32 nSamples, uInt32 options, DAQmxEveryNSamplesEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 RegisterSignalEvent(TaskHandle task, int32 signalID, uInt32 options, DAQmxSignalEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 RemoveCDAQSyncConnection(const char portList[]) = 0; - // virtual int32 ReserveNetworkDevice(const char deviceName[], bool32 overrideReservation) = 0; - // virtual int32 ResetBufferAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetChanAttribute(TaskHandle task, const char channel[], int32 attribute) = 0; - // virtual int32 ResetDevice(const char deviceName[]) = 0; - // virtual int32 ResetExportedSignalAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetReadAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetRealTimeAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetTimingAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetTimingAttributeEx(TaskHandle task, const char deviceNames[], int32 attribute) = 0; - // virtual int32 ResetTrigAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 ResetWatchdogAttribute(TaskHandle task, const char lines[], int32 attribute) = 0; - // virtual int32 ResetWriteAttribute(TaskHandle task, int32 attribute) = 0; - // virtual int32 RestoreLastExtCalConst(const char deviceName[]) = 0; - // virtual int32 SaveGlobalChan(TaskHandle task, const char channelName[], const char saveAs[], const char author[], uInt32 options) = 0; - // virtual int32 SaveScale(const char scaleName[], const char saveAs[], const char author[], uInt32 options) = 0; - // virtual int32 SaveTask(TaskHandle task, const char saveAs[], const char author[], uInt32 options) = 0; - // virtual int32 SelfCal(const char deviceName[]) = 0; - // virtual int32 SelfTestDevice(const char deviceName[]) = 0; - // virtual int32 SetAIChanCalCalDate(TaskHandle task, const char channelName[], uInt32 year, uInt32 month, uInt32 day, uInt32 hour, uInt32 minute) = 0; - // virtual int32 SetAIChanCalExpDate(TaskHandle task, const char channelName[], uInt32 year, uInt32 month, uInt32 day, uInt32 hour, uInt32 minute) = 0; - // virtual int32 SetAnalogPowerUpStatesWithOutputType(const char channelNames[], const float64 stateArray[], const int32 channelTypeArray[], uInt32 arraySize) = 0; - // virtual int32 SetArmStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime data) = 0; - // virtual int32 SetBufferAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetCalInfoAttributeBool(const char deviceName[], int32 attribute, bool32 value) = 0; - // virtual int32 SetCalInfoAttributeDouble(const char deviceName[], int32 attribute, float64 value) = 0; - // virtual int32 SetCalInfoAttributeString(const char deviceName[], int32 attribute, const char value[]) = 0; - // virtual int32 SetCalInfoAttributeUInt32(const char deviceName[], int32 attribute, uInt32 value) = 0; - // virtual int32 SetChanAttributeBool(TaskHandle task, const char channel[], int32 attribute, bool32 value) = 0; - // virtual int32 SetChanAttributeDouble(TaskHandle task, const char channel[], int32 attribute, float64 value) = 0; - // virtual int32 SetChanAttributeDoubleArray(TaskHandle task, const char channel[], int32 attribute, const float64 value[], uInt32 size) = 0; - // virtual int32 SetChanAttributeInt32(TaskHandle task, const char channel[], int32 attribute, int32 value) = 0; - // virtual int32 SetChanAttributeString(TaskHandle task, const char channel[], int32 attribute, const char value[]) = 0; - // virtual int32 SetChanAttributeUInt32(TaskHandle task, const char channel[], int32 attribute, uInt32 value) = 0; - // virtual int32 SetDigitalLogicFamilyPowerUpState(const char deviceName[], int32 logicFamily) = 0; - // virtual int32 SetExportedSignalAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetExportedSignalAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; - // virtual int32 SetExportedSignalAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetExportedSignalAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; - // virtual int32 SetExportedSignalAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetFirstSampClkWhen(TaskHandle task, CVIAbsoluteTime data) = 0; - // virtual int32 SetReadAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetReadAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; - // virtual int32 SetReadAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetReadAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; - // virtual int32 SetReadAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetReadAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; - // virtual int32 SetRealTimeAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetRealTimeAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetRealTimeAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetScaleAttributeDouble(const char scaleName[], int32 attribute, float64 value) = 0; - // virtual int32 SetScaleAttributeDoubleArray(const char scaleName[], int32 attribute, const float64 value[], uInt32 size) = 0; - // virtual int32 SetScaleAttributeInt32(const char scaleName[], int32 attribute, int32 value) = 0; - // virtual int32 SetScaleAttributeString(const char scaleName[], int32 attribute, const char value[]) = 0; - // virtual int32 SetStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime data) = 0; - // virtual int32 SetSyncPulseTimeWhen(TaskHandle task, CVIAbsoluteTime data) = 0; - // virtual int32 SetTimingAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetTimingAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; - // virtual int32 SetTimingAttributeExBool(TaskHandle task, const char deviceNames[], int32 attribute, bool32 value) = 0; - // virtual int32 SetTimingAttributeExDouble(TaskHandle task, const char deviceNames[], int32 attribute, float64 value) = 0; - // virtual int32 SetTimingAttributeExInt32(TaskHandle task, const char deviceNames[], int32 attribute, int32 value) = 0; - // virtual int32 SetTimingAttributeExString(TaskHandle task, const char deviceNames[], int32 attribute, const char value[]) = 0; - // virtual int32 SetTimingAttributeExTimestamp(TaskHandle task, const char deviceNames[], int32 attribute, CVIAbsoluteTime value) = 0; - // virtual int32 SetTimingAttributeExUInt32(TaskHandle task, const char deviceNames[], int32 attribute, uInt32 value) = 0; - // virtual int32 SetTimingAttributeExUInt64(TaskHandle task, const char deviceNames[], int32 attribute, uInt64 value) = 0; - // virtual int32 SetTimingAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetTimingAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; - // virtual int32 SetTimingAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime value) = 0; - // virtual int32 SetTimingAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetTimingAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; - // virtual int32 SetTrigAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetTrigAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; - // virtual int32 SetTrigAttributeDoubleArray(TaskHandle task, int32 attribute, const float64 value[], uInt32 size) = 0; - // virtual int32 SetTrigAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetTrigAttributeInt32Array(TaskHandle task, int32 attribute, const int32 value[], uInt32 size) = 0; - // virtual int32 SetTrigAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; - // virtual int32 SetTrigAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime value) = 0; - // virtual int32 SetTrigAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetWatchdogAttributeBool(TaskHandle task, const char lines[], int32 attribute, bool32 value) = 0; - // virtual int32 SetWatchdogAttributeDouble(TaskHandle task, const char lines[], int32 attribute, float64 value) = 0; - // virtual int32 SetWatchdogAttributeInt32(TaskHandle task, const char lines[], int32 attribute, int32 value) = 0; - // virtual int32 SetWatchdogAttributeString(TaskHandle task, const char lines[], int32 attribute, const char value[]) = 0; - // virtual int32 SetWriteAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; - // virtual int32 SetWriteAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; - // virtual int32 SetWriteAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; - // virtual int32 SetWriteAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; - // virtual int32 SetWriteAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; - // virtual int32 SetWriteAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; - // virtual int32 StartNewFile(TaskHandle task, const char filePath[]) = 0; +// virtual int32 AddCDAQSyncConnection(const char portList[]) = 0; +// virtual int32 AddGlobalChansToTask(TaskHandle task, const char channelNames[]) = 0; +// virtual int32 AddNetworkDevice(const char ipAddress[], const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize) = 0; +// virtual int32 AreConfiguredCDAQSyncPortsDisconnected(const char chassisDevicesPorts[], float64 timeout, bool32* disconnectedPortsExist) = 0; +// virtual int32 AutoConfigureCDAQSyncConnections(const char chassisDevicesPorts[], float64 timeout) = 0; +// virtual int32 CalculateReversePolyCoeff(const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, float64 reverseCoeffs[]) = 0; +// virtual int32 CfgAnlgEdgeRefTrig(TaskHandle task, const char triggerSource[], int32 triggerSlope, float64 triggerLevel, uInt32 pretriggerSamples) = 0; +// virtual int32 CfgAnlgEdgeStartTrig(TaskHandle task, const char triggerSource[], int32 triggerSlope, float64 triggerLevel) = 0; +// virtual int32 CfgAnlgMultiEdgeRefTrig(TaskHandle task, const char triggerSources[], const int32 triggerSlopeArray[], const float64 triggerLevelArray[], uInt32 pretriggerSamples, uInt32 arraySize) = 0; +// virtual int32 CfgAnlgMultiEdgeStartTrig(TaskHandle task, const char triggerSources[], const int32 triggerSlopeArray[], const float64 triggerLevelArray[], uInt32 arraySize) = 0; +// virtual int32 CfgAnlgWindowRefTrig(TaskHandle task, const char triggerSource[], int32 triggerWhen, float64 windowTop, float64 windowBottom, uInt32 pretriggerSamples) = 0; +// virtual int32 CfgAnlgWindowStartTrig(TaskHandle task, const char triggerSource[], int32 triggerWhen, float64 windowTop, float64 windowBottom) = 0; +// virtual int32 CfgBurstHandshakingTimingExportClock(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan, float64 sampleClkRate, const char sampleClkOutpTerm[], int32 sampleClkPulsePolarity, int32 pauseWhen, int32 readyEventActiveLevel) = 0; +// virtual int32 CfgBurstHandshakingTimingImportClock(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan, float64 sampleClkRate, const char sampleClkSrc[], int32 sampleClkActiveEdge, int32 pauseWhen, int32 readyEventActiveLevel) = 0; +// virtual int32 CfgChangeDetectionTiming(TaskHandle task, const char risingEdgeChan[], const char fallingEdgeChan[], int32 sampleMode, uInt64 sampsPerChan) = 0; +// virtual int32 CfgDigEdgeRefTrig(TaskHandle task, const char triggerSource[], int32 triggerEdge, uInt32 pretriggerSamples) = 0; +// virtual int32 CfgDigEdgeStartTrig(TaskHandle task, const char triggerSource[], int32 triggerEdge) = 0; +// virtual int32 CfgDigPatternRefTrig(TaskHandle task, const char triggerSource[], const char triggerPattern[], int32 triggerWhen, uInt32 pretriggerSamples) = 0; +// virtual int32 CfgDigPatternStartTrig(TaskHandle task, const char triggerSource[], const char triggerPattern[], int32 triggerWhen) = 0; +// virtual int32 CfgHandshakingTiming(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan) = 0; +// virtual int32 CfgImplicitTiming(TaskHandle task, int32 sampleMode, uInt64 sampsPerChan) = 0; +// virtual int32 CfgInputBuffer(TaskHandle task, uInt32 numSampsPerChan) = 0; +// virtual int32 CfgOutputBuffer(TaskHandle task, uInt32 numSampsPerChan) = 0; +// virtual int32 CfgPipelinedSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan) = 0; +// virtual int32 CfgTimeStartTrig(TaskHandle task, CVIAbsoluteTime when, int32 timescale) = 0; +// virtual int32 CfgWatchdogAOExpirStates(TaskHandle task, const char channelNames[], const float64 expirStateArray[], const int32 outputTypeArray[], uInt32 arraySize) = 0; +// virtual int32 CfgWatchdogCOExpirStates(TaskHandle task, const char channelNames[], const int32 expirStateArray[], uInt32 arraySize) = 0; +// virtual int32 CfgWatchdogDOExpirStates(TaskHandle task, const char channelNames[], const int32 expirStateArray[], uInt32 arraySize) = 0; +// virtual int32 ClearTEDS(const char physicalChannel[]) = 0; +// virtual int32 ConfigureLogging(TaskHandle task, const char filePath[], int32 loggingMode, const char groupName[], int32 operation) = 0; +// virtual int32 ConfigureTEDS(const char physicalChannel[], const char filePath[]) = 0; +// virtual int32 ConnectTerms(const char sourceTerminal[], const char destinationTerminal[], int32 signalModifiers) = 0; +// virtual int32 ControlWatchdogTask(TaskHandle task, int32 action) = 0; +// virtual int32 CreateAIAccel4WireDCVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]) = 0; +// virtual int32 CreateAIAccelChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIAccelChargeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const char customScaleName[]) = 0; +// virtual int32 CreateAIChargeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateAICurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; +// virtual int32 CreateAICurrentRMSChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIForceBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIForceBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIForceBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIForceIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIFreqVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 thresholdLevel, float64 hysteresis, const char customScaleName[]) = 0; +// virtual int32 CreateAIMicrophoneChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, int32 units, float64 micSensitivity, float64 maxSndPressLevel, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIPosEddyCurrProxProbeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIPosLVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; +// virtual int32 CreateAIPosRVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; +// virtual int32 CreateAIPowerChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 voltageSetpoint, float64 currentSetpoint, bool32 outputEnable) = 0; +// virtual int32 CreateAIPressureBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIPressureBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIPressureBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIRTDChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 rtdType, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, float64 r0) = 0; +// virtual int32 CreateAIResistanceChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIRosetteStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance) = 0; +// virtual int32 CreateAIStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 initialBridgeVoltage, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance, const char customScaleName[]) = 0; +// virtual int32 CreateAITempBuiltInSensorChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 units) = 0; +// virtual int32 CreateAIThrmcplChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 thermocoupleType, int32 cjcSource, float64 cjcVal, const char cjcChannel[]) = 0; +// virtual int32 CreateAIThrmstrChanIex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, float64 a, float64 b, float64 c) = 0; +// virtual int32 CreateAIThrmstrChanVex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 a, float64 b, float64 c, float64 r1) = 0; +// virtual int32 CreateAITorqueBridgePolynomialChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAITorqueBridgeTableChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAITorqueBridgeTwoPointLinChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]) = 0; +// virtual int32 CreateAIVelocityIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateAIVoltageChanWithExcit(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]) = 0; +// virtual int32 CreateAIVoltageRMSChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateAOCurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateAOFuncGenChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 type, float64 freq, float64 amplitude, float64 offset) = 0; +// virtual int32 CreateAOVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateCIAngEncoderChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 decodingType, bool32 zidxEnable, float64 zidxVal, int32 zidxPhase, int32 units, uInt32 pulsesPerRev, float64 initialAngle, const char customScaleName[]) = 0; +// virtual int32 CreateCIAngVelocityChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 decodingType, int32 units, uInt32 pulsesPerRev, const char customScaleName[]) = 0; +// virtual int32 CreateCICountEdgesChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 edge, uInt32 initialCount, int32 countDirection) = 0; +// virtual int32 CreateCIDutyCycleChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minFreq, float64 maxFreq, int32 edge, const char customScaleName[]) = 0; +// virtual int32 CreateCIFreqChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 edge, int32 measMethod, float64 measTime, uInt32 divisor, const char customScaleName[]) = 0; +// virtual int32 CreateCIGPSTimestampChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 syncMethod, const char customScaleName[]) = 0; +// virtual int32 CreateCILinEncoderChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 decodingType, bool32 zidxEnable, float64 zidxVal, int32 zidxPhase, int32 units, float64 distPerPulse, float64 initialPos, const char customScaleName[]) = 0; +// virtual int32 CreateCILinVelocityChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 decodingType, int32 units, float64 distPerPulse, const char customScaleName[]) = 0; +// virtual int32 CreateCIPeriodChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 edge, int32 measMethod, float64 measTime, uInt32 divisor, const char customScaleName[]) = 0; +// virtual int32 CreateCIPulseChanFreq(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units) = 0; +// virtual int32 CreateCIPulseChanTicks(TaskHandle task, const char counter[], const char nameToAssignToChannel[], const char sourceTerminal[], float64 minVal, float64 maxVal) = 0; +// virtual int32 CreateCIPulseChanTime(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units) = 0; +// virtual int32 CreateCIPulseWidthChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 startingEdge, const char customScaleName[]) = 0; +// virtual int32 CreateCISemiPeriodChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateCITwoEdgeSepChan(TaskHandle task, const char counter[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 firstEdge, int32 secondEdge, const char customScaleName[]) = 0; +// virtual int32 CreateCOPulseChanFreq(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 idleState, float64 initialDelay, float64 freq, float64 dutyCycle) = 0; +// virtual int32 CreateCOPulseChanTicks(TaskHandle task, const char counter[], const char nameToAssignToChannel[], const char sourceTerminal[], int32 idleState, int32 initialDelay, int32 lowTicks, int32 highTicks) = 0; +// virtual int32 CreateCOPulseChanTime(TaskHandle task, const char counter[], const char nameToAssignToChannel[], int32 units, int32 idleState, float64 initialDelay, float64 lowTime, float64 highTime) = 0; +// virtual int32 CreateLinScale(const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, const char scaledUnits[]) = 0; +// virtual int32 CreateMapScale(const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]) = 0; +// virtual int32 CreatePolynomialScale(const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, int32 preScaledUnits, const char scaledUnits[]) = 0; +// virtual int32 CreateTEDSAIAccelChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAICurrentChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 shuntResistorLoc, float64 extShuntResistorVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIForceBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIForceIEPEChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIMicrophoneChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, int32 units, float64 maxSndPressLevel, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIPosLVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIPosRVDTChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 voltageExcitFreq, int32 acExcitWireMode, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIPressureBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIRTDChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal) = 0; +// virtual int32 CreateTEDSAIResistanceChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIStrainGageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 initialBridgeVoltage, float64 leadWireResistance, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIThrmcplChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 cjcSource, float64 cjcVal, const char cjcChannel[]) = 0; +// virtual int32 CreateTEDSAIThrmstrChanIex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal) = 0; +// virtual int32 CreateTEDSAIThrmstrChanVex(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 r1) = 0; +// virtual int32 CreateTEDSAITorqueBridgeChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]) = 0; +// virtual int32 CreateTEDSAIVoltageChanWithExcit(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]) = 0; +// virtual int32 CreateTableScale(const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, const char scaledUnits[]) = 0; +// virtual int32 CreateWatchdogTimerTaskEx(const char deviceName[], const char sessionName[], TaskHandle* task, float64 timeout) = 0; +// virtual int32 DeleteNetworkDevice(const char deviceName[]) = 0; +// virtual int32 DeleteSavedGlobalChan(const char channelName[]) = 0; +// virtual int32 DeleteSavedScale(const char scaleName[]) = 0; +// virtual int32 DeleteSavedTask(const char taskName[]) = 0; +// virtual int32 DeviceSupportsCal(const char deviceName[], bool32* calSupported) = 0; +// virtual int32 DisableRefTrig(TaskHandle task) = 0; +// virtual int32 DisableStartTrig(TaskHandle task) = 0; +// virtual int32 DisconnectTerms(const char sourceTerminal[], const char destinationTerminal[]) = 0; +// virtual int32 ExportSignal(TaskHandle task, int32 signalID, const char outputTerminal[]) = 0; +// virtual int32 GetAIChanCalCalDate(TaskHandle task, const char channelName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; +// virtual int32 GetAIChanCalExpDate(TaskHandle task, const char channelName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; +// virtual int32 GetAnalogPowerUpStatesWithOutputType(const char channelNames[], float64 stateArray[], int32 channelTypeArray[], uInt32* arraySize) = 0; +// virtual int32 GetArmStartTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetArmStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetAutoConfiguredCDAQSyncConnections(char portList[], uInt32 portListSize) = 0; +// virtual int32 GetBufferAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetCalInfoAttributeBool(const char deviceName[], int32 attribute, bool32* value) = 0; +// virtual int32 GetCalInfoAttributeDouble(const char deviceName[], int32 attribute, float64* value) = 0; +// virtual int32 GetCalInfoAttributeString(const char deviceName[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetCalInfoAttributeUInt32(const char deviceName[], int32 attribute, uInt32* value) = 0; +// virtual int32 GetChanAttributeBool(TaskHandle task, const char channel[], int32 attribute, bool32* value) = 0; +// virtual int32 GetChanAttributeDouble(TaskHandle task, const char channel[], int32 attribute, float64* value) = 0; +// virtual int32 GetChanAttributeDoubleArray(TaskHandle task, const char channel[], int32 attribute, float64 value[], uInt32 size) = 0; +// virtual int32 GetChanAttributeInt32(TaskHandle task, const char channel[], int32 attribute, int32* value) = 0; +// virtual int32 GetChanAttributeString(TaskHandle task, const char channel[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetChanAttributeUInt32(TaskHandle task, const char channel[], int32 attribute, uInt32* value) = 0; +// virtual int32 GetDeviceAttributeBool(const char deviceName[], int32 attribute, bool32* value) = 0; +// virtual int32 GetDeviceAttributeDouble(const char deviceName[], int32 attribute, float64* value) = 0; +// virtual int32 GetDeviceAttributeDoubleArray(const char deviceName[], int32 attribute, float64 value[], uInt32 size) = 0; +// virtual int32 GetDeviceAttributeInt32(const char deviceName[], int32 attribute, int32* value) = 0; +// virtual int32 GetDeviceAttributeInt32Array(const char deviceName[], int32 attribute, int32 value[], uInt32 size) = 0; +// virtual int32 GetDeviceAttributeString(const char deviceName[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetDeviceAttributeUInt32(const char deviceName[], int32 attribute, uInt32* value) = 0; +// virtual int32 GetDeviceAttributeUInt32Array(const char deviceName[], int32 attribute, uInt32 value[], uInt32 size) = 0; +// virtual int32 GetDigitalLogicFamilyPowerUpState(const char deviceName[], int32* logicFamily) = 0; +// virtual int32 GetDisconnectedCDAQSyncPorts(char portList[], uInt32 portListSize) = 0; +// virtual int32 GetErrorString(int32 errorCode, char errorString[], uInt32 bufferSize) = 0; +// virtual int32 GetExportedSignalAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetExportedSignalAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; +// virtual int32 GetExportedSignalAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetExportedSignalAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetExportedSignalAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetExtCalLastDateAndTime(const char deviceName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; +// virtual int32 GetFirstSampClkWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetFirstSampTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetNthTaskChannel(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; +// virtual int32 GetNthTaskDevice(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; +// virtual int32 GetNthTaskReadChannel(TaskHandle task, uInt32 index, char buffer[], int32 bufferSize) = 0; +// virtual int32 GetPersistedChanAttributeBool(const char channel[], int32 attribute, bool32* value) = 0; +// virtual int32 GetPersistedChanAttributeString(const char channel[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetPersistedScaleAttributeBool(const char scaleName[], int32 attribute, bool32* value) = 0; +// virtual int32 GetPersistedScaleAttributeString(const char scaleName[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetPersistedTaskAttributeBool(const char taskName[], int32 attribute, bool32* value) = 0; +// virtual int32 GetPersistedTaskAttributeString(const char taskName[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetPhysicalChanAttributeBool(const char physicalChannel[], int32 attribute, bool32* value) = 0; +// virtual int32 GetPhysicalChanAttributeBytes(const char physicalChannel[], int32 attribute, uInt8 value[], uInt32 size) = 0; +// virtual int32 GetPhysicalChanAttributeDouble(const char physicalChannel[], int32 attribute, float64* value) = 0; +// virtual int32 GetPhysicalChanAttributeDoubleArray(const char physicalChannel[], int32 attribute, float64 value[], uInt32 size) = 0; +// virtual int32 GetPhysicalChanAttributeInt32(const char physicalChannel[], int32 attribute, int32* value) = 0; +// virtual int32 GetPhysicalChanAttributeInt32Array(const char physicalChannel[], int32 attribute, int32 value[], uInt32 size) = 0; +// virtual int32 GetPhysicalChanAttributeString(const char physicalChannel[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetPhysicalChanAttributeUInt32(const char physicalChannel[], int32 attribute, uInt32* value) = 0; +// virtual int32 GetPhysicalChanAttributeUInt32Array(const char physicalChannel[], int32 attribute, uInt32 value[], uInt32 size) = 0; +// virtual int32 GetReadAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetReadAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; +// virtual int32 GetReadAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetReadAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetReadAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetReadAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; +// virtual int32 GetRealTimeAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetRealTimeAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetRealTimeAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetRefTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetScaleAttributeDouble(const char scaleName[], int32 attribute, float64* value) = 0; +// virtual int32 GetScaleAttributeDoubleArray(const char scaleName[], int32 attribute, float64 value[], uInt32 size) = 0; +// virtual int32 GetScaleAttributeInt32(const char scaleName[], int32 attribute, int32* value) = 0; +// virtual int32 GetScaleAttributeString(const char scaleName[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetSelfCalLastDateAndTime(const char deviceName[], uInt32* year, uInt32* month, uInt32* day, uInt32* hour, uInt32* minute) = 0; +// virtual int32 GetStartTrigTimestampVal(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetSyncPulseTimeWhen(TaskHandle task, CVIAbsoluteTime* data) = 0; +// virtual int32 GetSystemInfoAttributeString(int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetSystemInfoAttributeUInt32(int32 attribute, uInt32* value) = 0; +// virtual int32 GetTaskAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetTaskAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetTaskAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetTimingAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetTimingAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; +// virtual int32 GetTimingAttributeExBool(TaskHandle task, const char deviceNames[], int32 attribute, bool32* value) = 0; +// virtual int32 GetTimingAttributeExDouble(TaskHandle task, const char deviceNames[], int32 attribute, float64* value) = 0; +// virtual int32 GetTimingAttributeExInt32(TaskHandle task, const char deviceNames[], int32 attribute, int32* value) = 0; +// virtual int32 GetTimingAttributeExString(TaskHandle task, const char deviceNames[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetTimingAttributeExTimestamp(TaskHandle task, const char deviceNames[], int32 attribute, CVIAbsoluteTime* value) = 0; +// virtual int32 GetTimingAttributeExUInt32(TaskHandle task, const char deviceNames[], int32 attribute, uInt32* value) = 0; +// virtual int32 GetTimingAttributeExUInt64(TaskHandle task, const char deviceNames[], int32 attribute, uInt64* value) = 0; +// virtual int32 GetTimingAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetTimingAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetTimingAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime* value) = 0; +// virtual int32 GetTimingAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetTimingAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; +// virtual int32 GetTrigAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetTrigAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; +// virtual int32 GetTrigAttributeDoubleArray(TaskHandle task, int32 attribute, float64 value[], uInt32 size) = 0; +// virtual int32 GetTrigAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetTrigAttributeInt32Array(TaskHandle task, int32 attribute, int32 value[], uInt32 size) = 0; +// virtual int32 GetTrigAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetTrigAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime* value) = 0; +// virtual int32 GetTrigAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetWatchdogAttributeBool(TaskHandle task, const char lines[], int32 attribute, bool32* value) = 0; +// virtual int32 GetWatchdogAttributeDouble(TaskHandle task, const char lines[], int32 attribute, float64* value) = 0; +// virtual int32 GetWatchdogAttributeInt32(TaskHandle task, const char lines[], int32 attribute, int32* value) = 0; +// virtual int32 GetWatchdogAttributeString(TaskHandle task, const char lines[], int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetWriteAttributeBool(TaskHandle task, int32 attribute, bool32* value) = 0; +// virtual int32 GetWriteAttributeDouble(TaskHandle task, int32 attribute, float64* value) = 0; +// virtual int32 GetWriteAttributeInt32(TaskHandle task, int32 attribute, int32* value) = 0; +// virtual int32 GetWriteAttributeString(TaskHandle task, int32 attribute, char value[], uInt32 size) = 0; +// virtual int32 GetWriteAttributeUInt32(TaskHandle task, int32 attribute, uInt32* value) = 0; +// virtual int32 GetWriteAttributeUInt64(TaskHandle task, int32 attribute, uInt64* value) = 0; +// virtual int32 IsTaskDone(TaskHandle task, bool32* isTaskDone) = 0; +// virtual int32 LoadTask(const char sessionName[], TaskHandle* task) = 0; +// virtual int32 PerformBridgeOffsetNullingCalEx(TaskHandle task, const char channel[], bool32 skipUnsupportedChannels) = 0; +// virtual int32 PerformBridgeShuntCalEx(TaskHandle task, const char channel[], float64 shuntResistorValue, int32 shuntResistorLocation, int32 shuntResistorSelect, int32 shuntResistorSource, float64 bridgeResistance, bool32 skipUnsupportedChannels) = 0; +// virtual int32 PerformStrainShuntCalEx(TaskHandle task, const char channel[], float64 shuntResistorValue, int32 shuntResistorLocation, int32 shuntResistorSelect, int32 shuntResistorSource, bool32 skipUnsupportedChannels) = 0; +// virtual int32 PerformThrmcplLeadOffsetNullingCal(TaskHandle task, const char channel[], bool32 skipUnsupportedChannels) = 0; +// virtual int32 ReadAnalogScalarF64(TaskHandle task, float64 timeout, float64* value, bool32* reserved) = 0; +// virtual int32 ReadBinaryI16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadBinaryI32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadBinaryU16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadBinaryU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCounterF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCounterF64Ex(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCounterScalarF64(TaskHandle task, float64 timeout, float64* value, bool32* reserved) = 0; +// virtual int32 ReadCounterScalarU32(TaskHandle task, float64 timeout, uInt32* value, bool32* reserved) = 0; +// virtual int32 ReadCounterU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCounterU32Ex(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCtrFreq(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, float64 readArrayFrequency[], float64 readArrayDutyCycle[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCtrFreqScalar(TaskHandle task, float64 timeout, float64* frequency, float64* dutyCycle, bool32* reserved) = 0; +// virtual int32 ReadCtrTicks(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, uInt32 readArrayHighTicks[], uInt32 readArrayLowTicks[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCtrTicksScalar(TaskHandle task, float64 timeout, uInt32* highTicks, uInt32* lowTicks, bool32* reserved) = 0; +// virtual int32 ReadCtrTime(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 interleaved, float64 readArrayHighTime[], float64 readArrayLowTime[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadCtrTimeScalar(TaskHandle task, float64 timeout, float64* highTime, float64* lowTime, bool32* reserved) = 0; +// virtual int32 ReadDigitalScalarU32(TaskHandle task, float64 timeout, uInt32* value, bool32* reserved) = 0; +// virtual int32 ReadDigitalU16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt16 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadDigitalU32(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt32 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadDigitalU8(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadPowerBinaryI16(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, int16 readArrayVoltage[], int16 readArrayCurrent[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadPowerF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArrayVoltage[], float64 readArrayCurrent[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved) = 0; +// virtual int32 ReadPowerScalarF64(TaskHandle task, float64 timeout, float64* voltage, float64* current, bool32* reserved) = 0; +// virtual int32 ReadRaw(TaskHandle task, int32 numSampsPerChan, float64 timeout, uInt8 readArray[], uInt32 arraySizeInBytes, int32* sampsRead, int32* numBytesPerSamp, bool32* reserved) = 0; +// virtual int32 RegisterDoneEvent(TaskHandle task, uInt32 options, DAQmxDoneEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 RegisterEveryNSamplesEvent(TaskHandle task, int32 everyNSamplesEventType, uInt32 nSamples, uInt32 options, DAQmxEveryNSamplesEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 RegisterSignalEvent(TaskHandle task, int32 signalID, uInt32 options, DAQmxSignalEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 RemoveCDAQSyncConnection(const char portList[]) = 0; +// virtual int32 ReserveNetworkDevice(const char deviceName[], bool32 overrideReservation) = 0; +// virtual int32 ResetBufferAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetChanAttribute(TaskHandle task, const char channel[], int32 attribute) = 0; +// virtual int32 ResetDevice(const char deviceName[]) = 0; +// virtual int32 ResetExportedSignalAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetReadAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetRealTimeAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetTimingAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetTimingAttributeEx(TaskHandle task, const char deviceNames[], int32 attribute) = 0; +// virtual int32 ResetTrigAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 ResetWatchdogAttribute(TaskHandle task, const char lines[], int32 attribute) = 0; +// virtual int32 ResetWriteAttribute(TaskHandle task, int32 attribute) = 0; +// virtual int32 RestoreLastExtCalConst(const char deviceName[]) = 0; +// virtual int32 SaveGlobalChan(TaskHandle task, const char channelName[], const char saveAs[], const char author[], uInt32 options) = 0; +// virtual int32 SaveScale(const char scaleName[], const char saveAs[], const char author[], uInt32 options) = 0; +// virtual int32 SaveTask(TaskHandle task, const char saveAs[], const char author[], uInt32 options) = 0; +// virtual int32 SelfCal(const char deviceName[]) = 0; +// virtual int32 SelfTestDevice(const char deviceName[]) = 0; +// virtual int32 SetAIChanCalCalDate(TaskHandle task, const char channelName[], uInt32 year, uInt32 month, uInt32 day, uInt32 hour, uInt32 minute) = 0; +// virtual int32 SetAIChanCalExpDate(TaskHandle task, const char channelName[], uInt32 year, uInt32 month, uInt32 day, uInt32 hour, uInt32 minute) = 0; +// virtual int32 SetAnalogPowerUpStatesWithOutputType(const char channelNames[], const float64 stateArray[], const int32 channelTypeArray[], uInt32 arraySize) = 0; +// virtual int32 SetArmStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime data) = 0; +// virtual int32 SetBufferAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetCalInfoAttributeBool(const char deviceName[], int32 attribute, bool32 value) = 0; +// virtual int32 SetCalInfoAttributeDouble(const char deviceName[], int32 attribute, float64 value) = 0; +// virtual int32 SetCalInfoAttributeString(const char deviceName[], int32 attribute, const char value[]) = 0; +// virtual int32 SetCalInfoAttributeUInt32(const char deviceName[], int32 attribute, uInt32 value) = 0; +// virtual int32 SetChanAttributeBool(TaskHandle task, const char channel[], int32 attribute, bool32 value) = 0; +// virtual int32 SetChanAttributeDouble(TaskHandle task, const char channel[], int32 attribute, float64 value) = 0; +// virtual int32 SetChanAttributeDoubleArray(TaskHandle task, const char channel[], int32 attribute, const float64 value[], uInt32 size) = 0; +// virtual int32 SetChanAttributeInt32(TaskHandle task, const char channel[], int32 attribute, int32 value) = 0; +// virtual int32 SetChanAttributeString(TaskHandle task, const char channel[], int32 attribute, const char value[]) = 0; +// virtual int32 SetChanAttributeUInt32(TaskHandle task, const char channel[], int32 attribute, uInt32 value) = 0; +// virtual int32 SetDigitalLogicFamilyPowerUpState(const char deviceName[], int32 logicFamily) = 0; +// virtual int32 SetExportedSignalAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetExportedSignalAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; +// virtual int32 SetExportedSignalAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetExportedSignalAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; +// virtual int32 SetExportedSignalAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetFirstSampClkWhen(TaskHandle task, CVIAbsoluteTime data) = 0; +// virtual int32 SetReadAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetReadAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; +// virtual int32 SetReadAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetReadAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; +// virtual int32 SetReadAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetReadAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; +// virtual int32 SetRealTimeAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetRealTimeAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetRealTimeAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetScaleAttributeDouble(const char scaleName[], int32 attribute, float64 value) = 0; +// virtual int32 SetScaleAttributeDoubleArray(const char scaleName[], int32 attribute, const float64 value[], uInt32 size) = 0; +// virtual int32 SetScaleAttributeInt32(const char scaleName[], int32 attribute, int32 value) = 0; +// virtual int32 SetScaleAttributeString(const char scaleName[], int32 attribute, const char value[]) = 0; +// virtual int32 SetStartTrigTrigWhen(TaskHandle task, CVIAbsoluteTime data) = 0; +// virtual int32 SetSyncPulseTimeWhen(TaskHandle task, CVIAbsoluteTime data) = 0; +// virtual int32 SetTimingAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetTimingAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; +// virtual int32 SetTimingAttributeExBool(TaskHandle task, const char deviceNames[], int32 attribute, bool32 value) = 0; +// virtual int32 SetTimingAttributeExDouble(TaskHandle task, const char deviceNames[], int32 attribute, float64 value) = 0; +// virtual int32 SetTimingAttributeExInt32(TaskHandle task, const char deviceNames[], int32 attribute, int32 value) = 0; +// virtual int32 SetTimingAttributeExString(TaskHandle task, const char deviceNames[], int32 attribute, const char value[]) = 0; +// virtual int32 SetTimingAttributeExTimestamp(TaskHandle task, const char deviceNames[], int32 attribute, CVIAbsoluteTime value) = 0; +// virtual int32 SetTimingAttributeExUInt32(TaskHandle task, const char deviceNames[], int32 attribute, uInt32 value) = 0; +// virtual int32 SetTimingAttributeExUInt64(TaskHandle task, const char deviceNames[], int32 attribute, uInt64 value) = 0; +// virtual int32 SetTimingAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetTimingAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; +// virtual int32 SetTimingAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime value) = 0; +// virtual int32 SetTimingAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetTimingAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; +// virtual int32 SetTrigAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetTrigAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; +// virtual int32 SetTrigAttributeDoubleArray(TaskHandle task, int32 attribute, const float64 value[], uInt32 size) = 0; +// virtual int32 SetTrigAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetTrigAttributeInt32Array(TaskHandle task, int32 attribute, const int32 value[], uInt32 size) = 0; +// virtual int32 SetTrigAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; +// virtual int32 SetTrigAttributeTimestamp(TaskHandle task, int32 attribute, CVIAbsoluteTime value) = 0; +// virtual int32 SetTrigAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetWatchdogAttributeBool(TaskHandle task, const char lines[], int32 attribute, bool32 value) = 0; +// virtual int32 SetWatchdogAttributeDouble(TaskHandle task, const char lines[], int32 attribute, float64 value) = 0; +// virtual int32 SetWatchdogAttributeInt32(TaskHandle task, const char lines[], int32 attribute, int32 value) = 0; +// virtual int32 SetWatchdogAttributeString(TaskHandle task, const char lines[], int32 attribute, const char value[]) = 0; +// virtual int32 SetWriteAttributeBool(TaskHandle task, int32 attribute, bool32 value) = 0; +// virtual int32 SetWriteAttributeDouble(TaskHandle task, int32 attribute, float64 value) = 0; +// virtual int32 SetWriteAttributeInt32(TaskHandle task, int32 attribute, int32 value) = 0; +// virtual int32 SetWriteAttributeString(TaskHandle task, int32 attribute, const char value[]) = 0; +// virtual int32 SetWriteAttributeUInt32(TaskHandle task, int32 attribute, uInt32 value) = 0; +// virtual int32 SetWriteAttributeUInt64(TaskHandle task, int32 attribute, uInt64 value) = 0; +// virtual int32 StartNewFile(TaskHandle task, const char filePath[]) = 0; - // virtual int32 TaskControl(TaskHandle task, int32 action) = 0; - // virtual int32 TristateOutputTerm(const char outputTerminal[]) = 0; - // virtual int32 UnregisterDoneEvent(TaskHandle task, uInt32 options, DAQmxDoneEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 UnregisterEveryNSamplesEvent(TaskHandle task, int32 everyNSamplesEventType, uInt32 nSamples, uInt32 options, DAQmxEveryNSamplesEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 UnregisterSignalEvent(TaskHandle task, int32 signalID, uInt32 options, DAQmxSignalEventCallbackPtr callbackFunction, void* callbackData) = 0; - // virtual int32 UnreserveNetworkDevice(const char deviceName[]) = 0; - // virtual int32 WaitForNextSampleClock(TaskHandle task, float64 timeout, bool32* isLate) = 0; - // virtual int32 WaitForValidTimestamp(TaskHandle task, int32 timestampEvent, float64 timeout, CVIAbsoluteTime* timestamp) = 0; - // virtual int32 WaitUntilTaskDone(TaskHandle task, float64 timeToWait) = 0; - // virtual int32 WriteAnalogF64(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteAnalogScalarF64(TaskHandle task, bool32 autoStart, float64 timeout, float64 value, bool32* reserved) = 0; - // virtual int32 WriteBinaryI16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const int16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteBinaryI32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const int32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteBinaryU16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteBinaryU32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteCtrFreq(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 frequency[], const float64 dutyCycle[], int32* numSampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteCtrFreqScalar(TaskHandle task, bool32 autoStart, float64 timeout, float64 frequency, float64 dutyCycle, bool32* reserved) = 0; - // virtual int32 WriteCtrTicks(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 highTicks[], const uInt32 lowTicks[], int32* numSampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteCtrTicksScalar(TaskHandle task, bool32 autoStart, float64 timeout, uInt32 highTicks, uInt32 lowTicks, bool32* reserved) = 0; - // virtual int32 WriteCtrTime(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 highTime[], const float64 lowTime[], int32* numSampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteCtrTimeScalar(TaskHandle task, bool32 autoStart, float64 timeout, float64 highTime, float64 lowTime, bool32* reserved) = 0; - // virtual int32 WriteDigitalScalarU32(TaskHandle task, bool32 autoStart, float64 timeout, uInt32 value, bool32* reserved) = 0; - // virtual int32 WriteDigitalU16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteDigitalU32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteDigitalU8(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteRaw(TaskHandle task, int32 numSamps, bool32 autoStart, float64 timeout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; - // virtual int32 WriteToTEDSFromArray(const char physicalChannel[], const uInt8 bitStream[], uInt32 arraySize, int32 basicTEDSOptions) = 0; - // virtual int32 WriteToTEDSFromFile(const char physicalChannel[], const char filePath[], int32 basicTEDSOptions) = 0; \ No newline at end of file +// virtual int32 TaskControl(TaskHandle task, int32 action) = 0; +// virtual int32 TristateOutputTerm(const char outputTerminal[]) = 0; +// virtual int32 UnregisterDoneEvent(TaskHandle task, uInt32 options, DAQmxDoneEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 UnregisterEveryNSamplesEvent(TaskHandle task, int32 everyNSamplesEventType, uInt32 nSamples, uInt32 options, DAQmxEveryNSamplesEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 UnregisterSignalEvent(TaskHandle task, int32 signalID, uInt32 options, DAQmxSignalEventCallbackPtr callbackFunction, void* callbackData) = 0; +// virtual int32 UnreserveNetworkDevice(const char deviceName[]) = 0; +// virtual int32 WaitForNextSampleClock(TaskHandle task, float64 timeout, bool32* isLate) = 0; +// virtual int32 WaitForValidTimestamp(TaskHandle task, int32 timestampEvent, float64 timeout, CVIAbsoluteTime* timestamp) = 0; +// virtual int32 WaitUntilTaskDone(TaskHandle task, float64 timeToWait) = 0; +// virtual int32 WriteAnalogF64(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteAnalogScalarF64(TaskHandle task, bool32 autoStart, float64 timeout, float64 value, bool32* reserved) = 0; +// virtual int32 WriteBinaryI16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const int16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteBinaryI32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const int32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteBinaryU16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteBinaryU32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteCtrFreq(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 frequency[], const float64 dutyCycle[], int32* numSampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteCtrFreqScalar(TaskHandle task, bool32 autoStart, float64 timeout, float64 frequency, float64 dutyCycle, bool32* reserved) = 0; +// virtual int32 WriteCtrTicks(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 highTicks[], const uInt32 lowTicks[], int32* numSampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteCtrTicksScalar(TaskHandle task, bool32 autoStart, float64 timeout, uInt32 highTicks, uInt32 lowTicks, bool32* reserved) = 0; +// virtual int32 WriteCtrTime(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const float64 highTime[], const float64 lowTime[], int32* numSampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteCtrTimeScalar(TaskHandle task, bool32 autoStart, float64 timeout, float64 highTime, float64 lowTime, bool32* reserved) = 0; +// virtual int32 WriteDigitalScalarU32(TaskHandle task, bool32 autoStart, float64 timeout, uInt32 value, bool32* reserved) = 0; +// virtual int32 WriteDigitalU16(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt16 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteDigitalU32(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt32 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteDigitalU8(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteRaw(TaskHandle task, int32 numSamps, bool32 autoStart, float64 timeout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved) = 0; +// virtual int32 WriteToTEDSFromArray(const char physicalChannel[], const uInt8 bitStream[], uInt32 arraySize, int32 basicTEDSOptions) = 0; +// virtual int32 WriteToTEDSFromFile(const char physicalChannel[], const char filePath[], int32 basicTEDSOptions) = 0; \ No newline at end of file diff --git a/driver/ni/nidaqmx_mock.cpp b/driver/ni/nidaqmx_mock.cpp index 805f951be3..b666a810fa 100644 --- a/driver/ni/nidaqmx_mock.cpp +++ b/driver/ni/nidaqmx_mock.cpp @@ -9,71 +9,94 @@ #include "daqmx.h" #include "nidaqmx_api.h" -int32 ni::NiDAQmxInterface::CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]){ +int32 ni::NiDAQmxInterface::CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], + const char nameToAssignToChannel[], int32 terminalConfig, + float64 minVal, float64 maxVal, int32 units, + const char customScaleName[]) { return 0; } -int32 ni::NiDAQmxInterface::CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping){ +int32 ni::NiDAQmxInterface::CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], + int32 lineGrouping) { return 0; } -int32 ni::NiDAQmxInterface::CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping){ +int32 ni::NiDAQmxInterface::CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], + int32 lineGrouping) { return 0; } -int32 ni::NiDAQmxInterface::CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan){ +int32 ni::NiDAQmxInterface::CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, + int32 sampleMode, uInt64 sampsPerChan) { return 0; } -int32 ni::NiDAQmxInterface::StartTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::StartTask(TaskHandle task) { return 0; } -int32 ni::NiDAQmxInterface::StopTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::StopTask(TaskHandle task) { return 0; } -int32 ni::NiDAQmxInterface::ClearTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::ClearTask(TaskHandle task) { return 0; -} +} -int32 ni::NiDAQmxInterface::ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved){ +int32 ni::NiDAQmxInterface::ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, + float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, + bool32 *reserved) { return 0; } -int32 ni::NiDAQmxInterface::ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], uInt32 arraySizeInBytes, int32* sampsPerChanRead, int32* numBytesPerSamp, bool32* reserved){ +int32 ni::NiDAQmxInterface::ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, + uInt8 readArray[], uInt32 arraySizeInBytes, int32 *sampsPerChanRead, + int32 *numBytesPerSamp, bool32 *reserved) { return 0; } -int32 ni::NiDAQmxInterface::WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved){ +int32 ni::NiDAQmxInterface::WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, + int32 dataLayout, const uInt8 writeArray[], int32 *sampsPerChanWritten, + bool32 *reserved) { return 0; } -int32 ni::NiDAQmxInterface::GetExtendedErrorInfo(char errorString[], uInt32 bufferSize){ +int32 ni::NiDAQmxInterface::GetExtendedErrorInfo(char errorString[], uInt32 bufferSize) { return 0; -} +} -int32 ni::NiDAQmxInterface::CreateLinScale (const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, const char scaledUnits[]){ +int32 ni::NiDAQmxInterface::CreateLinScale(const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, + const char scaledUnits[]) { return 0; } -int32 ni::NiDAQmxInterface::CreateMapScale (const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]){ +int32 +ni::NiDAQmxInterface::CreateMapScale(const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, + float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]) { return 0; } -int32 ni::NiDAQmxInterface::CreatePolynomialScale (const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, int32 preScaledUnits, const char scaledUnits[]){ +int32 +ni::NiDAQmxInterface::CreatePolynomialScale(const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, + const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, + int32 preScaledUnits, const char scaledUnits[]) { return 0; } -int32 ni::NiDAQmxInterface::CreateTableScale (const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, const char scaledUnits[]){ +int32 +ni::NiDAQmxInterface::CreateTableScale(const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, + const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, + const char scaledUnits[]) { return 0; } -int32 ni::NiDAQmxInterface::CalculateReversePolyCoeff (const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, float64 reverseCoeffs[]){ +int32 ni::NiDAQmxInterface::CalculateReversePolyCoeff(const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, + float64 minValX, float64 maxValX, int32 numPointsToCompute, + int32 reversePolyOrder, float64 reverseCoeffs[]) { return 0; } -int32 ni::NiDAQmxInterface::CreateTask(const char sessionName[], TaskHandle* task){ +int32 ni::NiDAQmxInterface::CreateTask(const char sessionName[], TaskHandle *task) { return 0; } diff --git a/driver/ni/nidaqmx_prod.cpp b/driver/ni/nidaqmx_prod.cpp index 8b8b33946a..7762cb0c06 100644 --- a/driver/ni/nidaqmx_prod.cpp +++ b/driver/ni/nidaqmx_prod.cpp @@ -10,71 +10,101 @@ #include "daqmx.h" #include "nidaqmx_api.h" -int32 ni::NiDAQmxInterface::CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[]){ - return DAQmxCreateAIVoltageChan(task, physicalChannel, nameToAssignToChannel, terminalConfig, minVal, maxVal, units, customScaleName); +int32 ni::NiDAQmxInterface::CreateAIVoltageChan(TaskHandle task, const char physicalChannel[], + const char nameToAssignToChannel[], int32 terminalConfig, + float64 minVal, float64 maxVal, int32 units, + const char customScaleName[]) { + return DAQmxCreateAIVoltageChan(task, physicalChannel, nameToAssignToChannel, terminalConfig, minVal, maxVal, units, + customScaleName); } -int32 ni::NiDAQmxInterface::CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping){ +int32 ni::NiDAQmxInterface::CreateDIChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], + int32 lineGrouping) { return DAQmxCreateDIChan(task, lines, nameToAssignToLines, lineGrouping); } -int32 ni::NiDAQmxInterface::CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], int32 lineGrouping){ +int32 ni::NiDAQmxInterface::CreateDOChan(TaskHandle task, const char lines[], const char nameToAssignToLines[], + int32 lineGrouping) { return DAQmxCreateDOChan(task, lines, nameToAssignToLines, lineGrouping); } -int32 ni::NiDAQmxInterface::CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, int32 sampleMode, uInt64 sampsPerChan){ +int32 ni::NiDAQmxInterface::CfgSampClkTiming(TaskHandle task, const char source[], float64 rate, int32 activeEdge, + int32 sampleMode, uInt64 sampsPerChan) { return DAQmxCfgSampClkTiming(task, source, rate, activeEdge, sampleMode, sampsPerChan); } -int32 ni::NiDAQmxInterface::StartTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::StartTask(TaskHandle task) { return DAQmxStartTask(task); } -int32 ni::NiDAQmxInterface::StopTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::StopTask(TaskHandle task) { return DAQmxStopTask(task); } -int32 ni::NiDAQmxInterface::ClearTask(TaskHandle task){ +int32 ni::NiDAQmxInterface::ClearTask(TaskHandle task) { return DAQmxClearTask(task); -} +} -int32 ni::NiDAQmxInterface::ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32* sampsPerChanRead, bool32* reserved){ - return DAQmxReadAnalogF64(task, numSampsPerChan, timeout, fillMode, readArray, arraySizeInSamps, sampsPerChanRead, reserved); +int32 ni::NiDAQmxInterface::ReadAnalogF64(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, + float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, + bool32 *reserved) { + return DAQmxReadAnalogF64(task, numSampsPerChan, timeout, fillMode, readArray, arraySizeInSamps, sampsPerChanRead, + reserved); } -int32 ni::NiDAQmxInterface::ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, uInt8 readArray[], uInt32 arraySizeInBytes, int32* sampsPerChanRead, int32* numBytesPerSamp, bool32* reserved){ - return DAQmxReadDigitalLines(task, numSampsPerChan, timeout, fillMode, readArray, arraySizeInBytes, sampsPerChanRead, numBytesPerSamp, reserved); +int32 ni::NiDAQmxInterface::ReadDigitalLines(TaskHandle task, int32 numSampsPerChan, float64 timeout, int32 fillMode, + uInt8 readArray[], uInt32 arraySizeInBytes, int32 *sampsPerChanRead, + int32 *numBytesPerSamp, bool32 *reserved) { + return DAQmxReadDigitalLines(task, numSampsPerChan, timeout, fillMode, readArray, arraySizeInBytes, + sampsPerChanRead, numBytesPerSamp, reserved); } -int32 ni::NiDAQmxInterface::WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, int32 dataLayout, const uInt8 writeArray[], int32* sampsPerChanWritten, bool32* reserved){ - return DAQmxWriteDigitalLines(task, numSampsPerChan, autoStart, timeout, dataLayout, writeArray, sampsPerChanWritten, reserved); +int32 ni::NiDAQmxInterface::WriteDigitalLines(TaskHandle task, int32 numSampsPerChan, bool32 autoStart, float64 timeout, + int32 dataLayout, const uInt8 writeArray[], int32 *sampsPerChanWritten, + bool32 *reserved) { + return DAQmxWriteDigitalLines(task, numSampsPerChan, autoStart, timeout, dataLayout, writeArray, + sampsPerChanWritten, reserved); } -int32 ni::NiDAQmxInterface::GetExtendedErrorInfo(char errorString[], uInt32 bufferSize){ +int32 ni::NiDAQmxInterface::GetExtendedErrorInfo(char errorString[], uInt32 bufferSize) { return DAQmxGetExtendedErrorInfo(errorString, bufferSize); -} +} -int32 ni::NiDAQmxInterface::CreateLinScale (const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, const char scaledUnits[]){ +int32 ni::NiDAQmxInterface::CreateLinScale(const char name[], float64 slope, float64 yIntercept, int32 preScaledUnits, + const char scaledUnits[]) { return DAQmxCreateLinScale(name, slope, yIntercept, preScaledUnits, scaledUnits); } -int32 ni::NiDAQmxInterface::CreateMapScale (const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]){ +int32 +ni::NiDAQmxInterface::CreateMapScale(const char name[], float64 prescaledMin, float64 prescaledMax, float64 scaledMin, + float64 scaledMax, int32 preScaledUnits, const char scaledUnits[]) { return DAQmxCreateMapScale(name, prescaledMin, prescaledMax, scaledMin, scaledMax, preScaledUnits, scaledUnits); } -int32 ni::NiDAQmxInterface::CreatePolynomialScale (const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, int32 preScaledUnits, const char scaledUnits[]){ - return DAQmxCreatePolynomialScale(name, forwardCoeffs, numForwardCoeffsIn, reverseCoeffs, numReverseCoeffsIn, preScaledUnits, scaledUnits); +int32 +ni::NiDAQmxInterface::CreatePolynomialScale(const char name[], const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, + const float64 reverseCoeffs[], uInt32 numReverseCoeffsIn, + int32 preScaledUnits, const char scaledUnits[]) { + return DAQmxCreatePolynomialScale(name, forwardCoeffs, numForwardCoeffsIn, reverseCoeffs, numReverseCoeffsIn, + preScaledUnits, scaledUnits); } -int32 ni::NiDAQmxInterface::CreateTableScale (const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, const char scaledUnits[]){ - return DAQmxCreateTableScale(name, prescaledVals, numPrescaledValsIn, scaledVals, numScaledValsIn, preScaledUnits, scaledUnits); +int32 +ni::NiDAQmxInterface::CreateTableScale(const char name[], const float64 prescaledVals[], uInt32 numPrescaledValsIn, + const float64 scaledVals[], uInt32 numScaledValsIn, int32 preScaledUnits, + const char scaledUnits[]) { + return DAQmxCreateTableScale(name, prescaledVals, numPrescaledValsIn, scaledVals, numScaledValsIn, preScaledUnits, + scaledUnits); } -int32 ni::NiDAQmxInterface::CalculateReversePolyCoeff (const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, float64 minValX, float64 maxValX, int32 numPointsToCompute, int32 reversePolyOrder, float64 reverseCoeffs[]){ - return DAQmxCalculateReversePolyCoeff(forwardCoeffs, numForwardCoeffsIn, minValX, maxValX, numPointsToCompute, reversePolyOrder, reverseCoeffs); +int32 ni::NiDAQmxInterface::CalculateReversePolyCoeff(const float64 forwardCoeffs[], uInt32 numForwardCoeffsIn, + float64 minValX, float64 maxValX, int32 numPointsToCompute, + int32 reversePolyOrder, float64 reverseCoeffs[]) { + return DAQmxCalculateReversePolyCoeff(forwardCoeffs, numForwardCoeffsIn, minValX, maxValX, numPointsToCompute, + reversePolyOrder, reverseCoeffs); } -int32 ni::NiDAQmxInterface::CreateTask(const char sessionName[], TaskHandle* task){ +int32 ni::NiDAQmxInterface::CreateTask(const char sessionName[], TaskHandle *task) { return DAQmxCreateTask(sessionName, task); } diff --git a/driver/ni/nisyscfg.h b/driver/ni/nisyscfg.h index f01c70f8e1..121ce4e5cf 100644 --- a/driver/ni/nisyscfg.h +++ b/driver/ni/nisyscfg.h @@ -31,8 +31,8 @@ // All our public functions return a signed 32-bit status code. #if defined(__WIN32__) || defined(__NT__) || defined(_WIN32) || defined(WIN32) #define NISYSCFGCONV __stdcall - #define NISYSCFGCDECL NISysCfgStatus __cdecl - typedef unsigned __int64 NISysCfgUInt64; +#define NISYSCFGCDECL NISysCfgStatus __cdecl +typedef unsigned __int64 NISysCfgUInt64; #else #define NISYSCFGCONV #define NISYSCFGCDECL NISysCfgStatus @@ -57,478 +57,447 @@ extern "C" { #if defined(_CVI_) #pragma pack(push, 4) - #ifndef CVITime_DECLARED - #define CVITime_DECLARED - typedef struct CVITime { unsigned __int64 lsb; __int64 msb; } CVITime; - #endif - #ifndef CVIAbsoluteTime_DECLARED - #define CVIAbsoluteTime_DECLARED - typedef union CVIAbsoluteTime { CVITime cviTime; unsigned int u32Data[4]; } CVIAbsoluteTime; - #endif - typedef CVIAbsoluteTime NISysCfgTimestampUTC; - #pragma pack(pop) +#ifndef CVITime_DECLARED +#define CVITime_DECLARED +typedef struct CVITime { unsigned __int64 lsb; __int64 msb; } CVITime; +#endif +#ifndef CVIAbsoluteTime_DECLARED +#define CVIAbsoluteTime_DECLARED +typedef union CVIAbsoluteTime { CVITime cviTime; unsigned int u32Data[4]; } CVIAbsoluteTime; +#endif +typedef CVIAbsoluteTime NISysCfgTimestampUTC; +#pragma pack(pop) #else -typedef struct { unsigned int u32Data[4]; } NISysCfgTimestampUTC; +typedef struct { + unsigned int u32Data[4]; +} NISysCfgTimestampUTC; #endif //////////////////////////////////////////////////////////////////////////////// // Handles //////////////////////////////////////////////////////////////////////////////// -typedef void * NISysCfgSessionHandle; -typedef void * NISysCfgResourceHandle; -typedef void * NISysCfgFilterHandle; -typedef void * NISysCfgSoftwareSetHandle; -typedef void * NISysCfgEnumResourceHandle; -typedef void * NISysCfgEnumExpertHandle; -typedef void * NISysCfgEnumSystemHandle; -typedef void * NISysCfgEnumSoftwareFeedHandle; -typedef void * NISysCfgEnumSoftwareSetHandle; -typedef void * NISysCfgEnumDependencyHandle; -typedef void * NISysCfgEnumSoftwareComponentHandle; +typedef void *NISysCfgSessionHandle; +typedef void *NISysCfgResourceHandle; +typedef void *NISysCfgFilterHandle; +typedef void *NISysCfgSoftwareSetHandle; +typedef void *NISysCfgEnumResourceHandle; +typedef void *NISysCfgEnumExpertHandle; +typedef void *NISysCfgEnumSystemHandle; +typedef void *NISysCfgEnumSoftwareFeedHandle; +typedef void *NISysCfgEnumSoftwareSetHandle; +typedef void *NISysCfgEnumDependencyHandle; +typedef void *NISysCfgEnumSoftwareComponentHandle; //////////////////////////////////////////////////////////////////////////////// // Enumerations //////////////////////////////////////////////////////////////////////////////// -typedef enum -{ - NISysCfgIncludeCachedResultsNone = 0, - NISysCfgIncludeCachedResultsOnlyIfOnline = 1, - NISysCfgIncludeCachedResultsAll = 3 +typedef enum { + NISysCfgIncludeCachedResultsNone = 0, + NISysCfgIncludeCachedResultsOnlyIfOnline = 1, + NISysCfgIncludeCachedResultsAll = 3 } NISysCfgIncludeCachedResults; // The initialization string may contain any combination of 1 or 2 // of the hostname, IP address, and/or MAC address. -typedef enum -{ - NISysCfgSystemNameFormatHostname = 0x10, // "hostname" - NISysCfgSystemNameFormatHostnameIp = 0x12, // "hostname (1.2.3.4)" - NISysCfgSystemNameFormatHostnameMac = 0x13, // "hostname (01:02:03:04:05:06)" - NISysCfgSystemNameFormatIp = 0x20, // "1.2.3.4" - NISysCfgSystemNameFormatIpHostname = 0x21, // "1.2.3.4 (hostname)" - NISysCfgSystemNameFormatIpMac = 0x23, // "1.2.3.4 (01:02:03:04:05:06)" - NISysCfgSystemNameFormatMac = 0x30, // "01:02:03:04:05:06" - NISysCfgSystemNameFormatMacHostname = 0x31, // "01:02:03:04:05:06 (hostname)" - NISysCfgSystemNameFormatMacIp = 0x32 // "01:02:03:04:05:06 (1.2.3.4)" +typedef enum { + NISysCfgSystemNameFormatHostname = 0x10, // "hostname" + NISysCfgSystemNameFormatHostnameIp = 0x12, // "hostname (1.2.3.4)" + NISysCfgSystemNameFormatHostnameMac = 0x13, // "hostname (01:02:03:04:05:06)" + NISysCfgSystemNameFormatIp = 0x20, // "1.2.3.4" + NISysCfgSystemNameFormatIpHostname = 0x21, // "1.2.3.4 (hostname)" + NISysCfgSystemNameFormatIpMac = 0x23, // "1.2.3.4 (01:02:03:04:05:06)" + NISysCfgSystemNameFormatMac = 0x30, // "01:02:03:04:05:06" + NISysCfgSystemNameFormatMacHostname = 0x31, // "01:02:03:04:05:06 (hostname)" + NISysCfgSystemNameFormatMacIp = 0x32 // "01:02:03:04:05:06 (1.2.3.4)" } NISysCfgSystemNameFormat; -typedef enum -{ - NISysCfgFileSystemDefault = 0x0000, - NISysCfgFileSystemFat = 0x0001, - NISysCfgFileSystemReliance = 0x0002, - NISysCfgFileSystemUBIFS = 0x4000, - NISysCfgFileSystemExt4 = 0x8000 +typedef enum { + NISysCfgFileSystemDefault = 0x0000, + NISysCfgFileSystemFat = 0x0001, + NISysCfgFileSystemReliance = 0x0002, + NISysCfgFileSystemUBIFS = 0x4000, + NISysCfgFileSystemExt4 = 0x8000 } NISysCfgFileSystemMode; -typedef enum -{ - NISysCfgResetPrimaryResetOthers = 0, - NISysCfgPreservePrimaryResetOthers = 1, - NISysCfgPreservePrimaryPreserveOthers = 2, - NISysCfgPreservePrimaryApplyOthers = 3, - NISysCfgApplyPrimaryResetOthers = 4, - NISysCfgApplyPrimaryPreserveOthers = 5, - NISysCfgApplyPrimaryApplyOthers = 6 +typedef enum { + NISysCfgResetPrimaryResetOthers = 0, + NISysCfgPreservePrimaryResetOthers = 1, + NISysCfgPreservePrimaryPreserveOthers = 2, + NISysCfgPreservePrimaryApplyOthers = 3, + NISysCfgApplyPrimaryResetOthers = 4, + NISysCfgApplyPrimaryPreserveOthers = 5, + NISysCfgApplyPrimaryApplyOthers = 6 } NISysCfgNetworkInterfaceSettings; -typedef enum -{ - NISysCfgItemTypeStandard = 0, // Standard visible component - NISysCfgItemTypeHidden = 1, // Hidden component - NISysCfgItemTypeSystem = 2, // Required system component (hidden package or base system image installed by the host) - NISysCfgItemTypeUnknown = 3, // Unknown component type - NISysCfgItemTypeStartup = 4, // Startup component - NISysCfgItemTypeImage = 5, // User-defined system image - NISysCfgItemTypeEssential = 6, // Required visible component - NISysCfgItemTypeSystemPackage = 7 // Base system image installed using a package from feeds on ni.com +typedef enum { + NISysCfgItemTypeStandard = 0, // Standard visible component + NISysCfgItemTypeHidden = 1, // Hidden component + NISysCfgItemTypeSystem = 2, // Required system component (hidden package or base system image installed by the host) + NISysCfgItemTypeUnknown = 3, // Unknown component type + NISysCfgItemTypeStartup = 4, // Startup component + NISysCfgItemTypeImage = 5, // User-defined system image + NISysCfgItemTypeEssential = 6, // Required visible component + NISysCfgItemTypeSystemPackage = 7 // Base system image installed using a package from feeds on ni.com } NISysCfgComponentType; -typedef enum -{ - NISysCfgIncludeItemsAllVisible = 0x0000, // All visible (standard, startup, essential) - NISysCfgIncludeItemsAllVisibleAndHidden = 0x0001, // Visible and hidden - NISysCfgIncludeItemsOnlyStandard = 0x0002, // Only standard - NISysCfgIncludeItemsOnlyStartup = 0x0003 // Only startup +typedef enum { + NISysCfgIncludeItemsAllVisible = 0x0000, // All visible (standard, startup, essential) + NISysCfgIncludeItemsAllVisibleAndHidden = 0x0001, // Visible and hidden + NISysCfgIncludeItemsOnlyStandard = 0x0002, // Only standard + NISysCfgIncludeItemsOnlyStartup = 0x0003 // Only startup } NISysCfgIncludeComponentTypes; -typedef enum -{ - NISysCfgVersionSelectionHighest = 0, - NISysCfgVersionSelectionExact = 1 +typedef enum { + NISysCfgVersionSelectionHighest = 0, + NISysCfgVersionSelectionExact = 1 } NISysCfgVersionSelectionMode; -typedef enum -{ - NISysCfgImportMergeItems = 0, // Source data "wins" in the case of overwrite conflicts - NISysCfgImportDeleteConfigFirst = 0x100000, // Delete product data at destination prior to copying - NISysCfgImportPreserveConflictItems = 0x200000 // Destination data "wins" in the case of overwrite conflicts +typedef enum { + NISysCfgImportMergeItems = 0, // Source data "wins" in the case of overwrite conflicts + NISysCfgImportDeleteConfigFirst = 0x100000, // Delete product data at destination prior to copying + NISysCfgImportPreserveConflictItems = 0x200000 // Destination data "wins" in the case of overwrite conflicts } NISysCfgImportMode; -typedef enum -{ - NISysCfgReportXml = 0, - NISysCfgReportHtml = 1, - NISysCfgReportTechnicalSupportZip = 2 +typedef enum { + NISysCfgReportXml = 0, + NISysCfgReportHtml = 1, + NISysCfgReportTechnicalSupportZip = 2 } NISysCfgReportType; -typedef enum -{ - NISysCfgBusTypeBuiltIn = 0, - NISysCfgBusTypePciPxi = 1, - NISysCfgBusTypeUsb = 2, - NISysCfgBusTypeGpib = 3, - NISysCfgBusTypeVxi = 4, - NISysCfgBusTypeSerial = 5, - NISysCfgBusTypeTcpIp = 6, - NISysCfgBusTypeCompactRio = 7, - NISysCfgBusTypeScxi = 8, - NISysCfgBusTypeCompactDaq = 9, - NISysCfgBusTypeSwitchBlock = 10, - NISysCfgBusTypeScc = 11, - NISysCfgBusTypeFireWire = 12, - NISysCfgBusTypeAccessory = 13, - NISysCfgBusTypeCan = 14, - NISysCfgBusTypeSwitchBlockDevice = 15, - NISysCfgBusTypeSlsc = 16 +typedef enum { + NISysCfgBusTypeBuiltIn = 0, + NISysCfgBusTypePciPxi = 1, + NISysCfgBusTypeUsb = 2, + NISysCfgBusTypeGpib = 3, + NISysCfgBusTypeVxi = 4, + NISysCfgBusTypeSerial = 5, + NISysCfgBusTypeTcpIp = 6, + NISysCfgBusTypeCompactRio = 7, + NISysCfgBusTypeScxi = 8, + NISysCfgBusTypeCompactDaq = 9, + NISysCfgBusTypeSwitchBlock = 10, + NISysCfgBusTypeScc = 11, + NISysCfgBusTypeFireWire = 12, + NISysCfgBusTypeAccessory = 13, + NISysCfgBusTypeCan = 14, + NISysCfgBusTypeSwitchBlockDevice = 15, + NISysCfgBusTypeSlsc = 16 } NISysCfgBusType; -typedef enum -{ - NISysCfgHasDriverTypeUnknown = -1, - NISysCfgHasDriverTypeNotInstalled = 0, - NISysCfgHasDriverTypeInstalled = 1 +typedef enum { + NISysCfgHasDriverTypeUnknown = -1, + NISysCfgHasDriverTypeNotInstalled = 0, + NISysCfgHasDriverTypeInstalled = 1 } NISysCfgHasDriverType; -typedef enum -{ - NISysCfgIsPresentTypeInitializing = -2, - NISysCfgIsPresentTypeUnknown = -1, - NISysCfgIsPresentTypeNotPresent = 0, - NISysCfgIsPresentTypePresent = 1 +typedef enum { + NISysCfgIsPresentTypeInitializing = -2, + NISysCfgIsPresentTypeUnknown = -1, + NISysCfgIsPresentTypeNotPresent = 0, + NISysCfgIsPresentTypePresent = 1 } NISysCfgIsPresentType; -typedef enum -{ - NISysCfgIpAddressModeStatic = 1, - NISysCfgIpAddressModeDhcpOrLinkLocal = 2, - NISysCfgIpAddressModeLinkLocalOnly = 4, - NISysCfgIpAddressModeDhcpOnly = 8 +typedef enum { + NISysCfgIpAddressModeStatic = 1, + NISysCfgIpAddressModeDhcpOrLinkLocal = 2, + NISysCfgIpAddressModeLinkLocalOnly = 4, + NISysCfgIpAddressModeDhcpOnly = 8 } NISysCfgIpAddressMode; -typedef enum -{ - NISysCfgBoolFalse = 0, - NISysCfgBoolTrue = 1 +typedef enum { + NISysCfgBoolFalse = 0, + NISysCfgBoolTrue = 1 } NISysCfgBool; -typedef enum -{ - NISysCfgLocaleDefault = 0, - NISysCfgLocaleChineseSimplified = 2052, - NISysCfgLocaleEnglish = 1033, - NISysCfgLocaleFrench = 1036, - NISysCfgLocaleGerman = 1031, - NISysCfgLocaleJapanese = 1041, - NISysCfgLocaleKorean = 1042 +typedef enum { + NISysCfgLocaleDefault = 0, + NISysCfgLocaleChineseSimplified = 2052, + NISysCfgLocaleEnglish = 1033, + NISysCfgLocaleFrench = 1036, + NISysCfgLocaleGerman = 1031, + NISysCfgLocaleJapanese = 1041, + NISysCfgLocaleKorean = 1042 } NISysCfgLocale; -typedef enum -{ - NISysCfgFilterModeMatchValuesAll = 1, - NISysCfgFilterModeMatchValuesAny = 2, - NISysCfgFilterModeMatchValuesNone = 3, - NISysCfgFilterModeAllPropertiesExist = 4 +typedef enum { + NISysCfgFilterModeMatchValuesAll = 1, + NISysCfgFilterModeMatchValuesAny = 2, + NISysCfgFilterModeMatchValuesNone = 3, + NISysCfgFilterModeAllPropertiesExist = 4 } NISysCfgFilterMode; -typedef enum -{ - NISysCfgServiceTypemDnsNiTcp = 0, - NISysCfgServiceTypemDnsNiRealtime = 1, - NISysCfgServiceTypemDnsNiSysapi = 2, - NISysCfgServiceTypemDnsNiHttp = 3, - NISysCfgServiceTypeLocalSystem = 4, - NISysCfgServiceTypeLocalNetInterface = 5, - NISysCfgServiceTypeLocalTimeKeeper = 6, - NISysCfgServiceTypeLocalTimeSource = 7, - NISysCfgServiceTypemDnsLxi = 8, - NISysCfgServiceTypeLocalFpga = 9 +typedef enum { + NISysCfgServiceTypemDnsNiTcp = 0, + NISysCfgServiceTypemDnsNiRealtime = 1, + NISysCfgServiceTypemDnsNiSysapi = 2, + NISysCfgServiceTypemDnsNiHttp = 3, + NISysCfgServiceTypeLocalSystem = 4, + NISysCfgServiceTypeLocalNetInterface = 5, + NISysCfgServiceTypeLocalTimeKeeper = 6, + NISysCfgServiceTypeLocalTimeSource = 7, + NISysCfgServiceTypemDnsLxi = 8, + NISysCfgServiceTypeLocalFpga = 9 } NISysCfgServiceType; -typedef enum -{ - NISysCfgAdapterTypeEthernet = 1, - NISysCfgAdapterTypeWlan = 2 +typedef enum { + NISysCfgAdapterTypeEthernet = 1, + NISysCfgAdapterTypeWlan = 2 } NISysCfgAdapterType; -typedef enum -{ - NISysCfgAdapterModeDisabled = 1, - NISysCfgAdapterModeTcpIpEthernet = 2, - NISysCfgAdapterModeDeterministic = 4, - NISysCfgAdapterModeEtherCat = 8, - NISysCfgAdapterModeTcpIpWlan = 32, - NISysCfgAdapterModeTcpIpAccessPoint = 64 +typedef enum { + NISysCfgAdapterModeDisabled = 1, + NISysCfgAdapterModeTcpIpEthernet = 2, + NISysCfgAdapterModeDeterministic = 4, + NISysCfgAdapterModeEtherCat = 8, + NISysCfgAdapterModeTcpIpWlan = 32, + NISysCfgAdapterModeTcpIpAccessPoint = 64 } NISysCfgAdapterMode; -typedef enum -{ - NISysCfgLinkSpeedNone = 0, - NISysCfgLinkSpeedAuto = 1, - NISysCfgLinkSpeed10mbHalf = 2, - NISysCfgLinkSpeed10mbFull = 4, - NISysCfgLinkSpeed100mbHalf = 8, - NISysCfgLinkSpeed100mbFull = 16, - NISysCfgLinkSpeedGigabitHalf = 32, - NISysCfgLinkSpeedGigabitFull = 64, +typedef enum { + NISysCfgLinkSpeedNone = 0, + NISysCfgLinkSpeedAuto = 1, + NISysCfgLinkSpeed10mbHalf = 2, + NISysCfgLinkSpeed10mbFull = 4, + NISysCfgLinkSpeed100mbHalf = 8, + NISysCfgLinkSpeed100mbFull = 16, + NISysCfgLinkSpeedGigabitHalf = 32, + NISysCfgLinkSpeedGigabitFull = 64, // Wireless 802.11 protocols (speeds) - NISysCfgLinkSpeedWlan80211a = 131072, - NISysCfgLinkSpeedWlan80211b = 262144, - NISysCfgLinkSpeedWlan80211g = 524288, - NISysCfgLinkSpeedWlan80211n = 1048576, - NISysCfgLinkSpeedWlan80211n5GHz = 2097152 + NISysCfgLinkSpeedWlan80211a = 131072, + NISysCfgLinkSpeedWlan80211b = 262144, + NISysCfgLinkSpeedWlan80211g = 524288, + NISysCfgLinkSpeedWlan80211n = 1048576, + NISysCfgLinkSpeedWlan80211n5GHz = 2097152 } NISysCfgLinkSpeed; -typedef enum -{ - NISysCfgPacketDetectionNone = 0, - NISysCfgPacketDetectionLineInterrupt = 1, - NISysCfgPacketDetectionPolling = 2, - NISysCfgPacketDetectionSignaledInterrupt = 4 +typedef enum { + NISysCfgPacketDetectionNone = 0, + NISysCfgPacketDetectionLineInterrupt = 1, + NISysCfgPacketDetectionPolling = 2, + NISysCfgPacketDetectionSignaledInterrupt = 4 } NISysCfgPacketDetection; -typedef enum -{ - NISysCfgConnectionTypeNone = 0, - NISysCfgConnectionTypeInfrastructure = 1, - NISysCfgConnectionTypeAdHoc = 2 +typedef enum { + NISysCfgConnectionTypeNone = 0, + NISysCfgConnectionTypeInfrastructure = 1, + NISysCfgConnectionTypeAdHoc = 2 } NISysCfgConnectionType; -typedef enum -{ - NISysCfgSecurityTypeNone = 0, - NISysCfgSecurityTypeNotSupported = 1, - NISysCfgSecurityTypeOpen = 2, - NISysCfgSecurityTypeWep = 4, - NISysCfgSecurityTypeWpaPsk = 8, - NISysCfgSecurityTypeWpaEap = 16, - NISysCfgSecurityTypeWpa2Psk = 32, - NISysCfgSecurityTypeWpa2Eap = 64 +typedef enum { + NISysCfgSecurityTypeNone = 0, + NISysCfgSecurityTypeNotSupported = 1, + NISysCfgSecurityTypeOpen = 2, + NISysCfgSecurityTypeWep = 4, + NISysCfgSecurityTypeWpaPsk = 8, + NISysCfgSecurityTypeWpaEap = 16, + NISysCfgSecurityTypeWpa2Psk = 32, + NISysCfgSecurityTypeWpa2Eap = 64 } NISysCfgSecurityType; -typedef enum -{ - NISysCfgEapTypeNone = 0, - NISysCfgEapTypeEapTls = 1, - NISysCfgEapTypeEapTtls = 2, - NISysCfgEapTypeEapFast = 4, - NISysCfgEapTypeLeap = 8, - NISysCfgEapTypePeap = 16 +typedef enum { + NISysCfgEapTypeNone = 0, + NISysCfgEapTypeEapTls = 1, + NISysCfgEapTypeEapTtls = 2, + NISysCfgEapTypeEapFast = 4, + NISysCfgEapTypeLeap = 8, + NISysCfgEapTypePeap = 16 } NISysCfgEapType; // Negative firmware states are in-progress; the user should continue polling. // Non-negative firmware states are terminal; no update operation is in progress. -typedef enum -{ - NISysCfgFirmwareReadyPendingAutoRestart = -4, - NISysCfgFirmwareVerifyingNewImage = -3, - NISysCfgFirmwareWritingFlashingNewImage = -2, +typedef enum { + NISysCfgFirmwareReadyPendingAutoRestart = -4, + NISysCfgFirmwareVerifyingNewImage = -3, + NISysCfgFirmwareWritingFlashingNewImage = -2, NISysCfgFirmwareUpdateModeWaitingForImage = -1, - NISysCfgFirmwareCorruptCannotRun = 0, - NISysCfgFirmwareNoneInstalled = 1, - NISysCfgFirmwareInstalledNormalOperation = 2, - NISysCfgFirmwareReadyPendingUserRestart = 3, - NISysCfgFirmwareReadyPendingUserAction = 4, - NISysCfgFirmwareUpdateAttemptFailed = 5 + NISysCfgFirmwareCorruptCannotRun = 0, + NISysCfgFirmwareNoneInstalled = 1, + NISysCfgFirmwareInstalledNormalOperation = 2, + NISysCfgFirmwareReadyPendingUserRestart = 3, + NISysCfgFirmwareReadyPendingUserAction = 4, + NISysCfgFirmwareUpdateAttemptFailed = 5 } NISysCfgFirmwareStatus; -typedef enum -{ - NISysCfgValidateButDoNotDelete = -1, - NISysCfgDeleteIfNoDependenciesExist = 0, - NISysCfgDeleteItemAndAnyDependencies = 1, - NISysCfgDeleteItemButKeepDependencies = 2 +typedef enum { + NISysCfgValidateButDoNotDelete = -1, + NISysCfgDeleteIfNoDependenciesExist = 0, + NISysCfgDeleteItemAndAnyDependencies = 1, + NISysCfgDeleteItemButKeepDependencies = 2 } NISysCfgDeleteValidationMode; -typedef enum -{ - NISysCfgAccessTypeLocalOnly = 0, - NISysCfgAccessTypeLocalAndRemote = 1 +typedef enum { + NISysCfgAccessTypeLocalOnly = 0, + NISysCfgAccessTypeLocalAndRemote = 1 } NISysCfgAccessType; -typedef enum -{ - NISysCfgLedStateOff = 0, - NISysCfgLedStateSolidGreen = 1, - NISysCfgLedStateSolidYellow = 2, - NISysCfgLedStateBlinkingGreen = 4, - NISysCfgLedStateBlinkingYellow = 8 +typedef enum { + NISysCfgLedStateOff = 0, + NISysCfgLedStateSolidGreen = 1, + NISysCfgLedStateSolidYellow = 2, + NISysCfgLedStateBlinkingGreen = 4, + NISysCfgLedStateBlinkingYellow = 8 } NISysCfgLedState; -typedef enum -{ - NISysCfgSwitchStateDisabled = 0, - NISysCfgSwitchStateEnabled = 1 +typedef enum { + NISysCfgSwitchStateDisabled = 0, + NISysCfgSwitchStateEnabled = 1 } NISysCfgSwitchState; -typedef enum -{ - NISysCfgFirmwareUpdateModeNone = 0, - NISysCfgFirmwareUpdateModeManual = 1, - NISysCfgFirmwareUpdateModeDriverManaged = 2 +typedef enum { + NISysCfgFirmwareUpdateModeNone = 0, + NISysCfgFirmwareUpdateModeManual = 1, + NISysCfgFirmwareUpdateModeDriverManaged = 2 } NISysCfgFirmwareUpdateMode; -typedef enum -{ - NISysCfgModuleProgramModeNone = 0, - NISysCfgModuleProgramModeRealtimeCpu = 1, - NISysCfgModuleProgramModeRealtimeScan = 2, - NISysCfgModuleProgramModeLabVIEWFpga = 4 +typedef enum { + NISysCfgModuleProgramModeNone = 0, + NISysCfgModuleProgramModeRealtimeCpu = 1, + NISysCfgModuleProgramModeRealtimeScan = 2, + NISysCfgModuleProgramModeLabVIEWFpga = 4 } NISysCfgModuleProgramMode; -typedef enum -{ - NISysCfgFeatureActivationStateNone = 0, +typedef enum { + NISysCfgFeatureActivationStateNone = 0, NISysCfgFeatureActivationStateUnactivated = 1, - NISysCfgFeatureActivationStateActivated = 2 + NISysCfgFeatureActivationStateActivated = 2 } NISysCfgFeatureActivationState; // NOTE: For string properties, callers pass in a pointer to a buffer or array they have allocated. -typedef enum -{ +typedef enum { // Read-only properties - NISysCfgResourcePropertyIsDevice = 16781312, // NISysCfgBool - NISysCfgResourcePropertyIsChassis = 16941056, // NISysCfgBool - NISysCfgResourcePropertyConnectsToBusType = 16785408, // NISysCfgBusType - NISysCfgResourcePropertyVendorId = 16789504, // unsigned int - NISysCfgResourcePropertyVendorName = 16793600, // char * - NISysCfgResourcePropertyProductId = 16797696, // unsigned int - NISysCfgResourcePropertyProductName = 16801792, // char * - NISysCfgResourcePropertySerialNumber = 16805888, // char * - NISysCfgResourcePropertyFirmwareRevision = 16969728, // char * - NISysCfgResourcePropertyIsNIProduct = 16809984, // NISysCfgBool - NISysCfgResourcePropertyIsSimulated = 16814080, // NISysCfgBool - NISysCfgResourcePropertyConnectsToLinkName = 16818176, // char * - NISysCfgResourcePropertyHasDriver = 16920576, // NISysCfgHasDriverType - NISysCfgResourcePropertyIsPresent = 16924672, // NISysCfgIsPresentType - NISysCfgResourcePropertySlotNumber = 16822272, // int - NISysCfgResourcePropertySupportsInternalCalibration = 16842752, // NISysCfgBool - NISysCfgResourcePropertySupportsExternalCalibration = 16859136, // NISysCfgBool - NISysCfgResourcePropertyExternalCalibrationLastTemp = 16867328, // double - NISysCfgResourcePropertyCalibrationComments = 16961536, // char * - NISysCfgResourcePropertyInternalCalibrationLastLimited = 17420288, // NISysCfgBool - NISysCfgResourcePropertyExternalCalibrationChecksum = 17432576, // char * - NISysCfgResourcePropertyCurrentTemp = 16965632, // double - NISysCfgResourcePropertyPxiPciBusNumber = 16875520, // unsigned int - NISysCfgResourcePropertyPxiPciDeviceNumber = 16879616, // unsigned int - NISysCfgResourcePropertyPxiPciFunctionNumber = 16883712, // unsigned int - NISysCfgResourcePropertyPxiPciLinkWidth = 16973824, // int - NISysCfgResourcePropertyPxiPciMaxLinkWidth = 16977920, // int - NISysCfgResourcePropertyUsbInterface = 16887808, // unsigned int - NISysCfgResourcePropertyTcpHostName = 16928768, // char * - NISysCfgResourcePropertyTcpMacAddress = 16986112, // char * - NISysCfgResourcePropertyTcpIpAddress = 16957440, // char * - NISysCfgResourcePropertyTcpDeviceClass = 17022976, // char * - NISysCfgResourcePropertyGpibPrimaryAddress = 16994304, // int - NISysCfgResourcePropertyGpibSecondaryAddress = 16998400, // int - NISysCfgResourcePropertySerialPortBinding = 17076224, // char * - NISysCfgResourcePropertyProvidesBusType = 16932864, // NISysCfgBusType - NISysCfgResourcePropertyProvidesLinkName = 16936960, // char * - NISysCfgResourcePropertyNumberOfSlots = 16826368, // int - NISysCfgResourcePropertySupportsFirmwareUpdate = 17080320, // NISysCfgBool - NISysCfgResourcePropertyFirmwareFilePattern = 17084416, // char * - NISysCfgResourcePropertyRecommendedCalibrationInterval = 17207296, // int - NISysCfgResourcePropertySupportsCalibrationWrite = 17215488, // NISysCfgBool - NISysCfgResourcePropertyHardwareRevision = 17256448, // char * - NISysCfgResourcePropertyCpuModelName = 17313792, // char * - NISysCfgResourcePropertyCpuSteppingRevision = 17317888, // int - NISysCfgResourcePropertyModelNameNumber = 17436672, // unsigned int - NISysCfgResourcePropertyModuleProgramMode = 17440768, // NISysCfgModuleProgramMode - NISysCfgResourcePropertyConnectsToNumSlots = 17072128, // int - NISysCfgResourcePropertySlotOffsetLeft = 17276928, // unsigned int - NISysCfgResourcePropertyInternalCalibrationValuesInRange = 17489920, // NISysCfgBool - NISysCfgResourcePropertyNumberOfInternalCalibrationDetails = 17510400, // int - NISysCfgResourcePropertyFeatureActivationState = 17534976, // NISysCfgFeatureActivationState + NISysCfgResourcePropertyIsDevice = 16781312, // NISysCfgBool + NISysCfgResourcePropertyIsChassis = 16941056, // NISysCfgBool + NISysCfgResourcePropertyConnectsToBusType = 16785408, // NISysCfgBusType + NISysCfgResourcePropertyVendorId = 16789504, // unsigned int + NISysCfgResourcePropertyVendorName = 16793600, // char * + NISysCfgResourcePropertyProductId = 16797696, // unsigned int + NISysCfgResourcePropertyProductName = 16801792, // char * + NISysCfgResourcePropertySerialNumber = 16805888, // char * + NISysCfgResourcePropertyFirmwareRevision = 16969728, // char * + NISysCfgResourcePropertyIsNIProduct = 16809984, // NISysCfgBool + NISysCfgResourcePropertyIsSimulated = 16814080, // NISysCfgBool + NISysCfgResourcePropertyConnectsToLinkName = 16818176, // char * + NISysCfgResourcePropertyHasDriver = 16920576, // NISysCfgHasDriverType + NISysCfgResourcePropertyIsPresent = 16924672, // NISysCfgIsPresentType + NISysCfgResourcePropertySlotNumber = 16822272, // int + NISysCfgResourcePropertySupportsInternalCalibration = 16842752, // NISysCfgBool + NISysCfgResourcePropertySupportsExternalCalibration = 16859136, // NISysCfgBool + NISysCfgResourcePropertyExternalCalibrationLastTemp = 16867328, // double + NISysCfgResourcePropertyCalibrationComments = 16961536, // char * + NISysCfgResourcePropertyInternalCalibrationLastLimited = 17420288, // NISysCfgBool + NISysCfgResourcePropertyExternalCalibrationChecksum = 17432576, // char * + NISysCfgResourcePropertyCurrentTemp = 16965632, // double + NISysCfgResourcePropertyPxiPciBusNumber = 16875520, // unsigned int + NISysCfgResourcePropertyPxiPciDeviceNumber = 16879616, // unsigned int + NISysCfgResourcePropertyPxiPciFunctionNumber = 16883712, // unsigned int + NISysCfgResourcePropertyPxiPciLinkWidth = 16973824, // int + NISysCfgResourcePropertyPxiPciMaxLinkWidth = 16977920, // int + NISysCfgResourcePropertyUsbInterface = 16887808, // unsigned int + NISysCfgResourcePropertyTcpHostName = 16928768, // char * + NISysCfgResourcePropertyTcpMacAddress = 16986112, // char * + NISysCfgResourcePropertyTcpIpAddress = 16957440, // char * + NISysCfgResourcePropertyTcpDeviceClass = 17022976, // char * + NISysCfgResourcePropertyGpibPrimaryAddress = 16994304, // int + NISysCfgResourcePropertyGpibSecondaryAddress = 16998400, // int + NISysCfgResourcePropertySerialPortBinding = 17076224, // char * + NISysCfgResourcePropertyProvidesBusType = 16932864, // NISysCfgBusType + NISysCfgResourcePropertyProvidesLinkName = 16936960, // char * + NISysCfgResourcePropertyNumberOfSlots = 16826368, // int + NISysCfgResourcePropertySupportsFirmwareUpdate = 17080320, // NISysCfgBool + NISysCfgResourcePropertyFirmwareFilePattern = 17084416, // char * + NISysCfgResourcePropertyRecommendedCalibrationInterval = 17207296, // int + NISysCfgResourcePropertySupportsCalibrationWrite = 17215488, // NISysCfgBool + NISysCfgResourcePropertyHardwareRevision = 17256448, // char * + NISysCfgResourcePropertyCpuModelName = 17313792, // char * + NISysCfgResourcePropertyCpuSteppingRevision = 17317888, // int + NISysCfgResourcePropertyModelNameNumber = 17436672, // unsigned int + NISysCfgResourcePropertyModuleProgramMode = 17440768, // NISysCfgModuleProgramMode + NISysCfgResourcePropertyConnectsToNumSlots = 17072128, // int + NISysCfgResourcePropertySlotOffsetLeft = 17276928, // unsigned int + NISysCfgResourcePropertyInternalCalibrationValuesInRange = 17489920, // NISysCfgBool + NISysCfgResourcePropertyNumberOfInternalCalibrationDetails = 17510400, // int + NISysCfgResourcePropertyFeatureActivationState = 17534976, // NISysCfgFeatureActivationState // Read/Write firmware properties - NISysCfgResourcePropertyFirmwareUpdateMode = 17354752, // NISysCfgFirmwareUpdateMode + NISysCfgResourcePropertyFirmwareUpdateMode = 17354752, // NISysCfgFirmwareUpdateMode // Read/Write calibration properties - NISysCfgResourcePropertyExternalCalibrationLastTime = 16863232, // NISysCfgTimestampUTC - NISysCfgResourcePropertyExternalCalibrationLastAdjustTime = 17502208, // NISysCfgTimestampUTC - NISysCfgResourcePropertyRecommendedNextCalibrationTime = 16871424, // NISysCfgTimestampUTC - NISysCfgResourcePropertyExternalCalibrationLastLimited = 17428480, // NISysCfgBool + NISysCfgResourcePropertyExternalCalibrationLastTime = 16863232, // NISysCfgTimestampUTC + NISysCfgResourcePropertyExternalCalibrationLastAdjustTime = 17502208, // NISysCfgTimestampUTC + NISysCfgResourcePropertyRecommendedNextCalibrationTime = 16871424, // NISysCfgTimestampUTC + NISysCfgResourcePropertyExternalCalibrationLastLimited = 17428480, // NISysCfgBool // Write-only calibration properties - NISysCfgResourcePropertyCalibrationCurrentPassword = 17223680, // char * - NISysCfgResourcePropertyCalibrationNewPassword = 17227776, // char * + NISysCfgResourcePropertyCalibrationCurrentPassword = 17223680, // char * + NISysCfgResourcePropertyCalibrationNewPassword = 17227776, // char * // Read/Write remote access properties - NISysCfgResourcePropertySysCfgAccess = 219504640, // NISysCfgAccessType + NISysCfgResourcePropertySysCfgAccess = 219504640, // NISysCfgAccessType // Read-only network adapter properties - NISysCfgResourcePropertyAdapterType = 219332608, // NISysCfgAdapterType - NISysCfgResourcePropertyMacAddress = 219168768, // char * + NISysCfgResourcePropertyAdapterType = 219332608, // NISysCfgAdapterType + NISysCfgResourcePropertyMacAddress = 219168768, // char * // Read/Write network adapter properties - NISysCfgResourcePropertyAdapterMode = 219160576, // NISysCfgAdapterMode - NISysCfgResourcePropertyTcpIpRequestMode = 219172864, // NISysCfgIpAddressMode - NISysCfgResourcePropertyTcpIpv4Address = 219181056, // char * - NISysCfgResourcePropertyTcpIpv4Subnet = 219189248, // char * - NISysCfgResourcePropertyTcpIpv4Gateway = 219193344, // char * - NISysCfgResourcePropertyTcpIpv4DnsServer = 219197440, // char * - NISysCfgResourcePropertyTcpPreferredLinkSpeed = 219213824, // NISysCfgLinkSpeed - NISysCfgResourcePropertyTcpCurrentLinkSpeed = 219222016, // NISysCfgLinkSpeed - NISysCfgResourcePropertyTcpPacketDetection = 219258880, // NISysCfgPacketDetection - NISysCfgResourcePropertyTcpPollingInterval = 219262976, // unsigned int - NISysCfgResourcePropertyIsPrimaryAdapter = 219308032, // NISysCfgBool - NISysCfgResourcePropertyEtherCatMasterId = 219250688, // unsigned int - NISysCfgResourcePropertyEtherCatMasterRedundancy = 219500544, // NISysCfgBool + NISysCfgResourcePropertyAdapterMode = 219160576, // NISysCfgAdapterMode + NISysCfgResourcePropertyTcpIpRequestMode = 219172864, // NISysCfgIpAddressMode + NISysCfgResourcePropertyTcpIpv4Address = 219181056, // char * + NISysCfgResourcePropertyTcpIpv4Subnet = 219189248, // char * + NISysCfgResourcePropertyTcpIpv4Gateway = 219193344, // char * + NISysCfgResourcePropertyTcpIpv4DnsServer = 219197440, // char * + NISysCfgResourcePropertyTcpPreferredLinkSpeed = 219213824, // NISysCfgLinkSpeed + NISysCfgResourcePropertyTcpCurrentLinkSpeed = 219222016, // NISysCfgLinkSpeed + NISysCfgResourcePropertyTcpPacketDetection = 219258880, // NISysCfgPacketDetection + NISysCfgResourcePropertyTcpPollingInterval = 219262976, // unsigned int + NISysCfgResourcePropertyIsPrimaryAdapter = 219308032, // NISysCfgBool + NISysCfgResourcePropertyEtherCatMasterId = 219250688, // unsigned int + NISysCfgResourcePropertyEtherCatMasterRedundancy = 219500544, // NISysCfgBool // Read-only wireless network adapter properties - NISysCfgResourcePropertyWlanBssid = 219398144, // char * - NISysCfgResourcePropertyWlanCurrentLinkQuality = 219394048, // unsigned int + NISysCfgResourcePropertyWlanBssid = 219398144, // char * + NISysCfgResourcePropertyWlanCurrentLinkQuality = 219394048, // unsigned int // Read/Write wireless network adapter properties - NISysCfgResourcePropertyWlanCurrentSsid = 219377664, // char * - NISysCfgResourcePropertyWlanCurrentConnectionType = 219381760, // NISysCfgConnectionType - NISysCfgResourcePropertyWlanCurrentSecurityType = 219385856, // NISysCfgSecurityType - NISysCfgResourcePropertyWlanCurrentEapType = 219389952, // NISysCfgEapType - NISysCfgResourcePropertyWlanCountryCode = 219406336, // int - NISysCfgResourcePropertyWlanChannelNumber = 219410432, // unsigned int - NISysCfgResourcePropertyWlanClientCertificate = 219422720, // char * + NISysCfgResourcePropertyWlanCurrentSsid = 219377664, // char * + NISysCfgResourcePropertyWlanCurrentConnectionType = 219381760, // NISysCfgConnectionType + NISysCfgResourcePropertyWlanCurrentSecurityType = 219385856, // NISysCfgSecurityType + NISysCfgResourcePropertyWlanCurrentEapType = 219389952, // NISysCfgEapType + NISysCfgResourcePropertyWlanCountryCode = 219406336, // int + NISysCfgResourcePropertyWlanChannelNumber = 219410432, // unsigned int + NISysCfgResourcePropertyWlanClientCertificate = 219422720, // char * // Write-only wireless network adapter properties - NISysCfgResourcePropertyWlanSecurityIdentity = 219414528, // char * - NISysCfgResourcePropertyWlanSecurityKey = 219418624, // char * + NISysCfgResourcePropertyWlanSecurityIdentity = 219414528, // char * + NISysCfgResourcePropertyWlanSecurityKey = 219418624, // char * // Read-only time properties - NISysCfgResourcePropertySystemStartTime = 17108992, // NISysCfgTimestampUTC + NISysCfgResourcePropertySystemStartTime = 17108992, // NISysCfgTimestampUTC // Read/Write time properties - NISysCfgResourcePropertyCurrentTime = 219279360, // NISysCfgTimestampUTC - NISysCfgResourcePropertyTimeZone = 219471872, // char * + NISysCfgResourcePropertyCurrentTime = 219279360, // NISysCfgTimestampUTC + NISysCfgResourcePropertyTimeZone = 219471872, // char * // Read/Write startup settings properties - NISysCfgResourcePropertyUserDirectedSafeModeSwitch = 219537408, // NISysCfgBool - NISysCfgResourcePropertyConsoleOutSwitch = 219541504, // NISysCfgBool - NISysCfgResourcePropertyIpResetSwitch = 219545600, // NISysCfgBool + NISysCfgResourcePropertyUserDirectedSafeModeSwitch = 219537408, // NISysCfgBool + NISysCfgResourcePropertyConsoleOutSwitch = 219541504, // NISysCfgBool + NISysCfgResourcePropertyIpResetSwitch = 219545600, // NISysCfgBool // Read-only counts for indexed properties - NISysCfgResourcePropertyNumberOfDiscoveredAccessPoints = 219365376, // unsigned int - NISysCfgResourcePropertyNumberOfExperts = 16891904, // int - NISysCfgResourcePropertyNumberOfServices = 17010688, // int - NISysCfgResourcePropertyNumberOfAvailableFirmwareVersions = 17088512, // int - NISysCfgResourcePropertyNumberOfCpuCores = 17506304, // int - NISysCfgResourcePropertyNumberOfCpuLogicalProcessors = 17137664, // int - NISysCfgResourcePropertyNumberOfFans = 17174528, // int - NISysCfgResourcePropertyNumberOfPowerSensors = 17448960, // int - NISysCfgResourcePropertyNumberOfTemperatureSensors = 17186816, // int - NISysCfgResourcePropertyNumberOfVoltageSensors = 17149952, // int - NISysCfgResourcePropertyNumberOfUserLedIndicators = 17281024, // int - NISysCfgResourcePropertyNumberOfUserSwitches = 17293312, // int - NISysCfgResourcePropertyNumberOfActivatedFeatures = 17518592 // unsigned int + NISysCfgResourcePropertyNumberOfDiscoveredAccessPoints = 219365376, // unsigned int + NISysCfgResourcePropertyNumberOfExperts = 16891904, // int + NISysCfgResourcePropertyNumberOfServices = 17010688, // int + NISysCfgResourcePropertyNumberOfAvailableFirmwareVersions = 17088512, // int + NISysCfgResourcePropertyNumberOfCpuCores = 17506304, // int + NISysCfgResourcePropertyNumberOfCpuLogicalProcessors = 17137664, // int + NISysCfgResourcePropertyNumberOfFans = 17174528, // int + NISysCfgResourcePropertyNumberOfPowerSensors = 17448960, // int + NISysCfgResourcePropertyNumberOfTemperatureSensors = 17186816, // int + NISysCfgResourcePropertyNumberOfVoltageSensors = 17149952, // int + NISysCfgResourcePropertyNumberOfUserLedIndicators = 17281024, // int + NISysCfgResourcePropertyNumberOfUserSwitches = 17293312, // int + NISysCfgResourcePropertyNumberOfActivatedFeatures = 17518592 // unsigned int } NISysCfgResourceProperty; #define NISysCfgResourcePropertyNumberOfCpus NISysCfgResourcePropertyNumberOfCpuLogicalProcessors @@ -543,141 +512,137 @@ typedef enum #pragma deprecated("NISysCfgResourcePropertyInternalCalibrationLastTemp") #endif -typedef enum -{ +typedef enum { // Read-only properties - NISysCfgIndexedPropertyServiceType = 17014784, // NISysCfgServiceType - NISysCfgIndexedPropertyAvailableFirmwareVersion = 17092608, // char * + NISysCfgIndexedPropertyServiceType = 17014784, // NISysCfgServiceType + NISysCfgIndexedPropertyAvailableFirmwareVersion = 17092608, // char * // Read-only wireless network adapter properties - NISysCfgIndexedPropertyWlanAvailableSsid = 219336704, // char * - NISysCfgIndexedPropertyWlanAvailableBssid = 219443200, // char * - NISysCfgIndexedPropertyWlanAvailableConnectionType = 219340800, // NISysCfgConnectionType - NISysCfgIndexedPropertyWlanAvailableSecurityType = 219344896, // NISysCfgSecurityType - NISysCfgIndexedPropertyWlanAvailableLinkQuality = 219353088, // unsigned int - NISysCfgIndexedPropertyWlanAvailableChannelNumber = 219357184, // unsigned int - NISysCfgIndexedPropertyWlanAvailableLinkSpeed = 219361280, // NISysCfgLinkSpeed + NISysCfgIndexedPropertyWlanAvailableSsid = 219336704, // char * + NISysCfgIndexedPropertyWlanAvailableBssid = 219443200, // char * + NISysCfgIndexedPropertyWlanAvailableConnectionType = 219340800, // NISysCfgConnectionType + NISysCfgIndexedPropertyWlanAvailableSecurityType = 219344896, // NISysCfgSecurityType + NISysCfgIndexedPropertyWlanAvailableLinkQuality = 219353088, // unsigned int + NISysCfgIndexedPropertyWlanAvailableChannelNumber = 219357184, // unsigned int + NISysCfgIndexedPropertyWlanAvailableLinkSpeed = 219361280, // NISysCfgLinkSpeed // Read-only properties - NISysCfgIndexedPropertyCpuTotalLoad = 17141760, // unsigned int - NISysCfgIndexedPropertyCpuInterruptLoad = 17145856, // unsigned int - NISysCfgIndexedPropertyCpuSpeed = 17309696, // unsigned int - NISysCfgIndexedPropertyFanName = 17178624, // char * - NISysCfgIndexedPropertyFanReading = 17182720, // unsigned int - NISysCfgIndexedPropertyPowerName = 17453056, // char * - NISysCfgIndexedPropertyPowerReading = 17457152, // double - NISysCfgIndexedPropertyPowerUpperCritical = 17461248, // double - NISysCfgIndexedPropertyTemperatureName = 17190912, // char * - NISysCfgIndexedPropertyTemperatureReading = 16965632, // double - NISysCfgIndexedPropertyTemperatureLowerCritical = 17195008, // double - NISysCfgIndexedPropertyTemperatureUpperCritical = 17199104, // double - NISysCfgIndexedPropertyVoltageName = 17154048, // char * - NISysCfgIndexedPropertyVoltageReading = 17158144, // double - NISysCfgIndexedPropertyVoltageNominal = 17162240, // double - NISysCfgIndexedPropertyVoltageLowerCritical = 17166336, // double - NISysCfgIndexedPropertyVoltageUpperCritical = 17170432, // double - NISysCfgIndexedPropertyUserLedName = 17285120, // char * - NISysCfgIndexedPropertyUserSwitchName = 17297408, // char * - NISysCfgIndexedPropertyUserSwitchState = 17301504, // NISysCfgSwitchState - NISysCfgIndexedPropertyInternalCalibrationName = 17514496, // char * - NISysCfgIndexedPropertyInternalCalibrationLastTime = 16846848, // NISysCfgTimestampUTC - NISysCfgIndexedPropertyInternalCalibrationLastTemp = 16850944, // double - NISysCfgIndexedPropertyActivatedFeatureName = 17526784, // char * - NISysCfgIndexedPropertyActivatedFeatureID = 17522688, // unsigned int + NISysCfgIndexedPropertyCpuTotalLoad = 17141760, // unsigned int + NISysCfgIndexedPropertyCpuInterruptLoad = 17145856, // unsigned int + NISysCfgIndexedPropertyCpuSpeed = 17309696, // unsigned int + NISysCfgIndexedPropertyFanName = 17178624, // char * + NISysCfgIndexedPropertyFanReading = 17182720, // unsigned int + NISysCfgIndexedPropertyPowerName = 17453056, // char * + NISysCfgIndexedPropertyPowerReading = 17457152, // double + NISysCfgIndexedPropertyPowerUpperCritical = 17461248, // double + NISysCfgIndexedPropertyTemperatureName = 17190912, // char * + NISysCfgIndexedPropertyTemperatureReading = 16965632, // double + NISysCfgIndexedPropertyTemperatureLowerCritical = 17195008, // double + NISysCfgIndexedPropertyTemperatureUpperCritical = 17199104, // double + NISysCfgIndexedPropertyVoltageName = 17154048, // char * + NISysCfgIndexedPropertyVoltageReading = 17158144, // double + NISysCfgIndexedPropertyVoltageNominal = 17162240, // double + NISysCfgIndexedPropertyVoltageLowerCritical = 17166336, // double + NISysCfgIndexedPropertyVoltageUpperCritical = 17170432, // double + NISysCfgIndexedPropertyUserLedName = 17285120, // char * + NISysCfgIndexedPropertyUserSwitchName = 17297408, // char * + NISysCfgIndexedPropertyUserSwitchState = 17301504, // NISysCfgSwitchState + NISysCfgIndexedPropertyInternalCalibrationName = 17514496, // char * + NISysCfgIndexedPropertyInternalCalibrationLastTime = 16846848, // NISysCfgTimestampUTC + NISysCfgIndexedPropertyInternalCalibrationLastTemp = 16850944, // double + NISysCfgIndexedPropertyActivatedFeatureName = 17526784, // char * + NISysCfgIndexedPropertyActivatedFeatureID = 17522688, // unsigned int // Read/Write properties - NISysCfgIndexedPropertyUserLedState = 17289216, // NISysCfgLedState + NISysCfgIndexedPropertyUserLedState = 17289216, // NISysCfgLedState // Read-only properties - NISysCfgIndexedPropertyExpertName = 16900096, // char * - NISysCfgIndexedPropertyExpertResourceName = 16896000, // char * - NISysCfgIndexedPropertyExpertUserAlias = 16904192 // char * + NISysCfgIndexedPropertyExpertName = 16900096, // char * + NISysCfgIndexedPropertyExpertResourceName = 16896000, // char * + NISysCfgIndexedPropertyExpertUserAlias = 16904192 // char * } NISysCfgIndexedProperty; -typedef enum -{ +typedef enum { // Read-only properties - NISysCfgSystemPropertyDeviceClass = 16941057, // char * - NISysCfgSystemPropertyProductId = 16941058, // int - NISysCfgSystemPropertyFileSystem = 16941060, // NISysCfgFileSystemMode - NISysCfgSystemPropertyFirmwareRevision = 16941061, // char * - NISysCfgSystemPropertyIsFactoryResetSupported = 16941067, // NISysCfgBool - NISysCfgSystemPropertyIsFirmwareUpdateSupported = 16941068, // NISysCfgBool - NISysCfgSystemPropertyIsLocked = 16941069, // NISysCfgBool - NISysCfgSystemPropertyIsLockingSupported = 16941070, // NISysCfgBool - NISysCfgSystemPropertyIsOnLocalSubnet = 16941072, // NISysCfgBool - NISysCfgSystemPropertyIsRestartSupported = 16941076, // NISysCfgBool - NISysCfgSystemPropertyMacAddress = 16941077, // char * - NISysCfgSystemPropertyProductName = 16941078, // char * - NISysCfgSystemPropertyOperatingSystem = 16941079, // char * - NISysCfgSystemPropertyOperatingSystemVersion = 17100800, // char * - NISysCfgSystemPropertyOperatingSystemDescription = 17104896, // char * - NISysCfgSystemPropertySerialNumber = 16941080, // char * - NISysCfgSystemPropertySystemState = 16941082, // char * - NISysCfgSystemPropertyMemoryPhysTotal = 219480064, // double - NISysCfgSystemPropertyMemoryPhysFree = 219484160, // double - NISysCfgSystemPropertyMemoryLargestBlock = 219488256, // double - NISysCfgSystemPropertyMemoryVirtTotal = 219492352, // double - NISysCfgSystemPropertyMemoryVirtFree = 219496448, // double - NISysCfgSystemPropertyPrimaryDiskTotal = 219291648, // double - NISysCfgSystemPropertyPrimaryDiskFree = 219295744, // double - NISysCfgSystemPropertySystemResourceHandle = 16941086, // NISysCfgResourceHandle - NISysCfgSystemPropertyImageDescription = 219516928, // char * - NISysCfgSystemPropertyImageId = 219521024, // char * - NISysCfgSystemPropertyImageTitle = 219525120, // char * - NISysCfgSystemPropertyImageVersion = 219529216, // char * - NISysCfgSystemPropertyInstalledApiVersion = 16941087, // char * + NISysCfgSystemPropertyDeviceClass = 16941057, // char * + NISysCfgSystemPropertyProductId = 16941058, // int + NISysCfgSystemPropertyFileSystem = 16941060, // NISysCfgFileSystemMode + NISysCfgSystemPropertyFirmwareRevision = 16941061, // char * + NISysCfgSystemPropertyIsFactoryResetSupported = 16941067, // NISysCfgBool + NISysCfgSystemPropertyIsFirmwareUpdateSupported = 16941068, // NISysCfgBool + NISysCfgSystemPropertyIsLocked = 16941069, // NISysCfgBool + NISysCfgSystemPropertyIsLockingSupported = 16941070, // NISysCfgBool + NISysCfgSystemPropertyIsOnLocalSubnet = 16941072, // NISysCfgBool + NISysCfgSystemPropertyIsRestartSupported = 16941076, // NISysCfgBool + NISysCfgSystemPropertyMacAddress = 16941077, // char * + NISysCfgSystemPropertyProductName = 16941078, // char * + NISysCfgSystemPropertyOperatingSystem = 16941079, // char * + NISysCfgSystemPropertyOperatingSystemVersion = 17100800, // char * + NISysCfgSystemPropertyOperatingSystemDescription = 17104896, // char * + NISysCfgSystemPropertySerialNumber = 16941080, // char * + NISysCfgSystemPropertySystemState = 16941082, // char * + NISysCfgSystemPropertyMemoryPhysTotal = 219480064, // double + NISysCfgSystemPropertyMemoryPhysFree = 219484160, // double + NISysCfgSystemPropertyMemoryLargestBlock = 219488256, // double + NISysCfgSystemPropertyMemoryVirtTotal = 219492352, // double + NISysCfgSystemPropertyMemoryVirtFree = 219496448, // double + NISysCfgSystemPropertyPrimaryDiskTotal = 219291648, // double + NISysCfgSystemPropertyPrimaryDiskFree = 219295744, // double + NISysCfgSystemPropertySystemResourceHandle = 16941086, // NISysCfgResourceHandle + NISysCfgSystemPropertyImageDescription = 219516928, // char * + NISysCfgSystemPropertyImageId = 219521024, // char * + NISysCfgSystemPropertyImageTitle = 219525120, // char * + NISysCfgSystemPropertyImageVersion = 219529216, // char * + NISysCfgSystemPropertyInstalledApiVersion = 16941087, // char * // Read/Write properties - NISysCfgSystemPropertyIsDst = 16941066, // NISysCfgBool - NISysCfgSystemPropertyIsRestartProtected = 16941073, // NISysCfgBool - NISysCfgSystemPropertyHaltOnError = 16941074, // NISysCfgBool - NISysCfgSystemPropertyRepositoryLocation = 16941084, // char * - NISysCfgSystemPropertySystemComment = 16941081, // char * - NISysCfgSystemPropertyAutoRestartTimeout = 16941085, // unsigned int + NISysCfgSystemPropertyIsDst = 16941066, // NISysCfgBool + NISysCfgSystemPropertyIsRestartProtected = 16941073, // NISysCfgBool + NISysCfgSystemPropertyHaltOnError = 16941074, // NISysCfgBool + NISysCfgSystemPropertyRepositoryLocation = 16941084, // char * + NISysCfgSystemPropertySystemComment = 16941081, // char * + NISysCfgSystemPropertyAutoRestartTimeout = 16941085, // unsigned int // Read/Write network adapter properties - NISysCfgSystemPropertyDnsServer = 16941059, // char * - NISysCfgSystemPropertyGateway = 16941062, // char * - NISysCfgSystemPropertyHostname = 16941063, // char * - NISysCfgSystemPropertyIpAddress = 16941064, // char * - NISysCfgSystemPropertyIpAddressMode = 16941065, // NISysCfgIpAddressMode - NISysCfgSystemPropertySubnetMask = 16941083 // char * + NISysCfgSystemPropertyDnsServer = 16941059, // char * + NISysCfgSystemPropertyGateway = 16941062, // char * + NISysCfgSystemPropertyHostname = 16941063, // char * + NISysCfgSystemPropertyIpAddress = 16941064, // char * + NISysCfgSystemPropertyIpAddressMode = 16941065, // NISysCfgIpAddressMode + NISysCfgSystemPropertySubnetMask = 16941083 // char * } NISysCfgSystemProperty; -typedef enum -{ +typedef enum { // Write-only properties - NISysCfgFilterPropertyIsDevice = 16781312, // NISysCfgBool - NISysCfgFilterPropertyIsChassis = 16941056, // NISysCfgBool - NISysCfgFilterPropertyServiceType = 17014784, // NISysCfgServiceType - NISysCfgFilterPropertyConnectsToBusType = 16785408, // NISysCfgBusType - NISysCfgFilterPropertyConnectsToLinkName = 16818176, // char * - NISysCfgFilterPropertyProvidesBusType = 16932864, // NISysCfgBusType - NISysCfgFilterPropertyVendorId = 16789504, // unsigned int - NISysCfgFilterPropertyProductId = 16797696, // unsigned int - NISysCfgFilterPropertySerialNumber = 16805888, // char * - NISysCfgFilterPropertyIsNIProduct = 16809984, // NISysCfgBool - NISysCfgFilterPropertyIsSimulated = 16814080, // NISysCfgBool - NISysCfgFilterPropertySlotNumber = 16822272, // int - NISysCfgFilterPropertyHasDriver = 16920576, // NISysCfgHasDriverType - NISysCfgFilterPropertyIsPresent = 16924672, // NISysCfgIsPresentType - NISysCfgFilterPropertySupportsCalibration = 16908288, // NISysCfgBool - NISysCfgFilterPropertySupportsFirmwareUpdate = 17080320, // NISysCfgBool - NISysCfgFilterPropertyProvidesLinkName = 16936960, // char * - NISysCfgFilterPropertyExpertName = 16900096, // char * - NISysCfgFilterPropertyResourceName = 16896000, // char * - NISysCfgFilterPropertyUserAlias = 16904192 // char * + NISysCfgFilterPropertyIsDevice = 16781312, // NISysCfgBool + NISysCfgFilterPropertyIsChassis = 16941056, // NISysCfgBool + NISysCfgFilterPropertyServiceType = 17014784, // NISysCfgServiceType + NISysCfgFilterPropertyConnectsToBusType = 16785408, // NISysCfgBusType + NISysCfgFilterPropertyConnectsToLinkName = 16818176, // char * + NISysCfgFilterPropertyProvidesBusType = 16932864, // NISysCfgBusType + NISysCfgFilterPropertyVendorId = 16789504, // unsigned int + NISysCfgFilterPropertyProductId = 16797696, // unsigned int + NISysCfgFilterPropertySerialNumber = 16805888, // char * + NISysCfgFilterPropertyIsNIProduct = 16809984, // NISysCfgBool + NISysCfgFilterPropertyIsSimulated = 16814080, // NISysCfgBool + NISysCfgFilterPropertySlotNumber = 16822272, // int + NISysCfgFilterPropertyHasDriver = 16920576, // NISysCfgHasDriverType + NISysCfgFilterPropertyIsPresent = 16924672, // NISysCfgIsPresentType + NISysCfgFilterPropertySupportsCalibration = 16908288, // NISysCfgBool + NISysCfgFilterPropertySupportsFirmwareUpdate = 17080320, // NISysCfgBool + NISysCfgFilterPropertyProvidesLinkName = 16936960, // char * + NISysCfgFilterPropertyExpertName = 16900096, // char * + NISysCfgFilterPropertyResourceName = 16896000, // char * + NISysCfgFilterPropertyUserAlias = 16904192 // char * } NISysCfgFilterProperty; -typedef enum -{ - NISysCfgPropertyTypeBool = 1, - NISysCfgPropertyTypeInt = 2, - NISysCfgPropertyTypeUnsignedInt = 3, - NISysCfgPropertyTypeDouble = 4, - NISysCfgPropertyTypeString = 6, - NISysCfgPropertyTypeTimestamp = 7, +typedef enum { + NISysCfgPropertyTypeBool = 1, + NISysCfgPropertyTypeInt = 2, + NISysCfgPropertyTypeUnsignedInt = 3, + NISysCfgPropertyTypeDouble = 4, + NISysCfgPropertyTypeString = 6, + NISysCfgPropertyTypeTimestamp = 7, } NISysCfgPropertyType; // These macros are provided for backward compatibility. @@ -696,198 +661,198 @@ typedef enum //////////////////////////////////////////////////////////////////////////////// NISYSCFGCFUNC NISysCfgInitializeSession( - const char * targetName, // NULL or "" => localhost - const char * username, // NULL or "" => no credentials - const char * password, // NULL or "" => no credentials - NISysCfgLocale language, // LCID or 0 to indicate default. - NISysCfgBool forcePropertyRefresh, - unsigned int connectTimeoutMsec, - NISysCfgEnumExpertHandle * expertEnumHandle, // Can be NULL - NISysCfgSessionHandle * sessionHandle + const char *targetName, // NULL or "" => localhost + const char *username, // NULL or "" => no credentials + const char *password, // NULL or "" => no credentials + NISysCfgLocale language, // LCID or 0 to indicate default. + NISysCfgBool forcePropertyRefresh, + unsigned int connectTimeoutMsec, + NISysCfgEnumExpertHandle *expertEnumHandle, // Can be NULL + NISysCfgSessionHandle *sessionHandle ); // This function is used to close a session or any other handle type returned by this API. NISYSCFGCFUNC NISysCfgCloseHandle( - void * syscfgHandle + void *syscfgHandle ); NISYSCFGCFUNC NISysCfgGetSystemExperts( - NISysCfgSessionHandle sessionHandle, - const char * expertNames, // NULL or "" => all experts - NISysCfgEnumExpertHandle * expertEnumHandle + NISysCfgSessionHandle sessionHandle, + const char *expertNames, // NULL or "" => all experts + NISysCfgEnumExpertHandle *expertEnumHandle ); NISYSCFGCFUNC NISysCfgSetRemoteTimeout( - NISysCfgSessionHandle sessionHandle, - unsigned int remoteTimeoutMsec + NISysCfgSessionHandle sessionHandle, + unsigned int remoteTimeoutMsec ); NISYSCFGCFUNC NISysCfgFindHardware( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterMode filterMode, // Ignored if filter handle is NULL - NISysCfgFilterHandle filterHandle, // Can be NULL - const char * expertNames, // NULL or "" => all experts - NISysCfgEnumResourceHandle * resourceEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterMode filterMode, // Ignored if filter handle is NULL + NISysCfgFilterHandle filterHandle, // Can be NULL + const char *expertNames, // NULL or "" => all experts + NISysCfgEnumResourceHandle *resourceEnumHandle ); NISYSCFGCFUNC NISysCfgFindSystems( - NISysCfgSessionHandle sessionHandle, // Can be NULL or a session to "localhost" - const char * deviceClass, // NULL or "" => all classes - NISysCfgBool detectOnlineSystems, - NISysCfgIncludeCachedResults cacheMode, - NISysCfgSystemNameFormat findOutputMode, - unsigned int timeoutMsec, - NISysCfgBool onlyInstallableSystems, - NISysCfgEnumSystemHandle * systemEnumHandle + NISysCfgSessionHandle sessionHandle, // Can be NULL or a session to "localhost" + const char *deviceClass, // NULL or "" => all classes + NISysCfgBool detectOnlineSystems, + NISysCfgIncludeCachedResults cacheMode, + NISysCfgSystemNameFormat findOutputMode, + unsigned int timeoutMsec, + NISysCfgBool onlyInstallableSystems, + NISysCfgEnumSystemHandle *systemEnumHandle ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgSelfTestHardware( - NISysCfgResourceHandle resourceHandle, - unsigned int mode, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + unsigned int mode, + char **detailedResult ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgSelfCalibrateHardware( - NISysCfgResourceHandle resourceHandle, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + char **detailedResult ); NISYSCFGCFUNC NISysCfgResetHardware( - NISysCfgResourceHandle resourceHandle, - unsigned int mode + NISysCfgResourceHandle resourceHandle, + unsigned int mode ); NISYSCFGCFUNC NISysCfgRenameResource( - NISysCfgResourceHandle resourceHandle, - const char * newName, - NISysCfgBool overwriteConflict, - NISysCfgBool updateDependencies, - NISysCfgBool * nameAlreadyExisted, // Can be NULL - NISysCfgResourceHandle * overwrittenResourceHandle // Can be NULL + NISysCfgResourceHandle resourceHandle, + const char *newName, + NISysCfgBool overwriteConflict, + NISysCfgBool updateDependencies, + NISysCfgBool *nameAlreadyExisted, // Can be NULL + NISysCfgResourceHandle *overwrittenResourceHandle // Can be NULL ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgDeleteResource( - NISysCfgResourceHandle resourceHandle, - NISysCfgDeleteValidationMode mode, - NISysCfgBool * dependentItemsDeleted, // Can be NULL - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + NISysCfgDeleteValidationMode mode, + NISysCfgBool *dependentItemsDeleted, // Can be NULL + char **detailedResult ); NISYSCFGCFUNC NISysCfgGetResourceProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - void * value + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + void *value ); NISYSCFGCFUNC NISysCfgGetResourcePropertyType( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - NISysCfgPropertyType * propertyType + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + NISysCfgPropertyType *propertyType ); NISYSCFGCDECL NISysCfgSetResourceProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, ... ); NISYSCFGCDECL NISysCfgSetResourcePropertyWithType( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - NISysCfgPropertyType propertyType, + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + NISysCfgPropertyType propertyType, ... ); NISYSCFGCFUNC NISysCfgSetResourcePropertyV( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - va_list args + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + va_list args ); NISYSCFGCFUNC NISysCfgSetResourcePropertyWithTypeV( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - NISysCfgPropertyType propertyType, - va_list args + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + NISysCfgPropertyType propertyType, + va_list args ); NISYSCFGCFUNC NISysCfgGetResourceIndexedProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgIndexedProperty propertyID, - unsigned int index, - void * value + NISysCfgResourceHandle resourceHandle, + NISysCfgIndexedProperty propertyID, + unsigned int index, + void *value ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgSaveResourceChanges( - NISysCfgResourceHandle resourceHandle, - NISysCfgBool * changesRequireRestart, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + NISysCfgBool *changesRequireRestart, + char **detailedResult ); NISYSCFGCFUNC NISysCfgGetSystemProperty( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, - void * value + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, + void *value ); NISYSCFGCFUNC NISysCfgGetSystemPropertyType( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, - NISysCfgPropertyType * propertyType + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, + NISysCfgPropertyType *propertyType ); NISYSCFGCDECL NISysCfgSetSystemProperty( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, ... ); NISYSCFGCFUNC NISysCfgSetSystemPropertyV( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, - va_list args + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, + va_list args ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgSaveSystemChanges( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool * changesRequireRestart, - char ** detailedResult + NISysCfgSessionHandle sessionHandle, + NISysCfgBool *changesRequireRestart, + char **detailedResult ); NISYSCFGCFUNC NISysCfgCreateFilter( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterHandle * filterHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterHandle *filterHandle ); NISYSCFGCDECL NISysCfgSetFilterProperty( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, ... ); NISYSCFGCDECL NISysCfgSetFilterPropertyWithType( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - NISysCfgPropertyType propertyType, + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + NISysCfgPropertyType propertyType, ... ); NISYSCFGCFUNC NISysCfgSetFilterPropertyV( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - va_list args + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + va_list args ); NISYSCFGCFUNC NISysCfgSetFilterPropertyWithTypeV( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - NISysCfgPropertyType propertyType, - va_list args + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + NISysCfgPropertyType propertyType, + va_list args ); //////////////////////////////////////////////////////////////////////////////// @@ -896,48 +861,48 @@ NISYSCFGCFUNC NISysCfgSetFilterPropertyWithTypeV( // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgUpgradeFirmwareFromFile( - NISysCfgResourceHandle resourceHandle, - const char * firmwareFile, - NISysCfgBool autoStopTasks, - NISysCfgBool alwaysOverwrite, - NISysCfgBool waitForOperationToFinish, - NISysCfgFirmwareStatus * firmwareStatus, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + const char *firmwareFile, + NISysCfgBool autoStopTasks, + NISysCfgBool alwaysOverwrite, + NISysCfgBool waitForOperationToFinish, + NISysCfgFirmwareStatus *firmwareStatus, + char **detailedResult ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgUpgradeFirmwareVersion( - NISysCfgResourceHandle resourceHandle, - const char * firmwareVersion, - NISysCfgBool autoStopTasks, - NISysCfgBool alwaysOverwrite, - NISysCfgBool waitForOperationToFinish, - NISysCfgFirmwareStatus * firmwareStatus, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + const char *firmwareVersion, + NISysCfgBool autoStopTasks, + NISysCfgBool alwaysOverwrite, + NISysCfgBool waitForOperationToFinish, + NISysCfgFirmwareStatus *firmwareStatus, + char **detailedResult ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgEraseFirmware( - NISysCfgResourceHandle resourceHandle, - NISysCfgBool autoStopTasks, - NISysCfgFirmwareStatus * firmwareStatus, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + NISysCfgBool autoStopTasks, + NISysCfgFirmwareStatus *firmwareStatus, + char **detailedResult ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgCheckFirmwareStatus( - NISysCfgResourceHandle resourceHandle, - int * percentComplete, - NISysCfgFirmwareStatus * firmwareStatus, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + int *percentComplete, + NISysCfgFirmwareStatus *firmwareStatus, + char **detailedResult ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgActivateFeature( - NISysCfgResourceHandle resourceHandle, - unsigned int featureID, - const char * activationCode, - char ** detailedResult + NISysCfgResourceHandle resourceHandle, + unsigned int featureID, + const char *activationCode, + char **detailedResult ); //////////////////////////////////////////////////////////////////////////////// @@ -945,218 +910,218 @@ NISYSCFGCFUNC NISysCfgActivateFeature( //////////////////////////////////////////////////////////////////////////////// NISYSCFGCFUNC NISysCfgFormat( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool forceSafeMode, - NISysCfgBool restartAfterFormat, - NISysCfgFileSystemMode fileSystem, - NISysCfgNetworkInterfaceSettings networkSettings, - unsigned int timeoutMsec + NISysCfgSessionHandle sessionHandle, + NISysCfgBool forceSafeMode, + NISysCfgBool restartAfterFormat, + NISysCfgFileSystemMode fileSystem, + NISysCfgNetworkInterfaceSettings networkSettings, + unsigned int timeoutMsec ); NISYSCFGCFUNC NISysCfgFormatWithBaseSystemImage( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgFileSystemMode fileSystem, - NISysCfgNetworkInterfaceSettings networkSettings, - const char * systemImageID, - const char * systemImageVersion, - unsigned int timeoutMsec + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgFileSystemMode fileSystem, + NISysCfgNetworkInterfaceSettings networkSettings, + const char *systemImageID, + const char *systemImageVersion, + unsigned int timeoutMsec ); NISYSCFGCFUNC NISysCfgRestart( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool waitForRestartToFinish, - NISysCfgBool installMode, - NISysCfgBool flushDNS, - unsigned int timeoutMsec, - char newIpAddress[] + NISysCfgSessionHandle sessionHandle, + NISysCfgBool waitForRestartToFinish, + NISysCfgBool installMode, + NISysCfgBool flushDNS, + unsigned int timeoutMsec, + char newIpAddress[] ); NISYSCFGCFUNC NISysCfgGetAvailableSoftwareComponents( - NISysCfgSessionHandle sessionHandle, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgEnumSoftwareComponentHandle * componentEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgEnumSoftwareComponentHandle *componentEnumHandle ); NISYSCFGCFUNC NISysCfgGetAvailableSoftwareSets( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumSoftwareSetHandle * setEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumSoftwareSetHandle *setEnumHandle ); NISYSCFGCFUNC NISysCfgGetAvailableBaseSystemImages( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumSoftwareComponentHandle* systemImageEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumSoftwareComponentHandle *systemImageEnumHandle ); NISYSCFGCFUNC NISysCfgGetFilteredSoftwareComponents( - const char * repositoryPath, - const char * deviceClass, - const char * operatingSystem, - unsigned int productID, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgEnumSoftwareComponentHandle * componentEnumHandle + const char *repositoryPath, + const char *deviceClass, + const char *operatingSystem, + unsigned int productID, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgEnumSoftwareComponentHandle *componentEnumHandle ); NISYSCFGCFUNC NISysCfgGetFilteredSoftwareSets( - const char * repositoryPath, - const char * deviceClass, - const char * operatingSystem, - unsigned int productID, - NISysCfgEnumSoftwareSetHandle * setEnumHandle + const char *repositoryPath, + const char *deviceClass, + const char *operatingSystem, + unsigned int productID, + NISysCfgEnumSoftwareSetHandle *setEnumHandle ); NISYSCFGCFUNC NISysCfgGetFilteredBaseSystemImages( - const char * repositoryPath, - const char * deviceClass, - const char * operatingSystem, - unsigned int productID, - NISysCfgEnumSoftwareComponentHandle * systemImageEnumHandle + const char *repositoryPath, + const char *deviceClass, + const char *operatingSystem, + unsigned int productID, + NISysCfgEnumSoftwareComponentHandle *systemImageEnumHandle ); NISYSCFGCFUNC NISysCfgGetInstalledSoftwareComponents( - NISysCfgSessionHandle sessionHandle, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgBool cached, - NISysCfgEnumSoftwareComponentHandle * componentEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgBool cached, + NISysCfgEnumSoftwareComponentHandle *componentEnumHandle ); NISYSCFGCFUNC NISysCfgGetInstalledSoftwareSet( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool cached, - NISysCfgSoftwareSetHandle * setHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool cached, + NISysCfgSoftwareSetHandle *setHandle ); NISYSCFGCFUNC NISysCfgGetSystemImageAsFolder( - NISysCfgSessionHandle sessionHandle, - const char * destinationFolder, - const char * encryptionPassphrase, - NISysCfgBool overwriteIfExists, - NISysCfgBool installedSoftwareOnly, - NISysCfgBool autoRestart + NISysCfgSessionHandle sessionHandle, + const char *destinationFolder, + const char *encryptionPassphrase, + NISysCfgBool overwriteIfExists, + NISysCfgBool installedSoftwareOnly, + NISysCfgBool autoRestart ); NISYSCFGCFUNC NISysCfgGetSystemImageAsFolder2( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const char * destinationFolder, - const char * encryptionPassphrase, - unsigned int numBlacklistEntries, - const char ** blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 - NISysCfgBool overwriteIfExists, - NISysCfgBool installedSoftwareOnly + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const char *destinationFolder, + const char *encryptionPassphrase, + unsigned int numBlacklistEntries, + const char **blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 + NISysCfgBool overwriteIfExists, + NISysCfgBool installedSoftwareOnly ); NISYSCFGCFUNC NISysCfgCreateSystemImageAsFolder( - NISysCfgSessionHandle sessionHandle, - const char * imageTitle, - const char * imageID, - const char * imageVersion, - const char * imageDescription, - NISysCfgBool autoRestart, - const char * destinationFolder, - const char * encryptionPassphrase, - unsigned int numBlacklistEntries, - const char ** blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 - NISysCfgBool overwriteIfExists + NISysCfgSessionHandle sessionHandle, + const char *imageTitle, + const char *imageID, + const char *imageVersion, + const char *imageDescription, + NISysCfgBool autoRestart, + const char *destinationFolder, + const char *encryptionPassphrase, + unsigned int numBlacklistEntries, + const char **blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 + NISysCfgBool overwriteIfExists ); NISYSCFGCFUNC NISysCfgSetSystemImageFromFolder( - NISysCfgSessionHandle sessionHandle, - const char * sourceFolder, - const char * encryptionPassphrase, - NISysCfgBool autoRestart, - NISysCfgBool originalSystemOnly + NISysCfgSessionHandle sessionHandle, + const char *sourceFolder, + const char *encryptionPassphrase, + NISysCfgBool autoRestart, + NISysCfgBool originalSystemOnly ); NISYSCFGCFUNC NISysCfgSetSystemImageFromFolder2( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const char * sourceFolder, - const char * encryptionPassphrase, - unsigned int numBlacklistEntries, - const char ** blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 - NISysCfgBool originalSystemOnly, - NISysCfgNetworkInterfaceSettings networkSettings + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const char *sourceFolder, + const char *encryptionPassphrase, + unsigned int numBlacklistEntries, + const char **blacklistFilesDirectories, // Can be NULL if numBlacklistEntries==0 + NISysCfgBool originalSystemOnly, + NISysCfgNetworkInterfaceSettings networkSettings ); NISYSCFGCFUNC NISysCfgInstallAll( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgBool deselectConflicts, - NISysCfgEnumSoftwareComponentHandle * installedComponentEnumHandle, - NISysCfgEnumDependencyHandle * brokenDependencyEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgBool deselectConflicts, + NISysCfgEnumSoftwareComponentHandle *installedComponentEnumHandle, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle ); NISYSCFGCFUNC NISysCfgInstallUninstallComponents( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgBool autoSelectDependencies, - NISysCfgEnumSoftwareComponentHandle componentToInstallEnumHandle, - unsigned int numComponentsToUninstall, - const char ** componentIDsToUninstall, // Can be NULL if numComponentsToUninstall==0 - NISysCfgEnumDependencyHandle* brokenDependencyEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgBool autoSelectDependencies, + NISysCfgEnumSoftwareComponentHandle componentToInstallEnumHandle, + unsigned int numComponentsToUninstall, + const char **componentIDsToUninstall, // Can be NULL if numComponentsToUninstall==0 + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle ); NISYSCFGCFUNC NISysCfgInstallUninstallComponents2( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgBool autoSelectDependencies, - NISysCfgBool autoSelectRecommends, - NISysCfgEnumSoftwareComponentHandle componentToInstallEnumHandle, - unsigned int numComponentsToUninstall, - const char ** componentIDsToUninstall, // Can be NULL if numComponentsToUninstall==0 - NISysCfgEnumDependencyHandle* brokenDependencyEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgBool autoSelectDependencies, + NISysCfgBool autoSelectRecommends, + NISysCfgEnumSoftwareComponentHandle componentToInstallEnumHandle, + unsigned int numComponentsToUninstall, + const char **componentIDsToUninstall, // Can be NULL if numComponentsToUninstall==0 + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle ); NISYSCFGCFUNC NISysCfgInstallSoftwareSet( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const char * softwareSetID, - const char * version, - NISysCfgEnumSoftwareComponentHandle addonEnumHandle, - NISysCfgEnumDependencyHandle * brokenDependencyEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const char *softwareSetID, + const char *version, + NISysCfgEnumSoftwareComponentHandle addonEnumHandle, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle ); NISYSCFGCFUNC NISysCfgInstallStartup( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgEnumSoftwareComponentHandle startupEnumHandle, - NISysCfgBool uninstallConflicts, - NISysCfgEnumSoftwareComponentHandle * installedComponentEnumHandle, - NISysCfgEnumSoftwareComponentHandle * uninstalledComponentEnumHandle, - NISysCfgEnumDependencyHandle * brokenDependencyEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgEnumSoftwareComponentHandle startupEnumHandle, + NISysCfgBool uninstallConflicts, + NISysCfgEnumSoftwareComponentHandle *installedComponentEnumHandle, + NISysCfgEnumSoftwareComponentHandle *uninstalledComponentEnumHandle, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle ); NISYSCFGCFUNC NISysCfgUninstallAll( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart ); NISYSCFGCFUNC NISysCfgGetSoftwareFeeds( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumSoftwareFeedHandle * feedEnumHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumSoftwareFeedHandle *feedEnumHandle ); NISYSCFGCFUNC NISysCfgAddSoftwareFeed( - NISysCfgSessionHandle sessionHandle, - const char * feedName, - const char * uri, - NISysCfgBool enabled, - NISysCfgBool trusted + NISysCfgSessionHandle sessionHandle, + const char *feedName, + const char *uri, + NISysCfgBool enabled, + NISysCfgBool trusted ); NISYSCFGCFUNC NISysCfgModifySoftwareFeed( - NISysCfgSessionHandle sessionHandle, - const char * feedName, - const char * newFeedName, - const char * uri, - NISysCfgBool enabled, - NISysCfgBool trusted + NISysCfgSessionHandle sessionHandle, + const char *feedName, + const char *newFeedName, + const char *uri, + NISysCfgBool enabled, + NISysCfgBool trusted ); NISYSCFGCFUNC NISysCfgRemoveSoftwareFeed( - NISysCfgSessionHandle sessionHandle, - const char * feedName + NISysCfgSessionHandle sessionHandle, + const char *feedName ); //////////////////////////////////////////////////////////////////////////////// @@ -1164,139 +1129,139 @@ NISYSCFGCFUNC NISysCfgRemoveSoftwareFeed( //////////////////////////////////////////////////////////////////////////////// NISYSCFGCFUNC NISysCfgChangeAdministratorPassword( - NISysCfgSessionHandle sessionHandle, - const char * newPassword + NISysCfgSessionHandle sessionHandle, + const char *newPassword ); NISYSCFGCFUNC NISysCfgExportConfiguration( - NISysCfgSessionHandle sessionHandle, - const char * destinationFile, - const char * expertNames, // NULL or "" => all experts - NISysCfgBool overwriteIfExists + NISysCfgSessionHandle sessionHandle, + const char *destinationFile, + const char *expertNames, // NULL or "" => all experts + NISysCfgBool overwriteIfExists ); // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgImportConfiguration( - NISysCfgSessionHandle sessionHandle, - const char * sourceFile, - const char * expertNames, // NULL or "" => all experts - NISysCfgImportMode importMode, - char ** detailedResult + NISysCfgSessionHandle sessionHandle, + const char *sourceFile, + const char *expertNames, // NULL or "" => all experts + NISysCfgImportMode importMode, + char **detailedResult ); NISYSCFGCFUNC NISysCfgGenerateMAXReport( - NISysCfgSessionHandle sessionHandle, - const char * outputFilename, - NISysCfgReportType reportType, - NISysCfgBool overwriteIfExists + NISysCfgSessionHandle sessionHandle, + const char *outputFilename, + NISysCfgReportType reportType, + NISysCfgBool overwriteIfExists ); NISYSCFGCFUNC NISysCfgCreateComponentsEnum( - NISysCfgEnumSoftwareComponentHandle * componentEnumHandle + NISysCfgEnumSoftwareComponentHandle *componentEnumHandle ); NISYSCFGCFUNC NISysCfgAddComponentToEnum( - NISysCfgEnumSoftwareComponentHandle componentEnumHandle, - const char * ID, - const char * version, - NISysCfgVersionSelectionMode mode + NISysCfgEnumSoftwareComponentHandle componentEnumHandle, + const char *ID, + const char *version, + NISysCfgVersionSelectionMode mode ); NISYSCFGCFUNC NISysCfgFreeDetailedString( - char str[] + char str[] ); NISYSCFGCFUNC NISysCfgNextResource( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumResourceHandle resourceEnumHandle, - NISysCfgResourceHandle * resourceHandle + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumResourceHandle resourceEnumHandle, + NISysCfgResourceHandle *resourceHandle ); NISYSCFGCFUNC NISysCfgNextSystemInfo( - NISysCfgEnumSystemHandle systemEnumHandle, - char system[] + NISysCfgEnumSystemHandle systemEnumHandle, + char system[] ); NISYSCFGCFUNC NISysCfgNextExpertInfo( - NISysCfgEnumExpertHandle expertEnumHandle, - char expertName[], - char displayName[], - char version[] + NISysCfgEnumExpertHandle expertEnumHandle, + char expertName[], + char displayName[], + char version[] ); // Caller should free detailedDescription using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgNextComponentInfo( - NISysCfgEnumSoftwareComponentHandle componentEnumHandle, - char ID[], - char version[], - char title[], - NISysCfgComponentType * itemType, - char ** detailedDescription + NISysCfgEnumSoftwareComponentHandle componentEnumHandle, + char ID[], + char version[], + char title[], + NISysCfgComponentType *itemType, + char **detailedDescription ); NISYSCFGCFUNC NISysCfgNextSoftwareSet( - NISysCfgEnumSoftwareSetHandle setEnumHandle, - NISysCfgSoftwareSetHandle * setHandle + NISysCfgEnumSoftwareSetHandle setEnumHandle, + NISysCfgSoftwareSetHandle *setHandle ); // Caller should free detailedDescription using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgGetSoftwareSetInfo( - NISysCfgSoftwareSetHandle setHandle, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgBool includeAddOnDeps, - char ID[], - char version[], - char title[], - NISysCfgComponentType * setType, - char ** detailedDescription, - NISysCfgEnumSoftwareComponentHandle * addOnEnumHandle, - NISysCfgEnumSoftwareComponentHandle * itemEnumHandle + NISysCfgSoftwareSetHandle setHandle, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgBool includeAddOnDeps, + char ID[], + char version[], + char title[], + NISysCfgComponentType *setType, + char **detailedDescription, + NISysCfgEnumSoftwareComponentHandle *addOnEnumHandle, + NISysCfgEnumSoftwareComponentHandle *itemEnumHandle ); // Caller should free dependerDetailedDescription and dependeeDetailedDescription using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgNextDependencyInfo( - NISysCfgEnumDependencyHandle dependencyEnumHandle, - char dependerID[], - char dependerVersion[], - char dependerTitle[], - char ** dependerDetailedDescription, - char dependeeID[], - char dependeeVersion[], - char dependeeTitle[], - char ** dependeeDetailedDescription + NISysCfgEnumDependencyHandle dependencyEnumHandle, + char dependerID[], + char dependerVersion[], + char dependerTitle[], + char **dependerDetailedDescription, + char dependeeID[], + char dependeeVersion[], + char dependeeTitle[], + char **dependeeDetailedDescription ); NISYSCFGCFUNC NISysCfgNextSoftwareFeed( - NISysCfgEnumSoftwareFeedHandle feedEnumHandle, - char feedName[], - char uri[], - NISysCfgBool * enabled, - NISysCfgBool * trusted + NISysCfgEnumSoftwareFeedHandle feedEnumHandle, + char feedName[], + char uri[], + NISysCfgBool *enabled, + NISysCfgBool *trusted ); NISYSCFGCFUNC NISysCfgResetEnumeratorGetCount( - void * enumHandle, - unsigned int * count + void *enumHandle, + unsigned int *count ); // Helper method to get the status string for a given status code. // Caller should free detailedResult using NISysCfgFreeDetailedString. NISYSCFGCFUNC NISysCfgGetStatusDescription( - NISysCfgSessionHandle sessionHandle, // Can be NULL - NISysCfgStatus status, - char ** detailedDescription + NISysCfgSessionHandle sessionHandle, // Can be NULL + NISysCfgStatus status, + char **detailedDescription ); NISYSCFGCFUNC NISysCfgTimestampFromValues( - NISysCfgUInt64 secondsSinceEpoch1970, - double fractionalSeconds, - NISysCfgTimestampUTC * timestamp + NISysCfgUInt64 secondsSinceEpoch1970, + double fractionalSeconds, + NISysCfgTimestampUTC *timestamp ); NISYSCFGCFUNC NISysCfgValuesFromTimestamp( - const NISysCfgTimestampUTC * timestamp, - NISysCfgUInt64 * secondsSinceEpoch1970, - double * fractionalSeconds + const NISysCfgTimestampUTC *timestamp, + NISysCfgUInt64 *secondsSinceEpoch1970, + double *fractionalSeconds ); #ifdef __cplusplus diff --git a/driver/ni/nisyscfg_api.h b/driver/ni/nisyscfg_api.h index 7a106956cc..c3db3f1f28 100644 --- a/driver/ni/nisyscfg_api.h +++ b/driver/ni/nisyscfg_api.h @@ -7,67 +7,67 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. #pragma once + #include "nisyscfg.h" #include "nisyscfg_errors.h" -namespace ni{ +namespace ni { -class NiSysCfgInterface{ -public: - static NISYSCFGCFUNC InitializeSession( - const char * targetName, - const char * username, - const char * password, - NISysCfgLocale language, - NISysCfgBool forcePropertyRefresh, - unsigned int connectTimeoutMsec, - NISysCfgEnumExpertHandle * expertEnumHandle, - NISysCfgSessionHandle * sessionHandle - ); + class NiSysCfgInterface { + public: + static NISYSCFGCFUNC InitializeSession( + const char *targetName, + const char *username, + const char *password, + NISysCfgLocale language, + NISysCfgBool forcePropertyRefresh, + unsigned int connectTimeoutMsec, + NISysCfgEnumExpertHandle *expertEnumHandle, + NISysCfgSessionHandle *sessionHandle + ); - static NISYSCFGCFUNC CreateFilter( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterHandle * filterHandle - ); + static NISYSCFGCFUNC CreateFilter( + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterHandle *filterHandle + ); - static NISYSCFGCDECL SetFilterProperty( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - ... - ); + static NISYSCFGCDECL SetFilterProperty( + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + ... + ); - static NISYSCFGCFUNC CloseHandle( - void * syscfgHandle - ); + static NISYSCFGCFUNC CloseHandle( + void *syscfgHandle + ); + static NISYSCFGCFUNC FindHardware( + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterMode filterMode, + NISysCfgFilterHandle filterHandle, + const char *expertNames, + NISysCfgEnumResourceHandle *resourceEnumHandle + ); - static NISYSCFGCFUNC FindHardware( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterMode filterMode, - NISysCfgFilterHandle filterHandle, - const char * expertNames, - NISysCfgEnumResourceHandle * resourceEnumHandle - ); + static NISYSCFGCFUNC NextResource( + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumResourceHandle resourceEnumHandle, + NISysCfgResourceHandle *resourceHandle + ); - static NISYSCFGCFUNC NextResource( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumResourceHandle resourceEnumHandle, - NISysCfgResourceHandle * resourceHandle - ); + static NISYSCFGCFUNC GetResourceProperty( + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + void *value + ); - static NISYSCFGCFUNC GetResourceProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - void * value - ); + static NISYSCFGCFUNC GetResourceIndexedProperty( + NISysCfgResourceHandle resourceHandle, + NISysCfgIndexedProperty propertyID, + unsigned int index, + void *value + ); - static NISYSCFGCFUNC GetResourceIndexedProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgIndexedProperty propertyID, - unsigned int index, - void * value - ); - -}; + }; } \ No newline at end of file diff --git a/driver/ni/nisyscfg_errors.h b/driver/ni/nisyscfg_errors.h index f62c595ea9..5737ab4cab 100644 --- a/driver/ni/nisyscfg_errors.h +++ b/driver/ni/nisyscfg_errors.h @@ -27,219 +27,218 @@ #define NISysCfg_Succeeded(status) ((status)>=0) /* Check if the status indicates success */ #define NISysCfg_Failed(status) ((status)<0) /* Check if the status indicates failure */ -typedef enum -{ - // Common success codes - NISysCfg_OK = 0L, /* The operation succeeded. */ - NISysCfg_EndOfEnum = 1L, /* Reached end of the enumeration. Used by the NISysCfgNext* functions. */ - NISysCfg_SelfTestBasicOnly = 263024L, /* 0x00040370: The expert performed a basic self-test because it does not implement the specified mode. */ - NISysCfg_FeatureAlreadyActivated = 263025L, /* 0x00040371: The operation to activate a feature was skipped because the feature is already activated. */ - NISysCfg_FeatureNotActivated = 263026L, /* 0x00040372: The operation to deactivate a feature was skipped because the feature is not activated. */ - NISysCfg_FoundCachedOfflineSystem = 263168L, /* 0x00040400: Initialization succeeded but the target is offline. Only cached system properties are available. */ - NISysCfg_RestartLocalhostInitiated = 263169L, /* 0x00040401: For the local system, the option to wait until the restart is complete is ignored. The function has successfully initiated a restart with the operating system. */ - NISysCfg_ChangedPropertyNotSaved = 263170L, /* 0x00040402: The requested property value was changed in this session but the change was not successfully validated and saved. */ +typedef enum { + // Common success codes + NISysCfg_OK = 0L, /* The operation succeeded. */ + NISysCfg_EndOfEnum = 1L, /* Reached end of the enumeration. Used by the NISysCfgNext* functions. */ + NISysCfg_SelfTestBasicOnly = 263024L, /* 0x00040370: The expert performed a basic self-test because it does not implement the specified mode. */ + NISysCfg_FeatureAlreadyActivated = 263025L, /* 0x00040371: The operation to activate a feature was skipped because the feature is already activated. */ + NISysCfg_FeatureNotActivated = 263026L, /* 0x00040372: The operation to deactivate a feature was skipped because the feature is not activated. */ + NISysCfg_FoundCachedOfflineSystem = 263168L, /* 0x00040400: Initialization succeeded but the target is offline. Only cached system properties are available. */ + NISysCfg_RestartLocalhostInitiated = 263169L, /* 0x00040401: For the local system, the option to wait until the restart is complete is ignored. The function has successfully initiated a restart with the operating system. */ + NISysCfg_ChangedPropertyNotSaved = 263170L, /* 0x00040402: The requested property value was changed in this session but the change was not successfully validated and saved. */ - // Common error codes - NISysCfg_NotImplemented = -2147467263L, /* 0x80004001: This operation is not implemented for this target or resource. */ - NISysCfg_NullPointer = -2147467261L, /* 0x80004003: A required pointer parameter was NULL. */ - NISysCfg_Fail = -2147467259L, /* 0x80004005: Miscellaneous operation failure. */ - NISysCfg_Unexpected = -2147418113L, /* 0x8000FFFF: A critical unexpected error occurred. Please report this to NI. */ - NISysCfg_OutOfMemory = -2147024882L, /* 0x8007000E: Out of memory. */ - NISysCfg_InvalidArg = -2147024809L, /* 0x80070057: Some parameter is invalid. */ - NISysCfg_OperationTimedOut = -2147220448L, /* 0x80040420: The operation timed out. */ - NISysCfg_FileNotFound = -2147220322L, /* 0x8004049E: The specified file was not found. */ - NISysCfg_InvalidMACFormat = -2147220278L, /* 0x800404CA: Unsupported MAC address format. Supply the MAC address as a colon separated string of characters instead of Hex display. */ + // Common error codes + NISysCfg_NotImplemented = -2147467263L, /* 0x80004001: This operation is not implemented for this target or resource. */ + NISysCfg_NullPointer = -2147467261L, /* 0x80004003: A required pointer parameter was NULL. */ + NISysCfg_Fail = -2147467259L, /* 0x80004005: Miscellaneous operation failure. */ + NISysCfg_Unexpected = -2147418113L, /* 0x8000FFFF: A critical unexpected error occurred. Please report this to NI. */ + NISysCfg_OutOfMemory = -2147024882L, /* 0x8007000E: Out of memory. */ + NISysCfg_InvalidArg = -2147024809L, /* 0x80070057: Some parameter is invalid. */ + NISysCfg_OperationTimedOut = -2147220448L, /* 0x80040420: The operation timed out. */ + NISysCfg_FileNotFound = -2147220322L, /* 0x8004049E: The specified file was not found. */ + NISysCfg_InvalidMACFormat = -2147220278L, /* 0x800404CA: Unsupported MAC address format. Supply the MAC address as a colon separated string of characters instead of Hex display. */ - // 'Hardware' and 'Resource' functions - NISysCfg_PropMismatch = -2147220624L, /* 0x80040370: The property already exists with a different type or value. */ - NISysCfg_PropDoesNotExist = -2147220623L, /* 0x80040371: The property does not exist for this resource. */ - NISysCfg_UriIllegalSyntax = -2147220622L, /* 0x80040372: The name of the target or expert contains illegal characters or has an invalid format. Each label of the hostname must be between 1 and 63 characters long, and the entire hostname, including delimiting dots, must be 255 characters or less. */ - NISysCfg_UriTargetDoesNotExist = -2147220621L, /* 0x80040373: Could not contact the NI System Configuration API at the specified target address. Ensure that the system is online. */ - NISysCfg_UriExpertDoesNotExist = -2147220620L, /* 0x80040374: A specified expert is not installed. */ - NISysCfg_ItemDoesNotExist = -2147220619L, /* 0x80040375: The specified resource name does not exist. */ - NISysCfg_InvalidMode = -2147220618L, /* 0x80040376: The specified mode is invalid. */ - NISysCfg_SysConfigAPINotInstalled = -2147220616L, /* 0x80040378: The NI System Configuration API is not installed on the specified target. */ - NISysCfg_NameSyntaxIllegal = -2147220614L, /* 0x8004037A: The suggested name contains illegal characters. */ - NISysCfg_NameCollision = -2147220613L, /* 0x8004037B: Another resource already has the suggested name. */ - NISysCfg_NoPropValidated = -2147220612L, /* 0x8004037C: None of the changed properties could be validated. */ - NISysCfg_UriUnauthorized = -2147220611L, /* 0x8004037D: The current user does not have permission for the requested operation. */ - NISysCfg_RenameResourceDependencies = -2147220610L, /* 0x8004037E: The resource being renamed has dependencies, and the 'updateDependencies' flag was false. */ - NISysCfg_ValueInvalid = -2147220609L, /* 0x8004037F: A property contained a value that is not valid or is out of range. */ - NISysCfg_ValuesInconsistent = -2147220608L, /* 0x80040380: Multiple properties contained values that are inconsistent with each other. */ - NISysCfg_Canceled = -2147220607L, /* 0x80040381: The operation was canceled. */ - NISysCfg_ResponseSyntax = -2147220606L, /* 0x80040382: Could not parse the response from the NI System Configuration API at the specified target address. */ - NISysCfg_ResourceIsNotPresent = -2147220605L, /* 0x80040383: The resource name is valid but the operation requires the resource to be present. */ - NISysCfg_ResourceIsSimulated = -2147220604L, /* 0x80040384: The resource name is valid but the operation is not supported on simulated resources. */ - NISysCfg_NotInFirmwareUpdateState = -2147220603L, /* 0x80040385: The resource requires being in the firmware update state to perform this operation. */ - NISysCfg_FirmwareImageDeviceMismatch = -2147220602L, /* 0x80040386: The uploaded firmware image does not work with this resource. */ - NISysCfg_FirmwareImageCorrupt = -2147220601L, /* 0x80040387: The uploaded firmware image is corrupt or incomplete. */ - NISysCfg_InvalidFirmwareVersion = -2147220600L, /* 0x80040388: The specified firmware version does not exist. */ - NISysCfg_OlderFirmwareVersion = -2147220599L, /* 0x80040389: The specified firmware version is older than what is currently installed. */ - NISysCfg_InvalidLoginCredentials = -2147220598L, /* 0x8004038A: The username or password is incorrect. */ - NISysCfg_FirmwareUpdateAttemptFailed = -2147220597L, /* 0x8004038B: The specified firmware was not successfully installed. See the output parameters for more information. */ - NISysCfg_EncryptionFailed = -2147220596L, /* 0x8004038C: The data could not be encrypted. */ - NISysCfg_SomePropsNotValidated = -2147220595L, /* 0x8004038D: The changes were not saved. Some of the modified properties were not validated because they do not apply to this item. */ - NISysCfg_InvalidCalibrationCredentials = -2147220594L, /* 0x8004038E: The calibration password is incorrect. */ - NISysCfg_CannotDeletePresentResource = -2147220593L, /* 0x8004038F: Could not delete the specified resource because it is present. */ - NISysCfg_UriTargetTransmitError = -2147220592L, /* 0x80040390: Failed transmitting data to or from the web server at the specified target address. */ - NISysCfg_DecryptionFailed = -2147220591L, /* 0x80040391: The NI System Configuration API at the specified target address could not decrypt the data. */ - NISysCfg_FirmwareExpertVersionMismatch = -2147220590L, /* 0x80040392: The specified firmware requires a newer version of the expert than what is currently installed. */ - NISysCfg_AmbiguousImportAction = -2147220589L, /* 0x80040393: There was uncertainty regarding what action to take during an import. */ - NISysCfg_RequiredItemFailedImport = -2147220588L, /* 0x80040394: A required item could not be imported. */ - NISysCfg_ItemInUse = -2147220587L, /* 0x80040395: Could not perform the specified operation because the item is currently in use. */ - NISysCfg_ItemTypeNotSupported = -2147220586L, /* 0x80040396: Could not perform the specified operation because the item type is unknown or not supported. */ - NISysCfg_InvalidActivationCode = -2147220585L, /* 0x80040397: Could not perform the operation to activate a feature because the activation code is invalid. */ - NISysCfg_InvalidFeatureID = -2147220584L, /* 0x80040398: Could not perform the specified operation because the feature ID is invalid. */ + // 'Hardware' and 'Resource' functions + NISysCfg_PropMismatch = -2147220624L, /* 0x80040370: The property already exists with a different type or value. */ + NISysCfg_PropDoesNotExist = -2147220623L, /* 0x80040371: The property does not exist for this resource. */ + NISysCfg_UriIllegalSyntax = -2147220622L, /* 0x80040372: The name of the target or expert contains illegal characters or has an invalid format. Each label of the hostname must be between 1 and 63 characters long, and the entire hostname, including delimiting dots, must be 255 characters or less. */ + NISysCfg_UriTargetDoesNotExist = -2147220621L, /* 0x80040373: Could not contact the NI System Configuration API at the specified target address. Ensure that the system is online. */ + NISysCfg_UriExpertDoesNotExist = -2147220620L, /* 0x80040374: A specified expert is not installed. */ + NISysCfg_ItemDoesNotExist = -2147220619L, /* 0x80040375: The specified resource name does not exist. */ + NISysCfg_InvalidMode = -2147220618L, /* 0x80040376: The specified mode is invalid. */ + NISysCfg_SysConfigAPINotInstalled = -2147220616L, /* 0x80040378: The NI System Configuration API is not installed on the specified target. */ + NISysCfg_NameSyntaxIllegal = -2147220614L, /* 0x8004037A: The suggested name contains illegal characters. */ + NISysCfg_NameCollision = -2147220613L, /* 0x8004037B: Another resource already has the suggested name. */ + NISysCfg_NoPropValidated = -2147220612L, /* 0x8004037C: None of the changed properties could be validated. */ + NISysCfg_UriUnauthorized = -2147220611L, /* 0x8004037D: The current user does not have permission for the requested operation. */ + NISysCfg_RenameResourceDependencies = -2147220610L, /* 0x8004037E: The resource being renamed has dependencies, and the 'updateDependencies' flag was false. */ + NISysCfg_ValueInvalid = -2147220609L, /* 0x8004037F: A property contained a value that is not valid or is out of range. */ + NISysCfg_ValuesInconsistent = -2147220608L, /* 0x80040380: Multiple properties contained values that are inconsistent with each other. */ + NISysCfg_Canceled = -2147220607L, /* 0x80040381: The operation was canceled. */ + NISysCfg_ResponseSyntax = -2147220606L, /* 0x80040382: Could not parse the response from the NI System Configuration API at the specified target address. */ + NISysCfg_ResourceIsNotPresent = -2147220605L, /* 0x80040383: The resource name is valid but the operation requires the resource to be present. */ + NISysCfg_ResourceIsSimulated = -2147220604L, /* 0x80040384: The resource name is valid but the operation is not supported on simulated resources. */ + NISysCfg_NotInFirmwareUpdateState = -2147220603L, /* 0x80040385: The resource requires being in the firmware update state to perform this operation. */ + NISysCfg_FirmwareImageDeviceMismatch = -2147220602L, /* 0x80040386: The uploaded firmware image does not work with this resource. */ + NISysCfg_FirmwareImageCorrupt = -2147220601L, /* 0x80040387: The uploaded firmware image is corrupt or incomplete. */ + NISysCfg_InvalidFirmwareVersion = -2147220600L, /* 0x80040388: The specified firmware version does not exist. */ + NISysCfg_OlderFirmwareVersion = -2147220599L, /* 0x80040389: The specified firmware version is older than what is currently installed. */ + NISysCfg_InvalidLoginCredentials = -2147220598L, /* 0x8004038A: The username or password is incorrect. */ + NISysCfg_FirmwareUpdateAttemptFailed = -2147220597L, /* 0x8004038B: The specified firmware was not successfully installed. See the output parameters for more information. */ + NISysCfg_EncryptionFailed = -2147220596L, /* 0x8004038C: The data could not be encrypted. */ + NISysCfg_SomePropsNotValidated = -2147220595L, /* 0x8004038D: The changes were not saved. Some of the modified properties were not validated because they do not apply to this item. */ + NISysCfg_InvalidCalibrationCredentials = -2147220594L, /* 0x8004038E: The calibration password is incorrect. */ + NISysCfg_CannotDeletePresentResource = -2147220593L, /* 0x8004038F: Could not delete the specified resource because it is present. */ + NISysCfg_UriTargetTransmitError = -2147220592L, /* 0x80040390: Failed transmitting data to or from the web server at the specified target address. */ + NISysCfg_DecryptionFailed = -2147220591L, /* 0x80040391: The NI System Configuration API at the specified target address could not decrypt the data. */ + NISysCfg_FirmwareExpertVersionMismatch = -2147220590L, /* 0x80040392: The specified firmware requires a newer version of the expert than what is currently installed. */ + NISysCfg_AmbiguousImportAction = -2147220589L, /* 0x80040393: There was uncertainty regarding what action to take during an import. */ + NISysCfg_RequiredItemFailedImport = -2147220588L, /* 0x80040394: A required item could not be imported. */ + NISysCfg_ItemInUse = -2147220587L, /* 0x80040395: Could not perform the specified operation because the item is currently in use. */ + NISysCfg_ItemTypeNotSupported = -2147220586L, /* 0x80040396: Could not perform the specified operation because the item type is unknown or not supported. */ + NISysCfg_InvalidActivationCode = -2147220585L, /* 0x80040397: Could not perform the operation to activate a feature because the activation code is invalid. */ + NISysCfg_InvalidFeatureID = -2147220584L, /* 0x80040398: Could not perform the specified operation because the feature ID is invalid. */ - // 'Report' functions - NISysCfg_PermissionDenied = -2147220560L, /* 0x800403B0: Unable to write to file or folder. Permission denied. */ - NISysCfg_SystemNotFound = -2147220559L, /* 0x800403B1: Unable to connect to the specified system. Ensure that the system is online. */ - NISysCfg_TransformFailed = -2147220558L, /* 0x800403B2: Error running transform to generate report. */ - NISysCfg_NotInstalled = -2147220557L, /* 0x800403B3: Unable to find MAX on the system. Please reinstall. */ - NISysCfg_LaunchFailure = -2147220556L, /* 0x800403B4: Unexpected error launching nimax.exe. */ - NISysCfg_InternalTimeout = -2147220555L, /* 0x800403B5: Launched nimax.exe but it did not complete in a reasonable time. */ - NISysCfg_MissingTransform = -2147220554L, /* 0x800403B6: Unable to find an XSL transform to generate the report. */ - NISysCfg_IncorrectExtension = -2147220553L, /* 0x800403B7: Incorrect report file extension provided. */ - NISysCfg_FileReadOnly = -2147220552L, /* 0x800403B8: Report file is read-only. Unable to generate report. */ - NISysCfg_ReportOverwrite = -2147220551L, /* 0x800403B9: Report file already exists, but overwriting is not enabled. Specify overwrite to replace the report file. */ - NISysCfg_DirectoryError = -2147220550L, /* 0x800403BA: Error creating directory for report files. */ + // 'Report' functions + NISysCfg_PermissionDenied = -2147220560L, /* 0x800403B0: Unable to write to file or folder. Permission denied. */ + NISysCfg_SystemNotFound = -2147220559L, /* 0x800403B1: Unable to connect to the specified system. Ensure that the system is online. */ + NISysCfg_TransformFailed = -2147220558L, /* 0x800403B2: Error running transform to generate report. */ + NISysCfg_NotInstalled = -2147220557L, /* 0x800403B3: Unable to find MAX on the system. Please reinstall. */ + NISysCfg_LaunchFailure = -2147220556L, /* 0x800403B4: Unexpected error launching nimax.exe. */ + NISysCfg_InternalTimeout = -2147220555L, /* 0x800403B5: Launched nimax.exe but it did not complete in a reasonable time. */ + NISysCfg_MissingTransform = -2147220554L, /* 0x800403B6: Unable to find an XSL transform to generate the report. */ + NISysCfg_IncorrectExtension = -2147220553L, /* 0x800403B7: Incorrect report file extension provided. */ + NISysCfg_FileReadOnly = -2147220552L, /* 0x800403B8: Report file is read-only. Unable to generate report. */ + NISysCfg_ReportOverwrite = -2147220551L, /* 0x800403B9: Report file already exists, but overwriting is not enabled. Specify overwrite to replace the report file. */ + NISysCfg_DirectoryError = -2147220550L, /* 0x800403BA: Error creating directory for report files. */ - // 'Export' and 'Import' functions - NISysCfg_CannotOpenFile = -2147220480L, /* 0x80040400: Error opening a file. */ - NISysCfg_InsufficientPermissions = -2147220479L, /* 0x80040401: The object cannot be accessed because of insufficient permissions. */ - NISysCfg_NCECopierFailed = -2147220478L, /* 0x80040402: Error with the object copier. */ - NISysCfg_FileOperationFailed = -2147220477L, /* 0x80040403: Error performing a file operation. */ - NISysCfg_NameCollisionError = -2147220476L, /* 0x80040404: Names from one expert have collided with another expert. */ - NISysCfg_UnexpectedError = -2147220475L, /* 0x80040405: Unexpected error has occurred. */ - NISysCfg_NCENoStreamError = -2147220474L, /* 0x80040406: The expert requested its stream for import but one does not exist because it did not export a stream. */ - NISysCfg_NCECompressionError = -2147220473L, /* 0x80040407: Error compressing or decompressing file. */ - NISysCfg_NCEStreamReadError = -2147220472L, /* 0x80040408: Error reading from a stream. */ - NISysCfg_NCEStreamWriteError = -2147220471L, /* 0x80040409: Error writing to a stream. */ - NISysCfg_NCEStreamSeekError = -2147220470L, /* 0x8004040A: Error seeking to a position in a stream. */ - NISysCfg_NCERepoNotReady = -2147220469L, /* 0x8004040B: Repository not ready to be exported. */ - NISysCfg_NCERepoInvalid = -2147220468L, /* 0x8004040C: The file or stream from which to import the repository is not a valid repository. */ - NISysCfg_NCERepoIncompat = -2147220467L, /* 0x8004040D: The repository was exported with a newer version of MAX than what is on the importing machine. */ - NISysCfg_NCENoImportStorage = -2147220466L, /* 0x8004040E: The import storage could not be opened. */ - NISysCfg_NCENoExportStorage = -2147220465L, /* 0x8004040F: The export storage could not be created. */ - NISysCfg_NCENoObjCopier = -2147220464L, /* 0x80040410: The object copier could not be created. */ - NISysCfg_CopyInProgress = -2147220463L, /* 0x80040411: A PortCfg operation is already in progress. */ - NISysCfg_FileNotRecognized = -2147220462L, /* 0x80040412: The custom file does not belong to a given expert. */ - NISysCfg_SystemNotSupported = -2147220461L, /* 0x80040413: A specified system is not supported by this expert. */ - NISysCfg_SystemNotReachable = -2147220460L, /* 0x80040414: A specified system is presumably supported, but network errors prevent connection. */ - NISysCfg_ProductSoftwareNotInstalled = -2147220459L, /* 0x80040415: The product is not installed on the specified system. */ - NISysCfg_ProductSoftwareTooOld = -2147220458L, /* 0x80040416: The product is installed on the remote system, but is too old. */ - NISysCfg_ProductSoftwareTooNew = -2147220457L, /* 0x80040417: The product is installed on the remote system, but is too new. */ - NISysCfg_DataTooOld = -2147220456L, /* 0x80040418: The import data is too old. The product is not backward-compatible with this data. */ - NISysCfg_DataTooNew = -2147220455L, /* 0x80040419: The import data is too new. The product is not forward-compatible with this data. */ - NISysCfg_NoItemsToCopy = -2147220454L, /* 0x8004041A: The operation failed because no source items were specified. */ - NISysCfg_OrphanItems = -2147220453L, /* 0x8004041B: The operation failed because some items were orphans. */ - NISysCfg_DirtyItems = -2147220452L, /* 0x8004041C: The operation failed because some items were in-edit and not saved. */ - NISysCfg_FileOverwrite = -2147220451L, /* 0x8004041D: The operation failed because it would overwrite a file. */ - NISysCfg_ItemOverwrite = -2147220450L, /* 0x8004041E: The operation failed because it would overwrite items. */ - NISysCfg_MissingDependency = -2147220449L, /* 0x8004041F: The operation failed because of missing dependency items. */ - NISysCfg_OperationCanceled = -2147220447L, /* 0x80040421: The operation was canceled by the client. */ - NISysCfg_WarningConflicts = -2147220446L, /* 0x80040422: The operation failed because of warning conflicts. */ - NISysCfg_ErrorConflicts = -2147220445L, /* 0x80040423: The operation failed because of general conflicts. */ - NISysCfg_ItemsRequireUserInput = -2147220444L, /* 0x80040424: The operation failed because of unresolved conflicts requiring user input. */ - NISysCfg_ProductExpertNotReady = -2147220443L, /* 0x80040425: An expert is not ready to accept the specified source or destination, but may become ready in the future. */ - NISysCfg_OrphanFiles = -2147220442L, /* 0x80040426: The operation failed because some files were orphans. */ - NISysCfg_IsConst = -2147220441L, /* 0x80040427: Caller called a non-const method on an object that is logically const. */ - NISysCfg_UnsupportedProductMode = -2147220440L, /* 0x80040428: An expert does not support the attempted copy mode (e.g. merge to file, etc.). */ + // 'Export' and 'Import' functions + NISysCfg_CannotOpenFile = -2147220480L, /* 0x80040400: Error opening a file. */ + NISysCfg_InsufficientPermissions = -2147220479L, /* 0x80040401: The object cannot be accessed because of insufficient permissions. */ + NISysCfg_NCECopierFailed = -2147220478L, /* 0x80040402: Error with the object copier. */ + NISysCfg_FileOperationFailed = -2147220477L, /* 0x80040403: Error performing a file operation. */ + NISysCfg_NameCollisionError = -2147220476L, /* 0x80040404: Names from one expert have collided with another expert. */ + NISysCfg_UnexpectedError = -2147220475L, /* 0x80040405: Unexpected error has occurred. */ + NISysCfg_NCENoStreamError = -2147220474L, /* 0x80040406: The expert requested its stream for import but one does not exist because it did not export a stream. */ + NISysCfg_NCECompressionError = -2147220473L, /* 0x80040407: Error compressing or decompressing file. */ + NISysCfg_NCEStreamReadError = -2147220472L, /* 0x80040408: Error reading from a stream. */ + NISysCfg_NCEStreamWriteError = -2147220471L, /* 0x80040409: Error writing to a stream. */ + NISysCfg_NCEStreamSeekError = -2147220470L, /* 0x8004040A: Error seeking to a position in a stream. */ + NISysCfg_NCERepoNotReady = -2147220469L, /* 0x8004040B: Repository not ready to be exported. */ + NISysCfg_NCERepoInvalid = -2147220468L, /* 0x8004040C: The file or stream from which to import the repository is not a valid repository. */ + NISysCfg_NCERepoIncompat = -2147220467L, /* 0x8004040D: The repository was exported with a newer version of MAX than what is on the importing machine. */ + NISysCfg_NCENoImportStorage = -2147220466L, /* 0x8004040E: The import storage could not be opened. */ + NISysCfg_NCENoExportStorage = -2147220465L, /* 0x8004040F: The export storage could not be created. */ + NISysCfg_NCENoObjCopier = -2147220464L, /* 0x80040410: The object copier could not be created. */ + NISysCfg_CopyInProgress = -2147220463L, /* 0x80040411: A PortCfg operation is already in progress. */ + NISysCfg_FileNotRecognized = -2147220462L, /* 0x80040412: The custom file does not belong to a given expert. */ + NISysCfg_SystemNotSupported = -2147220461L, /* 0x80040413: A specified system is not supported by this expert. */ + NISysCfg_SystemNotReachable = -2147220460L, /* 0x80040414: A specified system is presumably supported, but network errors prevent connection. */ + NISysCfg_ProductSoftwareNotInstalled = -2147220459L, /* 0x80040415: The product is not installed on the specified system. */ + NISysCfg_ProductSoftwareTooOld = -2147220458L, /* 0x80040416: The product is installed on the remote system, but is too old. */ + NISysCfg_ProductSoftwareTooNew = -2147220457L, /* 0x80040417: The product is installed on the remote system, but is too new. */ + NISysCfg_DataTooOld = -2147220456L, /* 0x80040418: The import data is too old. The product is not backward-compatible with this data. */ + NISysCfg_DataTooNew = -2147220455L, /* 0x80040419: The import data is too new. The product is not forward-compatible with this data. */ + NISysCfg_NoItemsToCopy = -2147220454L, /* 0x8004041A: The operation failed because no source items were specified. */ + NISysCfg_OrphanItems = -2147220453L, /* 0x8004041B: The operation failed because some items were orphans. */ + NISysCfg_DirtyItems = -2147220452L, /* 0x8004041C: The operation failed because some items were in-edit and not saved. */ + NISysCfg_FileOverwrite = -2147220451L, /* 0x8004041D: The operation failed because it would overwrite a file. */ + NISysCfg_ItemOverwrite = -2147220450L, /* 0x8004041E: The operation failed because it would overwrite items. */ + NISysCfg_MissingDependency = -2147220449L, /* 0x8004041F: The operation failed because of missing dependency items. */ + NISysCfg_OperationCanceled = -2147220447L, /* 0x80040421: The operation was canceled by the client. */ + NISysCfg_WarningConflicts = -2147220446L, /* 0x80040422: The operation failed because of warning conflicts. */ + NISysCfg_ErrorConflicts = -2147220445L, /* 0x80040423: The operation failed because of general conflicts. */ + NISysCfg_ItemsRequireUserInput = -2147220444L, /* 0x80040424: The operation failed because of unresolved conflicts requiring user input. */ + NISysCfg_ProductExpertNotReady = -2147220443L, /* 0x80040425: An expert is not ready to accept the specified source or destination, but may become ready in the future. */ + NISysCfg_OrphanFiles = -2147220442L, /* 0x80040426: The operation failed because some files were orphans. */ + NISysCfg_IsConst = -2147220441L, /* 0x80040427: Caller called a non-const method on an object that is logically const. */ + NISysCfg_UnsupportedProductMode = -2147220440L, /* 0x80040428: An expert does not support the attempted copy mode (e.g. merge to file, etc.). */ - // 'System' functions - NISysCfg_BootFlowMigrationNotSupported = -2147220388L, /* 0x8004045C: The image you are applying is not supported by the boot flow installed on the target. Boot flow migration is not supported when running locally. */ - NISysCfg_BootFlowMigrationRequired = -2147220387L, /* 0x8004045D: The image you are applying is not supported by the boot flow installed on the target. Make sure the target has access to ni.com or install boot flow migration support packages on the host. */ - NISysCfg_OperationRequiresAutoRestart = -2147220386L, /* 0x8004045E: You must allow the target to reboot to perform the specified operation. */ - NISysCfg_HostSoftwareTooOld = -2147220385L, /* 0x8004045F: The target requires newer functionality not supported by the software on your computer. Update NI System Configuration to the latest version to configure this target. See www.ni.com/r/rtconfigerror for more information. */ - NISysCfg_OpkgUpdateFeedFailure = -2147220384L, /* 0x80040460: Running 'opkg update' failed to access at least one enabled feed. Consider disabling unnecessary feeds. */ - NISysCfg_FeedNotFound = -2147220383L, /* 0x80040461: The specified software feed was not found. */ - NISysCfg_FeedAlreadyExists = -2147220382L, /* 0x80040462: Could not add the specified software feed because it already exists. */ - NISysCfg_InstallOptionNotSupported = -2147220381L, /* 0x80040463: The target does not support one of the specified installation options. */ - NISysCfg_FirmwareTooOld = -2147220380L, /* 0x80040464: The target does not include the functionality this operation requires. Update the firmware to the latest version. */ - NISysCfg_SoftwareTooOld = -2147220379L, /* 0x80040465: The target does not include the functionality this operation requires. Update the software to the latest version. */ - NISysCfg_RequiresSSH = -2147220378L, /* 0x80040466: SSH must be enabled on the target. */ - NISysCfg_OpkgResponseSyntax = -2147220377L, /* 0x80040467: Could not parse the response from opkg at the specified target address. */ - NISysCfg_WrongSoftwareSetType = -2147220376L, /* 0x80040468: The specified software set is the wrong type for this operation. */ - NISysCfg_RequiresOpkg = -2147220375L, /* 0x80040469: The target requires using opkg to modify installed software. */ - NISysCfg_HDFormatEncryptNotSupported = -2147220374L, /* 0x8004046A: Disk encryption is not supported by the target. */ - NISysCfg_HDFormatNoRecoveryKeyDevice = -2147220373L, /* 0x8004046B: Could not find a device suitable for storing the encrypted disk recovery key. Format a USB drive with the appropriate filesystem label and insert it into the target. */ - NISysCfg_RestartLocalhostAmbiguous = -2147220372L, /* 0x8004046C: To restart your system, either specify 'localhost' on the front panel for Session in, or call Initialize Session first. */ - NISysCfg_ImageInvalidCorrupt = -2147220371L, /* 0x8004046D: The image is corrupt or the file type is invalid. */ - NISysCfg_SafeOrInstallModeRequired = -2147220370L, /* 0x8004046E: Can only perform this action in safe or install mode, and the 'auto restart' flag was false. */ - NISysCfg_EncryptPhraseMismatch = -2147220369L, /* 0x8004046F: The encryption passphrase when applying an image was not the same as when the image was created. */ - NISysCfg_InvalidIP = -2147220368L, /* 0x80040470: The IP address is invalid. */ - NISysCfg_InvalidGateway = -2147220367L, /* 0x80040471: The gateway address is invalid. */ - NISysCfg_InvalidDNS = -2147220366L, /* 0x80040472: The DNS server address is invalid. */ - NISysCfg_InvalidSubnet = -2147220365L, /* 0x80040473: The subnet mask is invalid. */ - NISysCfg_CmdNotSupported = -2147220364L, /* 0x80040474: Command is not supported by given protocol. */ - NISysCfg_ConfigFailed = -2147220363L, /* 0x80040475: Remote system replied with the failure to config command. */ - NISysCfg_Locked = -2147220362L, /* 0x80040476: Remote system is locked. Requires a password to configure. */ - NISysCfg_BadPassword = -2147220361L, /* 0x80040477: The password supplied for the operation is invalid. */ - NISysCfg_NotConfigurable = -2147220360L, /* 0x80040478: The remote device is not configurable for some reason other than password. */ - NISysCfg_UnlockFailed = -2147220359L, /* 0x80040479: Failed to unlock the system. */ - NISysCfg_LockFailed = -2147220358L, /* 0x8004047A: Failed to lock the system. */ - NISysCfg_InstallFailed = -2147220357L, /* 0x8004047B: General installation failure. */ - NISysCfg_InstallationCorrupt = -2147220356L, /* 0x8004047C: Installation component files were not found in the repository, or were corrupt. */ - NISysCfg_EmptyFile = -2147220355L, /* 0x8004047D: The installation file is empty. */ - NISysCfg_UnconfiguredIP = -2147220354L, /* 0x8004047E: The system must have a valid IP address before certain operations such as installation. The IP address cannot be 0.0.0.0. */ - NISysCfg_InstallationGenericFailure = -2147220352L, /* 0x80040480: General install error. */ - NISysCfg_DownloadAlreadyStarted = -2147220350L, /* 0x80040482: Installation to the specified target has already started. Multiple simultaneous installations are not allowed. */ - NISysCfg_Aborted = -2147220349L, /* 0x80040483: Remote action aborted. */ - NISysCfg_DiskFull = -2147220338L, /* 0x8004048E: Hard drive on the remote system is either full or has encountered an I/O error. */ - NISysCfg_HDFormatFailed = -2147220337L, /* 0x8004048F: Hard drive format failed. The disk on the target may be unrecoverable. */ - NISysCfg_HDFormatNotSafeMode = -2147220336L, /* 0x80040490: System must be in safe mode before attempting a hard drive format. Restart the target into safe mode and attempt the command again. */ - NISysCfg_HDFormatRebootFailed = -2147220335L, /* 0x80040491: System failed to restart after the hard drive was formatted. The system is in an unknown state. You may have to manually restart the target. */ - NISysCfg_ConnectionRefused = -2147220334L, /* 0x80040492: The server refused the network connection. */ - NISysCfg_GetRemoteFilesFailed = -2147220331L, /* 0x80040495: Failed to get one or more files while creating system image. The image is incomplete or invalid. */ - NISysCfg_PutRemoteFilesFailed = -2147220330L, /* 0x80040496: Failed to put one or more files while applying system image. The system may be in a corrupt state. */ - NISysCfg_InvalidImage = -2147220329L, /* 0x80040497: The specified path does not contain a valid image. */ - NISysCfg_ImageDeviceCodeMismatch = -2147220328L, /* 0x80040498: The image is for a different device class and is incompatible with the target. */ - NISysCfg_SystemMismatch = -2147220327L, /* 0x80040499: The image was not originally created from the specified target. */ - NISysCfg_HDFormatWrongFS = -2147220326L, /* 0x8004049A: The requested file system is not supported on the specified target. */ - NISysCfg_CustomInstallNotSupported = -2147220325L, /* 0x8004049B: The specified target does not support custom software installations. */ - NISysCfg_FTPFailed = -2147220324L, /* 0x8004049C: A file transfer error (FTP or WebDAV) occurred. */ - NISysCfg_Timeout = -2147220323L, /* 0x8004049D: Operation timed out. */ - NISysCfg_DirNotFound = -2147220321L, /* 0x8004049F: The specified directory was not found. */ - NISysCfg_PathNotFound = -2147220320L, /* 0x800404A0: The specified file or directory path was not found. */ - NISysCfg_NoSoftwareAvailable = -2147220319L, /* 0x800404A1: No software is available for installation to this target. */ - NISysCfg_OverwriteError = -2147220318L, /* 0x800404A2: The file or directory exists and the overwrite flag was false. */ - NISysCfg_HDFormatCannotKeepCfg = -2147220317L, /* 0x800404A3: The target was not formatted because the option to keep configuration after a format is supported only for targets on the local subnet. To format the target, repeat the operation without requesting to keep the configuration. */ - NISysCfg_FileOrPathTooLong = -2147220316L, /* 0x800404A4: Filename or pathname is longer than what the server supports. */ - NISysCfg_DDPInternalTimeout = -2147220315L, /* 0x800404A5: Failed when communicating with the system. This issue is usually caused by a high latency in the network. Refer to KnowledgeBase article 42GH3O00 on ni.com for possible solutions. */ - NISysCfg_IOPermissionDenied = -2147220314L, /* 0x800404A6: The operation failed because of insufficient permissions. */ - NISysCfg_PathAlreadyExists = -2147220313L, /* 0x800404A7: The operation failed because the path already exists. */ - NISysCfg_ExecutionFailure = -2147220312L, /* 0x800404A8: The execution of an external command, script, or application failed. */ - NISysCfg_DownloadError = -2147220311L, /* 0x800404A9: Failed to download the file from the 'RT Images' repository. */ - NISysCfg_NetSendFailed = -2147220309L, /* 0x800404AB: Failed to send command. */ - NISysCfg_ContactHostDisconnected = -2147220308L, /* 0x800404AC: Could not contact remote target. Ensure that the system is online. */ - NISysCfg_NetSvcDown = -2147220307L, /* 0x800404AD: Could not access network. */ - NISysCfg_NotConfirmed = -2147220306L, /* 0x800404AE: Command was not confirmed. The result of the operation is uncertain. */ - NISysCfg_HostNotResolved = -2147220305L, /* 0x800404AF: Hostname could not be resolved by DNS. */ - NISysCfg_RebootTimeout = -2147220304L, /* 0x800404B0: Timeout while waiting for restart. The system is offline. */ - NISysCfg_NoConfirmationFP1600 = -2147220303L, /* 0x800404B1: Sending new configuration operation returned a failure, but might not necessarily have failed. */ - NISysCfg_DuplicateStartup = -2147220300L, /* 0x800404B4: Cannot install more than one startup component. */ - NISysCfg_RemoteInvalidArgument = -2147220299L, /* 0x800404B5: Invalid argument passed. */ - NISysCfg_NotUninstallable = -2147220298L, /* 0x800404B6: Cannot uninstall a specified software component from the target because there are dependencies. */ - NISysCfg_DuplicatesNotAllowed = -2147220297L, /* 0x800404B7: Cannot install multiple packages of the same component. */ - NISysCfg_NotInstallable = -2147220296L, /* 0x800404B8: Cannot install a specified software component to the target because there are dependencies. */ - NISysCfg_WrongDevice = -2147220295L, /* 0x800404B9: A specified software component is incompatible with this target. */ - NISysCfg_WrongOS = -2147220294L, /* 0x800404BA: A specified software component is incompatible with this target's operating system. */ - NISysCfg_OSVersionTooOld = -2147220293L, /* 0x800404BB: A firmware update is required before installing. */ - NISysCfg_IOError = -2147220292L, /* 0x800404BC: Cannot open file or folder. */ - NISysCfg_CorruptConfig = -2147220291L, /* 0x800404BD: Duplicate or missing components on target installation. */ - NISysCfg_BufferOverflow = -2147220290L, /* 0x800404BE: Buffer overflow. Size is too small. */ - NISysCfg_UnsupportedCDFVersion = -2147220289L, /* 0x800404BF: The software installed on the target uses a CDF format not supported by the software on your computer. Update NI System Configuration or NI MAX to the latest version to configure this target. */ - NISysCfg_InvalidStack = -2147220288L, /* 0x800404C0: The specified software set or base system image cannot be installed to the target because it is invalid or cannot be found. */ - NISysCfg_IncompleteStack = -2147220287L, /* 0x800404C1: The specified software set definition is incomplete and cannot be installed to the target. Some hidden dependencies were added. */ - NISysCfg_StackItemMissing = -2147220286L, /* 0x800404C2: One or more Software Set items could not be found in the repository. */ - NISysCfg_TopLevelHiddenComponentError = -2147220285L, /* 0x800404C3: There is a top-level hidden component installed. */ - NISysCfg_InvalidAddon = -2147220284L, /* 0x800404C4: A component was passed in that is not an installable add-on. It may be an unknown ID, a defined item that is not an add-on, a missing add-on, or a non-installable add-on. */ - NISysCfg_NoRTImagesFolder = -2147220283L, /* 0x800404C5: Could not find or access 'RT Images' repository location. */ - NISysCfg_NoRTImagesRegistry = -2147220282L, /* 0x800404C6: Could not read the 'RT Images' registry key. */ - NISysCfg_NoRTS2CDF = -2147220281L, /* 0x800404C7: Could not find the rts2cdf conversion utility. */ - NISysCfg_UnsupportedOS = -2147220280L, /* 0x800404C8: The operating system is not supported. */ - NISysCfg_ExactVersionRequired = -2147220279L, /* 0x800404C9: Unspecified version while trying to install exact version of a component. */ - NISysCfg_InvalidStartup = -2147220277L /* 0x800404CB: A component was passed in that is not a startup. */ + // 'System' functions + NISysCfg_BootFlowMigrationNotSupported = -2147220388L, /* 0x8004045C: The image you are applying is not supported by the boot flow installed on the target. Boot flow migration is not supported when running locally. */ + NISysCfg_BootFlowMigrationRequired = -2147220387L, /* 0x8004045D: The image you are applying is not supported by the boot flow installed on the target. Make sure the target has access to ni.com or install boot flow migration support packages on the host. */ + NISysCfg_OperationRequiresAutoRestart = -2147220386L, /* 0x8004045E: You must allow the target to reboot to perform the specified operation. */ + NISysCfg_HostSoftwareTooOld = -2147220385L, /* 0x8004045F: The target requires newer functionality not supported by the software on your computer. Update NI System Configuration to the latest version to configure this target. See www.ni.com/r/rtconfigerror for more information. */ + NISysCfg_OpkgUpdateFeedFailure = -2147220384L, /* 0x80040460: Running 'opkg update' failed to access at least one enabled feed. Consider disabling unnecessary feeds. */ + NISysCfg_FeedNotFound = -2147220383L, /* 0x80040461: The specified software feed was not found. */ + NISysCfg_FeedAlreadyExists = -2147220382L, /* 0x80040462: Could not add the specified software feed because it already exists. */ + NISysCfg_InstallOptionNotSupported = -2147220381L, /* 0x80040463: The target does not support one of the specified installation options. */ + NISysCfg_FirmwareTooOld = -2147220380L, /* 0x80040464: The target does not include the functionality this operation requires. Update the firmware to the latest version. */ + NISysCfg_SoftwareTooOld = -2147220379L, /* 0x80040465: The target does not include the functionality this operation requires. Update the software to the latest version. */ + NISysCfg_RequiresSSH = -2147220378L, /* 0x80040466: SSH must be enabled on the target. */ + NISysCfg_OpkgResponseSyntax = -2147220377L, /* 0x80040467: Could not parse the response from opkg at the specified target address. */ + NISysCfg_WrongSoftwareSetType = -2147220376L, /* 0x80040468: The specified software set is the wrong type for this operation. */ + NISysCfg_RequiresOpkg = -2147220375L, /* 0x80040469: The target requires using opkg to modify installed software. */ + NISysCfg_HDFormatEncryptNotSupported = -2147220374L, /* 0x8004046A: Disk encryption is not supported by the target. */ + NISysCfg_HDFormatNoRecoveryKeyDevice = -2147220373L, /* 0x8004046B: Could not find a device suitable for storing the encrypted disk recovery key. Format a USB drive with the appropriate filesystem label and insert it into the target. */ + NISysCfg_RestartLocalhostAmbiguous = -2147220372L, /* 0x8004046C: To restart your system, either specify 'localhost' on the front panel for Session in, or call Initialize Session first. */ + NISysCfg_ImageInvalidCorrupt = -2147220371L, /* 0x8004046D: The image is corrupt or the file type is invalid. */ + NISysCfg_SafeOrInstallModeRequired = -2147220370L, /* 0x8004046E: Can only perform this action in safe or install mode, and the 'auto restart' flag was false. */ + NISysCfg_EncryptPhraseMismatch = -2147220369L, /* 0x8004046F: The encryption passphrase when applying an image was not the same as when the image was created. */ + NISysCfg_InvalidIP = -2147220368L, /* 0x80040470: The IP address is invalid. */ + NISysCfg_InvalidGateway = -2147220367L, /* 0x80040471: The gateway address is invalid. */ + NISysCfg_InvalidDNS = -2147220366L, /* 0x80040472: The DNS server address is invalid. */ + NISysCfg_InvalidSubnet = -2147220365L, /* 0x80040473: The subnet mask is invalid. */ + NISysCfg_CmdNotSupported = -2147220364L, /* 0x80040474: Command is not supported by given protocol. */ + NISysCfg_ConfigFailed = -2147220363L, /* 0x80040475: Remote system replied with the failure to config command. */ + NISysCfg_Locked = -2147220362L, /* 0x80040476: Remote system is locked. Requires a password to configure. */ + NISysCfg_BadPassword = -2147220361L, /* 0x80040477: The password supplied for the operation is invalid. */ + NISysCfg_NotConfigurable = -2147220360L, /* 0x80040478: The remote device is not configurable for some reason other than password. */ + NISysCfg_UnlockFailed = -2147220359L, /* 0x80040479: Failed to unlock the system. */ + NISysCfg_LockFailed = -2147220358L, /* 0x8004047A: Failed to lock the system. */ + NISysCfg_InstallFailed = -2147220357L, /* 0x8004047B: General installation failure. */ + NISysCfg_InstallationCorrupt = -2147220356L, /* 0x8004047C: Installation component files were not found in the repository, or were corrupt. */ + NISysCfg_EmptyFile = -2147220355L, /* 0x8004047D: The installation file is empty. */ + NISysCfg_UnconfiguredIP = -2147220354L, /* 0x8004047E: The system must have a valid IP address before certain operations such as installation. The IP address cannot be 0.0.0.0. */ + NISysCfg_InstallationGenericFailure = -2147220352L, /* 0x80040480: General install error. */ + NISysCfg_DownloadAlreadyStarted = -2147220350L, /* 0x80040482: Installation to the specified target has already started. Multiple simultaneous installations are not allowed. */ + NISysCfg_Aborted = -2147220349L, /* 0x80040483: Remote action aborted. */ + NISysCfg_DiskFull = -2147220338L, /* 0x8004048E: Hard drive on the remote system is either full or has encountered an I/O error. */ + NISysCfg_HDFormatFailed = -2147220337L, /* 0x8004048F: Hard drive format failed. The disk on the target may be unrecoverable. */ + NISysCfg_HDFormatNotSafeMode = -2147220336L, /* 0x80040490: System must be in safe mode before attempting a hard drive format. Restart the target into safe mode and attempt the command again. */ + NISysCfg_HDFormatRebootFailed = -2147220335L, /* 0x80040491: System failed to restart after the hard drive was formatted. The system is in an unknown state. You may have to manually restart the target. */ + NISysCfg_ConnectionRefused = -2147220334L, /* 0x80040492: The server refused the network connection. */ + NISysCfg_GetRemoteFilesFailed = -2147220331L, /* 0x80040495: Failed to get one or more files while creating system image. The image is incomplete or invalid. */ + NISysCfg_PutRemoteFilesFailed = -2147220330L, /* 0x80040496: Failed to put one or more files while applying system image. The system may be in a corrupt state. */ + NISysCfg_InvalidImage = -2147220329L, /* 0x80040497: The specified path does not contain a valid image. */ + NISysCfg_ImageDeviceCodeMismatch = -2147220328L, /* 0x80040498: The image is for a different device class and is incompatible with the target. */ + NISysCfg_SystemMismatch = -2147220327L, /* 0x80040499: The image was not originally created from the specified target. */ + NISysCfg_HDFormatWrongFS = -2147220326L, /* 0x8004049A: The requested file system is not supported on the specified target. */ + NISysCfg_CustomInstallNotSupported = -2147220325L, /* 0x8004049B: The specified target does not support custom software installations. */ + NISysCfg_FTPFailed = -2147220324L, /* 0x8004049C: A file transfer error (FTP or WebDAV) occurred. */ + NISysCfg_Timeout = -2147220323L, /* 0x8004049D: Operation timed out. */ + NISysCfg_DirNotFound = -2147220321L, /* 0x8004049F: The specified directory was not found. */ + NISysCfg_PathNotFound = -2147220320L, /* 0x800404A0: The specified file or directory path was not found. */ + NISysCfg_NoSoftwareAvailable = -2147220319L, /* 0x800404A1: No software is available for installation to this target. */ + NISysCfg_OverwriteError = -2147220318L, /* 0x800404A2: The file or directory exists and the overwrite flag was false. */ + NISysCfg_HDFormatCannotKeepCfg = -2147220317L, /* 0x800404A3: The target was not formatted because the option to keep configuration after a format is supported only for targets on the local subnet. To format the target, repeat the operation without requesting to keep the configuration. */ + NISysCfg_FileOrPathTooLong = -2147220316L, /* 0x800404A4: Filename or pathname is longer than what the server supports. */ + NISysCfg_DDPInternalTimeout = -2147220315L, /* 0x800404A5: Failed when communicating with the system. This issue is usually caused by a high latency in the network. Refer to KnowledgeBase article 42GH3O00 on ni.com for possible solutions. */ + NISysCfg_IOPermissionDenied = -2147220314L, /* 0x800404A6: The operation failed because of insufficient permissions. */ + NISysCfg_PathAlreadyExists = -2147220313L, /* 0x800404A7: The operation failed because the path already exists. */ + NISysCfg_ExecutionFailure = -2147220312L, /* 0x800404A8: The execution of an external command, script, or application failed. */ + NISysCfg_DownloadError = -2147220311L, /* 0x800404A9: Failed to download the file from the 'RT Images' repository. */ + NISysCfg_NetSendFailed = -2147220309L, /* 0x800404AB: Failed to send command. */ + NISysCfg_ContactHostDisconnected = -2147220308L, /* 0x800404AC: Could not contact remote target. Ensure that the system is online. */ + NISysCfg_NetSvcDown = -2147220307L, /* 0x800404AD: Could not access network. */ + NISysCfg_NotConfirmed = -2147220306L, /* 0x800404AE: Command was not confirmed. The result of the operation is uncertain. */ + NISysCfg_HostNotResolved = -2147220305L, /* 0x800404AF: Hostname could not be resolved by DNS. */ + NISysCfg_RebootTimeout = -2147220304L, /* 0x800404B0: Timeout while waiting for restart. The system is offline. */ + NISysCfg_NoConfirmationFP1600 = -2147220303L, /* 0x800404B1: Sending new configuration operation returned a failure, but might not necessarily have failed. */ + NISysCfg_DuplicateStartup = -2147220300L, /* 0x800404B4: Cannot install more than one startup component. */ + NISysCfg_RemoteInvalidArgument = -2147220299L, /* 0x800404B5: Invalid argument passed. */ + NISysCfg_NotUninstallable = -2147220298L, /* 0x800404B6: Cannot uninstall a specified software component from the target because there are dependencies. */ + NISysCfg_DuplicatesNotAllowed = -2147220297L, /* 0x800404B7: Cannot install multiple packages of the same component. */ + NISysCfg_NotInstallable = -2147220296L, /* 0x800404B8: Cannot install a specified software component to the target because there are dependencies. */ + NISysCfg_WrongDevice = -2147220295L, /* 0x800404B9: A specified software component is incompatible with this target. */ + NISysCfg_WrongOS = -2147220294L, /* 0x800404BA: A specified software component is incompatible with this target's operating system. */ + NISysCfg_OSVersionTooOld = -2147220293L, /* 0x800404BB: A firmware update is required before installing. */ + NISysCfg_IOError = -2147220292L, /* 0x800404BC: Cannot open file or folder. */ + NISysCfg_CorruptConfig = -2147220291L, /* 0x800404BD: Duplicate or missing components on target installation. */ + NISysCfg_BufferOverflow = -2147220290L, /* 0x800404BE: Buffer overflow. Size is too small. */ + NISysCfg_UnsupportedCDFVersion = -2147220289L, /* 0x800404BF: The software installed on the target uses a CDF format not supported by the software on your computer. Update NI System Configuration or NI MAX to the latest version to configure this target. */ + NISysCfg_InvalidStack = -2147220288L, /* 0x800404C0: The specified software set or base system image cannot be installed to the target because it is invalid or cannot be found. */ + NISysCfg_IncompleteStack = -2147220287L, /* 0x800404C1: The specified software set definition is incomplete and cannot be installed to the target. Some hidden dependencies were added. */ + NISysCfg_StackItemMissing = -2147220286L, /* 0x800404C2: One or more Software Set items could not be found in the repository. */ + NISysCfg_TopLevelHiddenComponentError = -2147220285L, /* 0x800404C3: There is a top-level hidden component installed. */ + NISysCfg_InvalidAddon = -2147220284L, /* 0x800404C4: A component was passed in that is not an installable add-on. It may be an unknown ID, a defined item that is not an add-on, a missing add-on, or a non-installable add-on. */ + NISysCfg_NoRTImagesFolder = -2147220283L, /* 0x800404C5: Could not find or access 'RT Images' repository location. */ + NISysCfg_NoRTImagesRegistry = -2147220282L, /* 0x800404C6: Could not read the 'RT Images' registry key. */ + NISysCfg_NoRTS2CDF = -2147220281L, /* 0x800404C7: Could not find the rts2cdf conversion utility. */ + NISysCfg_UnsupportedOS = -2147220280L, /* 0x800404C8: The operating system is not supported. */ + NISysCfg_ExactVersionRequired = -2147220279L, /* 0x800404C9: Unspecified version while trying to install exact version of a component. */ + NISysCfg_InvalidStartup = -2147220277L /* 0x800404CB: A component was passed in that is not a startup. */ } NISysCfgStatus; #endif // _NI_SYSTEM_CONFIG_ERRORS_H_ diff --git a/driver/ni/nisyscfg_mock.cpp b/driver/ni/nisyscfg_mock.cpp index 85d7d7f372..3efe79451c 100644 --- a/driver/ni/nisyscfg_mock.cpp +++ b/driver/ni/nisyscfg_mock.cpp @@ -14,73 +14,72 @@ NISYSCFGCFUNC ni::NiSysCfgInterface::InitializeSession( - const char * targetName, - const char * username, - const char * password, - NISysCfgLocale language, - NISysCfgBool forcePropertyRefresh, - unsigned int connectTimeoutMsec, - NISysCfgEnumExpertHandle * expertEnumHandle, - NISysCfgSessionHandle * sessionHandle -){ + const char *targetName, + const char *username, + const char *password, + NISysCfgLocale language, + NISysCfgBool forcePropertyRefresh, + unsigned int connectTimeoutMsec, + NISysCfgEnumExpertHandle *expertEnumHandle, + NISysCfgSessionHandle *sessionHandle +) { return NISysCfg_OK; } NISYSCFGCFUNC ni::NiSysCfgInterface::CreateFilter( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterHandle * filterHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterHandle *filterHandle +) { return NISysCfg_OK; } NISYSCFGCDECL ni::NiSysCfgInterface::SetFilterProperty( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - ... -){ + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + ... +) { return NISysCfg_OK; } -NISYSCFGCFUNC ni::NiSysCfgInterface:: CloseHandle( - void * syscfgHandle -){ +NISYSCFGCFUNC ni::NiSysCfgInterface::CloseHandle( + void *syscfgHandle +) { return NISysCfg_OK; } - NISYSCFGCFUNC ni::NiSysCfgInterface::FindHardware( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterMode filterMode, - NISysCfgFilterHandle filterHandle, - const char * expertNames, - NISysCfgEnumResourceHandle * resourceEnumHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterMode filterMode, + NISysCfgFilterHandle filterHandle, + const char *expertNames, + NISysCfgEnumResourceHandle *resourceEnumHandle +) { return NISysCfg_OK; } NISYSCFGCFUNC ni::NiSysCfgInterface::NextResource( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumResourceHandle resourceEnumHandle, - NISysCfgResourceHandle * resourceHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumResourceHandle resourceEnumHandle, + NISysCfgResourceHandle *resourceHandle +) { return NISysCfg_OK; } NISYSCFGCFUNC ni::NiSysCfgInterface::GetResourceProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - void * value -){ + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + void *value +) { return NISysCfg_OK; } NISYSCFGCFUNC ni::NiSysCfgInterface::GetResourceIndexedProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgIndexedProperty propertyID, - unsigned int index, - void * value -){ + NISysCfgResourceHandle resourceHandle, + NISysCfgIndexedProperty propertyID, + unsigned int index, + void *value +) { return NISysCfg_OK; } diff --git a/driver/ni/nisyscfg_prod.cpp b/driver/ni/nisyscfg_prod.cpp index 4cd425369a..fc8e3318f7 100644 --- a/driver/ni/nisyscfg_prod.cpp +++ b/driver/ni/nisyscfg_prod.cpp @@ -14,72 +14,72 @@ NISYSCFGCFUNC ni::NiSysCfgInterface::InitializeSession( - const char * targetName, - const char * username, - const char * password, - NISysCfgLocale language, - NISysCfgBool forcePropertyRefresh, - unsigned int connectTimeoutMsec, - NISysCfgEnumExpertHandle * expertEnumHandle, - NISysCfgSessionHandle * sessionHandle -){ - return NISysCfgInitializeSession(targetName, username, password, language, forcePropertyRefresh, connectTimeoutMsec, expertEnumHandle, sessionHandle); + const char *targetName, + const char *username, + const char *password, + NISysCfgLocale language, + NISysCfgBool forcePropertyRefresh, + unsigned int connectTimeoutMsec, + NISysCfgEnumExpertHandle *expertEnumHandle, + NISysCfgSessionHandle *sessionHandle +) { + return NISysCfgInitializeSession(targetName, username, password, language, forcePropertyRefresh, connectTimeoutMsec, + expertEnumHandle, sessionHandle); } NISYSCFGCFUNC ni::NiSysCfgInterface::CreateFilter( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterHandle * filterHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterHandle *filterHandle +) { return NISysCfgCreateFilter(sessionHandle, filterHandle); } NISYSCFGCDECL ni::NiSysCfgInterface::SetFilterProperty( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - ... -){ + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + ... +) { return NISysCfgSetFilterProperty(filterHandle, propertyID); } -NISYSCFGCFUNC ni::NiSysCfgInterface:: CloseHandle( - void * syscfgHandle -){ +NISYSCFGCFUNC ni::NiSysCfgInterface::CloseHandle( + void *syscfgHandle +) { return NISysCfgCloseHandle(syscfgHandle); } - NISYSCFGCFUNC ni::NiSysCfgInterface::FindHardware( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterMode filterMode, - NISysCfgFilterHandle filterHandle, - const char * expertNames, - NISysCfgEnumResourceHandle * resourceEnumHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterMode filterMode, + NISysCfgFilterHandle filterHandle, + const char *expertNames, + NISysCfgEnumResourceHandle *resourceEnumHandle +) { return NISysCfgFindHardware(sessionHandle, filterMode, filterHandle, expertNames, resourceEnumHandle); } NISYSCFGCFUNC ni::NiSysCfgInterface::NextResource( - NISysCfgSessionHandle sessionHandle, - NISysCfgEnumResourceHandle resourceEnumHandle, - NISysCfgResourceHandle * resourceHandle -){ + NISysCfgSessionHandle sessionHandle, + NISysCfgEnumResourceHandle resourceEnumHandle, + NISysCfgResourceHandle *resourceHandle +) { return NISysCfgNextResource(sessionHandle, resourceEnumHandle, resourceHandle); } NISYSCFGCFUNC ni::NiSysCfgInterface::GetResourceProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - void * value -){ + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + void *value +) { return NISysCfgGetResourceProperty(resourceHandle, propertyID, value); } NISYSCFGCFUNC ni::NiSysCfgInterface::GetResourceIndexedProperty( - NISysCfgResourceHandle resourceHandle, - NISysCfgIndexedProperty propertyID, - unsigned int index, - void * value -){ + NISysCfgResourceHandle resourceHandle, + NISysCfgIndexedProperty propertyID, + unsigned int index, + void *value +) { return NISysCfgGetResourceIndexedProperty(resourceHandle, propertyID, index, value); } diff --git a/driver/ni/nisyscfg_wide.h b/driver/ni/nisyscfg_wide.h index a1fabfe2fa..de102a4dec 100644 --- a/driver/ni/nisyscfg_wide.h +++ b/driver/ni/nisyscfg_wide.h @@ -26,436 +26,436 @@ extern "C" { #endif - /**************************************************************************/ - /* Core System Configuration functions */ - /**************************************************************************/ - - NISYSCFGCFUNC NISysCfgInitializeSessionW( - const wchar_t * targetName, - const wchar_t * username, - const wchar_t * password, - NISysCfgLocale language, - NISysCfgBool forcePropertyRefresh, - unsigned int connectTimeoutMsec, - NISysCfgEnumExpertHandle * expertsEnumHandle, - NISysCfgSessionHandle * sessionHandle - ); - - NISYSCFGCFUNC NISysCfgGetSystemExpertsW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * expertNames, - NISysCfgEnumExpertHandle * expertEnumHandle - ); - - NISYSCFGCFUNC NISysCfgFindHardwareW( - NISysCfgSessionHandle sessionHandle, - NISysCfgFilterMode filterMode, - NISysCfgFilterHandle filterHandle, - const wchar_t * expertNames, - NISysCfgEnumResourceHandle * resourceEnumHandle - ); - - NISYSCFGCFUNC NISysCfgFindSystemsW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * deviceClass, - NISysCfgBool detectOnlineSystems, - NISysCfgIncludeCachedResults cacheMode, - NISysCfgSystemNameFormat findOutputMode, - unsigned int timeoutMsec, - NISysCfgBool onlyInstallableSystems, - NISysCfgEnumSystemHandle * systemEnumHandle - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgSelfTestHardwareW( - NISysCfgResourceHandle resourceHandle, - unsigned int mode, - wchar_t ** detailedResult - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgSelfCalibrateHardwareW( - NISysCfgResourceHandle resourceHandle, - wchar_t ** detailedResult - ); - - NISYSCFGCFUNC NISysCfgRenameResourceW( - NISysCfgResourceHandle resourceHandle, - const wchar_t * newName, - NISysCfgBool overwriteIfExists, - NISysCfgBool updateDependencies, - NISysCfgBool * nameAlreadyExisted, - NISysCfgResourceHandle * overwrittenResourceHandle - ); - - NISYSCFGCFUNC NISysCfgDeleteResourceW( - NISysCfgResourceHandle resourceHandle, - NISysCfgDeleteValidationMode mode, - NISysCfgBool * dependentItemsDeleted, - wchar_t ** detailedResult - ); - - NISYSCFGCFUNC NISysCfgGetResourcePropertyW( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - void * value - ); - - NISYSCFGCDECL NISysCfgSetResourcePropertyW( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - ... - ); - - NISYSCFGCDECL NISysCfgSetResourcePropertyWithTypeW( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourceProperty propertyID, - NISysCfgPropertyType propertyType, - ... - ); - - NISYSCFGCFUNC NISysCfgGetResourceIndexedPropertyW( - NISysCfgResourceHandle resourceHandle, - NISysCfgIndexedProperty propertyID, - unsigned int index, - void * value - ); - - typedef void (NISYSCFGCONV NISysCfgResourcePropertyUserCallback) - (NISysCfgIndexedProperty propertyID, NISysCfgPropertyType propertyType, void* value); - - NISYSCFGCFUNC NISysCfgGetResourcePropertiesW( - NISysCfgResourceHandle resourceHandle, - NISysCfgResourcePropertyUserCallback userCallback, - int numProperties, - const NISysCfgResourceProperty propertyIDs[] - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgSaveResourceChangesW( - NISysCfgResourceHandle resourceHandle, - NISysCfgBool * changesRequireRestart, - wchar_t ** detailedResult - ); - - NISYSCFGCFUNC NISysCfgGetSystemPropertyW( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, - void * value - ); - - NISYSCFGCDECL NISysCfgSetSystemPropertyW( - NISysCfgSessionHandle sessionHandle, - NISysCfgSystemProperty propertyID, - ... - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgSaveSystemChangesW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool * changesRequireRestart, - wchar_t ** detailedResult - ); - - NISYSCFGCDECL NISysCfgSetFilterPropertyW( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - ... - ); - - NISYSCFGCDECL NISysCfgSetFilterPropertyWithTypeW( - NISysCfgFilterHandle filterHandle, - NISysCfgFilterProperty propertyID, - NISysCfgPropertyType propertyType, - ... - ); - - NISYSCFGCFUNC NISysCfgRestartW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool waitForRestartToFinish, - NISysCfgBool installMode, - NISysCfgBool flushDNS, - unsigned int timeoutMsec, - wchar_t newIpAddress[] - ); - - NISYSCFGCFUNC NISysCfgGetSystemImageAsFolderW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const wchar_t * destinationFolder, - const wchar_t * encryptionPassphrase, - unsigned int numBlacklistEntries, - const wchar_t ** blacklistFilesDirectories, - NISysCfgBool overwriteDestination, - NISysCfgBool installedSoftwareOnly - ); - - NISYSCFGCFUNC NISysCfgCreateSystemImageAsFolderW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * imageTitle, - const wchar_t * imageID, - const wchar_t * imageVersion, - const wchar_t * imageDescription, - NISysCfgBool autoRestart, - const wchar_t * destinationFolder, - const wchar_t * encryptionPassphrase, - unsigned int numBlacklistEntries, - const wchar_t ** blacklistFilesDirectories, - NISysCfgBool overwriteIfExists - ); - - NISYSCFGCFUNC NISysCfgSetSystemImageFromFolderW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const wchar_t * sourceFolder, - const wchar_t * encryptionPassphrase, - unsigned int numBlacklistEntries, - const wchar_t ** blacklistFilesDirectories, - NISysCfgBool originalSystemOnly, - NISysCfgNetworkInterfaceSettings networkSettings - ); - - NISYSCFGCFUNC NISysCfgGetFilteredSoftwareComponentsW( - const wchar_t * repositoryPath, - const wchar_t * deviceClass, - const wchar_t * operatingSystem, - unsigned int productID, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgEnumSoftwareComponentHandle * componentEnumHandle - ); - - NISYSCFGCFUNC NISysCfgGetFilteredSoftwareSetsW( - const wchar_t * repositoryPath, - const wchar_t * deviceClass, - const wchar_t * operatingSystem, - unsigned int productID, - NISysCfgEnumSoftwareSetHandle * setEnumHandle - ); - - NISYSCFGCFUNC NISysCfgGetFilteredBaseSystemImagesW( - const wchar_t * repositoryPath, - const wchar_t * deviceClass, - const wchar_t * operatingSystem, - unsigned int productID, - NISysCfgEnumSoftwareComponentHandle * systemImageEnumHandle - ); - - NISYSCFGCFUNC NISysCfgInstallUninstallComponentsW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgBool autoSelectDependencies, - NISysCfgEnumSoftwareComponentHandle componentsToInstallHandle, - unsigned int numComponentsToUninstall, - const wchar_t ** componentIDsToUninstall, - NISysCfgEnumDependencyHandle* brokenDependencyEnumHandle - ); - - NISYSCFGCFUNC NISysCfgInstallUninstallComponents2W( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgBool autoSelectDependencies, - NISysCfgBool autoSelectRecommends, - NISysCfgEnumSoftwareComponentHandle componentsToInstallHandle, - unsigned int numComponentsToUninstall, - const wchar_t ** componentIDsToUninstall, - NISysCfgEnumDependencyHandle* brokenDependencyEnumHandle - ); - - NISYSCFGCFUNC NISysCfgInstallSoftwareSetW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - const wchar_t * softwareSetID, - const wchar_t * version, - NISysCfgEnumSoftwareComponentHandle addonsToInstallHandle, - NISysCfgEnumDependencyHandle* brokenDependencyEnumHandle - ); - - NISYSCFGCFUNC NISysCfgFormatWithBaseSystemImageW( - NISysCfgSessionHandle sessionHandle, - NISysCfgBool autoRestart, - NISysCfgFileSystemMode fileSystem, - NISysCfgNetworkInterfaceSettings networkSettings, - const wchar_t * systemImageID, - const wchar_t * systemImageVersion, - unsigned int timeoutMsec - ); - - NISYSCFGCFUNC NISysCfgExportConfigurationW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * destinationFile, - const wchar_t * expertNames, - NISysCfgBool overwriteIfExists - ); - - NISYSCFGCFUNC NISysCfgImportConfigurationW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * sourceFile, - const wchar_t * expertNames, - NISysCfgImportMode importMode, - wchar_t ** detailedResult - ); - - NISYSCFGCFUNC NISysCfgGenerateMAXReportW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * outputFilename, - NISysCfgReportType reportType, - NISysCfgBool overwrite - ); - - NISYSCFGCFUNC NISysCfgAddSoftwareFeedW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * feedName, - const wchar_t * uri, - NISysCfgBool enabled, - NISysCfgBool trusted - ); - - NISYSCFGCFUNC NISysCfgModifySoftwareFeedW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * feedName, - const wchar_t * newFeedName, - const wchar_t * uri, - NISysCfgBool enabled, - NISysCfgBool trusted - ); - - NISYSCFGCFUNC NISysCfgRemoveSoftwareFeedW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * feedName - ); - - /**************************************************************************/ - /* System Configuration firmware modification functions */ - /**************************************************************************/ - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgUpgradeFirmwareFromFileW( - NISysCfgResourceHandle resourceHandle, - const wchar_t * firmwareFile, - NISysCfgBool autoStopTasks, - NISysCfgBool alwaysOverwrite, - NISysCfgBool waitForOperationToFinish, - NISysCfgFirmwareStatus * firmwareStatus, - wchar_t ** detailedResult - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgUpgradeFirmwareVersionW( - NISysCfgResourceHandle resourceHandle, - const wchar_t * firmwareVersion, - NISysCfgBool autoStopTasks, - NISysCfgBool alwaysOverwrite, - NISysCfgBool waitForOperationToFinish, - NISysCfgFirmwareStatus * firmwareStatus, - wchar_t ** detailedResult - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgEraseFirmwareW( - NISysCfgResourceHandle resourceHandle, - NISysCfgBool autoStopTasks, - NISysCfgFirmwareStatus * firmwareStatus, - wchar_t ** detailedResult - ); - - // Caller should free result using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgCheckFirmwareStatusW( - NISysCfgResourceHandle resourceHandle, - int * percentComplete, - NISysCfgFirmwareStatus * firmwareStatus, - wchar_t ** detailedResult - ); - - // Caller should free detailedResult using NISysCfgFreeDetailedString. - NISYSCFGCFUNC NISysCfgActivateFeatureW( - NISysCfgResourceHandle resourceHandle, - unsigned int featureID, - const wchar_t * activationCode, - wchar_t ** detailedResult - ); - - /**************************************************************************/ - /* System Configuration enumerators and utility functions */ - /**************************************************************************/ - - NISYSCFGCFUNC NISysCfgChangeAdministratorPasswordW( - NISysCfgSessionHandle sessionHandle, - const wchar_t * newPassword - ); - - NISYSCFGCFUNC NISysCfgAddComponentToEnumW( - NISysCfgEnumSoftwareComponentHandle componentsHandle, - const wchar_t * ID, - const wchar_t * version, - NISysCfgVersionSelectionMode mode - ); - - NISYSCFGCFUNC NISysCfgFreeDetailedStringW( - wchar_t str[] - ); - - NISYSCFGCFUNC NISysCfgNextSystemInfoW( - NISysCfgEnumSystemHandle systemEnumHandle, - wchar_t system[] - ); - - NISYSCFGCFUNC NISysCfgNextExpertInfoW( - NISysCfgEnumExpertHandle expertEnumHandle, - wchar_t expertName[], - wchar_t displayName[], - wchar_t version[] - ); - - // Caller should free detailedDescription using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgNextComponentInfoW( - NISysCfgEnumSoftwareComponentHandle componentsEnumHandle, - wchar_t ID[], - wchar_t version[], - wchar_t title[], - NISysCfgComponentType * itemType, - wchar_t ** detailedDescription - ); - - // Caller should free detailedDescription using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgGetSoftwareSetInfoW( - NISysCfgSoftwareSetHandle setHandle, - NISysCfgIncludeComponentTypes itemTypes, - NISysCfgBool includeAddOnDeps, - wchar_t ID[], - wchar_t version[], - wchar_t title[], - NISysCfgComponentType * setType, - wchar_t ** detailedDescription, - NISysCfgEnumSoftwareComponentHandle * addOnsHandle, - NISysCfgEnumSoftwareComponentHandle * itemsHandle - ); - - // Caller should free detailedDescription using NISysCfgFreeDetailedStringW - NISYSCFGCFUNC NISysCfgNextDependencyInfoW( - NISysCfgEnumDependencyHandle dependencyEnumHandle, - wchar_t dependerID[], - wchar_t dependerVersion[], - wchar_t dependerTitle[], - wchar_t ** dependerDetailedDescription, - wchar_t dependeeID[], - wchar_t dependeeVersion[], - wchar_t dependeeTitle[], - wchar_t ** dependeeDetailedDescription - ); - - NISYSCFGCFUNC NISysCfgNextSoftwareFeedW( - NISysCfgEnumSoftwareFeedHandle feedEnumHandle, - wchar_t feedName[], - wchar_t uri[], - NISysCfgBool * enabled, - NISysCfgBool * trusted - ); - - NISYSCFGCFUNC NISysCfgGetStatusDescriptionW( - NISysCfgSessionHandle sessionHandle, - NISysCfgStatus status, - wchar_t ** detailedDescription - ); +/**************************************************************************/ +/* Core System Configuration functions */ +/**************************************************************************/ + +NISYSCFGCFUNC NISysCfgInitializeSessionW( + const wchar_t *targetName, + const wchar_t *username, + const wchar_t *password, + NISysCfgLocale language, + NISysCfgBool forcePropertyRefresh, + unsigned int connectTimeoutMsec, + NISysCfgEnumExpertHandle *expertsEnumHandle, + NISysCfgSessionHandle *sessionHandle +); + +NISYSCFGCFUNC NISysCfgGetSystemExpertsW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *expertNames, + NISysCfgEnumExpertHandle *expertEnumHandle +); + +NISYSCFGCFUNC NISysCfgFindHardwareW( + NISysCfgSessionHandle sessionHandle, + NISysCfgFilterMode filterMode, + NISysCfgFilterHandle filterHandle, + const wchar_t *expertNames, + NISysCfgEnumResourceHandle *resourceEnumHandle +); + +NISYSCFGCFUNC NISysCfgFindSystemsW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *deviceClass, + NISysCfgBool detectOnlineSystems, + NISysCfgIncludeCachedResults cacheMode, + NISysCfgSystemNameFormat findOutputMode, + unsigned int timeoutMsec, + NISysCfgBool onlyInstallableSystems, + NISysCfgEnumSystemHandle *systemEnumHandle +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgSelfTestHardwareW( + NISysCfgResourceHandle resourceHandle, + unsigned int mode, + wchar_t **detailedResult +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgSelfCalibrateHardwareW( + NISysCfgResourceHandle resourceHandle, + wchar_t **detailedResult +); + +NISYSCFGCFUNC NISysCfgRenameResourceW( + NISysCfgResourceHandle resourceHandle, + const wchar_t *newName, + NISysCfgBool overwriteIfExists, + NISysCfgBool updateDependencies, + NISysCfgBool *nameAlreadyExisted, + NISysCfgResourceHandle *overwrittenResourceHandle +); + +NISYSCFGCFUNC NISysCfgDeleteResourceW( + NISysCfgResourceHandle resourceHandle, + NISysCfgDeleteValidationMode mode, + NISysCfgBool *dependentItemsDeleted, + wchar_t **detailedResult +); + +NISYSCFGCFUNC NISysCfgGetResourcePropertyW( + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + void *value +); + +NISYSCFGCDECL NISysCfgSetResourcePropertyW( + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + ... +); + +NISYSCFGCDECL NISysCfgSetResourcePropertyWithTypeW( + NISysCfgResourceHandle resourceHandle, + NISysCfgResourceProperty propertyID, + NISysCfgPropertyType propertyType, + ... +); + +NISYSCFGCFUNC NISysCfgGetResourceIndexedPropertyW( + NISysCfgResourceHandle resourceHandle, + NISysCfgIndexedProperty propertyID, + unsigned int index, + void *value +); + +typedef void (NISYSCFGCONV NISysCfgResourcePropertyUserCallback) + (NISysCfgIndexedProperty propertyID, NISysCfgPropertyType propertyType, void *value); + +NISYSCFGCFUNC NISysCfgGetResourcePropertiesW( + NISysCfgResourceHandle resourceHandle, + NISysCfgResourcePropertyUserCallback userCallback, + int numProperties, + const NISysCfgResourceProperty propertyIDs[] +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgSaveResourceChangesW( + NISysCfgResourceHandle resourceHandle, + NISysCfgBool *changesRequireRestart, + wchar_t **detailedResult +); + +NISYSCFGCFUNC NISysCfgGetSystemPropertyW( + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, + void *value +); + +NISYSCFGCDECL NISysCfgSetSystemPropertyW( + NISysCfgSessionHandle sessionHandle, + NISysCfgSystemProperty propertyID, + ... +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgSaveSystemChangesW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool *changesRequireRestart, + wchar_t **detailedResult +); + +NISYSCFGCDECL NISysCfgSetFilterPropertyW( + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + ... +); + +NISYSCFGCDECL NISysCfgSetFilterPropertyWithTypeW( + NISysCfgFilterHandle filterHandle, + NISysCfgFilterProperty propertyID, + NISysCfgPropertyType propertyType, + ... +); + +NISYSCFGCFUNC NISysCfgRestartW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool waitForRestartToFinish, + NISysCfgBool installMode, + NISysCfgBool flushDNS, + unsigned int timeoutMsec, + wchar_t newIpAddress[] +); + +NISYSCFGCFUNC NISysCfgGetSystemImageAsFolderW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const wchar_t *destinationFolder, + const wchar_t *encryptionPassphrase, + unsigned int numBlacklistEntries, + const wchar_t **blacklistFilesDirectories, + NISysCfgBool overwriteDestination, + NISysCfgBool installedSoftwareOnly +); + +NISYSCFGCFUNC NISysCfgCreateSystemImageAsFolderW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *imageTitle, + const wchar_t *imageID, + const wchar_t *imageVersion, + const wchar_t *imageDescription, + NISysCfgBool autoRestart, + const wchar_t *destinationFolder, + const wchar_t *encryptionPassphrase, + unsigned int numBlacklistEntries, + const wchar_t **blacklistFilesDirectories, + NISysCfgBool overwriteIfExists +); + +NISYSCFGCFUNC NISysCfgSetSystemImageFromFolderW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const wchar_t *sourceFolder, + const wchar_t *encryptionPassphrase, + unsigned int numBlacklistEntries, + const wchar_t **blacklistFilesDirectories, + NISysCfgBool originalSystemOnly, + NISysCfgNetworkInterfaceSettings networkSettings +); + +NISYSCFGCFUNC NISysCfgGetFilteredSoftwareComponentsW( + const wchar_t *repositoryPath, + const wchar_t *deviceClass, + const wchar_t *operatingSystem, + unsigned int productID, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgEnumSoftwareComponentHandle *componentEnumHandle +); + +NISYSCFGCFUNC NISysCfgGetFilteredSoftwareSetsW( + const wchar_t *repositoryPath, + const wchar_t *deviceClass, + const wchar_t *operatingSystem, + unsigned int productID, + NISysCfgEnumSoftwareSetHandle *setEnumHandle +); + +NISYSCFGCFUNC NISysCfgGetFilteredBaseSystemImagesW( + const wchar_t *repositoryPath, + const wchar_t *deviceClass, + const wchar_t *operatingSystem, + unsigned int productID, + NISysCfgEnumSoftwareComponentHandle *systemImageEnumHandle +); + +NISYSCFGCFUNC NISysCfgInstallUninstallComponentsW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgBool autoSelectDependencies, + NISysCfgEnumSoftwareComponentHandle componentsToInstallHandle, + unsigned int numComponentsToUninstall, + const wchar_t **componentIDsToUninstall, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle +); + +NISYSCFGCFUNC NISysCfgInstallUninstallComponents2W( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgBool autoSelectDependencies, + NISysCfgBool autoSelectRecommends, + NISysCfgEnumSoftwareComponentHandle componentsToInstallHandle, + unsigned int numComponentsToUninstall, + const wchar_t **componentIDsToUninstall, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle +); + +NISYSCFGCFUNC NISysCfgInstallSoftwareSetW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + const wchar_t *softwareSetID, + const wchar_t *version, + NISysCfgEnumSoftwareComponentHandle addonsToInstallHandle, + NISysCfgEnumDependencyHandle *brokenDependencyEnumHandle +); + +NISYSCFGCFUNC NISysCfgFormatWithBaseSystemImageW( + NISysCfgSessionHandle sessionHandle, + NISysCfgBool autoRestart, + NISysCfgFileSystemMode fileSystem, + NISysCfgNetworkInterfaceSettings networkSettings, + const wchar_t *systemImageID, + const wchar_t *systemImageVersion, + unsigned int timeoutMsec +); + +NISYSCFGCFUNC NISysCfgExportConfigurationW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *destinationFile, + const wchar_t *expertNames, + NISysCfgBool overwriteIfExists +); + +NISYSCFGCFUNC NISysCfgImportConfigurationW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *sourceFile, + const wchar_t *expertNames, + NISysCfgImportMode importMode, + wchar_t **detailedResult +); + +NISYSCFGCFUNC NISysCfgGenerateMAXReportW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *outputFilename, + NISysCfgReportType reportType, + NISysCfgBool overwrite +); + +NISYSCFGCFUNC NISysCfgAddSoftwareFeedW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *feedName, + const wchar_t *uri, + NISysCfgBool enabled, + NISysCfgBool trusted +); + +NISYSCFGCFUNC NISysCfgModifySoftwareFeedW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *feedName, + const wchar_t *newFeedName, + const wchar_t *uri, + NISysCfgBool enabled, + NISysCfgBool trusted +); + +NISYSCFGCFUNC NISysCfgRemoveSoftwareFeedW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *feedName +); + +/**************************************************************************/ +/* System Configuration firmware modification functions */ +/**************************************************************************/ + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgUpgradeFirmwareFromFileW( + NISysCfgResourceHandle resourceHandle, + const wchar_t *firmwareFile, + NISysCfgBool autoStopTasks, + NISysCfgBool alwaysOverwrite, + NISysCfgBool waitForOperationToFinish, + NISysCfgFirmwareStatus *firmwareStatus, + wchar_t **detailedResult +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgUpgradeFirmwareVersionW( + NISysCfgResourceHandle resourceHandle, + const wchar_t *firmwareVersion, + NISysCfgBool autoStopTasks, + NISysCfgBool alwaysOverwrite, + NISysCfgBool waitForOperationToFinish, + NISysCfgFirmwareStatus *firmwareStatus, + wchar_t **detailedResult +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgEraseFirmwareW( + NISysCfgResourceHandle resourceHandle, + NISysCfgBool autoStopTasks, + NISysCfgFirmwareStatus *firmwareStatus, + wchar_t **detailedResult +); + +// Caller should free result using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgCheckFirmwareStatusW( + NISysCfgResourceHandle resourceHandle, + int *percentComplete, + NISysCfgFirmwareStatus *firmwareStatus, + wchar_t **detailedResult +); + +// Caller should free detailedResult using NISysCfgFreeDetailedString. +NISYSCFGCFUNC NISysCfgActivateFeatureW( + NISysCfgResourceHandle resourceHandle, + unsigned int featureID, + const wchar_t *activationCode, + wchar_t **detailedResult +); + +/**************************************************************************/ +/* System Configuration enumerators and utility functions */ +/**************************************************************************/ + +NISYSCFGCFUNC NISysCfgChangeAdministratorPasswordW( + NISysCfgSessionHandle sessionHandle, + const wchar_t *newPassword +); + +NISYSCFGCFUNC NISysCfgAddComponentToEnumW( + NISysCfgEnumSoftwareComponentHandle componentsHandle, + const wchar_t *ID, + const wchar_t *version, + NISysCfgVersionSelectionMode mode +); + +NISYSCFGCFUNC NISysCfgFreeDetailedStringW( + wchar_t str[] +); + +NISYSCFGCFUNC NISysCfgNextSystemInfoW( + NISysCfgEnumSystemHandle systemEnumHandle, + wchar_t system[] +); + +NISYSCFGCFUNC NISysCfgNextExpertInfoW( + NISysCfgEnumExpertHandle expertEnumHandle, + wchar_t expertName[], + wchar_t displayName[], + wchar_t version[] +); + +// Caller should free detailedDescription using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgNextComponentInfoW( + NISysCfgEnumSoftwareComponentHandle componentsEnumHandle, + wchar_t ID[], + wchar_t version[], + wchar_t title[], + NISysCfgComponentType *itemType, + wchar_t **detailedDescription +); + +// Caller should free detailedDescription using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgGetSoftwareSetInfoW( + NISysCfgSoftwareSetHandle setHandle, + NISysCfgIncludeComponentTypes itemTypes, + NISysCfgBool includeAddOnDeps, + wchar_t ID[], + wchar_t version[], + wchar_t title[], + NISysCfgComponentType *setType, + wchar_t **detailedDescription, + NISysCfgEnumSoftwareComponentHandle *addOnsHandle, + NISysCfgEnumSoftwareComponentHandle *itemsHandle +); + +// Caller should free detailedDescription using NISysCfgFreeDetailedStringW +NISYSCFGCFUNC NISysCfgNextDependencyInfoW( + NISysCfgEnumDependencyHandle dependencyEnumHandle, + wchar_t dependerID[], + wchar_t dependerVersion[], + wchar_t dependerTitle[], + wchar_t **dependerDetailedDescription, + wchar_t dependeeID[], + wchar_t dependeeVersion[], + wchar_t dependeeTitle[], + wchar_t **dependeeDetailedDescription +); + +NISYSCFGCFUNC NISysCfgNextSoftwareFeedW( + NISysCfgEnumSoftwareFeedHandle feedEnumHandle, + wchar_t feedName[], + wchar_t uri[], + NISysCfgBool *enabled, + NISysCfgBool *trusted +); + +NISYSCFGCFUNC NISysCfgGetStatusDescriptionW( + NISysCfgSessionHandle sessionHandle, + NISysCfgStatus status, + wchar_t **detailedDescription +); #ifdef __cplusplus } diff --git a/driver/ni/reader_test.cpp b/driver/ni/reader_test.cpp index 08064489ce..61447817e0 100644 --- a/driver/ni/reader_test.cpp +++ b/driver/ni/reader_test.cpp @@ -22,526 +22,791 @@ #include - using json = nlohmann::json; - +using json = nlohmann::json; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Functional Tests // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -TEST(ReaderTests, test_read_one_digital_channel){ - LOG(INFO) << "test_read_one_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_name", "PXI1Slot2_2"}, - {"reader_type", "digitalReader"} - }; - add_index_channel_JSON(config, "idx", 1); - add_DI_channel_JSON(config, "d1", 65531, 0, 0); - - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +TEST(ReaderTests, test_read_one_digital_channel +){ +LOG(INFO) +<< "test_read_one_digital_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 100}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_name", "PXI1Slot2_2"}, + {"reader_type", "digitalReader"} +}; +add_index_channel_JSON(config, +"idx", 1); +add_DI_channel_JSON(config, +"d1", 65531, 0, 0); + + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_digitalRead", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::daqReader( taskHandle, - mockCtx, - task); - - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; -} - - - -TEST(ReaderTests, test_read_multiple_digital_channel){ - LOG(INFO) << "test_read_multiple_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 1000}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_name", "PXI1Slot2_2"}, - {"reader_type", "digitalReader"} - }; - add_index_channel_JSON(config, "idx", 1); - add_DI_channel_JSON(config, "d1", 65531, 0, 0); - add_DI_channel_JSON(config, "d1", 65531, 0, 1); - add_DI_channel_JSON(config, "d1", 65532, 0, 2); - add_DI_channel_JSON(config, "d1", 65533, 0, 3); - add_DI_channel_JSON(config, "d1", 65534, 0, 4); - add_DI_channel_JSON(config, "d1", 65535, 0, 5); - add_DI_channel_JSON(config, "d1", 65536, 0, 6); - add_DI_channel_JSON(config, "d1", 65537, 0, 7); - - - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::daqReader(taskHandle, + mockCtx, + task); + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; +} + + +TEST(ReaderTests, test_read_multiple_digital_channel +){ +LOG(INFO) +<< "test_read_multiple_digital_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 1000}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_name", "PXI1Slot2_2"}, + {"reader_type", "digitalReader"} +}; +add_index_channel_JSON(config, +"idx", 1); +add_DI_channel_JSON(config, +"d1", 65531, 0, 0); +add_DI_channel_JSON(config, +"d1", 65531, 0, 1); +add_DI_channel_JSON(config, +"d1", 65532, 0, 2); +add_DI_channel_JSON(config, +"d1", 65533, 0, 3); +add_DI_channel_JSON(config, +"d1", 65534, 0, 4); +add_DI_channel_JSON(config, +"d1", 65535, 0, 5); +add_DI_channel_JSON(config, +"d1", 65536, 0, 6); +add_DI_channel_JSON(config, +"d1", 65537, 0, 7); + + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_digitalRead", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::daqReader( taskHandle, - mockCtx, - task); - for(int i = 0; i < 50; i++ ) { // test for 50 read cycles - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - } -} - - -TEST(ReaderTests, test_read_one_analog_channel){ - LOG(INFO) << "test_read_one_analog_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 100}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_name", "Dev1"}, - {"reader_type", "analogReader"} - }; - add_index_channel_JSON(config, "idx", 1); - add_AI_channel_JSON(config, "a1", 65531, 0, -10.0, 10.0, "Default"); - - //print json as a string - // std::cout << config.dump(4) << std::endl; - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::daqReader(taskHandle, + mockCtx, + task); +for( +int i = 0; +i < 50; i++ ) { // test for 50 read cycles +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; +} +} + + +TEST(ReaderTests, test_read_one_analog_channel +){ +LOG(INFO) +<< "test_read_one_analog_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 100}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_name", "Dev1"}, + {"reader_type", "analogReader"} +}; +add_index_channel_JSON(config, +"idx", 1); +add_AI_channel_JSON(config, +"a1", 65531, 0, -10.0, 10.0, "Default"); + +//print json as a string +// std::cout << config.dump(4) << std::endl; + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_analogRead", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::daqReader( taskHandle, - mockCtx, - task); // analog reader - - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - uint32_t ai_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - // ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - ASSERT_NEAR(s[j], ai_count, 1); - } - ai_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; -} - - - -TEST(ReaderTests, test_read_multiple_analog_channels){ - LOG(INFO) << "test_read_multiple_analog_channels: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"sample_rate", 2000}, // dont actually need these here - {"stream_rate", 20}, // same as above - {"device_name", "Dev1"}, - {"reader_type", "analogReader"} - }; - add_index_channel_JSON(config, "idx", 1); - add_AI_channel_JSON(config, "a0", 65531, 0, -10.0, 10.0, "Default"); - add_AI_channel_JSON(config, "a1", 65532, 1, -10.0, 10.0, "Default"); - add_AI_channel_JSON(config, "a2", 65534, 2, -10.0, 10.0, "Default"); - add_AI_channel_JSON(config, "a3", 65535, 3, -10.0, 10.0, "Default"); - add_AI_channel_JSON(config, "a4", 65536, 4, -10.0, 10.0, "Default"); - - //print json as a string - //std::cout << config.dump(4) << std::endl; - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::daqReader(taskHandle, + mockCtx, + task); // analog reader + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +uint32_t ai_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; +} + + +TEST(ReaderTests, test_read_multiple_analog_channels +){ +LOG(INFO) +<< "test_read_multiple_analog_channels: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"sample_rate", 2000}, // dont actually need these here + {"stream_rate", 20}, // same as above + {"device_name", "Dev1"}, + {"reader_type", "analogReader"} +}; +add_index_channel_JSON(config, +"idx", 1); +add_AI_channel_JSON(config, +"a0", 65531, 0, -10.0, 10.0, "Default"); +add_AI_channel_JSON(config, +"a1", 65532, 1, -10.0, 10.0, "Default"); +add_AI_channel_JSON(config, +"a2", 65534, 2, -10.0, 10.0, "Default"); +add_AI_channel_JSON(config, +"a3", 65535, 3, -10.0, 10.0, "Default"); +add_AI_channel_JSON(config, +"a4", 65536, 4, -10.0, 10.0, "Default"); + +//print json as a string +//std::cout << config.dump(4) << std::endl; + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_analogRead", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - // Now construct NI reader - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - - auto reader = ni::daqReader( taskHandle, - mockCtx, - task); // analog reader - - - for(int i = 0; i < 50; i++ ) { // test for 50 read cycles - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - auto [frame, err] = reader.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - //iterate through each series and print the data - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 0, 10); // can be any value of a sign wave from -10 to 10 - } - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - } - - -} - -TEST(WriterTests, test_write_one_digital_channel){ - LOG(INFO) << "test_read_one_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"device_name", "Dev1"}, - {"stream_rate", 1} - }; - add_index_channel_JSON(config, "do1_idx", 1); - add_DO_channel_JSON(config, "do1_command", 65531, 65532, 0, 0); - add_drive_state_index_channel_JSON(config, "do1_state", 2); - - - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); +// Now construct NI reader +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); + +auto reader = ni::daqReader(taskHandle, + mockCtx, + task); // analog reader + + +for( +int i = 0; +i < 50; i++ ) { // test for 50 read cycles +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; +auto [frame, err] = reader.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +//iterate through each series and print the data +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; +} + + +} + +TEST(WriterTests, test_write_one_digital_channel +){ +LOG(INFO) +<< "test_read_one_digital_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"device_name", "Dev1"}, + {"stream_rate", 1} +}; +add_index_channel_JSON(config, +"do1_idx", 1); +add_DO_channel_JSON(config, +"do1_command", 65531, 65532, 0, 0); +add_drive_state_index_channel_JSON(config, +"do1_state", 2); + + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_digitalWriter", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - - // Now construct NI writer - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - auto writer = ni::daqWriter( taskHandle, - mockCtx, - task); - - // construct synnax frame to write a 1 - auto cmd_vec = std::vector{1}; - auto cmd_frame = synnax::Frame(2); - cmd_frame.add( 1, - synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, - synnax::TIMESTAMP)); - cmd_frame.add( 65531, - synnax::Series(cmd_vec)); - - - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - - auto werr = writer.write(std::move(cmd_frame)); - auto [frame, err] = writer.writer_state_source->read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - - // iterate through each series and print the data - int cmd_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_EQ(s[j], cmd_vec[cmd_count]); - } - cmd_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - - // now write a 0 - cmd_vec = std::vector{0}; - cmd_frame = synnax::Frame(2); - cmd_frame.add( 1, - synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, - synnax::TIMESTAMP)); - cmd_frame.add( 65531, - synnax::Series(cmd_vec)); - - initial_timestamp = (synnax::TimeStamp::now()).value; - - auto werr2 = writer.write(std::move(cmd_frame)); - - auto [frame2, err2] = writer.writer_state_source->read(); - - final_timestamp = (synnax::TimeStamp::now()).value; - - cmd_count = 0; - for(int i = 0; i < frame2.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame2.series->at(i).data_type == synnax::UINT8){ - auto s = frame2.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_EQ(s[j], cmd_vec[cmd_count]); - } - cmd_count++; - } - else if(frame2.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame2.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - - -} - - -TEST(NiWriterTests, test_write_multiple_digital_channel){ - LOG(INFO) << "test_write_multiple_digital_channel: "; //<< std::endl; - - // Create NI readerconfig - auto config = json{ - {"device_name", "Dev1"}, - {"stream_rate", 1} - }; - - add_index_channel_JSON(config, "do_idx", 1); - add_DO_channel_JSON(config, "do1_command", 65531, 65532, 0, 0); - add_DO_channel_JSON(config, "do1_command", 65533, 65534, 0, 1); - add_DO_channel_JSON(config, "do1_command", 65535, 65536, 0, 2); - add_DO_channel_JSON(config, "do1_command", 65537, 65538, 0, 3); - add_drive_state_index_channel_JSON(config, "do1_state", 2); - - - // Synnax infrustructure - auto client = std::make_shared(new_test_client()); - - auto task = synnax::Task( +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); + +// Now construct NI writer +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); +auto writer = ni::daqWriter(taskHandle, + mockCtx, + task); + +// construct synnax frame to write a 1 +auto cmd_vec = std::vector{1}; +auto cmd_frame = synnax::Frame(2); +cmd_frame.add( 1, +synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, + synnax::TIMESTAMP +)); +cmd_frame.add( 65531, +synnax::Series(cmd_vec) +); + + +std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; + +auto werr = writer.write(std::move(cmd_frame)); +auto [frame, err] = writer.writer_state_source->read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + +// iterate through each series and print the data +int cmd_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; + +// now write a 0 +cmd_vec = std::vector{0}; +cmd_frame = synnax::Frame(2); +cmd_frame.add( 1, +synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, + synnax::TIMESTAMP +)); +cmd_frame.add( 65531, +synnax::Series(cmd_vec) +); + +initial_timestamp = (synnax::TimeStamp::now()).value; + +auto werr2 = writer.write(std::move(cmd_frame)); + +auto [frame2, err2] = writer.writer_state_source->read(); + +final_timestamp = (synnax::TimeStamp::now()).value; + +cmd_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame2.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame2.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame2.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; + + +} + + +TEST(NiWriterTests, test_write_multiple_digital_channel +){ +LOG(INFO) +<< "test_write_multiple_digital_channel: "; //<< std::endl; + +// Create NI readerconfig +auto config = json{ + {"device_name", "Dev1"}, + {"stream_rate", 1} +}; + +add_index_channel_JSON(config, +"do_idx", 1); +add_DO_channel_JSON(config, +"do1_command", 65531, 65532, 0, 0); +add_DO_channel_JSON(config, +"do1_command", 65533, 65534, 0, 1); +add_DO_channel_JSON(config, +"do1_command", 65535, 65536, 0, 2); +add_DO_channel_JSON(config, +"do1_command", 65537, 65538, 0, 3); +add_drive_state_index_channel_JSON(config, +"do1_state", 2); + + +// Synnax infrustructure +auto client = std::make_shared(new_test_client()); + +auto task = synnax::Task( "my_task", "NI_digitalWriter", to_string(config) - ); - - auto mockCtx = std::make_shared(client); - - std::this_thread::sleep_for(std::chrono::milliseconds(300)); - - // Now construct NI writer - TaskHandle taskHandle; - ni::NiDAQmxInterface::CreateTask("",&taskHandle); - auto writer = ni::daqWriter( taskHandle, - mockCtx, - task); - - // construct synnax frame to write - // auto map = std::map>{ - // {65531, {1,0,1,1}}, - // {65533, {0,1,0,0}}, - // {65535, {1,1,0,1}}, - // {65537, {0,0,1,0}} - // }; - auto cmd_vec = std::vector{1,0,1,1}; - auto cmd_frame = synnax::Frame(2); - cmd_frame.add( 1, - synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, - synnax::TIMESTAMP)); - - - for(int i = 0; i < cmd_vec.size(); i++){ - cmd_frame.add( 65531 + i*2, - synnax::Series(cmd_vec[i])); - } - - - - std::uint64_t initial_timestamp = (synnax::TimeStamp::now()).value; - - auto werr = writer.write(std::move(cmd_frame)); - auto [frame, err] = writer.writer_state_source->read(); - - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - - // iterate through each series and print the data - int cmd_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_EQ(s[j], cmd_vec[cmd_count]); - } - cmd_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - - - // write again - cmd_vec = std::vector{0,1,0,0}; - cmd_frame = synnax::Frame(2); - cmd_frame.add( 1, - synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, - synnax::TIMESTAMP)); - for(int i = 0; i < cmd_vec.size(); i++){ - cmd_frame.add( 65531 + i*2, - synnax::Series(cmd_vec[i])); - } - initial_timestamp = (synnax::TimeStamp::now()).value; - - auto werr2 = writer.write(std::move(cmd_frame)); - auto [frame2, err2] = writer.writer_state_source->read(); - - final_timestamp = (synnax::TimeStamp::now()).value; - - cmd_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame2.series->at(i).data_type == synnax::UINT8){ - auto s = frame2.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_EQ(s[j], cmd_vec[cmd_count]); - } - cmd_count++; - } - else if(frame2.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame2.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] >= initial_timestamp) && (s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; +); + +auto mockCtx = std::make_shared(client); + +std::this_thread::sleep_for(std::chrono::milliseconds(300) +); + +// Now construct NI writer +TaskHandle taskHandle; +ni::NiDAQmxInterface::CreateTask("",&taskHandle); +auto writer = ni::daqWriter(taskHandle, + mockCtx, + task); + +// construct synnax frame to write +// auto map = std::map>{ +// {65531, {1,0,1,1}}, +// {65533, {0,1,0,0}}, +// {65535, {1,1,0,1}}, +// {65537, {0,0,1,0}} +// }; +auto cmd_vec = std::vector{1, 0, 1, 1}; +auto cmd_frame = synnax::Frame(2); +cmd_frame.add( 1, +synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, + synnax::TIMESTAMP +)); + + +for( +int i = 0; +iread(); + +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + + +// iterate through each series and print the data +int cmd_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; + + +// write again +cmd_vec = std::vector{0, 1, 0, 0}; +cmd_frame = synnax::Frame(2); +cmd_frame.add( 1, +synnax::Series(std::vector{(synnax::TimeStamp::now()).value}, + synnax::TIMESTAMP +)); +for( +int i = 0; +iread(); + +final_timestamp = (synnax::TimeStamp::now()).value; + +cmd_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame2.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame2.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame2.series->at(i).uint64(); +for ( +int j = 0; +j= initial_timestamp) && (s[j] <= final_timestamp)); +} +} +} +std::cout << +std::endl; } diff --git a/driver/ni/scale.h b/driver/ni/scale.h index c25816aa3f..02311ac94c 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -19,35 +19,35 @@ #include "daqmx.h" #include "nisyscfg.h" #include "driver/config/config.h" -#include "nlohmann/json.hpp" +#include "nlohmann/json.hpp" #include "glog/logging.h" #include "driver/ni/ni.h" -namespace ni{ +namespace ni { extern const std::map UNITS_MAP; /////////////////////////////////////////////////////////////////////////////////// // LinearScale // /////////////////////////////////////////////////////////////////////////////////// - typedef struct LinearScale{ + typedef struct LinearScale { float64 slope; float64 offset; LinearScale() = default; - LinearScale(config::Parser & parser) - : slope(parser.required("slope")), - offset(parser.required("y_intercept")){ - if(!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom linear configuration"; - } + LinearScale(config::Parser &parser) + : slope(parser.required("slope")), + offset(parser.required("y_intercept")) { + if (!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom linear configuration"; + } } LinearScale; - + /////////////////////////////////////////////////////////////////////////////////// // MapScale // /////////////////////////////////////////////////////////////////////////////////// - typedef struct MapScale{ + typedef struct MapScale { float64 prescaled_min; float64 prescaled_max; float64 scaled_min; @@ -55,13 +55,13 @@ namespace ni{ MapScale() = default; - MapScale(config::Parser & parser) - : prescaled_min(parser.required("pre_scaled_min")), - prescaled_max(parser.required("pre_scaled_max")), - scaled_min(parser.required("scaled_min")), - scaled_max(parser.required("scaled_max")){ - if(!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom map configuration"; - } + MapScale(config::Parser &parser) + : prescaled_min(parser.required("pre_scaled_min")), + prescaled_max(parser.required("pre_scaled_max")), + scaled_min(parser.required("scaled_min")), + scaled_max(parser.required("scaled_max")) { + if (!parser.ok()) LOG(ERROR) << "[ni.analog] failed to parse custom map configuration"; + } } MapScale; @@ -69,9 +69,9 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // PolynomialScale // /////////////////////////////////////////////////////////////////////////////////// - typedef struct PolynomialScale{ - float64* forward_coeffs; - float64* reverse_coeffs; + typedef struct PolynomialScale { + float64 *forward_coeffs; + float64 *reverse_coeffs; uint32_t num_coeffs; float64 min_x; float64 max_x; @@ -80,14 +80,14 @@ namespace ni{ PolynomialScale() = default; - PolynomialScale(config::Parser & parser) - : num_coeffs(parser.required("num_coeffs")), - min_x(parser.required("min_x")), - max_x(parser.required("max_x")), - num_points(parser.optional("num_reverse_coeffs", 0)), - poly_order(parser.required("poly_order")){ + PolynomialScale(config::Parser &parser) + : num_coeffs(parser.required("num_coeffs")), + min_x(parser.required("min_x")), + max_x(parser.required("max_x")), + num_points(parser.optional("num_reverse_coeffs", 0)), + poly_order(parser.required("poly_order")) { - if(!parser.ok()){ + if (!parser.ok()) { LOG(ERROR) << "[ni.analog] failed to parse custom polynomial scale configuration"; forward_coeffs = nullptr; reverse_coeffs = nullptr; @@ -99,30 +99,30 @@ namespace ni{ //get json from parser json j = parser.get_json(); // get forward coeffs (prescale -> scale conversions) - if(!j.contains("coeffs")){ + if (!j.contains("coeffs")) { return; // TODO: log error } - std::vector forward_coeffs_vec = j["coeffs"].get>(); + std::vector forward_coeffs_vec = j["coeffs"].get>(); forward_coeffs = new double[num_coeffs]; // std::memcpy(forward_coeffs, other.forward_coeffs, num_coeffs * sizeof(double)); do this instead? - for(int i = 0; i < forward_coeffs_vec.size(); i++){ + for (int i = 0; i < forward_coeffs_vec.size(); i++) { forward_coeffs[i] = forward_coeffs_vec[i]; } // get reverse coeffs (scale -> prescale conversions) reverse_coeffs = new double[num_coeffs]; // TODO: reverse coeffs might be smaller than forward_coeffs - ni::NiDAQmxInterface::CalculateReversePolyCoeff( - forward_coeffs, - num_coeffs, - min_x, - max_x, - num_coeffs, - -1, - reverse_coeffs + ni::NiDAQmxInterface::CalculateReversePolyCoeff( + forward_coeffs, + num_coeffs, + min_x, + max_x, + num_coeffs, + -1, + reverse_coeffs ); // FIXME: reversePoly order should be user inputted? } - ~PolynomialScale(){ - if(forward_coeffs != nullptr && reverse_coeffs != nullptr){ + ~PolynomialScale() { + if (forward_coeffs != nullptr && reverse_coeffs != nullptr) { delete[] forward_coeffs; delete[] reverse_coeffs; } @@ -133,16 +133,16 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // TableScale // /////////////////////////////////////////////////////////////////////////////////// - typedef struct TableScale{ - float64* prescaled; - float64* scaled; + typedef struct TableScale { + float64 *prescaled; + float64 *scaled; uint32_t num_points; TableScale() = default; - TableScale(config::Parser & parser) - : num_points(parser.required("num_points")){ - if(!parser.ok()){ + TableScale(config::Parser &parser) + : num_points(parser.required("num_points")) { + if (!parser.ok()) { LOG(ERROR) << "[ni.analog] failed to parse custom table configuration"; prescaled = nullptr; scaled = nullptr; @@ -151,23 +151,25 @@ namespace ni{ //get json from parser json j = parser.get_json(); - if(!j.contains("pre_scaled_vals") || !j.contains("scaled_vals")){ - LOG(ERROR) << "[ni.analog] failed to parse custom table configuration: missing pre_scaled_vals or scaled_vals"; + if (!j.contains("pre_scaled_vals") || !j.contains("scaled_vals")) { + LOG(ERROR) + << "[ni.analog] failed to parse custom table configuration: missing pre_scaled_vals or scaled_vals"; return; // TODO: log error } - std::vector prescaled_vec = j["pre_scaled_vals"].get>(); - std::vector scaled_vec = j["scaled_vals"].get>(); + std::vector prescaled_vec = j["pre_scaled_vals"].get>(); + std::vector scaled_vec = j["scaled_vals"].get>(); prescaled = new double[num_points]; scaled = new double[num_points]; - for(int i = 0; i < prescaled_vec.size(); i++){ + for (int i = 0; i < prescaled_vec.size(); i++) { prescaled[i] = prescaled_vec[i]; scaled[i] = scaled_vec[i]; } } - ~TableScale(){ - if(prescaled != nullptr && scaled != nullptr){ + + ~TableScale() { + if (prescaled != nullptr && scaled != nullptr) { delete[] prescaled; delete[] scaled; } @@ -177,17 +179,19 @@ namespace ni{ /////////////////////////////////////////////////////////////////////////////////// // ScaleConfig // ////////////////////////////////////////////////////////////////////////////////// - typedef union Scale{ + typedef union Scale { LinearScale linear; MapScale map; PolynomialScale polynomial; TableScale table; + // Destructor Scale() {} - ~Scale() {} + + ~Scale() {} } Scale; - typedef struct ScaleConfig{ + typedef struct ScaleConfig { std::string name; std::string type; std::string prescaled_units; @@ -198,127 +202,127 @@ namespace ni{ ScaleConfig() = default; // Constructor - ScaleConfig(config::Parser & parser, std::string &name) - : name(name), - type(parser.required("type")), - prescaled_units(parser.optional("pre_scaled_units", "")), - scaled_units(parser.optional("scaled_units", "")), - parser(parser){ - if(!parser.ok()){ + ScaleConfig(config::Parser &parser, std::string &name) + : name(name), + type(parser.required("type")), + prescaled_units(parser.optional("pre_scaled_units", "")), + scaled_units(parser.optional("scaled_units", "")), + parser(parser) { + if (!parser.ok()) { LOG(ERROR) << "[ni.analog] failed to parse custom scale configuration for " << name; return; } - if(type == "linear"){ + if (type == "linear") { scale.linear = LinearScale(parser); - } else if(type == "map"){ + } else if (type == "map") { scale.map = MapScale(parser); - } else if(type == "polynomial"){ + } else if (type == "polynomial") { scale.polynomial = PolynomialScale(parser); - } else if(type == "table"){ + } else if (type == "table") { scale.table = TableScale(parser); - } + } } // copy constructor - ScaleConfig(const ScaleConfig & other) - : name(other.name), - type(other.type), - prescaled_units(other.prescaled_units), - scaled_units(other.scaled_units), - parser(other.parser){ - if(type == "linear"){ + ScaleConfig(const ScaleConfig &other) + : name(other.name), + type(other.type), + prescaled_units(other.prescaled_units), + scaled_units(other.scaled_units), + parser(other.parser) { + if (type == "linear") { scale.linear = LinearScale(parser); - } else if(type == "map"){ + } else if (type == "map") { scale.map = MapScale(parser); - } else if(type == "polynomial"){ + } else if (type == "polynomial") { scale.polynomial = PolynomialScale(parser); - } else if(type == "table"){ + } else if (type == "table") { scale.table = TableScale(parser); - } - } + } + } // copy assignment operator - ScaleConfig & operator=(const ScaleConfig & other){ - if(this == &other) return *this; - + ScaleConfig &operator=(const ScaleConfig &other) { + if (this == &other) return *this; + name = other.name; type = other.type; prescaled_units = other.prescaled_units; scaled_units = other.scaled_units; parser = other.parser; - if(type == "linear"){ + if (type == "linear") { scale.linear = LinearScale(parser); - } else if(type == "map"){ + } else if (type == "map") { scale.map = MapScale(parser); - } else if(type == "polynomial"){ + } else if (type == "polynomial") { scale.polynomial = PolynomialScale(parser); - } else if(type == "table"){ + } else if (type == "table") { scale.table = TableScale(parser); - } + } return *this; } // move constructor - ScaleConfig(ScaleConfig && other) = delete; + ScaleConfig(ScaleConfig &&other) = delete; // create NI Scale - int32 createNIScale(){ - if(type == "linear"){ - - return ni::NiDAQmxInterface::CreateLinScale( - name.c_str(), - scale.linear.slope, - scale.linear.offset, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() + int32 createNIScale() { + if (type == "linear") { + + return ni::NiDAQmxInterface::CreateLinScale( + name.c_str(), + scale.linear.slope, + scale.linear.offset, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() ); - } else if(type == "map"){ + } else if (type == "map") { return ni::NiDAQmxInterface::CreateMapScale( - name.c_str(), - scale.map.prescaled_min, - scale.map.prescaled_max, - scale.map.scaled_min, - scale.map.scaled_max, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() + name.c_str(), + scale.map.prescaled_min, + scale.map.prescaled_max, + scale.map.scaled_min, + scale.map.scaled_max, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() ); - } else if(type == "polynomial"){ + } else if (type == "polynomial") { float64 forward_coeffs_in[1000]; float64 reverse_coeffs_in[1000]; - for(int i = 0; i < scale.polynomial.num_coeffs; i++){ + for (int i = 0; i < scale.polynomial.num_coeffs; i++) { forward_coeffs_in[i] = scale.polynomial.forward_coeffs[i]; reverse_coeffs_in[i] = scale.polynomial.reverse_coeffs[i]; } return ni::NiDAQmxInterface::CreatePolynomialScale( - name.c_str(), - forward_coeffs_in, - scale.polynomial.num_coeffs, - reverse_coeffs_in, - scale.polynomial.num_coeffs, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() + name.c_str(), + forward_coeffs_in, + scale.polynomial.num_coeffs, + reverse_coeffs_in, + scale.polynomial.num_coeffs, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() ); - } else if(type == "table"){ + } else if (type == "table") { float64 prescaled_in[10000]; float64 scaled_in[10000]; - for(int i = 0; i < scale.table.num_points; i++){ + for (int i = 0; i < scale.table.num_points; i++) { prescaled_in[i] = scale.table.prescaled[i]; scaled_in[i] = scale.table.scaled[i]; - } + } return ni::NiDAQmxInterface::CreateTableScale( - name.c_str(), - prescaled_in, - scale.table.num_points, - scaled_in, - scale.table.num_points, - ni::UNITS_MAP.at(prescaled_units), - scaled_units.c_str() + name.c_str(), + prescaled_in, + scale.table.num_points, + scaled_in, + scale.table.num_points, + ni::UNITS_MAP.at(prescaled_units), + scaled_units.c_str() ); - } + } return 0; } } ScaleConfig; diff --git a/driver/ni/scanner.cpp b/driver/ni/scanner.cpp index 5f687c3950..9baf64c00f 100644 --- a/driver/ni/scanner.cpp +++ b/driver/ni/scanner.cpp @@ -19,23 +19,23 @@ ni::Scanner::Scanner(const std::shared_ptr &ctx, - const synnax::Task &task) - : task(task), - ctx(ctx){ + const synnax::Task &task) + : task(task), + ctx(ctx) { // initialize syscfg session for the scanner (TODO: Error Handling for status) NISysCfgStatus status = NISysCfg_OK; - status = ni::NiSysCfgInterface::InitializeSession( - "localhost", // target (ip, mac or dns name) - NULL, // username (NULL for local system) - NULL, // password (NULL for local system) - NISysCfgLocaleDefault, // language - NISysCfgBoolTrue, // force pproperties to be queried everytime rather than cached - 10000, // timeout (ms) - NULL, // expert handle - &this->session // session handle + status = ni::NiSysCfgInterface::InitializeSession( + "localhost", // target (ip, mac or dns name) + NULL, // username (NULL for local system) + NULL, // password (NULL for local system) + NISysCfgLocaleDefault, // language + NISysCfgBoolTrue, // force pproperties to be queried everytime rather than cached + 10000, // timeout (ms) + NULL, // expert handle + &this->session // session handle ); - - if (status != NISysCfg_OK){ + + if (status != NISysCfg_OK) { this->ok_state = false; LOG(ERROR) << "[ni.scanner] failed to initialize scanner for task " << this->task.name; return; @@ -50,7 +50,7 @@ ni::Scanner::Scanner(const std::shared_ptr &ctx, LOG(INFO) << "[ni.scanner] successfully configured scanner for task " << this->task.name; } -ni::Scanner::~Scanner(){ +ni::Scanner::~Scanner() { LOG(INFO) << "[ni.scanner] SCANNER DESTRUCTOR" << this->task.name; // TODO: Error Handling ni::NiSysCfgInterface::CloseHandle(this->filter); @@ -59,14 +59,14 @@ ni::Scanner::~Scanner(){ LOG(INFO) << "[ni.scanner] successfully closed scanner for task " << this->task.name; } -void ni::Scanner::scan(){ +void ni::Scanner::scan() { // LOG(INFO) << "[ni.scanner] scanning for devices for task " << this->task.name; NISysCfgResourceHandle resource = NULL; // first find hardware auto err = ni::NiSysCfgInterface::FindHardware(this->session, NISysCfgFilterModeAll, this->filter, NULL, &this->resources_handle); - if (err != NISysCfg_OK){ + if (err != NISysCfg_OK) { this->ok_state = false; return; // TODO: handle error more meaningfully } @@ -74,18 +74,18 @@ void ni::Scanner::scan(){ // Now iterate through found devices and get requested properties devices["devices"] = json::array(); - while (ni::NiSysCfgInterface::NextResource(this->session, this->resources_handle, &resource) == NISysCfg_OK){ + while (ni::NiSysCfgInterface::NextResource(this->session, this->resources_handle, &resource) == NISysCfg_OK) { auto device = getDeviceProperties(resource); devices["devices"].push_back(device); } } -json ni::Scanner::getDeviceProperties(NISysCfgResourceHandle resource){ +json ni::Scanner::getDeviceProperties(NISysCfgResourceHandle resource) { json device; char propertyValue[1024] = ""; - + ni::NiSysCfgInterface::GetResourceProperty(resource, NISysCfgResourcePropertySerialNumber, propertyValue); device["serial_number"] = propertyValue; @@ -94,10 +94,12 @@ json ni::Scanner::getDeviceProperties(NISysCfgResourceHandle resource){ model = model.substr(3, model.size()); device["model"] = model; - ni::NiSysCfgInterface::GetResourceIndexedProperty(resource, NISysCfgIndexedPropertyExpertUserAlias, 0, propertyValue); + ni::NiSysCfgInterface::GetResourceIndexedProperty(resource, NISysCfgIndexedPropertyExpertUserAlias, 0, + propertyValue); device["location"] = propertyValue; - ni::NiSysCfgInterface::GetResourceIndexedProperty(resource, NISysCfgIndexedPropertyExpertResourceName, 0, propertyValue); + ni::NiSysCfgInterface::GetResourceIndexedProperty(resource, NISysCfgIndexedPropertyExpertResourceName, 0, + propertyValue); std::string rsrc_name = propertyValue; rsrc_name = rsrc_name.substr(1, rsrc_name.size() - 2); device["resource_name"] = rsrc_name; @@ -110,7 +112,7 @@ json ni::Scanner::getDeviceProperties(NISysCfgResourceHandle resource){ // check if its simulated NISysCfgBool isSimulated; ni::NiSysCfgInterface::GetResourceProperty(resource, NISysCfgResourcePropertyIsSimulated, &isSimulated); - if(isSimulated){ + if (isSimulated) { device["is_simulated"] = true; device["key"] = device["resource_name"]; } else { @@ -121,38 +123,38 @@ json ni::Scanner::getDeviceProperties(NISysCfgResourceHandle resource){ return device; } -void ni::Scanner::createDevices(){ - for(auto &device : devices["devices"]){ +void ni::Scanner::createDevices() { + for (auto &device: devices["devices"]) { // first try to rereive the device and if found, do not create a new device, simply continue auto [retrieved_device, err] = this->ctx->client->hardware.retrieveDevice(device["key"]); - if(err == freighter::NIL){ + if (err == freighter::NIL) { // LOG(INFO) << "[ni.scanner] device " << device["model"] << " and key " << device["key"] << "at location: " << device["location"] << " found for task " << this->task.name; continue; } auto new_device = synnax::Device( - device["key"].get(), // key - device["model"].get(), // name - synnax::taskKeyRack(this->task.key), // rack key - device["location"].get(), // location - device["serial_number"].get(), // serial number - "NI", // make - device["model"].get(), // model - device.dump() // device properties + device["key"].get(), // key + device["model"].get(), // name + synnax::taskKeyRack(this->task.key), // rack key + device["location"].get(), // location + device["serial_number"].get(), // serial number + "NI", // make + device["model"].get(), // model + device.dump() // device properties ); - - if(this->ctx->client->hardware.createDevice(new_device) != freighter::NIL){ + + if (this->ctx->client->hardware.createDevice(new_device) != freighter::NIL) { // LOG(ERROR) << "[ni.scanner] failed to create device " << device["model"] << " with key " << device["key"] << " for task " << this->task.name; - } + } // LOG(INFO) << "[ni.scanner] successfully created device " << device["model"] << " with key " << device["key"] << " for task " << this->task.name; } } -bool ni::Scanner::ok(){ - return ok_state; +bool ni::Scanner::ok() { + return ok_state; } -json ni::Scanner::getDevices(){ +json ni::Scanner::getDevices() { return devices; } diff --git a/driver/ni/scanner_test.cpp b/driver/ni/scanner_test.cpp index 3d59e77c36..72cb1ca278 100644 --- a/driver/ni/scanner_test.cpp +++ b/driver/ni/scanner_test.cpp @@ -23,39 +23,69 @@ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Functional Tests // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -TEST(NiScannerTests, test_valid_scan){ - LOG(INFO) << "test_ni_scanner: "; //<< std::endl; - // create properties json - - auto client = std::make_shared(new_test_client()); - auto task = synnax::Task( +TEST(NiScannerTests, test_valid_scan +){ +LOG(INFO) +<< "test_ni_scanner: "; //<< std::endl; +// create properties json + +auto client = std::make_shared(new_test_client()); +auto task = synnax::Task( "my_task", "niScanner", "" - ); - auto mockCtx = std::make_shared(client); - - //create a scanner - ni::Scanner scanner = ni::Scanner(mockCtx, task); - scanner.scan(); - if(scanner.ok()){ - nlohmann::json devices = scanner.getDevices(); - // print size of devices - std::cout << "Number of devices: " << devices["devices"].size() << std::endl; - std::cout << devices.dump(4) << std::endl; - } else { - std::cout << "Scanner failed to retreive devices" << std::endl; - } - - // scan a second time - scanner.scan(); - if(scanner.ok()){ - nlohmann::json devices = scanner.getDevices(); - // print size of devices - std::cout << "Number of devices: " << devices["devices"].size() << std::endl; - std::cout << devices.dump(4) << std::endl; - } else { - std::cout << "Scanner failed to retreive devices" << std::endl; - } +); +auto mockCtx = std::make_shared(client); + +//create a scanner +ni::Scanner scanner = ni::Scanner(mockCtx, task); +scanner. + +scan(); + +if(scanner. + +ok() + +){ +nlohmann::json devices = scanner.getDevices(); +// print size of devices +std::cout << "Number of devices: " << devices["devices"]. + +size() + +<< +std::endl; +std::cout << devices.dump(4) << +std::endl; +} else { +std::cout << "Scanner failed to retreive devices" << +std::endl; +} + +// scan a second time +scanner. + +scan(); + +if(scanner. + +ok() + +){ +nlohmann::json devices = scanner.getDevices(); +// print size of devices +std::cout << "Number of devices: " << devices["devices"]. + +size() + +<< +std::endl; +std::cout << devices.dump(4) << +std::endl; +} else { +std::cout << "Scanner failed to retreive devices" << +std::endl; +} } diff --git a/driver/ni/task.cpp b/driver/ni/task.cpp index 14f94a8442..4e9435c644 100644 --- a/driver/ni/task.cpp +++ b/driver/ni/task.cpp @@ -20,16 +20,16 @@ /////////////////////////////////////////////////////////////////////////////////// ni::ScannerTask::ScannerTask( - const std::shared_ptr &ctx, + const std::shared_ptr &ctx, synnax::Task task -) : running(true), scanner(ctx, task), ctx(ctx), task(task){ +) : running(true), scanner(ctx, task), ctx(ctx), task(task) { //begin scanning on construction LOG(INFO) << "[NI Task] constructing scanner task " << this->task.name; thread = std::thread(&ni::ScannerTask::run, this); } -std::unique_ptr ni::ScannerTask::configure( - const std::shared_ptr &ctx, +std::unique_ptr ni::ScannerTask::configure( + const std::shared_ptr &ctx, const synnax::Task &task ) { return std::make_unique(ctx, task); @@ -70,23 +70,23 @@ void ni::ScannerTask::exec(task::Command &cmd) { }); // LOG(INFO) << "[NI Task] successfully scanned for task " << this->task.name; } - } else if (cmd.type == "stop"){ + } else if (cmd.type == "stop") { this->stop(); - }else { + } else { LOG(ERROR) << "unknown command type: " << cmd.type; } } -void ni::ScannerTask::run(){ +void ni::ScannerTask::run() { // LOG(INFO) << "[NI Task] Scanner task running " << this->task.name; auto scan_cmd = task::Command{task.key, "scan", {}}; // perform a scan - while(true){ + while (true) { std::this_thread::sleep_for(std::chrono::seconds(5)); - if(this->running){ + if (this->running) { this->exec(scan_cmd); - } else{ + } else { break; } } @@ -97,18 +97,19 @@ bool ni::ScannerTask::ok() { return this->ok_state; } -ni::ScannerTask::~ScannerTask(){ +ni::ScannerTask::~ScannerTask() { LOG(INFO) << "[NI Task] destructing scanner task " << this->task.name; } + /////////////////////////////////////////////////////////////////////////////////// // ReaderTask // /////////////////////////////////////////////////////////////////////////////////// -ni::ReaderTask::ReaderTask( const std::shared_ptr &ctx, - synnax::Task task, - std::shared_ptr source, - std::shared_ptr ni_source, - synnax::WriterConfig writer_config, - const breaker::Config breaker_config +ni::ReaderTask::ReaderTask(const std::shared_ptr &ctx, + synnax::Task task, + std::shared_ptr source, + std::shared_ptr ni_source, + synnax::WriterConfig writer_config, + const breaker::Config breaker_config ) : ctx(ctx), task(task), daq_read_pipe(pipeline::Acquisition(ctx->client, writer_config, source, breaker_config)), @@ -116,11 +117,9 @@ ni::ReaderTask::ReaderTask( const std::shared_ptr &ctx, } - - -std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr &ctx, - const synnax::Task &task) { - LOG(INFO) << "[NI Task] configuring task " << task.name; +std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr &ctx, + const synnax::Task &task) { + LOG(INFO) << "[NI Task] configuring task " << task.name; // create a breaker config TODO: use the task to generate the other parameters? auto breaker_config = breaker::Config{ @@ -137,13 +136,13 @@ std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr channel_keys; + // determine whether DigitalReadSource or AnalogReadSource is needed + std::vector channel_keys; std::shared_ptr source; std::shared_ptr ni_source; - if(task.type != "ni_analog_read"){ + if (task.type != "ni_analog_read") { ni_source = std::make_shared(task_handle, ctx, task); - } else{ + } else { ni_source = std::make_shared(task_handle, ctx, task); } source = ni_source; @@ -159,20 +158,20 @@ std::unique_ptr ni::ReaderTask::configure(const std::shared_ptr setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); + .task = task.key, + .variant = "success", + .details = { + {"running", false} + } + }); LOG(INFO) << "[NI Task] successfully configured task " << task.name; - - return std::make_unique( ctx, - task, - source, - ni_source, - writer_config, - breaker_config); + + return std::make_unique(ctx, + task, + source, + ni_source, + writer_config, + breaker_config); } void ni::ReaderTask::exec(task::Command &cmd) { @@ -188,19 +187,20 @@ void ni::ReaderTask::exec(task::Command &cmd) { } -void ni::ReaderTask::stop(){ - if(!this->running.exchange(false) || !this->ok()){ - LOG(INFO) << "[NI Task] did not stop " << this->task.name << " running: " << this->running << " ok: " << this->ok(); +void ni::ReaderTask::stop() { + if (!this->running.exchange(false) || !this->ok()) { + LOG(INFO) << "[NI Task] did not stop " << this->task.name << " running: " << this->running << " ok: " + << this->ok(); return; } this->daq_read_pipe.stop(); - this->source->stop(); + this->source->stop(); LOG(INFO) << "[NI Task] successfully stopped task " << this->task.name; } -void ni::ReaderTask::start(){ - if(this->running.exchange(true)|| !this->ok()){ - LOG(INFO) << "[NI Task] did not start " << this->task.name << " as it is not running or in error state"; +void ni::ReaderTask::start() { + if (this->running.exchange(true) || !this->ok()) { + LOG(INFO) << "[NI Task] did not start " << this->task.name << " as it is not running or in error state"; return; } this->source->start(); @@ -216,24 +216,24 @@ bool ni::ReaderTask::ok() { /////////////////////////////////////////////////////////////////////////////////// // WriterTask // /////////////////////////////////////////////////////////////////////////////////// -ni::WriterTask::WriterTask( const std::shared_ptr &ctx, - synnax::Task task, - std::shared_ptr sink, - std::shared_ptr ni_sink, - std::shared_ptr state_source, - synnax::WriterConfig writer_config, - synnax::StreamerConfig streamer_config, - const breaker::Config breaker_config +ni::WriterTask::WriterTask(const std::shared_ptr &ctx, + synnax::Task task, + std::shared_ptr sink, + std::shared_ptr ni_sink, + std::shared_ptr state_source, + synnax::WriterConfig writer_config, + synnax::StreamerConfig streamer_config, + const breaker::Config breaker_config ) : ctx(ctx), task(task), cmd_write_pipe(pipeline::Control(ctx->client, streamer_config, std::move(sink), breaker_config)), state_write_pipe(pipeline::Acquisition(ctx->client, writer_config, state_source, breaker_config)), - sink(ni_sink){ + sink(ni_sink) { } -std::unique_ptr ni::WriterTask::configure(const std::shared_ptr &ctx, - const synnax::Task &task) { +std::unique_ptr ni::WriterTask::configure(const std::shared_ptr &ctx, + const synnax::Task &task) { // create a breaker config TODO: use the task to generate the other parameters? auto breaker_config = breaker::Config{ .name = task.name, @@ -247,7 +247,7 @@ std::unique_ptr ni::WriterTask::configure(const std::shared_ptr (task_handle, ctx, task); if (!daq_writer->ok()) { LOG(ERROR) << "[NI Writer] failed to construct reader for" << task.name; @@ -255,8 +255,8 @@ std::unique_ptr ni::WriterTask::configure(const std::shared_ptr cmd_keys = daq_writer->getCmdChannelKeys(); - std::vector state_keys = daq_writer->getStateChannelKeys(); + std::vector cmd_keys = daq_writer->getCmdChannelKeys(); + std::vector state_keys = daq_writer->getStateChannelKeys(); // create a writer config to write state channels auto writer_config = synnax::WriterConfig{ @@ -272,25 +272,25 @@ std::unique_ptr ni::WriterTask::configure(const std::shared_ptr setState({ - .task = task.key, - .variant = "success", - .details = { - {"running", false} - } - }); + .task = task.key, + .variant = "success", + .details = { + {"running", false} + } + }); auto state_writer = daq_writer->writer_state_source; LOG(INFO) << "[NI Task] successfully configured task " << task.name; - return std::make_unique( ctx, - task, - daq_writer, - daq_writer, - state_writer, - writer_config, - streamer_config, - breaker_config); + return std::make_unique(ctx, + task, + daq_writer, + daq_writer, + state_writer, + writer_config, + streamer_config, + breaker_config); } void ni::WriterTask::exec(task::Command &cmd) { @@ -304,8 +304,8 @@ void ni::WriterTask::exec(task::Command &cmd) { } -void ni::WriterTask::start(){ - if(this->running.exchange(true) || !this->ok()){ +void ni::WriterTask::start() { + if (this->running.exchange(true) || !this->ok()) { return; } sink->start(); @@ -314,9 +314,10 @@ void ni::WriterTask::start(){ } -void ni::WriterTask::stop(){ - if(!this->running.exchange(false) || !this->ok()){ - LOG(INFO) << "[NI Task] did not stop " << this->task.name << " running: " << this->running << " ok: " << this->ok(); +void ni::WriterTask::stop() { + if (!this->running.exchange(false) || !this->ok()) { + LOG(INFO) << "[NI Task] did not stop " << this->task.name << " running: " << this->running << " ok: " + << this->ok(); return; // TODO: handle this error } this->state_write_pipe.stop(); @@ -324,7 +325,6 @@ void ni::WriterTask::stop(){ } - bool ni::WriterTask::ok() { return this->ok_state; } diff --git a/driver/ni/task_test.cpp b/driver/ni/task_test.cpp index 7a4df5b7b0..20ad6b0c8f 100644 --- a/driver/ni/task_test.cpp +++ b/driver/ni/task_test.cpp @@ -25,384 +25,548 @@ using json = nlohmann::json; -TEST(NiTaskTests, test_NI_analog_reader_task){ - LOG(INFO) << "Test NI task with NI Analog Read:" << std::endl; - - /////////////////////////////////////////////// setup synnax test infrustructure - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for analog input channels - "time", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "acq_data", - synnax::FLOAT32, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - // create reader config json - auto config = json{ - {"acq_rate", 2000}, // dont actually need these here +TEST(NiTaskTests, test_NI_analog_reader_task +){ +LOG(INFO) +<< "Test NI task with NI Analog Read:" << +std::endl; + +/////////////////////////////////////////////// setup synnax test infrustructure +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for analog input channels + "time", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "acq_data", + synnax::FLOAT32, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +// create reader config json +auto config = json{ + {"acq_rate", 2000}, // dont actually need these here {"stream_rate", 20}, // same as above {"device_name", "Dev1"}, {"reader_type", "analogReader"} - }; - add_index_channel_JSON(config, "time", time.key); - add_AI_channel_JSON(config, "acq_data", data.key, 0, -10.0, 10.0, "Default"); - - - // create synnax task - auto task = synnax::Task( - "my_task", // task name - "niReader", // task type - to_string(config) // task config - ); - - // print config - std::cout << "Analog Reader Task Config: " << to_string(config) << std::endl; - - auto mockCtx = std::make_shared(client); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - - // create a streamer to read the frames that the pipe writes to the server - auto streamer_config = synnax::StreamerConfig{ - .channels = std::vector{time.key, data.key}, - .start = TimeStamp::now(), - }; - - auto [streamer, sErr] = mockCtx->client->telem.openStreamer(streamer_config); - - - /////////////////////////////////////////////// setup factory and task - - // make ni factory and build reader task - std::unique_ptr ni_factory = std::make_unique(); - auto [readerTask, ok] = ni_factory->configureTask(mockCtx, task); - ASSERT_TRUE(ok) << "Failed to configure reader task"; - - // create commands - auto start_cmd = task::Command{task.key, "start", {}}; - - auto stop_cmd = task::Command{task.key, "stop", {}}; - - /////////////////////////////////////////////// begin acquisition - - // start reader task - readerTask->exec(start_cmd); - - for(int i = 0; i < 30; i++){ - auto [frame, err] = streamer.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - uint32_t ai_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::FLOAT32){ - auto s = frame.series->at(i).float32(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_NEAR(s[j], 0, 10); // can be any value of a sign wave from -10 to 10 - } - ai_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - } - readerTask->exec(stop_cmd); +}; +add_index_channel_JSON(config, +"time", time.key); +add_AI_channel_JSON(config, +"acq_data", data.key, 0, -10.0, 10.0, "Default"); + + +// create synnax task +auto task = synnax::Task( + "my_task", // task name + "niReader", // task type + to_string(config) // task config +); + +// print config +std::cout << "Analog Reader Task Config: " << +to_string(config) +<< +std::endl; + +auto mockCtx = std::make_shared(client); +std::this_thread::sleep_for(std::chrono::milliseconds(10) +); + +// create a streamer to read the frames that the pipe writes to the server +auto streamer_config = synnax::StreamerConfig{ + .channels = std::vector{time.key, data.key}, + .start = TimeStamp::now(), +}; + +auto [streamer, sErr] = mockCtx->client->telem.openStreamer(streamer_config); + + +/////////////////////////////////////////////// setup factory and task + +// make ni factory and build reader task +std::unique_ptr ni_factory = std::make_unique(); +auto [readerTask, ok] = ni_factory->configureTask(mockCtx, task); +ASSERT_TRUE(ok) +<< "Failed to configure reader task"; + +// create commands +auto start_cmd = task::Command{task.key, "start", {}}; + +auto stop_cmd = task::Command{task.key, "stop", {}}; + +/////////////////////////////////////////////// begin acquisition + +// start reader task +readerTask-> +exec(start_cmd); + +for( +int i = 0; +i < 30; i++){ +auto [frame, err] = streamer.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +uint32_t ai_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::FLOAT32){ +auto s = frame.series->at(i).float32(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j +exec(stop_cmd); } -TEST(NiTaskTests, test_NI_digital_reader_task){ - LOG(INFO) << "Test NI Task with NI Digital Read:" << std::endl; - - /////////////////////////////////////////////// setup synnax test infrustructure - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - // create all the necessary channels in the synnax client - auto [time, tErr] = client->channels.create( // index channel for digital input channels - "time", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr) << tErr.message(); - auto [data, dErr] = client->channels.create( // analog input channel - "acq_data2", - synnax::UINT8, - time.key, - false - ); - ASSERT_FALSE(dErr) << dErr.message(); - - // create reader config json - auto config = json{ - {"acq_rate", 2000}, // dont actually need these here +TEST(NiTaskTests, test_NI_digital_reader_task +){ +LOG(INFO) +<< "Test NI Task with NI Digital Read:" << +std::endl; + +/////////////////////////////////////////////// setup synnax test infrustructure +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); + +// create all the necessary channels in the synnax client +auto [time, tErr] = client->channels.create( // index channel for digital input channels + "time", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr) +<< tErr. + +message(); + +auto [data, dErr] = client->channels.create( // analog input channel + "acq_data2", + synnax::UINT8, + time.key, + false +); +ASSERT_FALSE(dErr) +<< dErr. + +message(); + +// create reader config json +auto config = json{ + {"acq_rate", 2000}, // dont actually need these here {"stream_rate", 20}, // same as above {"device_name", "PXI1Slot2_2"}, - {"reader_type", "digitalReader"} - }; - add_index_channel_JSON(config, "time", time.key); - add_DI_channel_JSON(config, "acq_data", data.key, 0, 0); - - // create synnax task - auto task = synnax::Task( - "my_task", - "niReader", - to_string(config) - ); - - // print config - std::cout << "Digital Reader Task Config: " << config.dump(4) << std::endl; - - auto mockCtx = std::make_shared(client); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - - // create a streamer to read the frames that the pipe writes to the server - auto streamer_config = synnax::StreamerConfig{ - .channels = std::vector{time.key, data.key}, - .start = TimeStamp::now(), - }; - - auto [streamer, sErr] = mockCtx->client->telem.openStreamer(streamer_config); - - - /////////////////////////////////////////////// setup factory and task - - // make ni factory and build reader task - std::unique_ptr ni_factory = std::make_unique(); - auto [readerTask, ok] = ni_factory->configureTask(mockCtx, task); - ASSERT_TRUE(ok) << "Failed to configure reader task"; - - // create commands - auto start_cmd = task::Command{task.key, "start", {}}; - - auto stop_cmd = task::Command{task.key, "stop", {}}; - - /////////////////////////////////////////////// begin acquisition - - // start reader task - readerTask->exec(start_cmd); - - for(int i = 0; i < 30; i++){ - auto [frame, err] = streamer.read(); - std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; - - uint32_t ai_count = 0; - for(int i = 0; i < frame.series->size(); i++){ - std::cout << "\n\n Series " << i << ": \n"; - // check series type before casting - if (frame.series->at(i).data_type == synnax::UINT8){ - auto s = frame.series->at(i).uint8(); - for (int j = 0; j < s.size(); j++){ - std::cout << (uint32_t)s[j] << ", "; - ASSERT_TRUE((s[j] == 1) || (s[j] == 0)); - } - ai_count++; - } - else if(frame.series->at(i).data_type == synnax::TIMESTAMP){ - auto s = frame.series->at(i).uint64(); - for (int j = 0; j < s.size(); j++){ - std::cout << s[j] << ", "; - ASSERT_TRUE((s[j] <= final_timestamp)); - } - } - } - std::cout << std::endl; - } + {"reader_type", "digitalReader"} +}; +add_index_channel_JSON(config, +"time", time.key); +add_DI_channel_JSON(config, +"acq_data", data.key, 0, 0); + +// create synnax task +auto task = synnax::Task( + "my_task", + "niReader", + to_string(config) +); + +// print config +std::cout << "Digital Reader Task Config: " << config.dump(4) << +std::endl; + +auto mockCtx = std::make_shared(client); +std::this_thread::sleep_for(std::chrono::milliseconds(10) +); + +// create a streamer to read the frames that the pipe writes to the server +auto streamer_config = synnax::StreamerConfig{ + .channels = std::vector{time.key, data.key}, + .start = TimeStamp::now(), +}; + +auto [streamer, sErr] = mockCtx->client->telem.openStreamer(streamer_config); + + +/////////////////////////////////////////////// setup factory and task - readerTask->exec(stop_cmd); +// make ni factory and build reader task +std::unique_ptr ni_factory = std::make_unique(); +auto [readerTask, ok] = ni_factory->configureTask(mockCtx, task); +ASSERT_TRUE(ok) +<< "Failed to configure reader task"; +// create commands +auto start_cmd = task::Command{task.key, "start", {}}; + +auto stop_cmd = task::Command{task.key, "stop", {}}; + +/////////////////////////////////////////////// begin acquisition + +// start reader task +readerTask-> +exec(start_cmd); + +for( +int i = 0; +i < 30; i++){ +auto [frame, err] = streamer.read(); +std::uint64_t final_timestamp = (synnax::TimeStamp::now()).value; + +uint32_t ai_count = 0; +for( +int i = 0; +i + +size(); + +i++){ +std::cout << "\n\n Series " << i << ": \n"; +// check series type before casting +if (frame.series-> +at(i) +.data_type == synnax::UINT8){ +auto s = frame.series->at(i).uint8(); +for ( +int j = 0; +j +at(i) +.data_type == synnax::TIMESTAMP){ +auto s = frame.series->at(i).uint64(); +for ( +int j = 0; +j +exec(stop_cmd); + +} + + +TEST(NiTaskTests, test_NI_digital_writer_task +){ +LOG(INFO) +<< "Test NI writer task with NI Digital Writer: " << +std::endl; +// create synnax client +auto client_config = synnax::Config{ + "localhost", + 9090, + "synnax", + "seldon"}; +auto client = std::make_shared(client_config); -TEST(NiTaskTests, test_NI_digital_writer_task){ - LOG(INFO) << "Test NI writer task with NI Digital Writer: " << std::endl; - // create synnax client - auto client_config = synnax::Config{ - "localhost", - 9090, - "synnax", - "seldon"}; - auto client = std::make_shared(client_config); - - - // create all the necessary channels in the synnax client - auto [ack_idx, tErr1] = client->channels.create( // index channel for acks - "do_state_idx", - synnax::TIMESTAMP, - 0, - true - ); - ASSERT_FALSE(tErr1) << tErr1.message(); - auto [cmd_idx, tErr2] = client->channels.create( // index channel for cmd +// create all the necessary channels in the synnax client +auto [ack_idx, tErr1] = client->channels.create( // index channel for acks + "do_state_idx", + synnax::TIMESTAMP, + 0, + true +); +ASSERT_FALSE(tErr1) +<< tErr1. + +message(); + +auto [cmd_idx, tErr2] = client->channels.create( // index channel for cmd "do_cmd_idx", synnax::TIMESTAMP, 0, true - ); - ASSERT_FALSE(tErr2) << tErr2.message(); - auto [ack, aErr] = client->channels.create( // ack channel - "do_state", - synnax::UINT8, - ack_idx.key, - false - ); - ASSERT_FALSE(aErr) << aErr.message(); - auto [cmd, cErr] = client->channels.create( // cmd channel - "do_cmd", - synnax::UINT8, - cmd_idx.key, - false - ); - ASSERT_FALSE(cErr) << cErr.message(); - - // create reader config json - auto config = json{ - {"device_name", "Dev1"}, - {"stream_rate", 1} - }; - - add_index_channel_JSON(config, "do1_idx", cmd_idx.key); - add_DO_channel_JSON(config, "do_cmd", cmd.key, ack.key, 0, 0); - add_drive_state_index_channel_JSON(config, "do_state_idx", ack_idx.key); - - // create synnax task - auto task = synnax::Task( - "my_task", - "niWriter", - to_string(config) - ); - - // print config - std::cout << "D9igital Writer Task Config: " << config.dump(4) << std::endl; - - auto mockCtx = std::make_shared(client); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - - // create a writer to write to cmd channel (for test use only) - auto cmdWriterConfig = synnax::WriterConfig{ - .channels = std::vector{cmd_idx.key, cmd.key}, - .start = TimeStamp::now(), - .mode = synnax::WriterStreamOnly}; - - auto [cmdWriter, wErr] = client->telem.openWriter(cmdWriterConfig); - ASSERT_FALSE(wErr) << wErr.message(); - - // create a streamer to stream do_state channel (for in test use only) - auto doStateStreamerConfig = synnax::StreamerConfig{ +); +ASSERT_FALSE(tErr2) +<< tErr2. + +message(); + +auto [ack, aErr] = client->channels.create( // ack channel + "do_state", + synnax::UINT8, + ack_idx.key, + false +); +ASSERT_FALSE(aErr) +<< aErr. + +message(); + +auto [cmd, cErr] = client->channels.create( // cmd channel + "do_cmd", + synnax::UINT8, + cmd_idx.key, + false +); +ASSERT_FALSE(cErr) +<< cErr. + +message(); + +// create reader config json +auto config = json{ + {"device_name", "Dev1"}, + {"stream_rate", 1} +}; + +add_index_channel_JSON(config, +"do1_idx", cmd_idx.key); +add_DO_channel_JSON(config, +"do_cmd", cmd.key, ack.key, 0, 0); +add_drive_state_index_channel_JSON(config, +"do_state_idx", ack_idx.key); + +// create synnax task +auto task = synnax::Task( + "my_task", + "niWriter", + to_string(config) +); + +// print config +std::cout << "D9igital Writer Task Config: " << config.dump(4) << +std::endl; + +auto mockCtx = std::make_shared(client); +std::this_thread::sleep_for(std::chrono::milliseconds(10) +); + +// create a writer to write to cmd channel (for test use only) +auto cmdWriterConfig = synnax::WriterConfig{ + .channels = std::vector{cmd_idx.key, cmd.key}, + .start = TimeStamp::now(), + .mode = synnax::WriterStreamOnly}; + +auto [cmdWriter, wErr] = client->telem.openWriter(cmdWriterConfig); +ASSERT_FALSE(wErr) +<< wErr. + +message(); + +// create a streamer to stream do_state channel (for in test use only) +auto doStateStreamerConfig = synnax::StreamerConfig{ .channels = std::vector{ack_idx.key, ack.key}, .start = TimeStamp::now(), - }; - auto [doStateStreamer, sErr] = client->telem.openStreamer(doStateStreamerConfig); - ASSERT_FALSE(sErr) << sErr.message(); - - /////////////////////////////////////////////// setup factory and task - - // make ni factory and build reader task - std::unique_ptr ni_factory = std::make_unique(); - auto [writerTask, ok] = ni_factory->configureTask(mockCtx, task); - ASSERT_TRUE(ok) << "Failed to configure reader task"; - - // create commands - auto start_cmd = task::Command{task.key, "start", {}}; - auto stop_cmd = task::Command{task.key, "stop", {}}; - - - - /////////////////////////////////////////////// begin Control - writerTask->exec(start_cmd); - std::this_thread::sleep_for(std::chrono::seconds(1)); - //////////////////////////////////////////// write a 1 to the cmd channel //////////////////////////////////////////// - LOG(INFO) << "Commanding a logic high: " << std::endl; - // construct frame - auto cmd_frame = synnax::Frame(2); - cmd_frame.add(cmd_idx.key, synnax::Series(std::vector{synnax::TimeStamp::now().value}, synnax::TIMESTAMP)); - cmd_frame.add(cmd.key, synnax::Series(std::vector{1})); - ASSERT_TRUE(cmdWriter.write(std::move(cmd_frame))); // TODO: remove -> isnt necessary - - // do initial read before state update, should be 0 - auto [state_frame, err3] = doStateStreamer.read(); - ASSERT_FALSE(err3) << err3.message(); - auto s = state_frame.series->at(1).uint8(); - LOG(INFO) << "State: " << (int)s[0] << std::endl; - ASSERT_TRUE(s[0] == 0); - - // keep reading state channel and printing state - for (int i = 0; i < 5; i++){ - auto [state_frame, err3] = doStateStreamer.read(); - ASSERT_FALSE(err3) << err3.message(); - auto s = state_frame.series->at(1).uint8(); - LOG(INFO) << "State: " << (int)s[0] << std::endl; - ASSERT_TRUE(s[0] == 1); - } - writerTask->exec(stop_cmd); +}; +auto [doStateStreamer, sErr] = client->telem.openStreamer(doStateStreamerConfig); +ASSERT_FALSE(sErr) +<< sErr. + +message(); + +/////////////////////////////////////////////// setup factory and task + +// make ni factory and build reader task +std::unique_ptr ni_factory = std::make_unique(); +auto [writerTask, ok] = ni_factory->configureTask(mockCtx, task); +ASSERT_TRUE(ok) +<< "Failed to configure reader task"; + +// create commands +auto start_cmd = task::Command{task.key, "start", {}}; +auto stop_cmd = task::Command{task.key, "stop", {}}; + + +/////////////////////////////////////////////// begin Control +writerTask-> +exec(start_cmd); +std::this_thread::sleep_for(std::chrono::seconds(1) +); +//////////////////////////////////////////// write a 1 to the cmd channel //////////////////////////////////////////// +LOG(INFO) +<< "Commanding a logic high: " << +std::endl; +// construct frame +auto cmd_frame = synnax::Frame(2); +cmd_frame. +add(cmd_idx +.key, +synnax::Series(std::vector{synnax::TimeStamp::now().value}, synnax::TIMESTAMP +)); +cmd_frame. +add(cmd +.key, +synnax::Series(std::vector{1} +)); +ASSERT_TRUE(cmdWriter +. +write(std::move(cmd_frame) +)); // TODO: remove -> isnt necessary + +// do initial read before state update, should be 0 +auto [state_frame, err3] = doStateStreamer.read(); +ASSERT_FALSE(err3) +<< err3. + +message(); + +auto s = state_frame.series->at(1).uint8(); +LOG(INFO) +<< "State: " << (int)s[0] << +std::endl; +ASSERT_TRUE(s[0] +== 0); + +// keep reading state channel and printing state +for ( +int i = 0; +i < 5; i++){ +auto [state_frame, err3] = doStateStreamer.read(); +ASSERT_FALSE(err3) +<< err3. + +message(); + +auto s = state_frame.series->at(1).uint8(); +LOG(INFO) +<< "State: " << (int)s[0] << +std::endl; +ASSERT_TRUE(s[0] +== 1); +} +writerTask-> +exec(stop_cmd); } -TEST(NiTaskTests, test_NI_scanner_task){ - LOG(INFO) << "Test NI Scanner Task:" << std::endl; +TEST(NiTaskTests, test_NI_scanner_task +){ +LOG(INFO) +<< "Test NI Scanner Task:" << +std::endl; + +// create properties json +nlohmann::json config; +config["properties"] = - // create properties json - nlohmann::json config; - config["properties"] = nlohmann::json::array(); - config["properties"].push_back("SerialNumber"); - config["properties"].push_back("DeviceName"); +nlohmann::json::array(); - auto client = std::make_shared(new_test_client()); - auto task = synnax::Task( +config["properties"].push_back("SerialNumber"); +config["properties"].push_back("DeviceName"); + +auto client = std::make_shared(new_test_client()); +auto task = synnax::Task( "my_task", "niScanner", to_string(config) - ); +); + +// print config +std::cout << "Scanner Task Config: " << config.dump(4) << +std::endl; - // print config - std::cout << "Scanner Task Config: " << config.dump(4) << std::endl; - - auto mockCtx = std::make_shared(client); +auto mockCtx = std::make_shared(client); - /////////////////////////////////////////////// setup factory and task +/////////////////////////////////////////////// setup factory and task - // make ni factory and build reader task - std::unique_ptr ni_factory = std::make_unique(); +// make ni factory and build reader task +std::unique_ptr ni_factory = std::make_unique(); - LOG(INFO) << "Make Scanner task:" << std::endl; - auto [scanner_task, ok] = ni_factory->configureTask(mockCtx, task); - ASSERT_TRUE(ok) << "Failed to configure reader task"; +LOG(INFO) +<< "Make Scanner task:" << +std::endl; +auto [scanner_task, ok] = ni_factory->configureTask(mockCtx, task); +ASSERT_TRUE(ok) +<< "Failed to configure reader task"; - // create commands - LOG(INFO) << "Send scan cmd:" << std::endl; - auto scan_cmd = task::Command{task.key, "scan", {}}; +// create commands +LOG(INFO) +<< "Send scan cmd:" << +std::endl; +auto scan_cmd = task::Command{task.key, "scan", {}}; - // perform a scan - scanner_task->exec(scan_cmd); +// perform a scan +scanner_task-> +exec(scan_cmd); } diff --git a/driver/ni/ts_queue.h b/driver/ni/ts_queue.h index 0b86d97011..484ed315a4 100644 --- a/driver/ni/ts_queue.h +++ b/driver/ni/ts_queue.h @@ -8,46 +8,47 @@ // included in the file licenses/APL.txt. #pragma once + #include #include #include -template -class TSQueue{ +template +class TSQueue { public: - TSQueue() = default; + TSQueue() = default; - void enqueue(const T& item){ - std::lock_guard lock(m); - queue.push(item); - c.notify_one(); - } + void enqueue(const T &item) { + std::lock_guard lock(m); + queue.push(item); + c.notify_one(); + } -std::pair dequeue(void){ - std::unique_lock lock(m); + std::pair dequeue(void) { + std::unique_lock lock(m); - // while(queue.empty()){ + // while(queue.empty()){ // c.wait(lock); - // } - - c.wait_for(lock, std::chrono::seconds(2)); - if(queue.empty()){ - return std::make_pair(T(), false); - } + // } - T item = queue.front(); - queue.pop(); - - return std::make_pair(item, true); -} + c.wait_for(lock, std::chrono::seconds(2)); + if (queue.empty()) { + return std::make_pair(T(), false); + } -void reset(){ - std::lock_guard lock(m); - while(!queue.empty()){ + T item = queue.front(); queue.pop(); + + return std::make_pair(item, true); + } + + void reset() { + std::lock_guard lock(m); + while (!queue.empty()) { + queue.pop(); + } } -} private: std::queue queue; From 4e664dd0b67d777b133408a7fbf29badef38c515 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Fri, 14 Jun 2024 17:07:42 -0400 Subject: [PATCH 34/41] added windows specific main --- driver/BUILD.bazel | 5 +- driver/config/config.h | 314 ++--- driver/config/config_test.cpp | 84 +- driver/errors/errors.h | 1 + driver/loop/loop.h | 110 +- driver/loop/loop_test.cpp | 5 +- driver/main_linux.cpp | 112 ++ driver/main_windows.cpp | 114 ++ driver/ni/ai_channels.h | 61 +- driver/ni/analog_read.cpp | 127 +- driver/ni/digital_read.cpp | 5 +- driver/ni/ni.cpp | 7 +- driver/ni/ni.h | 5 +- driver/opc/dev/client-minimal.py | 3 +- driver/opc/dev/client-tls.py | 5 +- driver/opc/dev/client_encrypted.cpp | 58 +- driver/opc/dev/poetry.lock | 1974 +++++++++++++-------------- driver/opc/dev/server-extended.py | 3 +- driver/opc/dev/server-minimal.py | 18 +- driver/opc/dev/server.cpp | 8 +- driver/opc/dev/server_encrypted.cpp | 73 +- driver/opc/factory.cpp | 21 +- driver/opc/mock_server.h | 12 +- driver/opc/opc.h | 238 ++-- driver/opc/reader.cpp | 282 ++-- driver/opc/reader.h | 143 +- driver/opc/reader_test.cpp | 58 +- driver/opc/scanner.cpp | 97 +- driver/opc/scanner.h | 14 +- driver/opc/scanner_test.cpp | 119 +- driver/opc/util.cpp | 109 +- driver/opc/util.h | 276 ++-- driver/task/manager.cpp | 19 +- driver/task/manager_test.cpp | 60 +- driver/task/task.h | 417 +++--- 35 files changed, 2603 insertions(+), 2354 deletions(-) create mode 100644 driver/main_linux.cpp create mode 100644 driver/main_windows.cpp diff --git a/driver/BUILD.bazel b/driver/BUILD.bazel index a882a04236..fe6dca5032 100644 --- a/driver/BUILD.bazel +++ b/driver/BUILD.bazel @@ -45,7 +45,10 @@ cc_test( cc_binary( name = "driver_main", - srcs = ["main.cpp"], + srcs = select({ + "@platforms//os:windows": ["main_windows.cpp"], + "//conditions:default":["main_linux.cpp"], + }), copts = select({ "@platforms//os:windows": ["/std:c++20"], "@platforms//os:linux": ["-std=c++20"], diff --git a/driver/config/config.h b/driver/config/config.h index 7420a0c549..beb9600034 100644 --- a/driver/config/config.h +++ b/driver/config/config.h @@ -22,175 +22,175 @@ using json = nlohmann::json; namespace config { /// @brief a utility class for improving the experience of parsing JSON-based /// configurations. -class Parser { -public: - std::shared_ptr > errors; - - /// @brief constructs a parser for accessing values on the given JSON configuration. - explicit Parser(json config): errors(std::make_shared >()), - config(std::move(config)) { - } - - /// @brief constructs a parser for accessing values on the given stringified - /// JSON configuration. If the string is not valid JSON, immediately binds an error - /// to the parser. - explicit Parser(const std::string &encoded): errors(std::make_shared >()) { - try { - config = json::parse(encoded); - } catch (const json::parse_error &e) { - noop = true; - field_err("", e.what()); - } - } + class Parser { + public: + std::shared_ptr > errors; - /// @brief default constructor constructs a parser that will fail fast. - Parser(): errors(nullptr), noop(true) { - } + /// @brief constructs a parser for accessing values on the given JSON configuration. + explicit Parser(json config) : errors(std::make_shared >()), + config(std::move(config)) { + } + /// @brief constructs a parser for accessing values on the given stringified + /// JSON configuration. If the string is not valid JSON, immediately binds an error + /// to the parser. + explicit Parser(const std::string &encoded) : errors(std::make_shared >()) { + try { + config = json::parse(encoded); + } catch (const json::parse_error &e) { + noop = true; + field_err("", e.what()); + } + } - /// @brief gets the field at the given path. If the field is not found, - /// accumulates an error in the builder. - template - T required(const std::string &path) { - if (noop) return T(); - const auto iter = config.find(path); - if (iter == config.end()) { - field_err(path, "This field is required"); - return T(); + /// @brief default constructor constructs a parser that will fail fast. + Parser() : errors(nullptr), noop(true) { } - if (iter->is_string() && std::is_arithmetic::value) { - T value; - std::istringstream iss(iter->get()); - if (!(iss >> value)) { - field_err(path, "Expected a number, got " + iter->get()); + + + /// @brief gets the field at the given path. If the field is not found, + /// accumulates an error in the builder. + template + T required(const std::string &path) { + if (noop) return T(); + const auto iter = config.find(path); + if (iter == config.end()) { + field_err(path, "This field is required"); return T(); } - return value; + if (iter->is_string() && std::is_arithmetic::value) { + T value; + std::istringstream iss(iter->get()); + if (!(iss >> value)) { + field_err(path, "Expected a number, got " + iter->get()); + return T(); + } + return value; + } + return get(path, iter); } - return get(path, iter); - } - - /// @brief attempts to pull the value at the provided path. If that path is not found, - /// returns the default. Note that this function will still accumulate an error if the - /// path is found but the value is not of the expected type. - /// @param path The JSON path to the value. - /// @param default_value The default value to return if the path is not found. - template - T optional(const std::string &path, T default_value) { - if (noop) return default_value; - const auto iter = config.find(path); - if (iter == config.end()) return default_value; - return get(path, iter); - } - - /// @brief gets the field at the given path and creates a new parser just for that - /// field. The field must be an object or an array. If the field is not of the - /// expected type, or if the field is not found, accumulates an error in the parser. - /// @param path The JSON path to the field. - Parser child(const std::string &path) const { - if (noop) return {}; - const auto iter = config.find(path); - if (iter == config.end()) { - field_err(path, "This field is required"); - return {}; + + /// @brief attempts to pull the value at the provided path. If that path is not found, + /// returns the default. Note that this function will still accumulate an error if the + /// path is found but the value is not of the expected type. + /// @param path The JSON path to the value. + /// @param default_value The default value to return if the path is not found. + template + T optional(const std::string &path, T default_value) { + if (noop) return default_value; + const auto iter = config.find(path); + if (iter == config.end()) return default_value; + return get(path, iter); } - if (!iter->is_object() && !iter->is_array()) { - field_err(path, "Expected an object or array"); - return {}; + + /// @brief gets the field at the given path and creates a new parser just for that + /// field. The field must be an object or an array. If the field is not of the + /// expected type, or if the field is not found, accumulates an error in the parser. + /// @param path The JSON path to the field. + Parser child(const std::string &path) const { + if (noop) return {}; + const auto iter = config.find(path); + if (iter == config.end()) { + field_err(path, "This field is required"); + return {}; + } + if (!iter->is_object() && !iter->is_array()) { + field_err(path, "Expected an object or array"); + return {}; + } + return {*iter, errors, path_prefix + path + "."}; } - return {*iter, errors, path_prefix + path + "."}; - } - - Parser optional_child(const std::string &path) const { - if (noop) return {}; - const auto iter = config.find(path); - if (iter == config.end()) return {}; - if (!iter->is_object() && !iter->is_array()) { - field_err(path, "Expected an object or array"); - return {}; + + Parser optional_child(const std::string &path) const { + if (noop) return {}; + const auto iter = config.find(path); + if (iter == config.end()) return {}; + if (!iter->is_object() && !iter->is_array()) { + field_err(path, "Expected an object or array"); + return {}; + } + return {*iter, errors, path_prefix + path + "."}; } - return {*iter, errors, path_prefix + path + "."}; - } - - /// @brief Iterates over an array at the given path, executing a function for each element. - /// If the path does not point to an array, logs an error. - /// @param path The JSON path to the array. - /// @param func The function to execute for each element of the array. It should take a - /// Parser as its argument. - void iter( - const std::string &path, - const std::function &func - ) const { - if (noop) return; - const auto iter = config.find(path); - if (iter == config.end())return field_err(path, "This field is required"); - if (!iter->is_array()) return field_err(path, "Expected an array"); - for (size_t i = 0; i < iter->size(); ++i) { - const auto child_path = path_prefix + path + "." + std::to_string(i) + "."; - Parser childParser((*iter)[i], errors, child_path); - func(childParser); + + /// @brief Iterates over an array at the given path, executing a function for each element. + /// If the path does not point to an array, logs an error. + /// @param path The JSON path to the array. + /// @param func The function to execute for each element of the array. It should take a + /// Parser as its argument. + void iter( + const std::string &path, + const std::function &func + ) const { + if (noop) return; + const auto iter = config.find(path); + if (iter == config.end())return field_err(path, "This field is required"); + if (!iter->is_array()) return field_err(path, "Expected an array"); + for (size_t i = 0; i < iter->size(); ++i) { + const auto child_path = path_prefix + path + "." + std::to_string(i) + "."; + Parser childParser((*iter)[i], errors, child_path); + func(childParser); + } + } + + /// @brief binds a new error to the field at the given path. + /// @param path The JSON path to the field. + /// @param message The error message to bind. + void field_err(const std::string &path, const std::string &message) const { + if (noop) return; + errors->push_back({ + {"path", path_prefix + path}, + {"message", message} + }); + } + + /// @returns true if the parser has accumulated no errors, false otherwise. + [[nodiscard]] bool ok() const { + if (noop) return false; + return errors->empty(); } - } - - /// @brief binds a new error to the field at the given path. - /// @param path The JSON path to the field. - /// @param message The error message to bind. - void field_err(const std::string &path, const std::string &message) const { - if (noop) return; - errors->push_back({ - {"path", path_prefix + path}, - {"message", message} - }); - } - - /// @returns true if the parser has accumulated no errors, false otherwise. - [[nodiscard]] bool ok() const { - if (noop) return false; - return errors->empty(); - } - - /// @returns the parser's errors as a JSON object of the form {"errors": [ACCUMULATED_ERRORS]}. - [[nodiscard]] json error_json() const { - json err; - err["errors"] = *errors; - return err; - } - - freighter::Error error() const { - return freighter::Error{synnax::VALIDATION_ERROR, error_json().dump()}; - } /// @returns the parser's errors as a JSON object of the form {"errors": [ACCUMULATED_ERRORS]}. - [[nodiscard]] json get_json() const { - return config; - } - -private: - /// @brief the JSON configuration being parsed. - json config; - /// @brief used for tracking the path of a child parser. - std::string path_prefix; - /// @brief noop means the parser should fail fast. - bool noop = false; - - Parser( - json config, - std::shared_ptr > errors, - std::string path_prefix - ): errors(std::move(errors)), - config(std::move(config)), - path_prefix(std::move(path_prefix)) { - } - - template - T get(const std::string &path, const nlohmann::basic_json<>::iterator &iter) { - try { - return iter->get(); - } catch (const nlohmann::json::type_error &e) { - // slice the error message from index 32 to remove the library error prefix. - field_err(path, e.what() + 32); + [[nodiscard]] json error_json() const { + json err; + err["errors"] = *errors; + return err; + } + + freighter::Error error() const { + return freighter::Error{synnax::VALIDATION_ERROR, error_json().dump()}; + } + + /// @returns the parser's errors as a JSON object of the form {"errors": [ACCUMULATED_ERRORS]}. + [[nodiscard]] json get_json() const { + return config; + } + + private: + /// @brief the JSON configuration being parsed. + json config; + /// @brief used for tracking the path of a child parser. + std::string path_prefix; + /// @brief noop means the parser should fail fast. + bool noop = false; + + Parser( + json config, + std::shared_ptr > errors, + std::string path_prefix + ) : errors(std::move(errors)), + config(std::move(config)), + path_prefix(std::move(path_prefix)) { + } + + template + T get(const std::string &path, const nlohmann::basic_json<>::iterator &iter) { + try { + return iter->get(); + } catch (const nlohmann::json::type_error &e) { + // slice the error message from index 32 to remove the library error prefix. + field_err(path, e.what() + 32); + } + return T(); } - return T(); - } -}; + }; } diff --git a/driver/config/config_test.cpp b/driver/config/config_test.cpp index c43f5beb40..dbb548d574 100644 --- a/driver/config/config_test.cpp +++ b/driver/config/config_test.cpp @@ -15,15 +15,15 @@ #include "driver/config/config.h" TEST(testConfig, testParserHappyPath) { - struct MyConfig { + struct MyConfig { std::string name; std::float_t dog; }; MyConfig v; const json j = { - {"name", "test"}, - {"dog", 1.0} + {"name", "test"}, + {"dog", 1.0} }; config::Parser parser(j); v.name = parser.required("name"); @@ -57,8 +57,8 @@ TEST(testConfig, testParserFieldHasInvalidType) { }; MyConfig v; json j = { - {"name", "test"}, - {"dog", "1.0"} + {"name", "test"}, + {"dog", "1.0"} }; config::Parser parser(j); v.name = parser.required("name"); @@ -81,10 +81,10 @@ TEST(testConfig, testParserFieldChildHappyPath) { }; json j = { - {"child", { - {"name", "test"}, - {"dog", 1.0} - }} + {"child", { + {"name", "test"}, + {"dog", 1.0} + }} }; MyConfig v; config::Parser parser(j); @@ -130,10 +130,10 @@ TEST(testConfig, testParserChildFieldInvalidType) { }; json j = { - {"child", { - {"name", "test"}, - {"dog", "1.0"} - }} + {"child", { + {"name", "test"}, + {"dog", "1.0"} + }} }; MyConfig v; config::Parser parser(j); @@ -158,21 +158,21 @@ TEST(testConfig, testIterHappyPath) { }; const json j = { - {"children", { - { - {"name", "test1"}, - {"dog", 1.0} - }, - { - {"name", "test2"}, - {"dog", 2.0} - } - }} + {"children", { + { + {"name", "test1"}, + {"dog", 1.0} + }, + { + {"name", "test2"}, + {"dog", 2.0} + } + }} }; MyConfig v; const config::Parser parser(j); - parser.iter("children", [&](config::Parser& child_parser) { + parser.iter("children", [&](config::Parser &child_parser) { MyChildConfig child; child.name = child_parser.required("name"); child.dog = child_parser.optional("dog", 12); @@ -197,7 +197,7 @@ TEST(testConfig, testIterFieldDoesNotExist) { const json j = {}; MyConfig v; const config::Parser parser(j); - parser.iter("children", [&](config::Parser& child_parser) { + parser.iter("children", [&](config::Parser &child_parser) { MyChildConfig child; child.name = child_parser.required("name"); child.dog = child_parser.optional("dog", 12); @@ -221,15 +221,15 @@ TEST(testConfig, testIterFieldIsNotArray) { }; const json j = { - {"children", { - {"name", "test1"}, - {"dog", 1.0} - } - } + {"children", { + {"name", "test1"}, + {"dog", 1.0} + } + } }; MyConfig v; const config::Parser parser(j); - parser.iter("children", [&](config::Parser& child_parser) { + parser.iter("children", [&](config::Parser &child_parser) { MyChildConfig child; child.name = child_parser.required("name"); child.dog = child_parser.optional("dog", 12); @@ -253,21 +253,21 @@ TEST(testConfig, testIterFieldChildFieldInvalidType) { }; const json j = { - {"children", { - { - {"name", "test1"}, - {"dog", "1.0"} - }, - { - {"name", "test2"}, - {"dog", 2.0} - } - }} + {"children", { + { + {"name", "test1"}, + {"dog", "1.0"} + }, + { + {"name", "test2"}, + {"dog", 2.0} + } + }} }; MyConfig v; const config::Parser parser(j); - parser.iter("children", [&](config::Parser& child_parser) { + parser.iter("children", [&](config::Parser &child_parser) { MyChildConfig child; child.name = child_parser.required("name"); child.dog = child_parser.optional("dog", 12); diff --git a/driver/errors/errors.h b/driver/errors/errors.h index ebe8bf9694..f5c1ae8deb 100644 --- a/driver/errors/errors.h +++ b/driver/errors/errors.h @@ -8,6 +8,7 @@ // included in the file licenses/APL.txt. #pragma once + #include #include "client/cpp/errors/errors.h" #include "freighter/cpp/freighter.h" diff --git a/driver/loop/loop.h b/driver/loop/loop.h index 99f7cee0d8..f72df99cf5 100644 --- a/driver/loop/loop.h +++ b/driver/loop/loop.h @@ -16,69 +16,69 @@ namespace loop { -class Timer { -public: - Timer() = default; + class Timer { + public: + Timer() = default; - explicit Timer(const synnax::TimeSpan &interval): interval(interval), last(std::chrono::high_resolution_clock::now()) { - } + explicit Timer(const synnax::TimeSpan &interval) : interval(interval), + last(std::chrono::high_resolution_clock::now()) { + } - explicit Timer(const synnax::Rate &rate): interval(rate.period()), last(std::chrono::high_resolution_clock::now()) { - VLOG(1) << "[timer] interval set to " << rate.period() << " ns"; - } + explicit Timer(const synnax::Rate &rate) : interval(rate.period()), + last(std::chrono::high_resolution_clock::now()) { + VLOG(1) << "[timer] interval set to " << rate.period() << " ns"; + } - void sleep(std::chrono::nanoseconds ns){ - auto end = std::chrono::high_resolution_clock::now() + ns; - while(end > std::chrono::high_resolution_clock::now()); - } + void sleep(std::chrono::nanoseconds ns) { + auto end = std::chrono::high_resolution_clock::now() + ns; + while (end > std::chrono::high_resolution_clock::now()); + } - void exactSleep(std::chrono::nanoseconds ns){ - auto end = std::chrono::high_resolution_clock::now() + ns; - uint64_t resolution = 100000; // 0.1 ms - uint64_t nanoseconds = ns.count(); - // estimate for 0.1 millseconds (100000 nanoseconds) - static uint64_t estimate = resolution*10; // overestimate innitially - static uint64_t mean = resolution*10; - static uint64_t M2 = 0; - static uint64_t count = 1; + void exactSleep(std::chrono::nanoseconds ns) { + auto end = std::chrono::high_resolution_clock::now() + ns; + uint64_t resolution = 100000; // 0.1 ms + uint64_t nanoseconds = ns.count(); + // estimate for 0.1 millseconds (100000 nanoseconds) + static uint64_t estimate = resolution * 10; // overestimate innitially + static uint64_t mean = resolution * 10; + static uint64_t M2 = 0; + static uint64_t count = 1; - while(nanoseconds > estimate){ - // sleep for specified resolution - auto start = std::chrono::high_resolution_clock::now(); - sleep(std::chrono::nanoseconds(resolution)); - auto end = std::chrono::high_resolution_clock::now(); + while (nanoseconds > estimate) { + // sleep for specified resolution + auto start = std::chrono::high_resolution_clock::now(); + sleep(std::chrono::nanoseconds(resolution)); + auto end = std::chrono::high_resolution_clock::now(); - // get actual elapsed time - auto elapsed = std::chrono::duration_cast(end - start).count(); - uint64_t delta = elapsed - mean; - mean += delta / count; - M2 += delta * (elapsed - mean); - estimate = mean + 1* std::sqrt(M2 / count); - count++; + // get actual elapsed time + auto elapsed = std::chrono::duration_cast(end - start).count(); + uint64_t delta = elapsed - mean; + mean += delta / count; + M2 += delta * (elapsed - mean); + estimate = mean + 1 * std::sqrt(M2 / count); + count++; + } + while (end > std::chrono::high_resolution_clock::now()); } - while(end > std::chrono::high_resolution_clock::now()); - } - std::pair wait() { - const auto now = std::chrono::high_resolution_clock::now(); - const auto elapsed = now - last; - const auto interval_nanos = interval.nanoseconds(); - if (elapsed < interval_nanos) { - auto remaining = interval_nanos - elapsed; - // std::this_thread::sleep_for(std::chrono::nanoseconds(remaining)); - this->exactSleep(std::chrono::nanoseconds(remaining)); - last = std::chrono::high_resolution_clock::now(); - return {elapsed, true}; - } - last = now; - return {elapsed, false}; - } + std::pair wait() { + const auto now = std::chrono::high_resolution_clock::now(); + const auto elapsed = now - last; + const auto interval_nanos = interval.nanoseconds(); + if (elapsed < interval_nanos) { + auto remaining = interval_nanos - elapsed; + // std::this_thread::sleep_for(std::chrono::nanoseconds(remaining)); + this->exactSleep(std::chrono::nanoseconds(remaining)); + last = std::chrono::high_resolution_clock::now(); + return {elapsed, true}; + } + last = now; + return {elapsed, false}; + } - - -private: - synnax::TimeSpan interval; - std::chrono::time_point last; -}; + private: + synnax::TimeSpan interval; + std::chrono::time_point last; + }; } \ No newline at end of file diff --git a/driver/loop/loop_test.cpp b/driver/loop/loop_test.cpp index 185287e9c7..794e83f143 100644 --- a/driver/loop/loop_test.cpp +++ b/driver/loop/loop_test.cpp @@ -11,10 +11,9 @@ #include "driver/loop/loop.h" // @brief it should correctly wait for an expended number of requests. -TEST(LoopTest, testPreciseTimer) -{ +TEST(LoopTest, testPreciseTimer) { loop::Timer timer; - for(int i = 0; i < 1000; i ++){ + for (int i = 0; i < 1000; i++) { auto start = std::chrono::high_resolution_clock::now(); timer.exactSleep(std::chrono::nanoseconds(10000000)); auto end = std::chrono::high_resolution_clock::now(); diff --git a/driver/main_linux.cpp b/driver/main_linux.cpp new file mode 100644 index 0000000000..d15826b38e --- /dev/null +++ b/driver/main_linux.cpp @@ -0,0 +1,112 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +#include +#include +#include +#include + +#include "nlohmann/json.hpp" +#include "glog/logging.h" + +#include "driver/driver.h" +#include "task/task.h" +#include "driver/opc/opc.h" +#include "driver/meminfo/meminfo.h" + +using json = nlohmann::json; + +std::unique_ptr d; + +std::pair retrieveDriverRack( + const driver::Config &config, + breaker::Breaker &breaker, + const std::shared_ptr &client +) { + std::pair res; + if (config.rack_key != 0) + res = client->hardware.retrieveRack(config.rack_key); + else + res = client->hardware.retrieveRack(config.rack_name); + auto err = res.second; + if (err.matches(freighter::UNREACHABLE) && breaker.wait(err.message())) + return retrieveDriverRack(config, breaker, client); + return res; +} + +std::atomic stopped = false; + +int main(int argc, char *argv[]) { + FLAGS_logtostderr = 1; + google::InitGoogleLogging(argv[0]); + + std::string config_path = "./synnax-driver-config.json"; + if (argc > 1) config_path = argv[1]; // Use the first argument as the config path if provided + + LOG(INFO) << "[main] starting up"; + + auto cfg_json = driver::readConfig(config_path); + if (cfg_json.empty()) + LOG(INFO) << "[main] no configuration found at " << config_path << + ". We'll just use the default configuration"; + else { + LOG(INFO) << "[main] loaded configuration from " << config_path; + } + auto [cfg, cfg_err] = driver::parseConfig(cfg_json); + if (cfg_err) { + LOG(FATAL) << "[main] failed to parse configuration: " << cfg_err; + return 1; + } + LOG(INFO) << "[main] configuration parsed successfully"; + LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << cfg.client_config.port; + + + auto client = std::make_shared(cfg.client_config); + + auto breaker = breaker::Breaker(cfg.breaker_config); + breaker.start(); + LOG(INFO) << "[main] retrieving meta-data"; + auto [rack, rack_err] = retrieveDriverRack(cfg, breaker, client); + breaker.stop(); + if (rack_err) { + LOG(FATAL) << "[main] failed to retrieve meta-data - can't proceed without it. Exiting." << rack_err; + return 1; + } + + std::unique_ptr opc_factory = std::make_unique(); + std::unique_ptr meminfo_factory = std::make_unique< + meminfo::Factory>(); + + std::vector > factories = { + std::move(opc_factory), std::move(meminfo_factory) + }; + + std::unique_ptr factory = std::make_unique( + std::move(factories) + ); + + d = std::make_unique( + rack, + client, + std::move(factory), + cfg.breaker_config + ); + signal(SIGINT, [](int) { + if (stopped) return; + LOG(INFO) << "[main] received interrupt signal. shutting down"; + stopped = true; + d->stop(); + }); + auto err = d->run(); + if (err) + LOG(FATAL) << "[main] failed to start: " << err; + + LOG(INFO) << "[main] shutdown complete"; + return 0; +} diff --git a/driver/main_windows.cpp b/driver/main_windows.cpp new file mode 100644 index 0000000000..d1c64fc66c --- /dev/null +++ b/driver/main_windows.cpp @@ -0,0 +1,114 @@ +// Copyright 2024 Synnax Labs, Inc. +// +// Use of this software is governed by the Business Source License included in the file +// licenses/BSL.txt. +// +// As of the Change Date specified in that file, in accordance with the Business Source +// License, use of this software will be governed by the Apache License, Version 2.0, +// included in the file licenses/APL.txt. + +#include +#include +#include +#include + +#include "nlohmann/json.hpp" +#include "glog/logging.h" + +#include "driver/driver.h" +#include "task/task.h" +#include "driver/opc/opc.h" +#include "driver/meminfo/meminfo.h" +#include "driver/ni/ni.h" + +using json = nlohmann::json; + +std::unique_ptr d; + +std::pair retrieveDriverRack( + const driver::Config &config, + breaker::Breaker &breaker, + const std::shared_ptr &client +) { + std::pair res; + if (config.rack_key != 0) + res = client->hardware.retrieveRack(config.rack_key); + else + res = client->hardware.retrieveRack(config.rack_name); + auto err = res.second; + if (err.matches(freighter::UNREACHABLE) && breaker.wait(err.message())) + return retrieveDriverRack(config, breaker, client); + return res; +} + +std::atomic stopped = false; + +int main(int argc, char *argv[]) { + FLAGS_logtostderr = 1; + google::InitGoogleLogging(argv[0]); + + std::string config_path = "./synnax-driver-config.json"; + if (argc > 1) config_path = argv[1]; // Use the first argument as the config path if provided + + LOG(INFO) << "[main] starting up"; + + auto cfg_json = driver::readConfig(config_path); + if (cfg_json.empty()) + LOG(INFO) << "[main] no configuration found at " << config_path << + ". We'll just use the default configuration"; + else { + LOG(INFO) << "[main] loaded configuration from " << config_path; + } + auto [cfg, cfg_err] = driver::parseConfig(cfg_json); + if (cfg_err) { + LOG(FATAL) << "[main] failed to parse configuration: " << cfg_err; + return 1; + } + LOG(INFO) << "[main] configuration parsed successfully"; + LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << cfg.client_config.port; + + + auto client = std::make_shared(cfg.client_config); + + auto breaker = breaker::Breaker(cfg.breaker_config); + breaker.start(); + LOG(INFO) << "[main] retrieving meta-data"; + auto [rack, rack_err] = retrieveDriverRack(cfg, breaker, client); + breaker.stop(); + if (rack_err) { + LOG(FATAL) << "[main] failed to retrieve meta-data - can't proceed without it. Exiting." << rack_err; + return 1; + } + + std::unique_ptr opc_factory = std::make_unique(); + std::unique_ptr meminfo_factory = std::make_unique< + meminfo::Factory>(); + std::unique_ptr ni_factory = std::make_unique(); + + std::vector > factories = { + std::move(opc_factory), std::move(meminfo_factory), std::move(ni_factory) + }; + + std::unique_ptr factory = std::make_unique( + std::move(factories) + ); + + d = std::make_unique( + rack, + client, + std::move(factory), + cfg.breaker_config + ); + signal(SIGINT, [](int) { + if (stopped) return; + LOG(INFO) << "[main] received interrupt signal. shutting down"; + stopped = true; + d->stop(); + }); + auto err = d->run(); + if (err) + LOG(FATAL) << "[main] failed to start: " << err; + + LOG(INFO) << "[main] shutdown complete"; + return 0; +} diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index d1d52962df..709b82c6d3 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -56,20 +56,19 @@ namespace ni { } explicit Analog(config::Parser &parser, TaskHandle task_handle, std::string name) - : task_handle(task_handle), - min_val(parser.required("min_val")), - max_val(parser.required("max_val")), - terminal_config(getTerminalConfig(parser.required("terminal_config"))), - units(DAQmx_Val_Volts), - sy_key(parser.required("channel")), - name(name), - type(parser.required("type")), - scale_config(getScaleConfig(parser)) - { + : task_handle(task_handle), + min_val(parser.required("min_val")), + max_val(parser.required("max_val")), + terminal_config(getTerminalConfig(parser.required("terminal_config"))), + units(DAQmx_Val_Volts), + sy_key(parser.required("channel")), + name(name), + type(parser.required("type")), + scale_config(getScaleConfig(parser)) { assert(parser.ok()); LOG(INFO) << "Analog Channel constructor "; // check name of channel - if(this->scale_config.type != "none"){ + if (this->scale_config.type != "none") { LOG(INFO) << "Scale type: " << this->scale_config.type; // strcpy(this->scale_name, this->scale_config.name.c_str()); // FIXME this->units = DAQmx_Val_FromCustomScale; @@ -99,7 +98,7 @@ namespace ni { public: explicit Voltage(config::Parser &parser, TaskHandle task_handle, std::string name) - : Analog(parser, task_handle, name){ + : Analog(parser, task_handle, name) { } ~Voltage() = default; @@ -107,27 +106,27 @@ namespace ni { int32 createNIChannel() override { LOG(INFO) << "Creating Voltage Channel"; - if(this->scale_config.type == "none"){ - return ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - DAQmx_Val_Volts, + if (this->scale_config.type == "none") { + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_Volts, NULL - ); - } else{ - return ni::NiDAQmxInterface::CreateAIVoltageChan( - this->task_handle, this->name.c_str(), - "", - this->terminal_config, - this->min_val, - this->max_val, - DAQmx_Val_FromCustomScale, + ); + } else { + return ni::NiDAQmxInterface::CreateAIVoltageChan( + this->task_handle, this->name.c_str(), + "", + this->terminal_config, + this->min_val, + this->max_val, + DAQmx_Val_FromCustomScale, this->scale_config.name.c_str() - ); - + ); + } } }; diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index b9e775bc9c..73ded23984 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -23,48 +23,29 @@ using json = nlohmann::json; -void ni::AnalogReadSource::parseChannels(config::Parser &parser){ +void ni::AnalogReadSource::parseChannels(config::Parser &parser) { LOG(INFO) << "[NI Reader] Parsing Channels for task " << this->reader_config.task_name; // now parse the channels parser.iter("channels", - [&](config::Parser &channel_builder){ + [&](config::Parser &channel_builder) { LOG(INFO) << channel_builder.get_json().dump(4); ni::ChannelConfig config; // analog channel names are formatted: /ai - config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); + config.name = (this->reader_config.device_name + "/ai" + + std::to_string(channel_builder.required("port"))); config.channel_key = channel_builder.required("channel"); config.channel_type = channel_builder.required("channel_type"); - // config.min_val = channel_builder.required("min_val"); - // config.max_val = channel_builder.required("max_val"); - - // auto terminal_config = channel_builder.required("terminal_config"); - // config.terminal_config = (terminal_config == "PseudoDiff") ? DAQmx_Val_PseudoDiff - // : (terminal_config == "Diff") ? DAQmx_Val_Diff - // : (terminal_config == "NRSE") ? DAQmx_Val_NRSE - // : (terminal_config == "RSE") ? DAQmx_Val_RSE - // : DAQmx_Val_Cfg_Default; - - // // check for custom scale - // std::string scale_name = std::to_string(config.channel_key) + "_scale"; - // auto scale_parser = channel_builder.child("custom_scale"); - // config.scale_config = ScaleConfig(scale_parser, scale_name); - // if(!scale_parser.ok()){ - // LOG(ERROR) << "[NI Reader] Failed to parse custom scale for channel " << config.name; - // this->ok_state = false; - // return; - // } - // TODO: check scale parser in the function below - config.ni_channel = this->parseChannel(channel_builder, config.channel_type); - + config.ni_channel = this->parseChannel(channel_builder, config.channel_type); + this->reader_config.channels.push_back(config); }); } -ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type){ +ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type) { // if (channel_type == "ai_accel") { // return Accel(parser, this->task_handle); // } @@ -161,25 +142,25 @@ ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::strin } -int ni::AnalogReadSource::configureTiming(){ - if(this->reader_config.timing_source == "none"){ +int ni::AnalogReadSource::configureTiming() { + if (this->reader_config.timing_source == "none") { if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, - "", - this->reader_config.sample_rate, - DAQmx_Val_Rising, - DAQmx_Val_ContSamps, - this->reader_config.sample_rate))){ - LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; - this->ok_state = false; - return -1; - } - } else{ + "", + this->reader_config.sample_rate, + DAQmx_Val_Rising, + DAQmx_Val_ContSamps, + this->reader_config.sample_rate))) { + LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; + this->ok_state = false; + return -1; + } + } else { if (this->checkNIError(ni::NiDAQmxInterface::CfgSampClkTiming(this->task_handle, - this->reader_config.timing_source.c_str(), - this->reader_config.sample_rate, - DAQmx_Val_Rising, - DAQmx_Val_ContSamps, - this->reader_config.sample_rate))){ + this->reader_config.timing_source.c_str(), + this->reader_config.sample_rate, + DAQmx_Val_Rising, + DAQmx_Val_ContSamps, + this->reader_config.sample_rate))) { LOG(ERROR) << "[NI Reader] failed while configuring timing for task " << this->reader_config.task_name; this->ok_state = false; return -1; @@ -194,52 +175,54 @@ int ni::AnalogReadSource::configureTiming(){ return 0; } -void ni::AnalogReadSource::acquireData(){ - while(this->running){ +void ni::AnalogReadSource::acquireData() { + while (this->running) { DataPacket data_packet; data_packet.data = new double[this->bufferSize]; data_packet.t0 = (uint64_t) ((synnax::TimeStamp::now()).value); if (this->checkNIError(ni::NiDAQmxInterface::ReadAnalogF64( - this->task_handle, - this->numSamplesPerChannel, - -1, - DAQmx_Val_GroupByChannel, - static_cast(data_packet.data), - this->bufferSize, - &data_packet.samplesReadPerChannel, - NULL))){ + this->task_handle, + this->numSamplesPerChannel, + -1, + DAQmx_Val_GroupByChannel, + static_cast(data_packet.data), + this->bufferSize, + &data_packet.samplesReadPerChannel, + NULL))) { this->logError("failed while reading analog data for task " + this->reader_config.task_name); } - data_packet.tf = (uint64_t)((synnax::TimeStamp::now()).value); + data_packet.tf = (uint64_t) ((synnax::TimeStamp::now()).value); data_queue.enqueue(data_packet); } } -std::pair ni::AnalogReadSource::read(){ +std::pair ni::AnalogReadSource::read() { synnax::Frame f = synnax::Frame(numChannels); // sleep per stream rate - std::this_thread::sleep_for(std::chrono::nanoseconds((uint64_t)((1.0 / this->reader_config.stream_rate )* 1000000000))); + std::this_thread::sleep_for( + std::chrono::nanoseconds((uint64_t) ((1.0 / this->reader_config.stream_rate) * 1000000000))); // take data off of queue - auto [d,valid] = data_queue.dequeue(); + auto [d, valid] = data_queue.dequeue(); + + if (!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, + "Failed to read data from queue")); - if(!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "Failed to read data from queue")); - - double* data = static_cast(d.data); + double *data = static_cast(d.data); // interpolate timestamps between the initial and final timestamp to ensure non-overlapping timestamps between batched reads - uint64_t incr = ( (d.tf- d.t0) / this->numSamplesPerChannel ); - + uint64_t incr = ((d.tf - d.t0) / this->numSamplesPerChannel); + // Construct and populate index channel std::vector time_index(this->numSamplesPerChannel); for (uint64_t i = 0; i < d.samplesReadPerChannel; ++i) - time_index[i] = d.t0 + (std::uint64_t)(incr * i); - + time_index[i] = d.t0 + (std::uint64_t) (incr * i); + // Construct and populate synnax frame uint64_t data_index = 0; - for(int i = 0; i < numChannels; i++){ - if(this->reader_config.channels[i].channel_type == "index") { + for (int i = 0; i < numChannels; i++) { + if (this->reader_config.channels[i].channel_type == "index") { f.add(this->reader_config.channels[i].channel_key, synnax::Series(time_index, synnax::TIMESTAMP)); continue; } @@ -257,15 +240,15 @@ std::pair ni::AnalogReadSource::read(){ return std::make_pair(std::move(f), freighter::NIL); } -int ni::AnalogReadSource::createChannels(){ +int ni::AnalogReadSource::createChannels() { auto channels = this->reader_config.channels; - for (auto &channel : channels){ - this->numChannels++; - if (channel.channel_type == "index") continue; + for (auto &channel: channels) { + this->numChannels++; + if (channel.channel_type == "index") continue; this->numAIChannels++; this->checkNIError(channel.ni_channel.createNIScale()); - this->checkNIError(channel.ni_channel.createNIChannel()); - if (!this->ok()){ + this->checkNIError(channel.ni_channel.createNIChannel()); + if (!this->ok()) { LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; return -1; } diff --git a/driver/ni/digital_read.cpp b/driver/ni/digital_read.cpp index 253d0a4bee..f84b305489 100644 --- a/driver/ni/digital_read.cpp +++ b/driver/ni/digital_read.cpp @@ -117,8 +117,9 @@ std::pair ni::DigitalReadSource::read() { // take data off of queue auto [d, valid] = data_queue.dequeue(); - if (!valid) return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, - "Failed to read data from queue")); + if (!valid) + return std::make_pair(std::move(f), freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, + "Failed to read data from queue")); uInt8 * data = static_cast(d.data); diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 1d78bfeb3c..55a31022fc 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -32,7 +32,7 @@ const std::map ni::UNITS_MAP = { {"KilogramForce", DAQmx_Val_KilogramForce}, {"PoundsPerSquareInch", DAQmx_Val_PoundsPerSquareInch}, {"Bar", DAQmx_Val_Bar}, - {"Pascals", DAQmx_Val_Pascals}, + {"Pascals", DAQmx_Val_Pascals}, {"VoltsPerVolt", DAQmx_Val_VoltsPerVolt}, {"mVoltsPerVolt", DAQmx_Val_mVoltsPerVolt}, {"NewtonMeters", DAQmx_Val_NewtonMeters}, @@ -50,7 +50,7 @@ const std::map ni::UNITS_MAP = { void ni::Source::getIndexKeys() { LOG(INFO) << "[NI Reader] acquiring index channels for task " << this->reader_config.task_name; - std::set index_keys; + std::set < std::uint32_t > index_keys; //iterate through channels in reader config for (auto &channel: this->reader_config.channels) { auto [channel_info, err] = this->ctx->client->channels.retrieve(channel.channel_key); @@ -160,7 +160,8 @@ int ni::Source::init() { } LOG(INFO) << "[NI Reader] configuring timing for NI hardware for task " << this->reader_config.task_name; - if (this->configureTiming()) this->logError( + if (this->configureTiming()) + this->logError( "[NI Reader] Failed while configuring timing for NI hardware for task " + this->reader_config.task_name); diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 1594624de3..5b0d0a0a68 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -151,7 +151,10 @@ namespace ni { int configureTiming() override; int createChannels() override; - std::shared_ptr parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name); + + std::shared_ptr + parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name); + void parseChannels(config::Parser &parser) override; int createChannel(ChannelConfig &channel); diff --git a/driver/opc/dev/client-minimal.py b/driver/opc/dev/client-minimal.py index dccf607388..f95568d415 100644 --- a/driver/opc/dev/client-minimal.py +++ b/driver/opc/dev/client-minimal.py @@ -17,7 +17,6 @@ async def main(): - print(f"Connecting to {url} ...") async with Client(url=url) as client: print(await client.nodes.root.get_children()) @@ -66,4 +65,4 @@ async def main(): if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file + asyncio.run(main()) diff --git a/driver/opc/dev/client-tls.py b/driver/opc/dev/client-tls.py index c14644f21a..a77888c132 100644 --- a/driver/opc/dev/client-tls.py +++ b/driver/opc/dev/client-tls.py @@ -13,6 +13,7 @@ import socket from pathlib import Path from cryptography.x509.oid import ExtendedKeyUsageOID + sys.path.insert(0, "..") from asyncua import Client from asyncua.crypto.security_policies import SecurityPolicyBasic256Sha256 @@ -21,7 +22,6 @@ from asyncua.crypto.truststore import TrustStore from asyncua import ua - logging.basicConfig(level=logging.INFO) _logger = logging.getLogger(__name__) @@ -31,6 +31,7 @@ cert = Path("client.der") private_key = Path("client.key.der") + async def task(loop): host_name = socket.gethostname() client_app_uri = f"urn:{host_name}:foobar:myselfsignedclient" @@ -82,4 +83,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/driver/opc/dev/client_encrypted.cpp b/driver/opc/dev/client_encrypted.cpp index ab603902a0..c3e6f20485 100644 --- a/driver/opc/dev/client_encrypted.cpp +++ b/driver/opc/dev/client_encrypted.cpp @@ -27,7 +27,9 @@ # include # define sleep_ms(ms) Sleep(ms) #else + # include + # define sleep_ms(ms) usleep(ms * 1000) #endif @@ -36,24 +38,25 @@ * @param path specifies the file name given in argv[] * @return Returns the file content after parsing */ static UA_INLINE UA_ByteString + loadFile(const char *const path) { UA_ByteString fileContents = UA_STRING_NULL; /* Open the file */ FILE *fp = fopen(path, "rb"); - if(!fp) { + if (!fp) { errno = 0; /* We read errno also from the tcp layer... */ return fileContents; } /* Get the file length, allocate the data and read */ fseek(fp, 0, SEEK_END); - fileContents.length = (size_t)ftell(fp); - fileContents.data = (UA_Byte *)UA_malloc(fileContents.length * sizeof(UA_Byte)); - if(fileContents.data) { + fileContents.length = (size_t) ftell(fp); + fileContents.data = (UA_Byte *) UA_malloc(fileContents.length * sizeof(UA_Byte)); + if (fileContents.data) { fseek(fp, 0, SEEK_SET); size_t read = fread(fileContents.data, sizeof(UA_Byte), fileContents.length, fp); - if(read != fileContents.length) + if (read != fileContents.length) UA_ByteString_clear(&fileContents); } else { fileContents.length = 0; @@ -64,16 +67,17 @@ loadFile(const char *const path) { } static UA_INLINE UA_StatusCode -writeFile(const char* const path, const UA_ByteString buffer) { + +writeFile(const char *const path, const UA_ByteString buffer) { FILE *fp = NULL; fp = fopen(path, "wb"); - if(fp == NULL) + if (fp == NULL) return UA_STATUSCODE_BADINTERNALERROR; - for(UA_UInt32 bufIndex = 0; bufIndex < buffer.length; bufIndex++) { + for (UA_UInt32 bufIndex = 0; bufIndex < buffer.length; bufIndex++) { int retVal = fputc(buffer.data[bufIndex], fp); - if(retVal == EOF) { + if (retVal == EOF) { fclose(fp); return UA_STATUSCODE_BADINTERNALERROR; } @@ -85,8 +89,8 @@ writeFile(const char* const path, const UA_ByteString buffer) { #define MIN_ARGS 4 -int main(int argc, char* argv[]) { - if(argc < MIN_ARGS) { +int main(int argc, char *argv[]) { + if (argc < MIN_ARGS) { UA_LOG_FATAL(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "Arguments are missing. The required arguments are " " " @@ -99,17 +103,17 @@ int main(int argc, char* argv[]) { /* Load certificate and private key */ UA_ByteString certificate = loadFile(argv[2]); - UA_ByteString privateKey = loadFile(argv[3]); + UA_ByteString privateKey = loadFile(argv[3]); /* Load the trustList. Load revocationList is not supported now */ size_t trustListSize = 0; - if(argc > MIN_ARGS) - trustListSize = (size_t)argc-MIN_ARGS; - UA_STACKARRAY(UA_ByteString, trustList, trustListSize+1); - for(size_t trustListCount = 0; trustListCount < trustListSize; trustListCount++) - trustList[trustListCount] = loadFile(argv[trustListCount+4]); + if (argc > MIN_ARGS) + trustListSize = (size_t) argc - MIN_ARGS; + UA_STACKARRAY(UA_ByteString, trustList, trustListSize + 1); + for (size_t trustListCount = 0; trustListCount < trustListSize; trustListCount++) + trustList[trustListCount] = loadFile(argv[trustListCount + 4]); - UA_ByteString *revocationList = NULL; + UA_ByteString * revocationList = NULL; size_t revocationListSize = 0; UA_Client *client = UA_Client_new(); @@ -118,25 +122,25 @@ int main(int argc, char* argv[]) { UA_String_clear(&cc->clientDescription.applicationUri); cc->clientDescription.applicationUri = UA_STRING_ALLOC("urn:open62541.server.application"); UA_StatusCode retval = UA_ClientConfig_setDefaultEncryption(cc, certificate, privateKey, - trustList, trustListSize, - revocationList, revocationListSize); - if(retval != UA_STATUSCODE_GOOD) { + trustList, trustListSize, + revocationList, revocationListSize); + if (retval != UA_STATUSCODE_GOOD) { UA_LOG_FATAL(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, - "Failed to set encryption." ); + "Failed to set encryption."); UA_Client_delete(client); return EXIT_FAILURE; } UA_ByteString_clear(&certificate); UA_ByteString_clear(&privateKey); - for(size_t deleteCount = 0; deleteCount < trustListSize; deleteCount++) { + for (size_t deleteCount = 0; deleteCount < trustListSize; deleteCount++) { UA_ByteString_clear(&trustList[deleteCount]); } /* Secure client connect */ cc->securityMode = UA_MESSAGESECURITYMODE_SIGNANDENCRYPT; /* require encryption */ retval = UA_Client_connect(client, endpointUrl); - if(retval != UA_STATUSCODE_GOOD) { + if (retval != UA_STATUSCODE_GOOD) { UA_Client_delete(client); return EXIT_FAILURE; } @@ -148,9 +152,9 @@ int main(int argc, char* argv[]) { const UA_NodeId nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS_CURRENTTIME); retval = UA_Client_readValueAttribute(client, nodeId, &value); - if(retval == UA_STATUSCODE_GOOD && - UA_Variant_hasScalarType(&value, &UA_TYPES[UA_TYPES_DATETIME])) { - UA_DateTime raw_date = *(UA_DateTime *) value.data; + if (retval == UA_STATUSCODE_GOOD && + UA_Variant_hasScalarType(&value, &UA_TYPES[UA_TYPES_DATETIME])) { + UA_DateTime raw_date = *(UA_DateTime *) value.data; UA_DateTimeStruct dts = UA_DateTime_toStruct(raw_date); UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "date is: %u-%u-%u %u:%u:%u.%03u\n", dts.day, dts.month, dts.year, dts.hour, dts.min, dts.sec, dts.milliSec); diff --git a/driver/opc/dev/poetry.lock b/driver/opc/dev/poetry.lock index 9a6e69c52d..6d4a0b1011 100644 --- a/driver/opc/dev/poetry.lock +++ b/driver/opc/dev/poetry.lock @@ -7,8 +7,8 @@ description = "File support for asyncio." optional = false python-versions = ">=3.7" files = [ - {file = "aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107"}, - {file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"}, + { file = "aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107" }, + { file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a" }, ] [[package]] @@ -18,8 +18,8 @@ description = "asyncio bridge to the standard sqlite3 module" optional = false python-versions = ">=3.8" files = [ - {file = "aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6"}, - {file = "aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7"}, + { file = "aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6" }, + { file = "aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7" }, ] [package.dependencies] @@ -36,8 +36,8 @@ description = "" optional = false python-versions = "<4.0,>=3.11" files = [ - {file = "alamos-0.2.45-py3-none-any.whl", hash = "sha256:5d7f5e1001a401de9ad895cab3b5bc41395b28cd3f6a0396530a2e555a036c5d"}, - {file = "alamos-0.2.45.tar.gz", hash = "sha256:79cda473f2ee9bd2a9d5d6c0e35cec7da3c55e3ad0eb8d61f10510ca64a59eb2"}, + { file = "alamos-0.2.45-py3-none-any.whl", hash = "sha256:5d7f5e1001a401de9ad895cab3b5bc41395b28cd3f6a0396530a2e555a036c5d" }, + { file = "alamos-0.2.45.tar.gz", hash = "sha256:79cda473f2ee9bd2a9d5d6c0e35cec7da3c55e3ad0eb8d61f10510ca64a59eb2" }, ] [package.dependencies] @@ -54,8 +54,8 @@ description = "Pure Python OPC-UA client and server library" optional = false python-versions = "*" files = [ - {file = "asyncua-1.1.0-py3-none-any.whl", hash = "sha256:620e191ff4e0964fc4b80d1ae2203844c2faa815cddec999927e87c1d1c6c4f2"}, - {file = "asyncua-1.1.0.tar.gz", hash = "sha256:189f1dd12f270e44ffbc9ecd45c56998d6062df08737ce91a4401007acb237b4"}, + { file = "asyncua-1.1.0-py3-none-any.whl", hash = "sha256:620e191ff4e0964fc4b80d1ae2203844c2faa815cddec999927e87c1d1c6c4f2" }, + { file = "asyncua-1.1.0.tar.gz", hash = "sha256:189f1dd12f270e44ffbc9ecd45c56998d6062df08737ce91a4401007acb237b4" }, ] [package.dependencies] @@ -75,8 +75,8 @@ description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, + { file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" }, + { file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f" }, ] [[package]] @@ -86,58 +86,58 @@ description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, + { file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088" }, + { file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9" }, + { file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673" }, + { file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896" }, + { file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684" }, + { file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7" }, + { file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614" }, + { file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743" }, + { file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d" }, + { file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a" }, + { file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1" }, + { file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404" }, + { file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417" }, + { file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627" }, + { file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936" }, + { file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d" }, + { file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56" }, + { file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e" }, + { file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc" }, + { file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb" }, + { file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab" }, + { file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba" }, + { file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956" }, + { file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e" }, + { file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e" }, + { file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2" }, + { file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" }, + { file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6" }, + { file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969" }, + { file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520" }, + { file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b" }, + { file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235" }, + { file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc" }, + { file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0" }, + { file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b" }, + { file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c" }, + { file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b" }, + { file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324" }, + { file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a" }, + { file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36" }, + { file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed" }, + { file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2" }, + { file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872" }, + { file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8" }, + { file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f" }, + { file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4" }, + { file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098" }, + { file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000" }, + { file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe" }, + { file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4" }, + { file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8" }, + { file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0" }, ] [package.dependencies] @@ -150,96 +150,96 @@ description = "The Real First Universal Charset Detector. Open, modern and activ optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + { file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73" }, + { file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab" }, + { file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7" }, + { file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4" }, + { file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25" }, + { file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f" }, + { file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d" }, + { file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc" }, ] [[package]] @@ -249,12 +249,12 @@ description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + { file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28" }, + { file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" }, ] [package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} +colorama = { version = "*", markers = "platform_system == \"Windows\"" } [[package]] name = "colorama" @@ -263,8 +263,8 @@ description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, + { file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" }, + { file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" }, ] [[package]] @@ -274,50 +274,50 @@ description = "Python library for calculating contours of 2D quadrilateral grids optional = false python-versions = ">=3.9" files = [ - {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, - {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, - {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, - {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, - {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, - {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, - {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, - {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, - {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, - {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, - {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, + { file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8" }, + { file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4" }, + { file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f" }, + { file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e" }, + { file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9" }, + { file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa" }, + { file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9" }, + { file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab" }, + { file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488" }, + { file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41" }, + { file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727" }, + { file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd" }, + { file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a" }, + { file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063" }, + { file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e" }, + { file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686" }, + { file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286" }, + { file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95" }, + { file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6" }, + { file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de" }, + { file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0" }, + { file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4" }, + { file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779" }, + { file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316" }, + { file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399" }, + { file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0" }, + { file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0" }, + { file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431" }, + { file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f" }, + { file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9" }, + { file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc" }, + { file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9" }, + { file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8" }, + { file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e" }, + { file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8" }, + { file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5" }, + { file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e" }, + { file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808" }, + { file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4" }, + { file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843" }, + { file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108" }, + { file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776" }, + { file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956" }, + { file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a" }, ] [package.dependencies] @@ -337,42 +337,42 @@ description = "cryptography is a package which provides cryptographic recipes an optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, - {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, - {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, - {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, - {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, - {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, - {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, - {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, - {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, - {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, - {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, - {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, - {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, - {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, + { file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16" }, + { file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec" }, + { file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb" }, + { file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4" }, + { file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278" }, + { file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7" }, + { file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee" }, + { file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1" }, + { file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d" }, + { file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da" }, + { file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74" }, + { file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940" }, + { file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8" }, + { file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1" }, + { file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e" }, + { file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc" }, + { file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a" }, + { file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7" }, + { file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922" }, + { file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc" }, + { file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30" }, + { file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413" }, + { file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400" }, + { file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8" }, + { file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2" }, + { file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c" }, + { file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576" }, + { file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6" }, + { file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e" }, + { file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac" }, + { file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd" }, + { file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1" }, ] [package.dependencies] -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} +cffi = { version = ">=1.12", markers = "platform_python_implementation != \"PyPy\"" } [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] @@ -391,8 +391,8 @@ description = "Composable style cycles" optional = false python-versions = ">=3.8" files = [ - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, + { file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30" }, + { file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c" }, ] [package.extras] @@ -406,8 +406,8 @@ description = "Python @deprecated decorator to deprecate old python classes, fun optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, - {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, + { file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c" }, + { file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3" }, ] [package.dependencies] @@ -423,48 +423,48 @@ description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effd303fb422f8ce06543a36ca69148471144c534cc25f30e5be752bc4f46736"}, - {file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7913992ab836f621d06aabac118fc258b9947a775a607e1a737eb3a91c360335"}, - {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e0a1c5bd2f63da4043b63888534b52c5a1fd7ae187c8ffc64cbb7ae475b9dab"}, - {file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40fc98540fa5360e7ecf2c56ddf3c6e7dd04929543618fd7b5cc76e66390562"}, - {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fff65fbb7afe137bac3113827855e0204482727bddd00a806034ab0d3951d0d"}, - {file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1aeae3dd2ee719074a9372c89ad94f7c581903306d76befdaca2a559f802472"}, - {file = "fonttools-4.50.0-cp310-cp310-win32.whl", hash = "sha256:e9623afa319405da33b43c85cceb0585a6f5d3a1d7c604daf4f7e1dd55c03d1f"}, - {file = "fonttools-4.50.0-cp310-cp310-win_amd64.whl", hash = "sha256:778c5f43e7e654ef7fe0605e80894930bc3a7772e2f496238e57218610140f54"}, - {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3dfb102e7f63b78c832e4539969167ffcc0375b013080e6472350965a5fe8048"}, - {file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e58fe34cb379ba3d01d5d319d67dd3ce7ca9a47ad044ea2b22635cd2d1247fc"}, - {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c673ab40d15a442a4e6eb09bf007c1dda47c84ac1e2eecbdf359adacb799c24"}, - {file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b3ac35cdcd1a4c90c23a5200212c1bb74fa05833cc7c14291d7043a52ca2aaa"}, - {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8844e7a2c5f7ecf977e82eb6b3014f025c8b454e046d941ece05b768be5847ae"}, - {file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f849bd3c5c2249b49c98eca5aaebb920d2bfd92b3c69e84ca9bddf133e9f83f0"}, - {file = "fonttools-4.50.0-cp311-cp311-win32.whl", hash = "sha256:39293ff231b36b035575e81c14626dfc14407a20de5262f9596c2cbb199c3625"}, - {file = "fonttools-4.50.0-cp311-cp311-win_amd64.whl", hash = "sha256:c33d5023523b44d3481624f840c8646656a1def7630ca562f222eb3ead16c438"}, - {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b4a886a6dbe60100ba1cd24de962f8cd18139bd32808da80de1fa9f9f27bf1dc"}, - {file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b2ca1837bfbe5eafa11313dbc7edada79052709a1fffa10cea691210af4aa1fa"}, - {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0493dd97ac8977e48ffc1476b932b37c847cbb87fd68673dee5182004906828"}, - {file = "fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77844e2f1b0889120b6c222fc49b2b75c3d88b930615e98893b899b9352a27ea"}, - {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3566bfb8c55ed9100afe1ba6f0f12265cd63a1387b9661eb6031a1578a28bad1"}, - {file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:35e10ddbc129cf61775d58a14f2d44121178d89874d32cae1eac722e687d9019"}, - {file = "fonttools-4.50.0-cp312-cp312-win32.whl", hash = "sha256:cc8140baf9fa8f9b903f2b393a6c413a220fa990264b215bf48484f3d0bf8710"}, - {file = "fonttools-4.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ccc85fd96373ab73c59833b824d7a73846670a0cb1f3afbaee2b2c426a8f931"}, - {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e270a406219af37581d96c810172001ec536e29e5593aa40d4c01cca3e145aa6"}, - {file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac2463de667233372e9e1c7e9de3d914b708437ef52a3199fdbf5a60184f190c"}, - {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47abd6669195abe87c22750dbcd366dc3a0648f1b7c93c2baa97429c4dc1506e"}, - {file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:074841375e2e3d559aecc86e1224caf78e8b8417bb391e7d2506412538f21adc"}, - {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0743fd2191ad7ab43d78cd747215b12033ddee24fa1e088605a3efe80d6984de"}, - {file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3d7080cce7be5ed65bee3496f09f79a82865a514863197ff4d4d177389e981b0"}, - {file = "fonttools-4.50.0-cp38-cp38-win32.whl", hash = "sha256:a467ba4e2eadc1d5cc1a11d355abb945f680473fbe30d15617e104c81f483045"}, - {file = "fonttools-4.50.0-cp38-cp38-win_amd64.whl", hash = "sha256:f77e048f805e00870659d6318fd89ef28ca4ee16a22b4c5e1905b735495fc422"}, - {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b6245eafd553c4e9a0708e93be51392bd2288c773523892fbd616d33fd2fda59"}, - {file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a4062cc7e8de26f1603323ef3ae2171c9d29c8a9f5e067d555a2813cd5c7a7e0"}, - {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34692850dfd64ba06af61e5791a441f664cb7d21e7b544e8f385718430e8f8e4"}, - {file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678dd95f26a67e02c50dcb5bf250f95231d455642afbc65a3b0bcdacd4e4dd38"}, - {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f2ce7b0b295fe64ac0a85aef46a0f2614995774bd7bc643b85679c0283287f9"}, - {file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d346f4dc2221bfb7ab652d1e37d327578434ce559baf7113b0f55768437fe6a0"}, - {file = "fonttools-4.50.0-cp39-cp39-win32.whl", hash = "sha256:a51eeaf52ba3afd70bf489be20e52fdfafe6c03d652b02477c6ce23c995222f4"}, - {file = "fonttools-4.50.0-cp39-cp39-win_amd64.whl", hash = "sha256:8639be40d583e5d9da67795aa3eeeda0488fb577a1d42ae11a5036f18fb16d93"}, - {file = "fonttools-4.50.0-py3-none-any.whl", hash = "sha256:48fa36da06247aa8282766cfd63efff1bb24e55f020f29a335939ed3844d20d3"}, - {file = "fonttools-4.50.0.tar.gz", hash = "sha256:fa5cf61058c7dbb104c2ac4e782bf1b2016a8cf2f69de6e4dd6a865d2c969bb5"}, + { file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effd303fb422f8ce06543a36ca69148471144c534cc25f30e5be752bc4f46736" }, + { file = "fonttools-4.50.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7913992ab836f621d06aabac118fc258b9947a775a607e1a737eb3a91c360335" }, + { file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e0a1c5bd2f63da4043b63888534b52c5a1fd7ae187c8ffc64cbb7ae475b9dab" }, + { file = "fonttools-4.50.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40fc98540fa5360e7ecf2c56ddf3c6e7dd04929543618fd7b5cc76e66390562" }, + { file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fff65fbb7afe137bac3113827855e0204482727bddd00a806034ab0d3951d0d" }, + { file = "fonttools-4.50.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1aeae3dd2ee719074a9372c89ad94f7c581903306d76befdaca2a559f802472" }, + { file = "fonttools-4.50.0-cp310-cp310-win32.whl", hash = "sha256:e9623afa319405da33b43c85cceb0585a6f5d3a1d7c604daf4f7e1dd55c03d1f" }, + { file = "fonttools-4.50.0-cp310-cp310-win_amd64.whl", hash = "sha256:778c5f43e7e654ef7fe0605e80894930bc3a7772e2f496238e57218610140f54" }, + { file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3dfb102e7f63b78c832e4539969167ffcc0375b013080e6472350965a5fe8048" }, + { file = "fonttools-4.50.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e58fe34cb379ba3d01d5d319d67dd3ce7ca9a47ad044ea2b22635cd2d1247fc" }, + { file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c673ab40d15a442a4e6eb09bf007c1dda47c84ac1e2eecbdf359adacb799c24" }, + { file = "fonttools-4.50.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b3ac35cdcd1a4c90c23a5200212c1bb74fa05833cc7c14291d7043a52ca2aaa" }, + { file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8844e7a2c5f7ecf977e82eb6b3014f025c8b454e046d941ece05b768be5847ae" }, + { file = "fonttools-4.50.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f849bd3c5c2249b49c98eca5aaebb920d2bfd92b3c69e84ca9bddf133e9f83f0" }, + { file = "fonttools-4.50.0-cp311-cp311-win32.whl", hash = "sha256:39293ff231b36b035575e81c14626dfc14407a20de5262f9596c2cbb199c3625" }, + { file = "fonttools-4.50.0-cp311-cp311-win_amd64.whl", hash = "sha256:c33d5023523b44d3481624f840c8646656a1def7630ca562f222eb3ead16c438" }, + { file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b4a886a6dbe60100ba1cd24de962f8cd18139bd32808da80de1fa9f9f27bf1dc" }, + { file = "fonttools-4.50.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b2ca1837bfbe5eafa11313dbc7edada79052709a1fffa10cea691210af4aa1fa" }, + { file = "fonttools-4.50.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0493dd97ac8977e48ffc1476b932b37c847cbb87fd68673dee5182004906828" }, + { file = "fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77844e2f1b0889120b6c222fc49b2b75c3d88b930615e98893b899b9352a27ea" }, + { file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3566bfb8c55ed9100afe1ba6f0f12265cd63a1387b9661eb6031a1578a28bad1" }, + { file = "fonttools-4.50.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:35e10ddbc129cf61775d58a14f2d44121178d89874d32cae1eac722e687d9019" }, + { file = "fonttools-4.50.0-cp312-cp312-win32.whl", hash = "sha256:cc8140baf9fa8f9b903f2b393a6c413a220fa990264b215bf48484f3d0bf8710" }, + { file = "fonttools-4.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ccc85fd96373ab73c59833b824d7a73846670a0cb1f3afbaee2b2c426a8f931" }, + { file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e270a406219af37581d96c810172001ec536e29e5593aa40d4c01cca3e145aa6" }, + { file = "fonttools-4.50.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac2463de667233372e9e1c7e9de3d914b708437ef52a3199fdbf5a60184f190c" }, + { file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47abd6669195abe87c22750dbcd366dc3a0648f1b7c93c2baa97429c4dc1506e" }, + { file = "fonttools-4.50.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:074841375e2e3d559aecc86e1224caf78e8b8417bb391e7d2506412538f21adc" }, + { file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0743fd2191ad7ab43d78cd747215b12033ddee24fa1e088605a3efe80d6984de" }, + { file = "fonttools-4.50.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3d7080cce7be5ed65bee3496f09f79a82865a514863197ff4d4d177389e981b0" }, + { file = "fonttools-4.50.0-cp38-cp38-win32.whl", hash = "sha256:a467ba4e2eadc1d5cc1a11d355abb945f680473fbe30d15617e104c81f483045" }, + { file = "fonttools-4.50.0-cp38-cp38-win_amd64.whl", hash = "sha256:f77e048f805e00870659d6318fd89ef28ca4ee16a22b4c5e1905b735495fc422" }, + { file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b6245eafd553c4e9a0708e93be51392bd2288c773523892fbd616d33fd2fda59" }, + { file = "fonttools-4.50.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a4062cc7e8de26f1603323ef3ae2171c9d29c8a9f5e067d555a2813cd5c7a7e0" }, + { file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34692850dfd64ba06af61e5791a441f664cb7d21e7b544e8f385718430e8f8e4" }, + { file = "fonttools-4.50.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678dd95f26a67e02c50dcb5bf250f95231d455642afbc65a3b0bcdacd4e4dd38" }, + { file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f2ce7b0b295fe64ac0a85aef46a0f2614995774bd7bc643b85679c0283287f9" }, + { file = "fonttools-4.50.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d346f4dc2221bfb7ab652d1e37d327578434ce559baf7113b0f55768437fe6a0" }, + { file = "fonttools-4.50.0-cp39-cp39-win32.whl", hash = "sha256:a51eeaf52ba3afd70bf489be20e52fdfafe6c03d652b02477c6ce23c995222f4" }, + { file = "fonttools-4.50.0-cp39-cp39-win_amd64.whl", hash = "sha256:8639be40d583e5d9da67795aa3eeeda0488fb577a1d42ae11a5036f18fb16d93" }, + { file = "fonttools-4.50.0-py3-none-any.whl", hash = "sha256:48fa36da06247aa8282766cfd63efff1bb24e55f020f29a335939ed3844d20d3" }, + { file = "fonttools-4.50.0.tar.gz", hash = "sha256:fa5cf61058c7dbb104c2ac4e782bf1b2016a8cf2f69de6e4dd6a865d2c969bb5" }, ] [package.extras] @@ -488,8 +488,8 @@ description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" files = [ - {file = "googleapis-common-protos-1.63.0.tar.gz", hash = "sha256:17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e"}, - {file = "googleapis_common_protos-1.63.0-py2.py3-none-any.whl", hash = "sha256:ae45f75702f7c08b541f750854a678bd8f534a1a6bace6afe975f1d0a82d6632"}, + { file = "googleapis-common-protos-1.63.0.tar.gz", hash = "sha256:17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e" }, + { file = "googleapis_common_protos-1.63.0-py2.py3-none-any.whl", hash = "sha256:ae45f75702f7c08b541f750854a678bd8f534a1a6bace6afe975f1d0a82d6632" }, ] [package.dependencies] @@ -505,60 +505,60 @@ description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.7" files = [ - {file = "grpcio-1.62.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:179bee6f5ed7b5f618844f760b6acf7e910988de77a4f75b95bbfaa8106f3c1e"}, - {file = "grpcio-1.62.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:48611e4fa010e823ba2de8fd3f77c1322dd60cb0d180dc6630a7e157b205f7ea"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b2a0e71b0a2158aa4bce48be9f8f9eb45cbd17c78c7443616d00abbe2a509f6d"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbe80577c7880911d3ad65e5ecc997416c98f354efeba2f8d0f9112a67ed65a5"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58f6c693d446964e3292425e1d16e21a97a48ba9172f2d0df9d7b640acb99243"}, - {file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:77c339403db5a20ef4fed02e4d1a9a3d9866bf9c0afc77a42234677313ea22f3"}, - {file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b5a4ea906db7dec694098435d84bf2854fe158eb3cd51e1107e571246d4d1d70"}, - {file = "grpcio-1.62.1-cp310-cp310-win32.whl", hash = "sha256:4187201a53f8561c015bc745b81a1b2d278967b8de35f3399b84b0695e281d5f"}, - {file = "grpcio-1.62.1-cp310-cp310-win_amd64.whl", hash = "sha256:844d1f3fb11bd1ed362d3fdc495d0770cfab75761836193af166fee113421d66"}, - {file = "grpcio-1.62.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:833379943d1728a005e44103f17ecd73d058d37d95783eb8f0b28ddc1f54d7b2"}, - {file = "grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c7fcc6a32e7b7b58f5a7d27530669337a5d587d4066060bcb9dee7a8c833dfb7"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:fa7d28eb4d50b7cbe75bb8b45ed0da9a1dc5b219a0af59449676a29c2eed9698"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48f7135c3de2f298b833be8b4ae20cafe37091634e91f61f5a7eb3d61ec6f660"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71f11fd63365ade276c9d4a7b7df5c136f9030e3457107e1791b3737a9b9ed6a"}, - {file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b49fd8fe9f9ac23b78437da94c54aa7e9996fbb220bac024a67469ce5d0825f"}, - {file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:482ae2ae78679ba9ed5752099b32e5fe580443b4f798e1b71df412abf43375db"}, - {file = "grpcio-1.62.1-cp311-cp311-win32.whl", hash = "sha256:1faa02530b6c7426404372515fe5ddf66e199c2ee613f88f025c6f3bd816450c"}, - {file = "grpcio-1.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bd90b8c395f39bc82a5fb32a0173e220e3f401ff697840f4003e15b96d1befc"}, - {file = "grpcio-1.62.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:b134d5d71b4e0837fff574c00e49176051a1c532d26c052a1e43231f252d813b"}, - {file = "grpcio-1.62.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d1f6c96573dc09d50dbcbd91dbf71d5cf97640c9427c32584010fbbd4c0e0037"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:359f821d4578f80f41909b9ee9b76fb249a21035a061a327f91c953493782c31"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a485f0c2010c696be269184bdb5ae72781344cb4e60db976c59d84dd6354fac9"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b50b09b4dc01767163d67e1532f948264167cd27f49e9377e3556c3cba1268e1"}, - {file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3227c667dccbe38f2c4d943238b887bac588d97c104815aecc62d2fd976e014b"}, - {file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3952b581eb121324853ce2b191dae08badb75cd493cb4e0243368aa9e61cfd41"}, - {file = "grpcio-1.62.1-cp312-cp312-win32.whl", hash = "sha256:83a17b303425104d6329c10eb34bba186ffa67161e63fa6cdae7776ff76df73f"}, - {file = "grpcio-1.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:6696ffe440333a19d8d128e88d440f91fb92c75a80ce4b44d55800e656a3ef1d"}, - {file = "grpcio-1.62.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:e3393b0823f938253370ebef033c9fd23d27f3eae8eb9a8f6264900c7ea3fb5a"}, - {file = "grpcio-1.62.1-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:83e7ccb85a74beaeae2634f10eb858a0ed1a63081172649ff4261f929bacfd22"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:882020c87999d54667a284c7ddf065b359bd00251fcd70279ac486776dbf84ec"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a10383035e864f386fe096fed5c47d27a2bf7173c56a6e26cffaaa5a361addb1"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:960edebedc6b9ada1ef58e1c71156f28689978188cd8cff3b646b57288a927d9"}, - {file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:23e2e04b83f347d0aadde0c9b616f4726c3d76db04b438fd3904b289a725267f"}, - {file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:978121758711916d34fe57c1f75b79cdfc73952f1481bb9583399331682d36f7"}, - {file = "grpcio-1.62.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9084086190cc6d628f282e5615f987288b95457292e969b9205e45b442276407"}, - {file = "grpcio-1.62.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:22bccdd7b23c420a27fd28540fb5dcbc97dc6be105f7698cb0e7d7a420d0e362"}, - {file = "grpcio-1.62.1-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:8999bf1b57172dbc7c3e4bb3c732658e918f5c333b2942243f10d0d653953ba9"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d9e52558b8b8c2f4ac05ac86344a7417ccdd2b460a59616de49eb6933b07a0bd"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1714e7bc935780bc3de1b3fcbc7674209adf5208ff825799d579ffd6cd0bd505"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8842ccbd8c0e253c1f189088228f9b433f7a93b7196b9e5b6f87dba393f5d5d"}, - {file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1f1e7b36bdff50103af95a80923bf1853f6823dd62f2d2a2524b66ed74103e49"}, - {file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bba97b8e8883a8038606480d6b6772289f4c907f6ba780fa1f7b7da7dfd76f06"}, - {file = "grpcio-1.62.1-cp38-cp38-win32.whl", hash = "sha256:a7f615270fe534548112a74e790cd9d4f5509d744dd718cd442bf016626c22e4"}, - {file = "grpcio-1.62.1-cp38-cp38-win_amd64.whl", hash = "sha256:e6c8c8693df718c5ecbc7babb12c69a4e3677fd11de8886f05ab22d4e6b1c43b"}, - {file = "grpcio-1.62.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:73db2dc1b201d20ab7083e7041946910bb991e7e9761a0394bbc3c2632326483"}, - {file = "grpcio-1.62.1-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:407b26b7f7bbd4f4751dbc9767a1f0716f9fe72d3d7e96bb3ccfc4aace07c8de"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f8de7c8cef9261a2d0a62edf2ccea3d741a523c6b8a6477a340a1f2e417658de"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd5c8a1af40ec305d001c60236308a67e25419003e9bb3ebfab5695a8d0b369"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be0477cb31da67846a33b1a75c611f88bfbcd427fe17701b6317aefceee1b96f"}, - {file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:60dcd824df166ba266ee0cfaf35a31406cd16ef602b49f5d4dfb21f014b0dedd"}, - {file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:973c49086cabab773525f6077f95e5a993bfc03ba8fc32e32f2c279497780585"}, - {file = "grpcio-1.62.1-cp39-cp39-win32.whl", hash = "sha256:12859468e8918d3bd243d213cd6fd6ab07208195dc140763c00dfe901ce1e1b4"}, - {file = "grpcio-1.62.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7209117bbeebdfa5d898205cc55153a51285757902dd73c47de498ad4d11332"}, - {file = "grpcio-1.62.1.tar.gz", hash = "sha256:6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947"}, + { file = "grpcio-1.62.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:179bee6f5ed7b5f618844f760b6acf7e910988de77a4f75b95bbfaa8106f3c1e" }, + { file = "grpcio-1.62.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:48611e4fa010e823ba2de8fd3f77c1322dd60cb0d180dc6630a7e157b205f7ea" }, + { file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b2a0e71b0a2158aa4bce48be9f8f9eb45cbd17c78c7443616d00abbe2a509f6d" }, + { file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbe80577c7880911d3ad65e5ecc997416c98f354efeba2f8d0f9112a67ed65a5" }, + { file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58f6c693d446964e3292425e1d16e21a97a48ba9172f2d0df9d7b640acb99243" }, + { file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:77c339403db5a20ef4fed02e4d1a9a3d9866bf9c0afc77a42234677313ea22f3" }, + { file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b5a4ea906db7dec694098435d84bf2854fe158eb3cd51e1107e571246d4d1d70" }, + { file = "grpcio-1.62.1-cp310-cp310-win32.whl", hash = "sha256:4187201a53f8561c015bc745b81a1b2d278967b8de35f3399b84b0695e281d5f" }, + { file = "grpcio-1.62.1-cp310-cp310-win_amd64.whl", hash = "sha256:844d1f3fb11bd1ed362d3fdc495d0770cfab75761836193af166fee113421d66" }, + { file = "grpcio-1.62.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:833379943d1728a005e44103f17ecd73d058d37d95783eb8f0b28ddc1f54d7b2" }, + { file = "grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c7fcc6a32e7b7b58f5a7d27530669337a5d587d4066060bcb9dee7a8c833dfb7" }, + { file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:fa7d28eb4d50b7cbe75bb8b45ed0da9a1dc5b219a0af59449676a29c2eed9698" }, + { file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48f7135c3de2f298b833be8b4ae20cafe37091634e91f61f5a7eb3d61ec6f660" }, + { file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71f11fd63365ade276c9d4a7b7df5c136f9030e3457107e1791b3737a9b9ed6a" }, + { file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b49fd8fe9f9ac23b78437da94c54aa7e9996fbb220bac024a67469ce5d0825f" }, + { file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:482ae2ae78679ba9ed5752099b32e5fe580443b4f798e1b71df412abf43375db" }, + { file = "grpcio-1.62.1-cp311-cp311-win32.whl", hash = "sha256:1faa02530b6c7426404372515fe5ddf66e199c2ee613f88f025c6f3bd816450c" }, + { file = "grpcio-1.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bd90b8c395f39bc82a5fb32a0173e220e3f401ff697840f4003e15b96d1befc" }, + { file = "grpcio-1.62.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:b134d5d71b4e0837fff574c00e49176051a1c532d26c052a1e43231f252d813b" }, + { file = "grpcio-1.62.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d1f6c96573dc09d50dbcbd91dbf71d5cf97640c9427c32584010fbbd4c0e0037" }, + { file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:359f821d4578f80f41909b9ee9b76fb249a21035a061a327f91c953493782c31" }, + { file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a485f0c2010c696be269184bdb5ae72781344cb4e60db976c59d84dd6354fac9" }, + { file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b50b09b4dc01767163d67e1532f948264167cd27f49e9377e3556c3cba1268e1" }, + { file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3227c667dccbe38f2c4d943238b887bac588d97c104815aecc62d2fd976e014b" }, + { file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3952b581eb121324853ce2b191dae08badb75cd493cb4e0243368aa9e61cfd41" }, + { file = "grpcio-1.62.1-cp312-cp312-win32.whl", hash = "sha256:83a17b303425104d6329c10eb34bba186ffa67161e63fa6cdae7776ff76df73f" }, + { file = "grpcio-1.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:6696ffe440333a19d8d128e88d440f91fb92c75a80ce4b44d55800e656a3ef1d" }, + { file = "grpcio-1.62.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:e3393b0823f938253370ebef033c9fd23d27f3eae8eb9a8f6264900c7ea3fb5a" }, + { file = "grpcio-1.62.1-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:83e7ccb85a74beaeae2634f10eb858a0ed1a63081172649ff4261f929bacfd22" }, + { file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:882020c87999d54667a284c7ddf065b359bd00251fcd70279ac486776dbf84ec" }, + { file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a10383035e864f386fe096fed5c47d27a2bf7173c56a6e26cffaaa5a361addb1" }, + { file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:960edebedc6b9ada1ef58e1c71156f28689978188cd8cff3b646b57288a927d9" }, + { file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:23e2e04b83f347d0aadde0c9b616f4726c3d76db04b438fd3904b289a725267f" }, + { file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:978121758711916d34fe57c1f75b79cdfc73952f1481bb9583399331682d36f7" }, + { file = "grpcio-1.62.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9084086190cc6d628f282e5615f987288b95457292e969b9205e45b442276407" }, + { file = "grpcio-1.62.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:22bccdd7b23c420a27fd28540fb5dcbc97dc6be105f7698cb0e7d7a420d0e362" }, + { file = "grpcio-1.62.1-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:8999bf1b57172dbc7c3e4bb3c732658e918f5c333b2942243f10d0d653953ba9" }, + { file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d9e52558b8b8c2f4ac05ac86344a7417ccdd2b460a59616de49eb6933b07a0bd" }, + { file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1714e7bc935780bc3de1b3fcbc7674209adf5208ff825799d579ffd6cd0bd505" }, + { file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8842ccbd8c0e253c1f189088228f9b433f7a93b7196b9e5b6f87dba393f5d5d" }, + { file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1f1e7b36bdff50103af95a80923bf1853f6823dd62f2d2a2524b66ed74103e49" }, + { file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bba97b8e8883a8038606480d6b6772289f4c907f6ba780fa1f7b7da7dfd76f06" }, + { file = "grpcio-1.62.1-cp38-cp38-win32.whl", hash = "sha256:a7f615270fe534548112a74e790cd9d4f5509d744dd718cd442bf016626c22e4" }, + { file = "grpcio-1.62.1-cp38-cp38-win_amd64.whl", hash = "sha256:e6c8c8693df718c5ecbc7babb12c69a4e3677fd11de8886f05ab22d4e6b1c43b" }, + { file = "grpcio-1.62.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:73db2dc1b201d20ab7083e7041946910bb991e7e9761a0394bbc3c2632326483" }, + { file = "grpcio-1.62.1-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:407b26b7f7bbd4f4751dbc9767a1f0716f9fe72d3d7e96bb3ccfc4aace07c8de" }, + { file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f8de7c8cef9261a2d0a62edf2ccea3d741a523c6b8a6477a340a1f2e417658de" }, + { file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd5c8a1af40ec305d001c60236308a67e25419003e9bb3ebfab5695a8d0b369" }, + { file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be0477cb31da67846a33b1a75c611f88bfbcd427fe17701b6317aefceee1b96f" }, + { file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:60dcd824df166ba266ee0cfaf35a31406cd16ef602b49f5d4dfb21f014b0dedd" }, + { file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:973c49086cabab773525f6077f95e5a993bfc03ba8fc32e32f2c279497780585" }, + { file = "grpcio-1.62.1-cp39-cp39-win32.whl", hash = "sha256:12859468e8918d3bd243d213cd6fd6ab07208195dc140763c00dfe901ce1e1b4" }, + { file = "grpcio-1.62.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7209117bbeebdfa5d898205cc55153a51285757902dd73c47de498ad4d11332" }, + { file = "grpcio-1.62.1.tar.gz", hash = "sha256:6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947" }, ] [package.extras] @@ -571,8 +571,8 @@ description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + { file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" }, + { file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca" }, ] [[package]] @@ -582,8 +582,8 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b"}, - {file = "importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443"}, + { file = "importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b" }, + { file = "importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443" }, ] [package.dependencies] @@ -601,8 +601,8 @@ description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + { file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" }, + { file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" }, ] [[package]] @@ -612,8 +612,8 @@ description = "Mixed sync-async queue to interoperate between asyncio tasks and optional = false python-versions = ">=3.7" files = [ - {file = "janus-1.0.0-py3-none-any.whl", hash = "sha256:2596ea5482711c1ee3ef2df6c290aaf370a13c55a007826e8f7c32d696d1d00a"}, - {file = "janus-1.0.0.tar.gz", hash = "sha256:df976f2cdcfb034b147a2d51edfc34ff6bfb12d4e2643d3ad0e10de058cb1612"}, + { file = "janus-1.0.0-py3-none-any.whl", hash = "sha256:2596ea5482711c1ee3ef2df6c290aaf370a13c55a007826e8f7c32d696d1d00a" }, + { file = "janus-1.0.0.tar.gz", hash = "sha256:df976f2cdcfb034b147a2d51edfc34ff6bfb12d4e2643d3ad0e10de058cb1612" }, ] [package.dependencies] @@ -626,8 +626,8 @@ description = "Utility functions for Python class constructs" optional = false python-versions = ">=3.8" files = [ - {file = "jaraco.classes-3.3.1-py3-none-any.whl", hash = "sha256:86b534de565381f6b3c1c830d13f931d7be1a75f0081c57dff615578676e2206"}, - {file = "jaraco.classes-3.3.1.tar.gz", hash = "sha256:cb28a5ebda8bc47d8c8015307d93163464f9f2b91ab4006e09ff0ce07e8bfb30"}, + { file = "jaraco.classes-3.3.1-py3-none-any.whl", hash = "sha256:86b534de565381f6b3c1c830d13f931d7be1a75f0081c57dff615578676e2206" }, + { file = "jaraco.classes-3.3.1.tar.gz", hash = "sha256:cb28a5ebda8bc47d8c8015307d93163464f9f2b91ab4006e09ff0ce07e8bfb30" }, ] [package.dependencies] @@ -644,8 +644,8 @@ description = "Low-level, pure Python DBus protocol wrapper." optional = false python-versions = ">=3.7" files = [ - {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, - {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, + { file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755" }, + { file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806" }, ] [package.extras] @@ -659,16 +659,16 @@ description = "Store and access your passwords safely." optional = false python-versions = ">=3.7" files = [ - {file = "keyring-23.13.1-py3-none-any.whl", hash = "sha256:771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd"}, - {file = "keyring-23.13.1.tar.gz", hash = "sha256:ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678"}, + { file = "keyring-23.13.1-py3-none-any.whl", hash = "sha256:771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd" }, + { file = "keyring-23.13.1.tar.gz", hash = "sha256:ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678" }, ] [package.dependencies] -importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} +importlib-metadata = { version = ">=4.11.4", markers = "python_version < \"3.12\"" } "jaraco.classes" = "*" -jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} -pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} -SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} +jeepney = { version = ">=0.4.2", markers = "sys_platform == \"linux\"" } +pywin32-ctypes = { version = ">=0.2.0", markers = "sys_platform == \"win32\"" } +SecretStorage = { version = ">=3.2", markers = "sys_platform == \"linux\"" } [package.extras] completion = ["shtab"] @@ -682,110 +682,110 @@ description = "A fast implementation of the Cassowary constraint solver" optional = false python-versions = ">=3.7" files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, + { file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af" }, + { file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3" }, + { file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4" }, + { file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1" }, + { file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff" }, + { file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a" }, + { file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa" }, + { file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c" }, + { file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b" }, + { file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770" }, + { file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0" }, + { file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525" }, + { file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b" }, + { file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238" }, + { file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276" }, + { file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5" }, + { file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90" }, + { file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797" }, + { file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9" }, + { file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437" }, + { file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9" }, + { file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da" }, + { file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e" }, + { file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8" }, + { file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d" }, + { file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0" }, + { file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f" }, + { file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f" }, + { file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac" }, + { file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355" }, + { file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a" }, + { file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192" }, + { file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45" }, + { file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7" }, + { file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db" }, + { file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff" }, + { file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228" }, + { file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16" }, + { file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9" }, + { file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162" }, + { file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4" }, + { file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3" }, + { file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a" }, + { file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20" }, + { file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3" }, + { file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a" }, + { file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71" }, + { file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93" }, + { file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29" }, + { file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712" }, + { file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6" }, + { file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb" }, + { file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18" }, + { file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333" }, + { file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da" }, + { file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b" }, + { file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c" }, + { file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc" }, + { file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250" }, + { file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e" }, + { file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced" }, + { file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d" }, + { file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9" }, + { file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046" }, + { file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0" }, + { file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff" }, + { file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54" }, + { file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958" }, + { file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3" }, + { file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf" }, + { file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901" }, + { file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9" }, + { file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342" }, + { file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77" }, + { file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f" }, + { file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635" }, + { file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920" }, + { file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390" }, + { file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d" }, + { file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523" }, + { file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4" }, + { file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892" }, + { file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544" }, + { file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126" }, + { file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd" }, + { file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929" }, + { file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09" }, + { file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7" }, + { file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad" }, + { file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea" }, + { file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee" }, + { file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec" }, ] [[package]] @@ -795,8 +795,8 @@ description = "Python port of markdown-it. Markdown parsing, done right!" optional = false python-versions = ">=3.8" files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, + { file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb" }, + { file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1" }, ] [package.dependencies] @@ -819,34 +819,34 @@ description = "Python plotting package" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f"}, - {file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357"}, - {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec"}, - {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f"}, - {file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635"}, - {file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea"}, - {file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900"}, - {file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e"}, - {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7"}, - {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65"}, - {file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0"}, - {file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407"}, - {file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4"}, - {file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa"}, - {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5"}, - {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1"}, - {file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7"}, - {file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39"}, - {file = "matplotlib-3.8.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c4af3f7317f8a1009bbb2d0bf23dfaba859eb7dd4ccbd604eba146dccaaaf0a4"}, - {file = "matplotlib-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c6e00a65d017d26009bac6808f637b75ceade3e1ff91a138576f6b3065eeeba"}, - {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7b49ab49a3bea17802df6872f8d44f664ba8f9be0632a60c99b20b6db2165b7"}, - {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6728dde0a3997396b053602dbd907a9bd64ec7d5cf99e728b404083698d3ca01"}, - {file = "matplotlib-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:813925d08fb86aba139f2d31864928d67511f64e5945ca909ad5bc09a96189bb"}, - {file = "matplotlib-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:cd3a0c2be76f4e7be03d34a14d49ded6acf22ef61f88da600a18a5cd8b3c5f3c"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc"}, - {file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26"}, - {file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161"}, + { file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f" }, + { file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357" }, + { file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec" }, + { file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f" }, + { file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635" }, + { file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea" }, + { file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900" }, + { file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e" }, + { file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7" }, + { file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65" }, + { file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0" }, + { file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407" }, + { file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4" }, + { file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa" }, + { file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5" }, + { file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1" }, + { file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7" }, + { file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39" }, + { file = "matplotlib-3.8.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c4af3f7317f8a1009bbb2d0bf23dfaba859eb7dd4ccbd604eba146dccaaaf0a4" }, + { file = "matplotlib-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c6e00a65d017d26009bac6808f637b75ceade3e1ff91a138576f6b3065eeeba" }, + { file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7b49ab49a3bea17802df6872f8d44f664ba8f9be0632a60c99b20b6db2165b7" }, + { file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6728dde0a3997396b053602dbd907a9bd64ec7d5cf99e728b404083698d3ca01" }, + { file = "matplotlib-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:813925d08fb86aba139f2d31864928d67511f64e5945ca909ad5bc09a96189bb" }, + { file = "matplotlib-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:cd3a0c2be76f4e7be03d34a14d49ded6acf22ef61f88da600a18a5cd8b3c5f3c" }, + { file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e" }, + { file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc" }, + { file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26" }, + { file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161" }, ] [package.dependencies] @@ -867,8 +867,8 @@ description = "Markdown URL utilities" optional = false python-versions = ">=3.7" files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, + { file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" }, + { file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" }, ] [[package]] @@ -878,8 +878,8 @@ description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" files = [ - {file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"}, - {file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684"}, + { file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1" }, + { file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684" }, ] [[package]] @@ -889,62 +889,62 @@ description = "MessagePack serializer" optional = false python-versions = ">=3.8" files = [ - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653"}, - {file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693"}, - {file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce"}, - {file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305"}, - {file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543"}, - {file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c"}, - {file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a"}, - {file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c"}, - {file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, - {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, - {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, - {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, + { file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868" }, + { file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c" }, + { file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659" }, + { file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2" }, + { file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982" }, + { file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa" }, + { file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128" }, + { file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d" }, + { file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653" }, + { file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693" }, + { file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a" }, + { file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836" }, + { file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad" }, + { file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b" }, + { file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba" }, + { file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85" }, + { file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950" }, + { file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a" }, + { file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b" }, + { file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce" }, + { file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305" }, + { file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e" }, + { file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee" }, + { file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b" }, + { file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8" }, + { file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3" }, + { file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc" }, + { file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58" }, + { file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f" }, + { file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04" }, + { file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543" }, + { file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c" }, + { file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd" }, + { file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40" }, + { file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151" }, + { file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24" }, + { file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d" }, + { file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db" }, + { file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77" }, + { file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13" }, + { file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2" }, + { file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a" }, + { file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c" }, + { file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480" }, + { file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a" }, + { file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596" }, + { file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d" }, + { file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f" }, + { file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228" }, + { file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18" }, + { file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8" }, + { file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746" }, + { file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273" }, + { file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d" }, + { file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011" }, + { file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3" }, ] [[package]] @@ -954,33 +954,33 @@ description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, - {file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, - {file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, - {file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, - {file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, - {file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, - {file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, - {file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, - {file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, - {file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, - {file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, - {file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, - {file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, - {file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, - {file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, - {file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, - {file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, - {file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, - {file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, - {file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, - {file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, - {file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, - {file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, + { file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f" }, + { file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed" }, + { file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150" }, + { file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374" }, + { file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03" }, + { file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3" }, + { file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc" }, + { file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129" }, + { file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612" }, + { file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3" }, + { file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd" }, + { file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6" }, + { file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185" }, + { file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913" }, + { file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6" }, + { file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b" }, + { file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2" }, + { file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e" }, + { file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04" }, + { file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89" }, + { file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02" }, + { file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4" }, + { file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d" }, + { file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf" }, + { file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9" }, + { file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e" }, + { file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974" }, ] [package.dependencies] @@ -1000,8 +1000,8 @@ description = "Type system extensions for programs checked with the mypy type ch optional = false python-versions = ">=3.5" files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + { file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d" }, + { file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" }, ] [[package]] @@ -1011,7 +1011,7 @@ description = "Cross-platform, NumPy based module for reading TDMS files produce optional = false python-versions = "*" files = [ - {file = "npTDMS-1.9.0.tar.gz", hash = "sha256:0e65c237e9d50b9b8e162b9c34171353a5ea05f4019c99c3e8ebc00722361cbc"}, + { file = "npTDMS-1.9.0.tar.gz", hash = "sha256:0e65c237e9d50b9b8e162b9c34171353a5ea05f4019c99c3e8ebc00722361cbc" }, ] [package.dependencies] @@ -1029,42 +1029,42 @@ description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + { file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0" }, + { file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a" }, + { file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4" }, + { file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" }, + { file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a" }, + { file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2" }, + { file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07" }, + { file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5" }, + { file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71" }, + { file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef" }, + { file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e" }, + { file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5" }, + { file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a" }, + { file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a" }, + { file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20" }, + { file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2" }, + { file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218" }, + { file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b" }, + { file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b" }, + { file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed" }, + { file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a" }, + { file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0" }, + { file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110" }, + { file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818" }, + { file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c" }, + { file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be" }, + { file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764" }, + { file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3" }, + { file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd" }, + { file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c" }, + { file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6" }, + { file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea" }, + { file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30" }, + { file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c" }, + { file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0" }, + { file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010" }, ] [[package]] @@ -1074,8 +1074,8 @@ description = "OpenTelemetry Python API" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_api-1.23.0-py3-none-any.whl", hash = "sha256:cc03ea4025353048aadb9c64919099663664672ea1c6be6ddd8fee8e4cd5e774"}, - {file = "opentelemetry_api-1.23.0.tar.gz", hash = "sha256:14a766548c8dd2eb4dfc349739eb4c3893712a0daa996e5dbf945f9da665da9d"}, + { file = "opentelemetry_api-1.23.0-py3-none-any.whl", hash = "sha256:cc03ea4025353048aadb9c64919099663664672ea1c6be6ddd8fee8e4cd5e774" }, + { file = "opentelemetry_api-1.23.0.tar.gz", hash = "sha256:14a766548c8dd2eb4dfc349739eb4c3893712a0daa996e5dbf945f9da665da9d" }, ] [package.dependencies] @@ -1089,8 +1089,8 @@ description = "OpenTelemetry Collector Exporters" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_exporter_otlp-1.23.0-py3-none-any.whl", hash = "sha256:92371fdc8d7803465a45801fe30cd8c522ef355a385b0a1d5346d32f77511ea2"}, - {file = "opentelemetry_exporter_otlp-1.23.0.tar.gz", hash = "sha256:4af8798f9bc3bddb92fcbb5b4aa9d0e955d962aa1d9bceaab08891c355a9f907"}, + { file = "opentelemetry_exporter_otlp-1.23.0-py3-none-any.whl", hash = "sha256:92371fdc8d7803465a45801fe30cd8c522ef355a385b0a1d5346d32f77511ea2" }, + { file = "opentelemetry_exporter_otlp-1.23.0.tar.gz", hash = "sha256:4af8798f9bc3bddb92fcbb5b4aa9d0e955d962aa1d9bceaab08891c355a9f907" }, ] [package.dependencies] @@ -1104,8 +1104,8 @@ description = "OpenTelemetry Protobuf encoding" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_exporter_otlp_proto_common-1.23.0-py3-none-any.whl", hash = "sha256:2a9e7e9d5a8b026b572684b6b24dcdefcaa58613d5ce3d644130b0c373c056c1"}, - {file = "opentelemetry_exporter_otlp_proto_common-1.23.0.tar.gz", hash = "sha256:35e4ea909e7a0b24235bd0aaf17fba49676527feb1823b46565ff246d5a1ab18"}, + { file = "opentelemetry_exporter_otlp_proto_common-1.23.0-py3-none-any.whl", hash = "sha256:2a9e7e9d5a8b026b572684b6b24dcdefcaa58613d5ce3d644130b0c373c056c1" }, + { file = "opentelemetry_exporter_otlp_proto_common-1.23.0.tar.gz", hash = "sha256:35e4ea909e7a0b24235bd0aaf17fba49676527feb1823b46565ff246d5a1ab18" }, ] [package.dependencies] @@ -1118,8 +1118,8 @@ description = "OpenTelemetry Collector Protobuf over gRPC Exporter" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_exporter_otlp_proto_grpc-1.23.0-py3-none-any.whl", hash = "sha256:40f9e3e7761eb34f2a1001f4543028783ac26e2db27e420d5374f2cca0182dad"}, - {file = "opentelemetry_exporter_otlp_proto_grpc-1.23.0.tar.gz", hash = "sha256:aa1a012eea5342bfef51fcf3f7f22601dcb0f0984a07ffe6025b2fbb6d91a2a9"}, + { file = "opentelemetry_exporter_otlp_proto_grpc-1.23.0-py3-none-any.whl", hash = "sha256:40f9e3e7761eb34f2a1001f4543028783ac26e2db27e420d5374f2cca0182dad" }, + { file = "opentelemetry_exporter_otlp_proto_grpc-1.23.0.tar.gz", hash = "sha256:aa1a012eea5342bfef51fcf3f7f22601dcb0f0984a07ffe6025b2fbb6d91a2a9" }, ] [package.dependencies] @@ -1141,8 +1141,8 @@ description = "OpenTelemetry Collector Protobuf over HTTP Exporter" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_exporter_otlp_proto_http-1.23.0-py3-none-any.whl", hash = "sha256:ad853b58681df8efcb2cfc93be2b5fd86351c99ff4ab47dc917da384b8650d91"}, - {file = "opentelemetry_exporter_otlp_proto_http-1.23.0.tar.gz", hash = "sha256:088eac2320f4a604e2d9ff71aced71fdae601ac6457005fb0303d6bbbf44e6ca"}, + { file = "opentelemetry_exporter_otlp_proto_http-1.23.0-py3-none-any.whl", hash = "sha256:ad853b58681df8efcb2cfc93be2b5fd86351c99ff4ab47dc917da384b8650d91" }, + { file = "opentelemetry_exporter_otlp_proto_http-1.23.0.tar.gz", hash = "sha256:088eac2320f4a604e2d9ff71aced71fdae601ac6457005fb0303d6bbbf44e6ca" }, ] [package.dependencies] @@ -1164,8 +1164,8 @@ description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Py optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_instrumentation-0.44b0-py3-none-any.whl", hash = "sha256:79560f386425176bcc60c59190064597096114c4a8e5154f1cb281bb4e47d2fc"}, - {file = "opentelemetry_instrumentation-0.44b0.tar.gz", hash = "sha256:8213d02d8c0987b9b26386ae3e091e0477d6331673123df736479322e1a50b48"}, + { file = "opentelemetry_instrumentation-0.44b0-py3-none-any.whl", hash = "sha256:79560f386425176bcc60c59190064597096114c4a8e5154f1cb281bb4e47d2fc" }, + { file = "opentelemetry_instrumentation-0.44b0.tar.gz", hash = "sha256:8213d02d8c0987b9b26386ae3e091e0477d6331673123df736479322e1a50b48" }, ] [package.dependencies] @@ -1180,8 +1180,8 @@ description = "OpenTelemetry Python Proto" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_proto-1.23.0-py3-none-any.whl", hash = "sha256:4c017deca052cb287a6003b7c989ed8b47af65baeb5d57ebf93dde0793f78509"}, - {file = "opentelemetry_proto-1.23.0.tar.gz", hash = "sha256:e6aaf8b7ace8d021942d546161401b83eed90f9f2cc6f13275008cea730e4651"}, + { file = "opentelemetry_proto-1.23.0-py3-none-any.whl", hash = "sha256:4c017deca052cb287a6003b7c989ed8b47af65baeb5d57ebf93dde0793f78509" }, + { file = "opentelemetry_proto-1.23.0.tar.gz", hash = "sha256:e6aaf8b7ace8d021942d546161401b83eed90f9f2cc6f13275008cea730e4651" }, ] [package.dependencies] @@ -1194,8 +1194,8 @@ description = "OpenTelemetry Python SDK" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_sdk-1.23.0-py3-none-any.whl", hash = "sha256:a93c96990ac0f07c6d679e2f1015864ff7a4f5587122dd5af968034436efb1fd"}, - {file = "opentelemetry_sdk-1.23.0.tar.gz", hash = "sha256:9ddf60195837b59e72fd2033d6a47e2b59a0f74f0ec37d89387d89e3da8cab7f"}, + { file = "opentelemetry_sdk-1.23.0-py3-none-any.whl", hash = "sha256:a93c96990ac0f07c6d679e2f1015864ff7a4f5587122dd5af968034436efb1fd" }, + { file = "opentelemetry_sdk-1.23.0.tar.gz", hash = "sha256:9ddf60195837b59e72fd2033d6a47e2b59a0f74f0ec37d89387d89e3da8cab7f" }, ] [package.dependencies] @@ -1210,8 +1210,8 @@ description = "OpenTelemetry Semantic Conventions" optional = false python-versions = ">=3.8" files = [ - {file = "opentelemetry_semantic_conventions-0.44b0-py3-none-any.whl", hash = "sha256:7c434546c9cbd797ab980cc88bf9ff3f4a5a28f941117cad21694e43d5d92019"}, - {file = "opentelemetry_semantic_conventions-0.44b0.tar.gz", hash = "sha256:2e997cb28cd4ca81a25a9a43365f593d0c2b76be0685015349a89abdf1aa4ffa"}, + { file = "opentelemetry_semantic_conventions-0.44b0-py3-none-any.whl", hash = "sha256:7c434546c9cbd797ab980cc88bf9ff3f4a5a28f941117cad21694e43d5d92019" }, + { file = "opentelemetry_semantic_conventions-0.44b0.tar.gz", hash = "sha256:2e997cb28cd4ca81a25a9a43365f593d0c2b76be0685015349a89abdf1aa4ffa" }, ] [[package]] @@ -1221,8 +1221,8 @@ description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + { file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5" }, + { file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" }, ] [[package]] @@ -1232,41 +1232,41 @@ description = "Powerful data structures for data analysis, time series, and stat optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, - {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, - {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, - {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, - {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be"}, - {file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab"}, - {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, + { file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88" }, + { file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944" }, + { file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359" }, + { file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51" }, + { file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06" }, + { file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9" }, + { file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0" }, + { file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b" }, + { file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a" }, + { file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02" }, + { file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403" }, + { file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd" }, + { file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7" }, + { file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e" }, + { file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c" }, + { file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee" }, + { file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2" }, + { file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0" }, + { file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc" }, + { file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89" }, + { file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb" }, + { file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397" }, + { file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16" }, + { file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019" }, + { file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df" }, + { file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6" }, + { file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be" }, + { file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab" }, + { file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572" }, ] [package.dependencies] numpy = [ - {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0,<2", markers = "python_version >= \"3.12\""}, + { version = ">=1.23.2,<2", markers = "python_version == \"3.11\"" }, + { version = ">=1.26.0,<2", markers = "python_version >= \"3.12\"" }, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -1304,12 +1304,12 @@ description = "Pick an option in the terminal with a simple GUI" optional = false python-versions = ">=3.7" files = [ - {file = "pick-2.2.0-py3-none-any.whl", hash = "sha256:d301f358ee8eabe501795bb38a5160e05db68c0a89eb7ba38c7b667fc4673c8d"}, - {file = "pick-2.2.0.tar.gz", hash = "sha256:96920ebcfb9b8b6c2e50d9f211a700e5036611904169587a5a9245a645637a0d"}, + { file = "pick-2.2.0-py3-none-any.whl", hash = "sha256:d301f358ee8eabe501795bb38a5160e05db68c0a89eb7ba38c7b667fc4673c8d" }, + { file = "pick-2.2.0.tar.gz", hash = "sha256:96920ebcfb9b8b6c2e50d9f211a700e5036611904169587a5a9245a645637a0d" }, ] [package.dependencies] -windows-curses = {version = ">=2.2.0,<3.0.0", markers = "sys_platform == \"win32\""} +windows-curses = { version = ">=2.2.0,<3.0.0", markers = "sys_platform == \"win32\"" } [[package]] name = "pillow" @@ -1318,74 +1318,74 @@ description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, - {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, - {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, - {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, - {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, - {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, - {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, - {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, - {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, - {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, - {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, - {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, - {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, - {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, - {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, - {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, - {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, - {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, + { file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e" }, + { file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588" }, + { file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452" }, + { file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4" }, + { file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563" }, + { file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2" }, + { file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c" }, + { file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0" }, + { file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023" }, + { file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72" }, + { file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad" }, + { file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5" }, + { file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67" }, + { file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61" }, + { file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e" }, + { file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f" }, + { file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311" }, + { file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1" }, + { file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757" }, + { file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068" }, + { file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56" }, + { file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1" }, + { file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef" }, + { file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac" }, + { file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c" }, + { file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa" }, + { file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2" }, + { file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04" }, + { file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f" }, + { file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb" }, + { file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f" }, + { file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9" }, + { file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48" }, + { file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9" }, + { file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483" }, + { file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129" }, + { file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e" }, + { file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213" }, + { file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d" }, + { file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6" }, + { file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe" }, + { file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e" }, + { file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39" }, + { file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67" }, + { file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364" }, + { file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb" }, + { file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e" }, + { file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01" }, + { file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13" }, + { file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7" }, + { file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591" }, + { file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516" }, + { file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8" }, + { file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a" }, + { file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6" }, + { file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a" }, + { file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868" }, + { file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e" }, ] [package.extras] @@ -1403,8 +1403,8 @@ description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + { file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981" }, + { file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be" }, ] [package.extras] @@ -1418,17 +1418,17 @@ description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa"}, - {file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8"}, - {file = "protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c"}, - {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019"}, - {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d"}, - {file = "protobuf-4.25.3-cp38-cp38-win32.whl", hash = "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2"}, - {file = "protobuf-4.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4"}, - {file = "protobuf-4.25.3-cp39-cp39-win32.whl", hash = "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4"}, - {file = "protobuf-4.25.3-cp39-cp39-win_amd64.whl", hash = "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c"}, - {file = "protobuf-4.25.3-py3-none-any.whl", hash = "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9"}, - {file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"}, + { file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa" }, + { file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8" }, + { file = "protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c" }, + { file = "protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019" }, + { file = "protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d" }, + { file = "protobuf-4.25.3-cp38-cp38-win32.whl", hash = "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2" }, + { file = "protobuf-4.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4" }, + { file = "protobuf-4.25.3-cp39-cp39-win32.whl", hash = "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4" }, + { file = "protobuf-4.25.3-cp39-cp39-win_amd64.whl", hash = "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c" }, + { file = "protobuf-4.25.3-py3-none-any.whl", hash = "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9" }, + { file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c" }, ] [[package]] @@ -1438,8 +1438,8 @@ description = "C parser in Python" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + { file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9" }, + { file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" }, ] [[package]] @@ -1449,42 +1449,42 @@ description = "Data validation and settings management using python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, - {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, - {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, - {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, - {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, - {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, - {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, - {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, - {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, - {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, + { file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054" }, + { file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87" }, + { file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d" }, + { file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e" }, + { file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9" }, + { file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a" }, + { file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf" }, + { file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7" }, + { file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b" }, + { file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663" }, + { file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f" }, + { file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046" }, + { file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca" }, + { file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f" }, + { file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c" }, + { file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5" }, + { file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c" }, + { file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc" }, + { file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe" }, + { file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01" }, + { file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee" }, + { file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597" }, + { file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee" }, + { file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f" }, + { file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022" }, + { file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f" }, + { file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a" }, + { file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4" }, + { file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347" }, + { file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7" }, + { file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea" }, + { file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f" }, + { file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593" }, + { file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8" }, + { file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c" }, + { file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6" }, ] [package.dependencies] @@ -1501,8 +1501,8 @@ description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + { file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c" }, + { file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" }, ] [package.extras] @@ -1516,8 +1516,8 @@ description = "JSON Web Token implementation in Python" optional = false python-versions = ">=3.7" files = [ - {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, - {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, + { file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320" }, + { file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de" }, ] [package.extras] @@ -1533,8 +1533,8 @@ description = "Python wrapper module around the OpenSSL library" optional = false python-versions = ">=3.7" files = [ - {file = "pyOpenSSL-24.1.0-py3-none-any.whl", hash = "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad"}, - {file = "pyOpenSSL-24.1.0.tar.gz", hash = "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f"}, + { file = "pyOpenSSL-24.1.0-py3-none-any.whl", hash = "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad" }, + { file = "pyOpenSSL-24.1.0.tar.gz", hash = "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f" }, ] [package.dependencies] @@ -1551,8 +1551,8 @@ description = "pyparsing module - Classes and methods to define and execute pars optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, - {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, + { file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742" }, + { file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad" }, ] [package.extras] @@ -1565,7 +1565,7 @@ description = "Module for reading National Instruments TDMS files." optional = false python-versions = "*" files = [ - {file = "pyTDMS-0.0.3.zip", hash = "sha256:b06825395e0cb4a47d7acda431ade884065a944f0d79bdea6d2d1dd20786591d"}, + { file = "pyTDMS-0.0.3.zip", hash = "sha256:b06825395e0cb4a47d7acda431ade884065a944f0d79bdea6d2d1dd20786591d" }, ] [[package]] @@ -1575,12 +1575,12 @@ description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, - {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, + { file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7" }, + { file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044" }, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} +colorama = { version = "*", markers = "sys_platform == \"win32\"" } iniconfig = "*" packaging = "*" pluggy = ">=1.4,<2.0" @@ -1595,8 +1595,8 @@ description = "Pytest support for asyncio" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, - {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, + { file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d" }, + { file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b" }, ] [package.dependencies] @@ -1613,8 +1613,8 @@ description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, + { file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3" }, + { file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" }, ] [package.dependencies] @@ -1627,8 +1627,8 @@ description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, + { file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" }, + { file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812" }, ] [[package]] @@ -1638,8 +1638,8 @@ description = "A (partial) reimplementation of pywin32 using ctypes/cffi" optional = false python-versions = ">=3.6" files = [ - {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, - {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, + { file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60" }, + { file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7" }, ] [[package]] @@ -1649,8 +1649,8 @@ description = "Python HTTP for Humans." optional = false python-versions = ">=3.7" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + { file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f" }, + { file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" }, ] [package.dependencies] @@ -1670,8 +1670,8 @@ description = "Render rich text, tables, progress bars, syntax highlighting, mar optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, - {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, + { file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222" }, + { file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432" }, ] [package.dependencies] @@ -1688,8 +1688,8 @@ description = "Python bindings to FreeDesktop.org Secret Service API" optional = false python-versions = ">=3.6" files = [ - {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, - {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, + { file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99" }, + { file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77" }, ] [package.dependencies] @@ -1703,8 +1703,8 @@ description = "Easily download, build, install, upgrade, and uninstall Python pa optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, - {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, + { file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c" }, + { file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e" }, ] [package.extras] @@ -1719,8 +1719,8 @@ description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + { file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" }, + { file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926" }, ] [[package]] @@ -1730,8 +1730,8 @@ description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" optional = false python-versions = "*" files = [ - {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, - {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, + { file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0" }, + { file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88" }, ] [[package]] @@ -1741,8 +1741,8 @@ description = "Synnax Client Library" optional = false python-versions = "<4.0,>=3.11" files = [ - {file = "synnax-0.14.45-py3-none-any.whl", hash = "sha256:0698a1772e191aab266300e5e7bbc685b9a93223e851a0319bf12e3a893776d8"}, - {file = "synnax-0.14.45.tar.gz", hash = "sha256:752e4bb6b7023e42e3f1fbe509d2e74ddaf357f447531e54409f633028b169b5"}, + { file = "synnax-0.14.45-py3-none-any.whl", hash = "sha256:0698a1772e191aab266300e5e7bbc685b9a93223e851a0319bf12e3a893776d8" }, + { file = "synnax-0.14.45.tar.gz", hash = "sha256:752e4bb6b7023e42e3f1fbe509d2e74ddaf357f447531e54409f633028b169b5" }, ] [package.dependencies] @@ -1772,8 +1772,8 @@ description = "" optional = false python-versions = "<4.0,>=3.11" files = [ - {file = "synnax_freighter-0.5.45-py3-none-any.whl", hash = "sha256:ac665f07bb83ba0afbd5390c4f75aac442b9774025c8e9b0cfd609e0d4c2df56"}, - {file = "synnax_freighter-0.5.45.tar.gz", hash = "sha256:677df2e8f23728e87f4a9da2ed40858250123cc04da34e3efd20b01835787529"}, + { file = "synnax_freighter-0.5.45-py3-none-any.whl", hash = "sha256:ac665f07bb83ba0afbd5390c4f75aac442b9774025c8e9b0cfd609e0d4c2df56" }, + { file = "synnax_freighter-0.5.45.tar.gz", hash = "sha256:677df2e8f23728e87f4a9da2ed40858250123cc04da34e3efd20b01835787529" }, ] [package.dependencies] @@ -1791,8 +1791,8 @@ description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, - {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, + { file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475" }, + { file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" }, ] [[package]] @@ -1802,8 +1802,8 @@ description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + { file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252" }, + { file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd" }, ] [[package]] @@ -1813,8 +1813,8 @@ description = "OpenTelemetry Python distribution for Uptrace" optional = false python-versions = ">=3.7" files = [ - {file = "uptrace-1.22.0-py3-none-any.whl", hash = "sha256:f5e697d2b7995e0e6ca1af2c8a4ff79d12d69a9398cc8333bf4d3a95057bc08c"}, - {file = "uptrace-1.22.0.tar.gz", hash = "sha256:58334258ebb09da030ccdbf1549b6d05560968b1de4168e714698e4572b89f8a"}, + { file = "uptrace-1.22.0-py3-none-any.whl", hash = "sha256:f5e697d2b7995e0e6ca1af2c8a4ff79d12d69a9398cc8333bf4d3a95057bc08c" }, + { file = "uptrace-1.22.0.tar.gz", hash = "sha256:58334258ebb09da030ccdbf1549b6d05560968b1de4168e714698e4572b89f8a" }, ] [package.dependencies] @@ -1830,8 +1830,8 @@ description = "HTTP library with thread-safe connection pooling, file post, and optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + { file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d" }, + { file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" }, ] [package.extras] @@ -1847,76 +1847,76 @@ description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false python-versions = ">=3.7" files = [ - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526"}, - {file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69"}, - {file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd"}, - {file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c"}, - {file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8"}, - {file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af"}, - {file = "websockets-11.0.3-cp37-cp37m-win32.whl", hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f"}, - {file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788"}, - {file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74"}, - {file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311"}, - {file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128"}, - {file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602"}, - {file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"}, - {file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"}, + { file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac" }, + { file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d" }, + { file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f" }, + { file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564" }, + { file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11" }, + { file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca" }, + { file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54" }, + { file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4" }, + { file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526" }, + { file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69" }, + { file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f" }, + { file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb" }, + { file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288" }, + { file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d" }, + { file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3" }, + { file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b" }, + { file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6" }, + { file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97" }, + { file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf" }, + { file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd" }, + { file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c" }, + { file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8" }, + { file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152" }, + { file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f" }, + { file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b" }, + { file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb" }, + { file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007" }, + { file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0" }, + { file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af" }, + { file = "websockets-11.0.3-cp37-cp37m-win32.whl", hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f" }, + { file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de" }, + { file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0" }, + { file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae" }, + { file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99" }, + { file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa" }, + { file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86" }, + { file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c" }, + { file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0" }, + { file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e" }, + { file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788" }, + { file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74" }, + { file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f" }, + { file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8" }, + { file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd" }, + { file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016" }, + { file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61" }, + { file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b" }, + { file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd" }, + { file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7" }, + { file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1" }, + { file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311" }, + { file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128" }, + { file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e" }, + { file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf" }, + { file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5" }, + { file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998" }, + { file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b" }, + { file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb" }, + { file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20" }, + { file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931" }, + { file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9" }, + { file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280" }, + { file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b" }, + { file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82" }, + { file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c" }, + { file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d" }, + { file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4" }, + { file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602" }, + { file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6" }, + { file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016" }, ] [[package]] @@ -1926,20 +1926,20 @@ description = "Support for the standard curses module on Windows" optional = false python-versions = "*" files = [ - {file = "windows_curses-2.3.2-cp310-cp310-win32.whl", hash = "sha256:0286d35c9a2589731af3cf2b1251635a400f4b61aef2b9c081f6c98e7887a170"}, - {file = "windows_curses-2.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:b5e68520c7e92dff72914e4126cadb5b8eb3b6c968d955de6d35ff42306da8c0"}, - {file = "windows_curses-2.3.2-cp311-cp311-win32.whl", hash = "sha256:95d2a288af6172270da5ca9225aa99eeae98595c6e90f3574aa9b9f2fc1d2619"}, - {file = "windows_curses-2.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ecd0f21f643e22a979effff25f62200626bb9853ea8b9aacf0bbcaab0950d"}, - {file = "windows_curses-2.3.2-cp312-cp312-win32.whl", hash = "sha256:4546122f5bec2fb46c1706c020d971bcfc4d9a5158372f25ba7472a834b0f165"}, - {file = "windows_curses-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:e3f27939f39143c513f444a8c0419b2737e8de55fbe5d63d765992512125366d"}, - {file = "windows_curses-2.3.2-cp36-cp36m-win32.whl", hash = "sha256:a570f744a62108d024a7775b3b156b2ae2380fc971237c3bd2742341e7151f22"}, - {file = "windows_curses-2.3.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f81294465a67e43ddc50c1b52711b100b002fa1238f87d84d0cf94b785c4fe75"}, - {file = "windows_curses-2.3.2-cp37-cp37m-win32.whl", hash = "sha256:72ff5d8963fbb3aa662bfced2c5ea22dc3ed58bac827a3bff74a1de5eacdbe57"}, - {file = "windows_curses-2.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:70d8cb4ddad43f695a266f79c7a31d40ac8aee2a17cf8e06ecfd4a71589ad30d"}, - {file = "windows_curses-2.3.2-cp38-cp38-win32.whl", hash = "sha256:6bc698058081408685975256f46f570c32f8d7e1f4f82f9d6c66c300c6daff89"}, - {file = "windows_curses-2.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:f73bfd283f86d3ac0a72b74307ccc99ea0fd008a732d80db95d31fbafeee3c66"}, - {file = "windows_curses-2.3.2-cp39-cp39-win32.whl", hash = "sha256:e4ec5245f0c00ede45b033a885511eea80d5928c9bd3ceb523fbfb086370a4df"}, - {file = "windows_curses-2.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:00d5d000b68db38bd97b6a5b90ee4b4c915a7cef7492fc5aa9ecc7794ee2ca93"}, + { file = "windows_curses-2.3.2-cp310-cp310-win32.whl", hash = "sha256:0286d35c9a2589731af3cf2b1251635a400f4b61aef2b9c081f6c98e7887a170" }, + { file = "windows_curses-2.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:b5e68520c7e92dff72914e4126cadb5b8eb3b6c968d955de6d35ff42306da8c0" }, + { file = "windows_curses-2.3.2-cp311-cp311-win32.whl", hash = "sha256:95d2a288af6172270da5ca9225aa99eeae98595c6e90f3574aa9b9f2fc1d2619" }, + { file = "windows_curses-2.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ecd0f21f643e22a979effff25f62200626bb9853ea8b9aacf0bbcaab0950d" }, + { file = "windows_curses-2.3.2-cp312-cp312-win32.whl", hash = "sha256:4546122f5bec2fb46c1706c020d971bcfc4d9a5158372f25ba7472a834b0f165" }, + { file = "windows_curses-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:e3f27939f39143c513f444a8c0419b2737e8de55fbe5d63d765992512125366d" }, + { file = "windows_curses-2.3.2-cp36-cp36m-win32.whl", hash = "sha256:a570f744a62108d024a7775b3b156b2ae2380fc971237c3bd2742341e7151f22" }, + { file = "windows_curses-2.3.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f81294465a67e43ddc50c1b52711b100b002fa1238f87d84d0cf94b785c4fe75" }, + { file = "windows_curses-2.3.2-cp37-cp37m-win32.whl", hash = "sha256:72ff5d8963fbb3aa662bfced2c5ea22dc3ed58bac827a3bff74a1de5eacdbe57" }, + { file = "windows_curses-2.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:70d8cb4ddad43f695a266f79c7a31d40ac8aee2a17cf8e06ecfd4a71589ad30d" }, + { file = "windows_curses-2.3.2-cp38-cp38-win32.whl", hash = "sha256:6bc698058081408685975256f46f570c32f8d7e1f4f82f9d6c66c300c6daff89" }, + { file = "windows_curses-2.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:f73bfd283f86d3ac0a72b74307ccc99ea0fd008a732d80db95d31fbafeee3c66" }, + { file = "windows_curses-2.3.2-cp39-cp39-win32.whl", hash = "sha256:e4ec5245f0c00ede45b033a885511eea80d5928c9bd3ceb523fbfb086370a4df" }, + { file = "windows_curses-2.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:00d5d000b68db38bd97b6a5b90ee4b4c915a7cef7492fc5aa9ecc7794ee2ca93" }, ] [[package]] @@ -1949,76 +1949,76 @@ description = "Module for decorators, wrappers and monkey patching." optional = false python-versions = ">=3.6" files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, + { file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4" }, + { file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020" }, + { file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440" }, + { file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487" }, + { file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf" }, + { file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72" }, + { file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0" }, + { file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136" }, + { file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d" }, + { file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2" }, + { file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09" }, + { file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d" }, + { file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389" }, + { file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060" }, + { file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1" }, + { file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3" }, + { file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956" }, + { file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d" }, + { file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362" }, + { file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89" }, + { file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b" }, + { file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36" }, + { file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73" }, + { file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809" }, + { file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b" }, + { file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81" }, + { file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9" }, + { file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c" }, + { file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc" }, + { file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8" }, + { file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8" }, + { file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39" }, + { file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c" }, + { file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40" }, + { file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc" }, + { file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e" }, + { file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465" }, + { file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e" }, + { file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966" }, + { file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593" }, + { file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292" }, + { file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5" }, + { file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf" }, + { file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228" }, + { file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f" }, + { file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c" }, + { file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c" }, + { file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00" }, + { file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0" }, + { file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202" }, + { file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0" }, + { file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e" }, + { file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f" }, + { file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267" }, + { file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca" }, + { file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6" }, + { file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b" }, + { file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41" }, + { file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2" }, + { file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb" }, + { file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8" }, + { file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c" }, + { file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a" }, + { file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664" }, + { file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f" }, + { file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537" }, + { file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3" }, + { file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35" }, + { file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1" }, + { file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d" }, ] [[package]] @@ -2028,8 +2028,8 @@ description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, - {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, + { file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b" }, + { file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715" }, ] [package.extras] diff --git a/driver/opc/dev/server-extended.py b/driver/opc/dev/server-extended.py index f66a6601f0..a09c538380 100644 --- a/driver/opc/dev/server-extended.py +++ b/driver/opc/dev/server-extended.py @@ -24,7 +24,6 @@ async def main(): uri = "http://examples.freeopcua.github.io" idx = await server.register_namespace(uri) - # Populating our address space myobj = await server.nodes.objects.add_object(idx, "MyObject") ARRAY_COUNT = 50 @@ -65,7 +64,7 @@ async def main(): await arr.set_value(values, varianttype=ua.VariantType.Float) await mytimearray.set_value(timestamps, varianttype=ua.VariantType.DateTime) duration = (datetime.datetime.utcnow() - start).total_seconds() - await asyncio.sleep((1/RATE) - duration) + await asyncio.sleep((1 / RATE) - duration) if __name__ == "__main__": diff --git a/driver/opc/dev/server-minimal.py b/driver/opc/dev/server-minimal.py index f7a588bfb0..92cc58de92 100644 --- a/driver/opc/dev/server-minimal.py +++ b/driver/opc/dev/server-minimal.py @@ -13,6 +13,7 @@ import socket import logging + sys.path.insert(0, "..") from asyncua import Server from asyncua import ua @@ -23,20 +24,17 @@ from cryptography.x509.oid import ExtendedKeyUsageOID from asyncua.crypto.truststore import TrustStore - logging.basicConfig(level=logging.INFO) - USE_TRUST_STORE = False + async def main(): server_cert = Path("server.der") server_private_key = Path("server.key.der") host_name = socket.gethostname() - server_app_uri = f"myselfsignedserver@{host_name}" - - + server_app_uri = f"myselfsignedserver@{host_name}" server = Server() await server.init() @@ -51,10 +49,12 @@ async def main(): if USE_TRUST_STORE: trust_store = TrustStore([Path('examples') / 'certificates' / 'trusted' / 'certs'], []) await trust_store.load() - validator = CertificateValidator(options=CertificateValidatorOptions.TRUSTED_VALIDATION | CertificateValidatorOptions.PEER_CLIENT, - trust_store = trust_store) + validator = CertificateValidator( + options=CertificateValidatorOptions.TRUSTED_VALIDATION | CertificateValidatorOptions.PEER_CLIENT, + trust_store=trust_store) else: - validator = CertificateValidator(options=CertificateValidatorOptions.EXT_VALIDATION | CertificateValidatorOptions.PEER_CLIENT) + validator = CertificateValidator( + options=CertificateValidatorOptions.EXT_VALIDATION | CertificateValidatorOptions.PEER_CLIENT) server.set_certificate_validator(validator) idx = 0 @@ -76,4 +76,4 @@ async def main(): if __name__ == "__main__": logging.basicConfig(level=logging.INFO) - asyncio.run(main()) \ No newline at end of file + asyncio.run(main()) diff --git a/driver/opc/dev/server.cpp b/driver/opc/dev/server.cpp index 7ae1c32170..398b6efee6 100644 --- a/driver/opc/dev/server.cpp +++ b/driver/opc/dev/server.cpp @@ -30,8 +30,8 @@ int main() { UA_VariableAttributes attr = UA_VariableAttributes_default; UA_Int32 myInteger = 42; UA_Variant_setScalarCopy(&attr.value, &myInteger, &UA_TYPES[UA_TYPES_INT32]); - attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); - attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); + attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); + attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); UA_NodeId myIntegerNodeId = UA_NODEID_STRING_ALLOC(1, "the.answer"); UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME_ALLOC(1, "the answer"); UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER); @@ -44,8 +44,8 @@ int main() { UA_VariableAttributes attr2 = UA_VariableAttributes_default; UA_Double myDouble = 3.14; UA_Variant_setScalarCopy(&attr2.value, &myDouble, &UA_TYPES[UA_TYPES_DOUBLE]); - attr2.description = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer 2"); - attr2.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer 2"); + attr2.description = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer 2"); + attr2.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer 2"); attr2.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE; UA_NodeId myDoubleNodeId = UA_NODEID_STRING_ALLOC(1, "the.answer2"); UA_QualifiedName myDoubleName = UA_QUALIFIEDNAME_ALLOC(1, "the answer 2"); diff --git a/driver/opc/dev/server_encrypted.cpp b/driver/opc/dev/server_encrypted.cpp index e967631a7a..5554a96677 100644 --- a/driver/opc/dev/server_encrypted.cpp +++ b/driver/opc/dev/server_encrypted.cpp @@ -29,7 +29,9 @@ # include # define sleep_ms(ms) Sleep(ms) #else + # include + # define sleep_ms(ms) usleep(ms * 1000) #endif @@ -38,12 +40,13 @@ * @param path specifies the file name given in argv[] * @return Returns the file content after parsing */ static UA_INLINE UA_ByteString + loadFile(const char *const path) { UA_ByteString fileContents = UA_STRING_NULL; /* Open the file */ FILE *fp = fopen(path, "rb"); - if(!fp) { + if (!fp) { // exit with errno errno = 1; /* We read errno also from the tcp layer... */ exit(errno); @@ -52,12 +55,12 @@ loadFile(const char *const path) { /* Get the file length, allocate the data and read */ fseek(fp, 0, SEEK_END); - fileContents.length = (size_t)ftell(fp); - fileContents.data = (UA_Byte *)UA_malloc(fileContents.length * sizeof(UA_Byte)); - if(fileContents.data) { + fileContents.length = (size_t) ftell(fp); + fileContents.data = (UA_Byte *) UA_malloc(fileContents.length * sizeof(UA_Byte)); + if (fileContents.data) { fseek(fp, 0, SEEK_SET); size_t read = fread(fileContents.data, sizeof(UA_Byte), fileContents.length, fp); - if(read != fileContents.length) + if (read != fileContents.length) UA_ByteString_clear(&fileContents); } else { fileContents.length = 0; @@ -68,16 +71,17 @@ loadFile(const char *const path) { } static UA_INLINE UA_StatusCode -writeFile(const char* const path, const UA_ByteString buffer) { + +writeFile(const char *const path, const UA_ByteString buffer) { FILE *fp = NULL; fp = fopen(path, "wb"); - if(fp == NULL) + if (fp == NULL) return UA_STATUSCODE_BADINTERNALERROR; - for(UA_UInt32 bufIndex = 0; bufIndex < buffer.length; bufIndex++) { + for (UA_UInt32 bufIndex = 0; bufIndex < buffer.length; bufIndex++) { int retVal = fputc(buffer.data[bufIndex], fp); - if(retVal == EOF) { + if (retVal == EOF) { fclose(fp); return UA_STATUSCODE_BADINTERNALERROR; } @@ -88,6 +92,7 @@ writeFile(const char* const path, const UA_ByteString buffer) { } UA_Boolean running = true; + static void stopHandler(int sig) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "received ctrl-c"); running = false; @@ -127,15 +132,15 @@ allowDeleteReference(UA_Server *server, UA_AccessControl *ac, } static UA_UsernamePasswordLogin userNamePW[2] = { - {UA_STRING_STATIC("peter"), UA_STRING_STATIC("peter123")}, - {UA_STRING_STATIC("paula"), UA_STRING_STATIC("paula123")} + {UA_STRING_STATIC("peter"), UA_STRING_STATIC("peter123")}, + {UA_STRING_STATIC("paula"), UA_STRING_STATIC("paula123")} }; static void setCustomAccessControl(UA_ServerConfig *config) { /* Use the default AccessControl plugin as the starting point */ UA_Boolean allowAnonymous = false; UA_String encryptionPolicy = UA_STRING_STATIC("http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"); - //config->securityPolicies[config->securityPoliciesSize-1].policyUri; + //config->securityPolicies[config->securityPoliciesSize-1].policyUri; config->accessControl.clear(&config->accessControl); UA_AccessControl_default(config, allowAnonymous, &encryptionPolicy, 2, userNamePW); @@ -146,30 +151,30 @@ static void setCustomAccessControl(UA_ServerConfig *config) { config->accessControl.allowDeleteReference = allowDeleteReference; } -int main(int argc, char* argv[]) { +int main(int argc, char *argv[]) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ByteString certificate = UA_BYTESTRING_NULL; UA_ByteString privateKey = UA_BYTESTRING_NULL; - if(argc >= 3) { + if (argc >= 3) { /* Load certificate and private key */ certificate = loadFile(argv[1]); privateKey = loadFile(argv[2]); } /* Load the trustlist */ size_t trustListSize = 0; - if(argc > 3) - trustListSize = (size_t)argc-3; - UA_STACKARRAY(UA_ByteString, trustList, trustListSize+1); - for(size_t i = 0; i < trustListSize; i++) - trustList[i] = loadFile(argv[i+3]); + if (argc > 3) + trustListSize = (size_t) argc - 3; + UA_STACKARRAY(UA_ByteString, trustList, trustListSize + 1); + for (size_t i = 0; i < trustListSize; i++) + trustList[i] = loadFile(argv[i + 3]); /* Loading of an issuer list, not used in this application */ size_t issuerListSize = 0; - UA_ByteString *issuerList = NULL; + UA_ByteString * issuerList = NULL; /* Loading of a revocation list currently unsupported */ - UA_ByteString *revocationList = NULL; + UA_ByteString * revocationList = NULL; size_t revocationListSize = 0; UA_Server *server = UA_Server_new(); @@ -177,10 +182,10 @@ int main(int argc, char* argv[]) { // config->allowNonePolicyPassword = true; UA_StatusCode retval = UA_ServerConfig_setDefaultWithSecurityPolicies(config, 4840, - &certificate, &privateKey, - trustList, trustListSize, - issuerList, issuerListSize, - revocationList, revocationListSize); + &certificate, &privateKey, + trustList, trustListSize, + issuerList, issuerListSize, + revocationList, revocationListSize); if (retval != UA_STATUSCODE_GOOD) { UA_LOG_ERROR(UA_Log_Stdout, UA_LOGCATEGORY_SERVER, "Error setting up the server with security policies"); @@ -190,8 +195,8 @@ int main(int argc, char* argv[]) { UA_VariableAttributes attr = UA_VariableAttributes_default; UA_Int32 myInteger = 42; UA_Variant_setScalarCopy(&attr.value, &myInteger, &UA_TYPES[UA_TYPES_INT32]); - attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); - attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); + attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); + attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); UA_NodeId myIntegerNodeId = UA_NODEID_STRING_ALLOC(1, "the.answer"); UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME_ALLOC(1, "the answer"); UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER); @@ -204,8 +209,8 @@ int main(int argc, char* argv[]) { UA_VariableAttributes attr2 = UA_VariableAttributes_default; UA_Double myDouble = 3.14; UA_Variant_setScalarCopy(&attr2.value, &myDouble, &UA_TYPES[UA_TYPES_DOUBLE]); - attr2.description = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer 2"); - attr2.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer 2"); + attr2.description = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer 2"); + attr2.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer 2"); attr2.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE; UA_NodeId myDoubleNodeId = UA_NODEID_STRING_ALLOC(1, "the.answer2"); UA_QualifiedName myDoubleName = UA_QUALIFIEDNAME_ALLOC(1, "the answer 2"); @@ -217,15 +222,15 @@ int main(int argc, char* argv[]) { setCustomAccessControl(config); UA_ByteString_clear(&certificate); UA_ByteString_clear(&privateKey); - for(size_t i = 0; i < trustListSize; i++) + for (size_t i = 0; i < trustListSize; i++) UA_ByteString_clear(&trustList[i]); - if(retval != UA_STATUSCODE_GOOD) + if (retval != UA_STATUSCODE_GOOD) goto cleanup; - if(!running) + if (!running) goto cleanup; /* received ctrl-c already */ - // add a variable node to the adresspace + // add a variable node to the adresspace /* allocations on the heap need to be freed */ @@ -235,7 +240,7 @@ int main(int argc, char* argv[]) { retval = UA_Server_run(server, &running); - cleanup: + cleanup: UA_Server_delete(server); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/driver/opc/factory.cpp b/driver/opc/factory.cpp index f2d17491df..eed4e24bb0 100644 --- a/driver/opc/factory.cpp +++ b/driver/opc/factory.cpp @@ -13,8 +13,8 @@ #include "driver/opc/reader.h" std::pair, bool> opc::Factory::configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ) { if (task.type == "opcScanner") // TODO: not sure if we want this and also the configure initial tasks return {std::make_unique(ctx, task), true}; @@ -25,8 +25,8 @@ std::pair, bool> opc::Factory::configureTask( std::vector > > opc::Factory::configureInitialTasks( - const std::shared_ptr &ctx, - const synnax::Rack &rack + const std::shared_ptr &ctx, + const synnax::Rack &rack ) { std::vector > > tasks; auto [existing, err] = rack.tasks.list(); @@ -39,17 +39,17 @@ opc::Factory::configureInitialTasks( for (const auto &t: existing) { if (t.type == "opcScanner") { LOG(INFO) << "[opc] found existing scanner task with key: " << t.key << - " skipping creation." << std::endl; + " skipping creation." << std::endl; hasScanner = true; } } if (!hasScanner) { auto sy_task = synnax::Task( - rack.key, - "opc Scanner", - "opcScanner", - "" + rack.key, + "opc Scanner", + "opcScanner", + "" ); auto err = rack.tasks.create(sy_task); LOG(INFO) << "[opc] created scanner task with key: " << sy_task.key; @@ -60,7 +60,8 @@ opc::Factory::configureInitialTasks( auto [task, ok] = configureTask(ctx, sy_task); if (ok && task != nullptr) tasks.emplace_back(std::make_pair(sy_task, std::move(task))); - else LOG(ERROR) << "[opc] Failed to configure scanner task"; + else + LOG(ERROR) << "[opc] Failed to configure scanner task"; } return tasks; } diff --git a/driver/opc/mock_server.h b/driver/opc/mock_server.h index 0602496c6f..f32ff9cb4d 100644 --- a/driver/opc/mock_server.h +++ b/driver/opc/mock_server.h @@ -31,10 +31,10 @@ struct MockServerConfig { class MockServer { public: MockServerConfig cfg; - volatile bool* running = new bool(false); + volatile bool *running = new bool(false); std::thread thread; - explicit MockServer(const MockServerConfig& cfg): cfg(cfg) { + explicit MockServer(const MockServerConfig &cfg) : cfg(cfg) { } void start() { @@ -48,14 +48,14 @@ class MockServer { } void run() const { - UA_Server* server = UA_Server_new(); + UA_Server *server = UA_Server_new(); - for (auto& ch : cfg.channels) { + for (auto &ch: cfg.channels) { UA_VariableAttributes attr = UA_VariableAttributes_default; UA_Int32 myInteger = 42; UA_Variant_setScalarCopy(&attr.value, &myInteger, &UA_TYPES[UA_TYPES_INT32]); - attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); - attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US","the answer"); + attr.description = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); + attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "the answer"); UA_NodeId myIntegerNodeId = UA_NODEID_STRING_ALLOC(ch.ns, ch.node.c_str()); UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME_ALLOC(ch.ns, ch.node.c_str()); UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER); diff --git a/driver/opc/opc.h b/driver/opc/opc.h index 84c746f160..b5291fdddf 100644 --- a/driver/opc/opc.h +++ b/driver/opc/opc.h @@ -15,123 +15,123 @@ namespace opc { /// @brief the configuration for an OPC UA connection. -struct ConnectionConfig { - /// @brief the endpoint of the OPC UA server. - std::string endpoint; - /// @brief the username to use for authentication. Not required. - std::string username; - /// @brief the password to use for authentication. Not required. - std::string password; - /// @brief the security mode. - std::string security_mode; - /// @brief the security policy. - std::string security_policy; - /// @brief the client certificate used to sign and encrypt messages. Only required - /// if the security policy is not "None". - std::string client_cert; - /// @brief the client private key used to sign and encrypt messages. Only required - /// if the security policy is not "None". - std::string client_private_key; - /// @brief a trusted server certificate. Only req - std::string server_cert; - - ConnectionConfig() = default; - - explicit ConnectionConfig( - config::Parser parser - ): endpoint(parser.required("endpoint")), - username(parser.optional("username", "")), - password(parser.optional("password", "")), - security_mode(parser.optional("security_mode", "None")), - security_policy(parser.optional("security_policy", "None")), - client_cert(parser.optional("client_certificate", "")), - client_private_key(parser.optional("client_private_key", "")), - server_cert(parser.optional("server_certificate", "")) { - } - - json toJSON() const { - return { - {"endpoint", endpoint}, - {"username", username}, - {"password", password}, - {"security_mode", security_mode}, - {"security_policy", security_policy}, - {"client_certificate", client_cert}, - {"client_private_key", client_private_key} - }; - } -}; - -struct DeviceNodeProperties { - synnax::DataType data_type; - std::string name; - std::string node_id; - bool is_array; - - DeviceNodeProperties( - synnax::DataType data_type, - std::string name, - std::string node_id, - bool is_array - ): data_type(data_type), name(name), node_id(node_id), is_array(is_array) { - } - - explicit DeviceNodeProperties(config::Parser parser): data_type( - synnax::DataType(parser.required("data_type"))), - name(parser.required("name")), - node_id(parser.required("node_id")), - is_array(parser.optional("is_array", false)) { - } - - json toJSON() const { - return { - {"data_type", data_type.name()}, - {"name", name}, - {"node_id", node_id}, - {"is_array", is_array} - }; - } -}; - -struct DeviceProperties { - ConnectionConfig connection; - std::vector channels; - - DeviceProperties( - ConnectionConfig connection, - std::vector channels - ): connection(connection), channels(channels) { - } - - explicit DeviceProperties( - config::Parser parser - ): connection(parser.child("connection")), - channels({}) { - parser.iter("channels", [&](const config::Parser &cb) { - channels.emplace_back(cb); - }); - } - - json toJSON() const { - json j; - j["connection"] = connection.toJSON(); - j["channels"] = json::array(); - for (const auto &ch: channels) - j["channels"].push_back(ch.toJSON()); - return j; - } -}; - -const std::string INTEGRATION_NAME = "opc"; - -class Factory final : public task::Factory { - std::pair, bool> configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task - ) override; - - std::vector > > - configureInitialTasks(const std::shared_ptr &ctx, - const synnax::Rack &rack) override; -}; + struct ConnectionConfig { + /// @brief the endpoint of the OPC UA server. + std::string endpoint; + /// @brief the username to use for authentication. Not required. + std::string username; + /// @brief the password to use for authentication. Not required. + std::string password; + /// @brief the security mode. + std::string security_mode; + /// @brief the security policy. + std::string security_policy; + /// @brief the client certificate used to sign and encrypt messages. Only required + /// if the security policy is not "None". + std::string client_cert; + /// @brief the client private key used to sign and encrypt messages. Only required + /// if the security policy is not "None". + std::string client_private_key; + /// @brief a trusted server certificate. Only req + std::string server_cert; + + ConnectionConfig() = default; + + explicit ConnectionConfig( + config::Parser parser + ) : endpoint(parser.required("endpoint")), + username(parser.optional("username", "")), + password(parser.optional("password", "")), + security_mode(parser.optional("security_mode", "None")), + security_policy(parser.optional("security_policy", "None")), + client_cert(parser.optional("client_certificate", "")), + client_private_key(parser.optional("client_private_key", "")), + server_cert(parser.optional("server_certificate", "")) { + } + + json toJSON() const { + return { + {"endpoint", endpoint}, + {"username", username}, + {"password", password}, + {"security_mode", security_mode}, + {"security_policy", security_policy}, + {"client_certificate", client_cert}, + {"client_private_key", client_private_key} + }; + } + }; + + struct DeviceNodeProperties { + synnax::DataType data_type; + std::string name; + std::string node_id; + bool is_array; + + DeviceNodeProperties( + synnax::DataType data_type, + std::string name, + std::string node_id, + bool is_array + ) : data_type(data_type), name(name), node_id(node_id), is_array(is_array) { + } + + explicit DeviceNodeProperties(config::Parser parser) : data_type( + synnax::DataType(parser.required("data_type"))), + name(parser.required("name")), + node_id(parser.required("node_id")), + is_array(parser.optional("is_array", false)) { + } + + json toJSON() const { + return { + {"data_type", data_type.name()}, + {"name", name}, + {"node_id", node_id}, + {"is_array", is_array} + }; + } + }; + + struct DeviceProperties { + ConnectionConfig connection; + std::vector channels; + + DeviceProperties( + ConnectionConfig connection, + std::vector channels + ) : connection(connection), channels(channels) { + } + + explicit DeviceProperties( + config::Parser parser + ) : connection(parser.child("connection")), + channels({}) { + parser.iter("channels", [&](const config::Parser &cb) { + channels.emplace_back(cb); + }); + } + + json toJSON() const { + json j; + j["connection"] = connection.toJSON(); + j["channels"] = json::array(); + for (const auto &ch: channels) + j["channels"].push_back(ch.toJSON()); + return j; + } + }; + + const std::string INTEGRATION_NAME = "opc"; + + class Factory final : public task::Factory { + std::pair, bool> configureTask( + const std::shared_ptr &ctx, + const synnax::Task &task + ) override; + + std::vector > > + configureInitialTasks(const std::shared_ptr &ctx, + const synnax::Rack &rack) override; + }; } diff --git a/driver/opc/reader.cpp b/driver/opc/reader.cpp index cda1f2d044..a5a7003f80 100644 --- a/driver/opc/reader.cpp +++ b/driver/opc/reader.cpp @@ -28,8 +28,8 @@ using namespace opc; ReaderConfig::ReaderConfig( - config::Parser &parser -): device(parser.required("device")) { + config::Parser &parser +) : device(parser.required("device")) { sample_rate = Rate(parser.required("sample_rate")); stream_rate = Rate(parser.required("stream_rate")); if (stream_rate.value <= 0) stream_rate = Rate(1); @@ -41,10 +41,10 @@ ReaderConfig::ReaderConfig( } std::pair, std::set >, - freighter::Error> retrieveAdditionalChannelInfo( - const std::shared_ptr &ctx, - ReaderConfig &cfg, - breaker::Breaker &breaker + freighter::Error> retrieveAdditionalChannelInfo( + const std::shared_ptr &ctx, + ReaderConfig &cfg, + breaker::Breaker &breaker ) { auto channelKeys = cfg.channelKeys(); if (channelKeys.empty()) return {{channelKeys, {}}, freighter::NIL}; @@ -85,11 +85,11 @@ class ReaderSource final : public pipeline::Source { task::State curr_state; ReaderSource( - ReaderConfig cfg, - const std::shared_ptr &client, - std::set indexes, - std::shared_ptr ctx, - synnax::Task task + ReaderConfig cfg, + const std::shared_ptr &client, + std::set indexes, + std::shared_ptr ctx, + synnax::Task task ) : cfg(std::move(cfg)), client(client), indexes(std::move(indexes)), @@ -102,8 +102,8 @@ class ReaderSource final : public pipeline::Source { curr_state.task = task.key; curr_state.variant = "success"; curr_state.details = json{ - {"message", "Task configured successfully"}, - {"running", true} + {"message", "Task configured successfully"}, + {"running", true} }; this->ctx->setState(curr_state); } @@ -129,8 +129,8 @@ class ReaderSource final : public pipeline::Source { void stoppedWithErr(const freighter::Error &err) override { curr_state.variant = "error"; curr_state.details = json{ - {"message", err.message()}, - {"running", false} + {"message", err.message()}, + {"running", false} }; ctx->setState(curr_state); } @@ -138,28 +138,28 @@ class ReaderSource final : public pipeline::Source { freighter::Error communicate_res_error(const UA_StatusCode &status) { freighter::Error err; if ( - status == UA_STATUSCODE_BADCONNECTIONREJECTED || - status == UA_STATUSCODE_BADSECURECHANNELCLOSED - ) { + status == UA_STATUSCODE_BADCONNECTIONREJECTED || + status == UA_STATUSCODE_BADSECURECHANNELCLOSED + ) { err = freighter::Error(driver::TEMPORARY_HARDWARE_ERROR, "connection rejected"); curr_state.variant = "warning"; curr_state.details = json{ - { - "message", - "Temporarily unable to reach OPC UA server. Will keep trying." - }, - {"running", true} + { + "message", + "Temporarily unable to reach OPC UA server. Will keep trying." + }, + { "running", true} }; } else { - err = freighter::Error( driver::CRITICAL_HARDWARE_ERROR, - "failed to execute read: " + std::string(UA_StatusCode_name(status))); + err = freighter::Error(driver::CRITICAL_HARDWARE_ERROR, + "failed to execute read: " + std::string(UA_StatusCode_name(status))); curr_state.variant = "error"; curr_state.details = json{ - { - "message", "Failed to read from OPC UA server: " + std::string( - UA_StatusCode_name(status)) - }, - {"running", false} + { + "message", "Failed to read from OPC UA server: " + std::string( + UA_StatusCode_name(status)) + }, + { "running", false} }; } ctx->setState(curr_state); @@ -167,42 +167,42 @@ class ReaderSource final : public pipeline::Source { } freighter::Error communicate_value_error( - const std::string &channel, - const UA_StatusCode &status + const std::string &channel, + const UA_StatusCode &status ) const { std::string status_name = UA_StatusCode_name(status); std::string message = "Failed to read value from channel " + channel + ": " + status_name; LOG(ERROR) << "[opc.reader]" << message; ctx->setState({ - .task = task.key, - .variant = "error", - .details = json{ - {"message", message}, - {"running", false} - } - }); + .task = task.key, + .variant = "error", + .details = json{ + {"message", message}, + {"running", false} + } + }); return { - driver::CRITICAL_HARDWARE_ERROR, - message + driver::CRITICAL_HARDWARE_ERROR, + message }; } size_t cap_array_length( - size_t i, - size_t length + size_t i, + size_t length ) { if (i + length > cfg.array_size) { if (curr_state.variant != "warning") { curr_state.variant = "warning"; curr_state.details = json{ - { - "message", - "Received array of length " + std::to_string(length) + - " from OPC UA server, which is larger than the configured size of " - + std::to_string(cfg.array_size) + ". Truncating array." - }, - {"running", true} + { + "message", + "Received array of length " + std::to_string(length) + + " from OPC UA server, which is larger than the configured size of " + + std::to_string(cfg.array_size) + ". Truncating array." + }, + { "running", true} }; ctx->setState(curr_state); } @@ -212,9 +212,9 @@ class ReaderSource final : public pipeline::Source { } void set_val_on_series( - UA_Variant *val, - size_t i, - synnax::Series &s + UA_Variant *val, + size_t i, + synnax::Series &s ) { if (UA_Variant_hasArrayType(val, &UA_TYPES[UA_TYPES_FLOAT])) { UA_Float *data = static_cast(val->data); @@ -300,8 +300,9 @@ class ReaderSource final : public pipeline::Source { if (s.data_type == synnax::INT64) s.set(i, value); if (s.data_type == synnax::UINT32) s.set(i, static_cast(value)); if (s.data_type == synnax::UINT64) s.set(i, static_cast(value)); - if (s.data_type == synnax::TIMESTAMP) s. - set(i, static_cast(value)); + if (s.data_type == synnax::TIMESTAMP) + s. + set(i, static_cast(value)); } if (val->type == &UA_TYPES[UA_TYPES_UINT32]) { const auto value = *static_cast(val->data); @@ -319,8 +320,9 @@ class ReaderSource final : public pipeline::Source { if (s.data_type == synnax::INT64) s.set(i, static_cast(value)); if (s.data_type == synnax::UINT32) s.set(i, static_cast(value)); // Potential data loss - if (s.data_type == synnax::TIMESTAMP) s. - set(i, static_cast(value)); + if (s.data_type == synnax::TIMESTAMP) + s. + set(i, static_cast(value)); } if (val->type == &UA_TYPES[UA_TYPES_BYTE]) { const auto value = *static_cast(val->data); @@ -360,10 +362,12 @@ class ReaderSource final : public pipeline::Source { if (val->type == &UA_TYPES[UA_TYPES_DATETIME]) { const auto value = *static_cast(val->data); if (s.data_type == synnax::INT64) s.set(i, ua_datetime_to_unix_nano(value)); - if (s.data_type == synnax::TIMESTAMP) s.set( - i, ua_datetime_to_unix_nano(value)); - if (s.data_type == synnax::UINT64) s.set( - i, static_cast(ua_datetime_to_unix_nano(value))); + if (s.data_type == synnax::TIMESTAMP) + s.set( + i, ua_datetime_to_unix_nano(value)); + if (s.data_type == synnax::UINT64) + s.set( + i, static_cast(ua_datetime_to_unix_nano(value))); if (s.data_type == synnax::FLOAT32) s.set(i, static_cast(value)); if (s.data_type == synnax::FLOAT64) s.set(i, static_cast(value)); } @@ -372,7 +376,7 @@ class ReaderSource final : public pipeline::Source { std::pair read() override { auto fr = Frame(cfg.channels.size() + indexes.size()); auto read_calls_per_cycle = static_cast( - cfg.sample_rate.value / cfg.stream_rate.value + cfg.sample_rate.value / cfg.stream_rate.value ); auto series_size = read_calls_per_cycle; if (cfg.array_size > 1) { @@ -434,11 +438,11 @@ class ReaderSource final : public pipeline::Source { if (exceed_time_count == 5) { curr_state.variant = "warning"; curr_state.details = json{ - { - "message", - "Sample rate exceeds OPC UA server throughput. samples may be delayed" - }, - {"running", true} + { + "message", + "Sample rate exceeds OPC UA server throughput. samples may be delayed" + }, + { "running", true} }; ctx->setState(curr_state); } @@ -447,8 +451,8 @@ class ReaderSource final : public pipeline::Source { if (exceed_time_count < 5 && curr_state.variant != "success") { curr_state.variant = "success"; curr_state.details = json{ - {"message", "Operating normally"}, - {"running", true} + {"message", "Operating normally"}, + {"running", true} }; ctx->setState(curr_state); } @@ -458,8 +462,8 @@ class ReaderSource final : public pipeline::Source { std::unique_ptr Reader::configure( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ) { LOG(INFO) << "[opc.reader] configuring task " << task.name; auto config_parser = config::Parser(task.config); @@ -467,43 +471,43 @@ std::unique_ptr Reader::configure( if (!config_parser.ok()) { LOG(ERROR) << "[opc.reader] failed to parse configuration for " << task.name; ctx->setState({ - .task = task.key, - .variant = "error", - .details = config_parser.error_json(), - }); + .task = task.key, + .variant = "error", + .details = config_parser.error_json(), + }); return nullptr; } LOG(INFO) << "[opc.reader] successfully parsed configuration for " << task.name; auto [device, dev_err] = ctx->client->hardware.retrieveDevice(cfg.device); if (dev_err) { LOG(ERROR) << "[opc.reader] failed to retrieve device " << cfg.device << - " error: " << dev_err.message(); + " error: " << dev_err.message(); ctx->setState({ - .task = task.key, - .variant = "error", - .details = json{ - {"message", dev_err.message()} - } - }); + .task = task.key, + .variant = "error", + .details = json{ + {"message", dev_err.message()} + } + }); return nullptr; } auto properties_parser = config::Parser(device.properties); auto properties = DeviceProperties(properties_parser); auto breaker_config = breaker::Config{ - .name = task.name, - .base_interval = 1 * SECOND, - .max_retries = 20, - .scale = 1.2, + .name = task.name, + .base_interval = 1 * SECOND, + .max_retries = 20, + .scale = 1.2, }; auto breaker = breaker::Breaker(breaker_config); // Fetch additional index channels we also need as part of the configuration. auto [res, err] = retrieveAdditionalChannelInfo(ctx, cfg, breaker); if (err) { ctx->setState({ - .task = task.key, - .variant = "error", - .details = json{{"message", err.message()}} - }); + .task = task.key, + .variant = "error", + .details = json{{"message", err.message()}} + }); return nullptr; } auto [channelKeys, indexes] = res; @@ -512,10 +516,10 @@ std::unique_ptr Reader::configure( auto [ua_client, conn_err] = opc::connect(properties.connection, "[opc.reader] "); if (conn_err) { ctx->setState({ - .task = task.key, - .variant = "error", - .details = {{"message", conn_err.message()}} - }); + .task = task.key, + .variant = "error", + .details = {{"message", conn_err.message()}} + }); return nullptr; } @@ -523,9 +527,9 @@ std::unique_ptr Reader::configure( auto ch = cfg.channels[i]; UA_Variant *value = UA_Variant_new(); const UA_StatusCode status = UA_Client_readValueAttribute( - ua_client.get(), - ch.node, - value + ua_client.get(), + ch.node, + value ); if (status != UA_STATUSCODE_GOOD) { if (status == UA_STATUSCODE_BADNODEIDUNKNOWN) { @@ -534,7 +538,7 @@ std::unique_ptr Reader::configure( } else { config_parser.field_err("channels." + std::to_string(i), "failed to read value" + std::string( - UA_StatusCode_name(status))); + UA_StatusCode_name(status))); } LOG(ERROR) << "failed to read value for channel " << ch.node_id; } @@ -543,40 +547,40 @@ std::unique_ptr Reader::configure( if (!config_parser.ok()) { ctx->setState({ - .task = task.key, - .variant = "error", - .details = config_parser.error_json(), - }); + .task = task.key, + .variant = "error", + .details = config_parser.error_json(), + }); return nullptr; } auto source = std::make_shared( - cfg, - ua_client, - indexes, - ctx, - task + cfg, + ua_client, + indexes, + ctx, + task ); auto writer_cfg = synnax::WriterConfig{ - .channels = channelKeys, - .start = TimeStamp::now(), - .subject = synnax::ControlSubject{ - .name = task.name, - .key = std::to_string(task.key) - }, - .mode = synnax::WriterPersistStream, - .enable_auto_commit = true + .channels = channelKeys, + .start = TimeStamp::now(), + .subject = synnax::ControlSubject{ + .name = task.name, + .key = std::to_string(task.key) + }, + .mode = synnax::WriterPersistStream, + .enable_auto_commit = true }; ctx->setState({ - .task = task.key, - .variant = "success", - .details = json{ - {"running", false}, - {"message", "Task configured successfully"} - } - }); + .task = task.key, + .variant = "success", + .details = json{ + {"running", false}, + {"message", "Task configured successfully"} + } + }); return std::make_unique(ctx, task, cfg, breaker_config, std::move(source), writer_cfg); } @@ -585,26 +589,26 @@ void Reader::exec(task::Command &cmd) { if (cmd.type == "start") { pipe.start(); ctx->setState({ - .task = task.key, - .variant = "success", - .details = json{ - {"running", true}, - {"message", "Task started successfully"} - } - }); - } - else if (cmd.type == "stop") return stop(); - else LOG(ERROR) << "unknown command type: " << cmd.type; + .task = task.key, + .variant = "success", + .details = json{ + {"running", true}, + {"message", "Task started successfully"} + } + }); + } else if (cmd.type == "stop") return stop(); + else + LOG(ERROR) << "unknown command type: " << cmd.type; } void Reader::stop() { ctx->setState({ - .task = task.key, - .variant = "success", - .details = json{ - {"running", false}, - {"message", "Task stopped successfully"} - } - }); + .task = task.key, + .variant = "success", + .details = json{ + {"running", false}, + {"message", "Task stopped successfully"} + } + }); pipe.stop(); } diff --git a/driver/opc/reader.h b/driver/opc/reader.h index 6b0e9ec18d..22adeb07ec 100644 --- a/driver/opc/reader.h +++ b/driver/opc/reader.h @@ -16,87 +16,88 @@ #include "driver/pipeline/acquisition.h" namespace opc { -struct ReaderChannelConfig { - /// @brief the node id. - std::string node_id; - UA_NodeId node; - /// @brief the corresponding channel key to write the variable for the node from. - ChannelKey channel; - /// @brief the channel fetched from the Synnax server. This does not need to - /// be provided via the JSON configuration. - Channel ch; - bool enabled; + struct ReaderChannelConfig { + /// @brief the node id. + std::string node_id; + UA_NodeId node; + /// @brief the corresponding channel key to write the variable for the node from. + ChannelKey channel; + /// @brief the channel fetched from the Synnax server. This does not need to + /// be provided via the JSON configuration. + Channel ch; + bool enabled; - ReaderChannelConfig() = default; + ReaderChannelConfig() = default; - explicit ReaderChannelConfig( - config::Parser &parser - ): node_id(parser.required("node_id")), - node(parseNodeId("node_id", parser)), - channel(parser.required("channel")), - enabled(parser.optional("enabled", true)) { - } -}; + explicit ReaderChannelConfig( + config::Parser &parser + ) : node_id(parser.required("node_id")), + node(parseNodeId("node_id", parser)), + channel(parser.required("channel")), + enabled(parser.optional("enabled", true)) { + } + }; -struct ReaderConfig { - /// @brief the device representing the OPC UA server to read from. - std::string device; - /// @brief sets the acquisition rate. - Rate sample_rate; - /// @brief sets the stream rate. - Rate stream_rate; - /// @brief array_size; - size_t array_size; + struct ReaderConfig { + /// @brief the device representing the OPC UA server to read from. + std::string device; + /// @brief sets the acquisition rate. + Rate sample_rate; + /// @brief sets the stream rate. + Rate stream_rate; + /// @brief array_size; + size_t array_size; - /// @brief the list of channels to read from the server. - std::vector channels; + /// @brief the list of channels to read from the server. + std::vector channels; - ReaderConfig() = default; + ReaderConfig() = default; - explicit ReaderConfig(config::Parser &parser); + explicit ReaderConfig(config::Parser &parser); - [[nodiscard]] std::vector channelKeys() const { - auto keys = std::vector(channels.size()); - for (std::size_t i = 0; i < channels.size(); i++) keys[i] = channels[i].channel; - return keys; - } -}; + [[nodiscard]] std::vector channelKeys() const { + auto keys = std::vector(channels.size()); + for (std::size_t i = 0; i < channels.size(); i++) keys[i] = channels[i].channel; + return keys; + } + }; /// @brief a task that reads values from an OPC UA server. -class Reader final : public task::Task { -public: - explicit Reader( - const std::shared_ptr &ctx, - synnax::Task task, - ReaderConfig cfg, - const breaker::Config &breaker_config, - std::shared_ptr source, - synnax::WriterConfig writer_config - ): ctx(ctx), - task(std::move(task)), - cfg(std::move(cfg)), - breaker(breaker::Breaker(breaker_config)), - pipe(pipeline::Acquisition( - ctx->client, - std::move(writer_config), - std::move(source), - breaker_config - )) { - } + class Reader final : public task::Task { + public: + explicit Reader( + const std::shared_ptr &ctx, + synnax::Task task, + ReaderConfig cfg, + const breaker::Config &breaker_config, + std::shared_ptr source, + synnax::WriterConfig writer_config + ) : ctx(ctx), + task(std::move(task)), + cfg(std::move(cfg)), + breaker(breaker::Breaker(breaker_config)), + pipe(pipeline::Acquisition( + ctx->client, + std::move(writer_config), + std::move(source), + breaker_config + )) { + } - static std::unique_ptr configure( - const std::shared_ptr &ctx, - const synnax::Task &task - ); + static std::unique_ptr configure( + const std::shared_ptr &ctx, + const synnax::Task &task + ); - void exec(task::Command &cmd) override; + void exec(task::Command &cmd) override; - void stop() override; -private: - std::shared_ptr ctx; - synnax::Task task; - ReaderConfig cfg; - breaker::Breaker breaker; - pipeline::Acquisition pipe; -}; + void stop() override; + + private: + std::shared_ptr ctx; + synnax::Task task; + ReaderConfig cfg; + breaker::Breaker breaker; + pipeline::Acquisition pipe; + }; } diff --git a/driver/opc/reader_test.cpp b/driver/opc/reader_test.cpp index 20f39990fb..169520310c 100644 --- a/driver/opc/reader_test.cpp +++ b/driver/opc/reader_test.cpp @@ -23,58 +23,58 @@ TEST(opcReaderTest, testReaderConfigurationFromJSON) { auto client = std::make_shared(new_test_client()); auto [idx, idx_err] = client->channels.create( - "index1", - TIMESTAMP, - 0, - true + "index1", + TIMESTAMP, + 0, + true ); ASSERT_FALSE(idx_err) << idx_err.message(); auto [ch1, ch1_err] = client->channels.create( - "node1", - INT32, - idx.key, - false + "node1", + INT32, + idx.key, + false ); ASSERT_FALSE(ch1_err) << ch1_err.message(); auto [ch2, ch2_err] = client->channels.create( - "node2", - INT32, - idx.key, - false + "node2", + INT32, + idx.key, + false ); ASSERT_FALSE(ch2_err) << ch2_err.message(); auto j = json{ - { - "connection", json{ - {"endpoint", "opc.tcp://0.0.0.0:4840"}, + { + "connection", json{ + {"endpoint", "opc.tcp://0.0.0.0:4840"}, + } + }, + { "rate", 22.5}, + { + "channels", std::vector{ + {{"ns", 1}, {"node", "node1"}, {"key", ch1.key}}, + {{"ns", 1}, {"node", "node2"}, {"key", ch2.key}} } - }, - {"rate", 22.5}, - { - "channels", std::vector{ - {{"ns", 1}, {"node", "node1"}, {"key", ch1.key}}, - {{"ns", 1}, {"node", "node2"}, {"key", ch2.key}} } - } }; auto t = synnax::Task( - "my_task", - "opcRead", - to_string(j) + "my_task", + "opcRead", + to_string(j) ); auto mockCtx = std::make_shared(client); auto mock = MockServerConfig{ - { - {1, "node1"}, - {1, "node2"} - } + { + {1, "node1"}, + {1, "node2"} + } }; auto server = MockServer(mock); diff --git a/driver/opc/scanner.cpp b/driver/opc/scanner.cpp index ddedcd0075..5abfc54204 100644 --- a/driver/opc/scanner.cpp +++ b/driver/opc/scanner.cpp @@ -24,8 +24,8 @@ using namespace opc; std::unique_ptr Scanner::configure( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ) { return std::make_unique(ctx, task); } @@ -56,10 +56,10 @@ void iterateChildren(ScanContext *ctx, UA_NodeId node_id) { // Callback function to handle each child node static UA_StatusCode nodeIter( - UA_NodeId child_id, - UA_Boolean is_inverse, - UA_NodeId reference_type_id, - void *handle + UA_NodeId child_id, + UA_Boolean is_inverse, + UA_NodeId reference_type_id, + void *handle ) { if (is_inverse) return UA_STATUSCODE_GOOD; auto *ctx = static_cast(handle); @@ -67,9 +67,9 @@ static UA_StatusCode nodeIter( UA_NodeClass nodeClass; UA_StatusCode retval = UA_Client_readNodeClassAttribute( - ctx->client.get(), - child_id, - &nodeClass + ctx->client.get(), + child_id, + &nodeClass ); if (retval != UA_STATUSCODE_GOOD) return retval; @@ -89,15 +89,16 @@ static UA_StatusCode nodeIter( // std::cout << "Node id: " << node_id << " Name: " << name << " Is array: " << is_array << " Data type: " << dt.value << std::endl; if (dt != synnax::DATA_TYPE_UNKNOWN && !dt.is_variable()) ctx->channels->push_back({ - dt, - name, - node_id, - is_array - }); + dt, + name, + node_id, + is_array + }); } } - if (ctx->depth >= ctx->max_depth || child_id.namespaceIndex == 0) return - UA_STATUSCODE_GOOD; + if (ctx->depth >= ctx->max_depth || child_id.namespaceIndex == 0) + return + UA_STATUSCODE_GOOD; ctx->depth++; iterateChildren(ctx, child_id); ctx->depth--; @@ -110,34 +111,34 @@ void Scanner::scan(const task::Command &cmd) const { int max_depth = parser.optional("max_depth", 6); if (!parser.ok()) return ctx->setState({ - .task = task.key, - .key = cmd.key, - .details = parser.error_json() - }); + .task = task.key, + .key = cmd.key, + .details = parser.error_json() + }); auto [ua_client, err] = connect(args.connection, "[opc.scanner] "); if (err) return ctx->setState({ - .task = task.key, - .key = cmd.key, - .variant = "error", - .details = {{"message", err.message()}} - }); + .task = task.key, + .key = cmd.key, + .variant = "error", + .details = {{"message", err.message()}} + }); UA_NodeId root_folder_id = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER); auto scan_ctx = new ScanContext{ - ua_client, - 0, - std::make_shared >(), - max_depth + ua_client, + 0, + std::make_shared >(), + max_depth }; iterateChildren(scan_ctx, root_folder_id); ctx->setState({ - .task = task.key, - .key = cmd.key, - .variant = "success", - .details = DeviceProperties(args.connection, *scan_ctx->channels).toJSON(), - }); + .task = task.key, + .key = cmd.key, + .variant = "success", + .details = DeviceProperties(args.connection, *scan_ctx->channels).toJSON(), + }); } void Scanner::testConnection(const task::Command &cmd) const { @@ -145,22 +146,22 @@ void Scanner::testConnection(const task::Command &cmd) const { ScannnerScanCommandArgs args(parser); if (!parser.ok()) return ctx->setState({ - .task = task.key, - .key = cmd.key, - .details = parser.error_json() - }); + .task = task.key, + .key = cmd.key, + .details = parser.error_json() + }); const auto err = connect(args.connection, "[opc.scanner] ").second; if (err) return ctx->setState({ - .task = task.key, - .key = cmd.key, - .variant = "error", - .details = {{"message", err.data}} - }); + .task = task.key, + .key = cmd.key, + .variant = "error", + .details = {{"message", err.data}} + }); return ctx->setState({ - .task = task.key, - .key = cmd.key, - .variant = "success", - .details = {{"message", "Connection successful"}}, - }); + .task = task.key, + .key = cmd.key, + .variant = "success", + .details = {{"message", "Connection successful"}}, + }); } diff --git a/driver/opc/scanner.h b/driver/opc/scanner.h index 1056cb1cbc..cd49f402a2 100644 --- a/driver/opc/scanner.h +++ b/driver/opc/scanner.h @@ -24,8 +24,8 @@ namespace opc { struct ScannnerScanCommandArgs { ConnectionConfig connection; - explicit ScannnerScanCommandArgs(config::Parser parser): connection( - ConnectionConfig(parser.child("connection"))) { + explicit ScannnerScanCommandArgs(config::Parser parser) : connection( + ConnectionConfig(parser.child("connection"))) { } }; @@ -34,14 +34,14 @@ namespace opc { class Scanner final : public task::Task { public: - explicit Scanner( - std::shared_ptr ctx, - synnax::Task task) : ctx(ctx), task(task) { + explicit Scanner( + std::shared_ptr ctx, + synnax::Task task) : ctx(ctx), task(task) { } static std::unique_ptr configure( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ); void exec(task::Command &cmd) override; diff --git a/driver/opc/scanner_test.cpp b/driver/opc/scanner_test.cpp index ed1217a3ea..3806cebeba 100644 --- a/driver/opc/scanner_test.cpp +++ b/driver/opc/scanner_test.cpp @@ -7,69 +7,68 @@ // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. - #include - #include "nlohmann/json.hpp" - #include "driver/opcua/scanner.h" - #include "client/cpp/synnax.h" +#include +#include "nlohmann/json.hpp" +#include "driver/opcua/scanner.h" +#include "client/cpp/synnax.h" - using json = nlohmann::json; +using json = nlohmann::json; - const synnax::Config test_client_config = { - "localhost", - 9090, - "synnax", - "seldon" - }; +const synnax::Config test_client_config = { + "localhost", + 9090, + "synnax", + "seldon" +}; - synnax::Synnax new_test_client() - { - return synnax::Synnax(test_client_config); - } +synnax::Synnax new_test_client() { + return synnax::Synnax(test_client_config); +} - TEST(OPCUAScnannerTest, testScannerCmdParseOnlyEdnpoint) { - json cmd = { - {"endpoint", "opc.tcp://localhost:4840"}, - }; - json err = { - {"errors", std::vector()} - }; - bool ok = true; - auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); - EXPECT_TRUE(ok); - EXPECT_EQ(parsedScanCmd.endpoint, "opc.tcp://localhost:4840"); - EXPECT_EQ(parsedScanCmd.username, ""); - EXPECT_EQ(parsedScanCmd.password, ""); - } +TEST(OPCUAScnannerTest, testScannerCmdParseOnlyEdnpoint) { + json cmd = { + {"endpoint", "opc.tcp://localhost:4840"}, + }; + json err = { + {"errors", std::vector()} + }; + bool ok = true; + auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); + EXPECT_TRUE(ok); + EXPECT_EQ(parsedScanCmd.endpoint, "opc.tcp://localhost:4840"); + EXPECT_EQ(parsedScanCmd.username, ""); + EXPECT_EQ(parsedScanCmd.password, ""); +} - TEST(OPCUAScannerTest, testScannerCmdParseEndpointUsernamePassword) { - json cmd = { - {"endpoint", "opc.tcp://localhost:4840"}, - {"username", "user"}, - {"password", "password"} - }; - json err = { - {"errors", std::vector()} - }; - bool ok = true; - auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); - EXPECT_TRUE(ok); - EXPECT_EQ(parsedScanCmd.endpoint, "opc.tcp://localhost:4840"); - EXPECT_EQ(parsedScanCmd.username, "user"); - EXPECT_EQ(parsedScanCmd.password, "password"); - } +TEST(OPCUAScannerTest, testScannerCmdParseEndpointUsernamePassword) { + json cmd = { + {"endpoint", "opc.tcp://localhost:4840"}, + {"username", "user"}, + {"password", "password"} + }; + json err = { + {"errors", std::vector()} + }; + bool ok = true; + auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); + EXPECT_TRUE(ok); + EXPECT_EQ(parsedScanCmd.endpoint, "opc.tcp://localhost:4840"); + EXPECT_EQ(parsedScanCmd.username, "user"); + EXPECT_EQ(parsedScanCmd.password, "password"); +} - TEST(OPCUAScannerTest, testScannerCmdParseNoEndpoint) { - json cmd = { - {"username", "user"}, - {"password", "password"} - }; - json err = { - {"errors", std::vector()} - }; - bool ok = true; - auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); - EXPECT_FALSE(ok); - auto field_err = err["errors"][0]; - EXPECT_EQ(field_err["path"], "endpoint"); - EXPECT_EQ(field_err["message"], "required"); - } \ No newline at end of file +TEST(OPCUAScannerTest, testScannerCmdParseNoEndpoint) { + json cmd = { + {"username", "user"}, + {"password", "password"} + }; + json err = { + {"errors", std::vector()} + }; + bool ok = true; + auto parsedScanCmd = opcua::ScannerScanCommand(cmd, err, ok); + EXPECT_FALSE(ok); + auto field_err = err["errors"][0]; + EXPECT_EQ(field_err["path"], "endpoint"); + EXPECT_EQ(field_err["message"], "required"); +} \ No newline at end of file diff --git a/driver/opc/util.cpp b/driver/opc/util.cpp index 0c15130c62..f1d09de3bd 100644 --- a/driver/opc/util.cpp +++ b/driver/opc/util.cpp @@ -24,20 +24,20 @@ /// @brief maps opc data types to their corresponding Synnax types. std::map data_type_map = { - {UA_NS0ID_BOOLEAN, synnax::UINT8}, - {UA_NS0ID_SBYTE, synnax::INT8}, - {UA_NS0ID_BYTE, synnax::UINT8}, - {UA_NS0ID_INT16, synnax::INT16}, - {UA_NS0ID_UINT16, synnax::UINT16}, - {UA_NS0ID_INT32, synnax::INT32}, - {UA_NS0ID_UINT32, synnax::UINT32}, - {UA_NS0ID_INT64, synnax::INT64}, - {UA_NS0ID_UINT64, synnax::UINT64}, - {UA_NS0ID_FLOAT, synnax::FLOAT32}, - {UA_NS0ID_DOUBLE, synnax::FLOAT64}, - {UA_NS0ID_STRING, synnax::STRING}, - {UA_NS0ID_DATETIME, synnax::TIMESTAMP}, - {UA_NS0ID_GUID, synnax::UINT128}, + {UA_NS0ID_BOOLEAN, synnax::UINT8}, + {UA_NS0ID_SBYTE, synnax::INT8}, + {UA_NS0ID_BYTE, synnax::UINT8}, + {UA_NS0ID_INT16, synnax::INT16}, + {UA_NS0ID_UINT16, synnax::UINT16}, + {UA_NS0ID_INT32, synnax::INT32}, + {UA_NS0ID_UINT32, synnax::UINT32}, + {UA_NS0ID_INT64, synnax::INT64}, + {UA_NS0ID_UINT64, synnax::UINT64}, + {UA_NS0ID_FLOAT, synnax::FLOAT32}, + {UA_NS0ID_DOUBLE, synnax::FLOAT64}, + {UA_NS0ID_STRING, synnax::STRING}, + {UA_NS0ID_DATETIME, synnax::TIMESTAMP}, + {UA_NS0ID_GUID, synnax::UINT128}, }; opc::ClientDeleter getDefaultClientDeleter() { @@ -52,11 +52,11 @@ opc::ClientDeleter getDefaultClientDeleter() { /// for each message that is extracted from the log context. This function will fail silently /// if the log context is not a string. void customLogger( - void *logContext, - UA_LogLevel level, - UA_LogCategory category, - const char *msg, - va_list args + void *logContext, + UA_LogLevel level, + UA_LogCategory category, + const char *msg, + va_list args ) { const std::string prefix = "[opc] "; char buffer[1024]; @@ -150,7 +150,7 @@ std::string extractApplicationUriFromCert(const std::string &certPath) { if (applicationUri.empty()) { LOG(ERROR) << - "No URI found in the Subject Alternative Name field of the certificate."; + "No URI found in the Subject Alternative Name field of the certificate."; } // Clean up @@ -161,8 +161,8 @@ std::string extractApplicationUriFromCert(const std::string &certPath) { } UA_StatusCode privateKeyPasswordCallBack( - UA_ClientConfig *cc, - UA_ByteString *password + UA_ClientConfig *cc, + UA_ByteString *password ) { return UA_STATUSCODE_BADSECURITYCHECKSFAILED; } @@ -170,8 +170,8 @@ UA_StatusCode privateKeyPasswordCallBack( const std::string SECURITY_URI_BASE = "http://opcfoundation.org/UA/SecurityPolicy#"; freighter::Error configureEncryption( - opc::ConnectionConfig &cfg, - std::shared_ptr client + opc::ConnectionConfig &cfg, + std::shared_ptr client ) { auto client_config = UA_Client_getConfig(client.get()); if (cfg.security_mode == "Sign") @@ -196,28 +196,28 @@ freighter::Error configureEncryption( if (!cfg.server_cert.empty()) trustList[0] = loadFile(cfg.server_cert.c_str()); UA_StatusCode e_err = UA_ClientConfig_setDefaultEncryption( - client_config, - certificate, - privateKey, - trustList, - trustListSize, - NULL, - 0 + client_config, + certificate, + privateKey, + trustList, + trustListSize, + NULL, + 0 ); if (e_err != UA_STATUSCODE_GOOD) { LOG(ERROR) << "[opc.scanner] Failed to configure encryption: " << - UA_StatusCode_name(e_err); + UA_StatusCode_name(e_err); const auto status_name = UA_StatusCode_name(e_err); return freighter::Error(freighter::TYPE_UNREACHABLE, "Failed to configure encryption: " + std::string( - status_name)); + status_name)); } return freighter::NIL; } void fetchEndpointDiagnosticInfo( - std::shared_ptr client, - std::string endpoint + std::shared_ptr client, + std::string endpoint ) { size_t endpointCount = 0; UA_EndpointDescription *endpointArray = NULL; @@ -225,7 +225,7 @@ void fetchEndpointDiagnosticInfo( &endpointCount, &endpointArray); if (retval != UA_STATUSCODE_GOOD) { LOG(ERROR) << "[opc.scanner] Failed to get endpoints: " << std::string( - UA_StatusCode_name(retval)); + UA_StatusCode_name(retval)); return; } // get the client config @@ -252,26 +252,25 @@ void fetchEndpointDiagnosticInfo( UA_UserTokenPolicy policy = ep.userIdentityTokens[j]; if (policy.tokenType == UA_USERTOKENTYPE_ANONYMOUS) LOG(INFO) << "[opc.scanner] \t supports anonymous authentication"; - else if (policy.tokenType == UA_USERTOKENTYPE_USERNAME) + else if (policy.tokenType == UA_USERTOKENTYPE_USERNAME) LOG(INFO) << "[opc.scanner] \t supports username/password authentication"; - else if (policy.tokenType == UA_USERTOKENTYPE_ISSUEDTOKEN) + else if (policy.tokenType == UA_USERTOKENTYPE_ISSUEDTOKEN) LOG(INFO) << "[opc.scanner] \t supports issued token authentication"; - else if (policy.tokenType == UA_USERTOKENTYPE_CERTIFICATE) + else if (policy.tokenType == UA_USERTOKENTYPE_CERTIFICATE) LOG(INFO) << "[opc.scanner] \t supports certificate authentication"; - else + else LOG(INFO) << "[opc.scanner] \t supports unknown authentication type"; } } } - std::pair, freighter::Error> opc::connect( - opc::ConnectionConfig &cfg, - std::string log_prefix + opc::ConnectionConfig &cfg, + std::string log_prefix ) { auto client = std::shared_ptr< - UA_Client>(UA_Client_new(), getDefaultClientDeleter()); + UA_Client>(UA_Client_new(), getDefaultClientDeleter()); UA_ClientConfig *config = UA_Client_getConfig(client.get()); config->logging->log = customLogger; config->logging->context = &log_prefix; @@ -279,18 +278,18 @@ std::pair, freighter::Error> opc::connect( UA_StatusCode status; if (!cfg.username.empty() || !cfg.password.empty()) { status = UA_ClientConfig_setAuthenticationUsername( - config, - cfg.username.c_str(), - cfg.password.c_str() + config, + cfg.username.c_str(), + cfg.password.c_str() ); if (status != UA_STATUSCODE_GOOD) { LOG(ERROR) << "[opc.scanner] Failed to set authentication: " << - UA_StatusCode_name(status); + UA_StatusCode_name(status); return { - std::move(client), - freighter::Error(freighter::TYPE_UNREACHABLE, - "Failed to set authentication: " + std::string( - UA_StatusCode_name(status))) + std::move(client), + freighter::Error(freighter::TYPE_UNREACHABLE, + "Failed to set authentication: " + std::string( + UA_StatusCode_name(status))) }; } } @@ -301,8 +300,8 @@ std::pair, freighter::Error> opc::connect( const auto status_name = UA_StatusCode_name(status); LOG(ERROR) << "[opc.scanner] Failed to connect: " << std::string(status_name); return { - std::move(client), - freighter::Error(freighter::TYPE_UNREACHABLE, - "Failed to connect: " + std::string(status_name)) + std::move(client), + freighter::Error(freighter::TYPE_UNREACHABLE, + "Failed to connect: " + std::string(status_name)) }; } diff --git a/driver/opc/util.h b/driver/opc/util.h index 41ded62059..d22027de18 100644 --- a/driver/opc/util.h +++ b/driver/opc/util.h @@ -24,137 +24,137 @@ #include namespace opc { -using ClientDeleter = void (*)(UA_Client *); + using ClientDeleter = void (*)(UA_Client *); -std::pair, freighter::Error> connect( - opc::ConnectionConfig &cfg, - std::string log_prefix -); + std::pair, freighter::Error> connect( + opc::ConnectionConfig &cfg, + std::string log_prefix + ); // Define constants for the conversion -static const int64_t UNIX_EPOCH_START_1601 = 11644473600LL; // Seconds from 1601 to 1970 -static const int64_t HUNDRED_NANOSECOND_INTERVALS_PER_SECOND = 10000000LL; // 100-nanosecond intervals per second + static const int64_t UNIX_EPOCH_START_1601 = 11644473600LL; // Seconds from 1601 to 1970 + static const int64_t HUNDRED_NANOSECOND_INTERVALS_PER_SECOND = 10000000LL; // 100-nanosecond intervals per second // Function to convert UA_DateTime to Unix timestamp in nanoseconds -inline int64_t ua_datetime_to_unix_nano(UA_DateTime dateTime) { - int64_t unixEpochStartIn100NanoIntervals = UNIX_EPOCH_START_1601 * HUNDRED_NANOSECOND_INTERVALS_PER_SECOND; - return (dateTime - unixEpochStartIn100NanoIntervals) * 100; -} - -inline synnax::Series val_to_series(UA_Variant *val, synnax::DataType dt) { - if (val->type == &UA_TYPES[UA_TYPES_FLOAT]) { - const auto value = *static_cast(val->data); - if (dt == synnax::FLOAT32) return Series(value); - if (dt == synnax::FLOAT64) return Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_DOUBLE]) { - const auto value = *static_cast(val->data); - // TODO - warn on potential precision drop here - if (dt == synnax::FLOAT32) return Series(static_cast(value)); - if (dt == synnax::FLOAT64) return Series(value); - } - if (val->type == &UA_TYPES[UA_TYPES_INT32]) { - const auto value = *static_cast(val->data); - if (dt == synnax::INT32) return Series(value); - if (dt == synnax::INT64) return Series(static_cast(value)); - if (dt == synnax::UINT32) return Series(static_cast(value)); - if (dt == synnax::UINT64) return Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_INT64]) { - const auto value = *static_cast(val->data); - if (dt == synnax::INT32) return Series(static_cast(value)); - if (dt == synnax::INT64) return Series(value); - if (dt == synnax::UINT32) return Series(static_cast(value)); - if (dt == synnax::UINT64) return Series(static_cast(value)); - if (dt == synnax::TIMESTAMP) return Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_UINT32]) { - const auto value = *static_cast(val->data); - if (dt == synnax::INT32) return synnax::Series(static_cast(value)); // Potential data loss - if (dt == synnax::INT64) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT32) return synnax::Series(value); - if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); + inline int64_t ua_datetime_to_unix_nano(UA_DateTime dateTime) { + int64_t unixEpochStartIn100NanoIntervals = UNIX_EPOCH_START_1601 * HUNDRED_NANOSECOND_INTERVALS_PER_SECOND; + return (dateTime - unixEpochStartIn100NanoIntervals) * 100; } - if (val->type == &UA_TYPES[UA_TYPES_UINT64]) { - const auto value = *static_cast(val->data); - if (dt == synnax::UINT64) return synnax::Series(value); - if (dt == synnax::INT32) return synnax::Series(static_cast(value)); // Potential data loss - if (dt == synnax::INT64) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); // Potential data loss - if (dt == synnax::TIMESTAMP) return synnax::Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_BYTE]) { - const auto value = *static_cast(val->data); - if (dt == synnax::UINT8) return synnax::Series(value); - if (dt == synnax::UINT16) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); - if (dt == synnax::INT8) return synnax::Series(static_cast(value)); - if (dt == synnax::INT16) return synnax::Series(static_cast(value)); - if (dt == synnax::INT32) return synnax::Series(static_cast(value)); - if (dt == synnax::INT64) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_SBYTE]) { - const auto value = *static_cast(val->data); - if (dt == synnax::INT8) return synnax::Series(value); - if (dt == synnax::INT16) return synnax::Series(static_cast(value)); - if (dt == synnax::INT32) return synnax::Series(static_cast(value)); - if (dt == synnax::INT64) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_BOOLEAN]) { - const auto value = *static_cast(val->data); - if (dt == synnax::UINT8) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT16) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); - if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); - if (dt == synnax::INT8) return synnax::Series(static_cast(value)); - if (dt == synnax::INT16) return synnax::Series(static_cast(value)); - if (dt == synnax::INT32) return synnax::Series(static_cast(value)); - if (dt == synnax::INT64) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); - } - if (val->type == &UA_TYPES[UA_TYPES_DATETIME]) { - const auto value = *static_cast(val->data); - if (dt == synnax::INT64) return synnax::Series(ua_datetime_to_unix_nano(value)); - if (dt == synnax::TIMESTAMP) return synnax::Series(ua_datetime_to_unix_nano(value)); - if (dt == synnax::UINT64) return synnax::Series(static_cast(ua_datetime_to_unix_nano(value))); - if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); - if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); + + inline synnax::Series val_to_series(UA_Variant *val, synnax::DataType dt) { + if (val->type == &UA_TYPES[UA_TYPES_FLOAT]) { + const auto value = *static_cast(val->data); + if (dt == synnax::FLOAT32) return Series(value); + if (dt == synnax::FLOAT64) return Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_DOUBLE]) { + const auto value = *static_cast(val->data); + // TODO - warn on potential precision drop here + if (dt == synnax::FLOAT32) return Series(static_cast(value)); + if (dt == synnax::FLOAT64) return Series(value); + } + if (val->type == &UA_TYPES[UA_TYPES_INT32]) { + const auto value = *static_cast(val->data); + if (dt == synnax::INT32) return Series(value); + if (dt == synnax::INT64) return Series(static_cast(value)); + if (dt == synnax::UINT32) return Series(static_cast(value)); + if (dt == synnax::UINT64) return Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_INT64]) { + const auto value = *static_cast(val->data); + if (dt == synnax::INT32) return Series(static_cast(value)); + if (dt == synnax::INT64) return Series(value); + if (dt == synnax::UINT32) return Series(static_cast(value)); + if (dt == synnax::UINT64) return Series(static_cast(value)); + if (dt == synnax::TIMESTAMP) return Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_UINT32]) { + const auto value = *static_cast(val->data); + if (dt == synnax::INT32) return synnax::Series(static_cast(value)); // Potential data loss + if (dt == synnax::INT64) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT32) return synnax::Series(value); + if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_UINT64]) { + const auto value = *static_cast(val->data); + if (dt == synnax::UINT64) return synnax::Series(value); + if (dt == synnax::INT32) return synnax::Series(static_cast(value)); // Potential data loss + if (dt == synnax::INT64) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); // Potential data loss + if (dt == synnax::TIMESTAMP) return synnax::Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_BYTE]) { + const auto value = *static_cast(val->data); + if (dt == synnax::UINT8) return synnax::Series(value); + if (dt == synnax::UINT16) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); + if (dt == synnax::INT8) return synnax::Series(static_cast(value)); + if (dt == synnax::INT16) return synnax::Series(static_cast(value)); + if (dt == synnax::INT32) return synnax::Series(static_cast(value)); + if (dt == synnax::INT64) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_SBYTE]) { + const auto value = *static_cast(val->data); + if (dt == synnax::INT8) return synnax::Series(value); + if (dt == synnax::INT16) return synnax::Series(static_cast(value)); + if (dt == synnax::INT32) return synnax::Series(static_cast(value)); + if (dt == synnax::INT64) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_BOOLEAN]) { + const auto value = *static_cast(val->data); + if (dt == synnax::UINT8) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT16) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT32) return synnax::Series(static_cast(value)); + if (dt == synnax::UINT64) return synnax::Series(static_cast(value)); + if (dt == synnax::INT8) return synnax::Series(static_cast(value)); + if (dt == synnax::INT16) return synnax::Series(static_cast(value)); + if (dt == synnax::INT32) return synnax::Series(static_cast(value)); + if (dt == synnax::INT64) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); + } + if (val->type == &UA_TYPES[UA_TYPES_DATETIME]) { + const auto value = *static_cast(val->data); + if (dt == synnax::INT64) return synnax::Series(ua_datetime_to_unix_nano(value)); + if (dt == synnax::TIMESTAMP) return synnax::Series(ua_datetime_to_unix_nano(value)); + if (dt == synnax::UINT64) return synnax::Series(static_cast(ua_datetime_to_unix_nano(value))); + if (dt == synnax::FLOAT32) return synnax::Series(static_cast(value)); + if (dt == synnax::FLOAT64) return synnax::Series(static_cast(value)); + } + return Series(1); } - return Series(1); -} -inline std::pair variant_data_type(UA_Variant &val) { - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_FLOAT])) return {synnax::FLOAT32, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_DOUBLE])) return {synnax::FLOAT64, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT16])) return {synnax::INT16, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT32])) return {synnax::INT32, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT64])) return {synnax::INT64, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT16])) return {synnax::UINT16, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT32])) return {synnax::UINT32, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT64])) return {synnax::UINT64, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_STRING])) return {synnax::STRING, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_DATETIME])) return {synnax::TIMESTAMP, true}; - if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_GUID])) return {synnax::UINT128, true}; - if (val.type == &UA_TYPES[UA_TYPES_FLOAT]) return {synnax::FLOAT32, false}; - if (val.type == &UA_TYPES[UA_TYPES_DOUBLE]) return {synnax::FLOAT64, false}; - if (val.type == &UA_TYPES[UA_TYPES_INT16]) return {synnax::INT16, false}; - if (val.type == &UA_TYPES[UA_TYPES_INT32]) return {synnax::INT32, false}; - if (val.type == &UA_TYPES[UA_TYPES_INT64]) return {synnax::INT64, false}; - if (val.type == &UA_TYPES[UA_TYPES_UINT16]) return {synnax::UINT16, false}; - if (val.type == &UA_TYPES[UA_TYPES_UINT32]) return {synnax::UINT32, false}; - if (val.type == &UA_TYPES[UA_TYPES_UINT64]) return {synnax::UINT64, false}; - if (val.type == &UA_TYPES[UA_TYPES_STRING]) return {synnax::STRING, false}; - if (val.type == &UA_TYPES[UA_TYPES_DATETIME]) return {synnax::TIMESTAMP, false}; - if (val.type == &UA_TYPES[UA_TYPES_GUID]) return {synnax::UINT128, false}; - return {synnax::DATA_TYPE_UNKNOWN, false}; -} + inline std::pair variant_data_type(UA_Variant &val) { + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_FLOAT])) return {synnax::FLOAT32, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_DOUBLE])) return {synnax::FLOAT64, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT16])) return {synnax::INT16, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT32])) return {synnax::INT32, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_INT64])) return {synnax::INT64, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT16])) return {synnax::UINT16, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT32])) return {synnax::UINT32, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_UINT64])) return {synnax::UINT64, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_STRING])) return {synnax::STRING, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_DATETIME])) return {synnax::TIMESTAMP, true}; + if (UA_Variant_hasArrayType(&val, &UA_TYPES[UA_TYPES_GUID])) return {synnax::UINT128, true}; + if (val.type == &UA_TYPES[UA_TYPES_FLOAT]) return {synnax::FLOAT32, false}; + if (val.type == &UA_TYPES[UA_TYPES_DOUBLE]) return {synnax::FLOAT64, false}; + if (val.type == &UA_TYPES[UA_TYPES_INT16]) return {synnax::INT16, false}; + if (val.type == &UA_TYPES[UA_TYPES_INT32]) return {synnax::INT32, false}; + if (val.type == &UA_TYPES[UA_TYPES_INT64]) return {synnax::INT64, false}; + if (val.type == &UA_TYPES[UA_TYPES_UINT16]) return {synnax::UINT16, false}; + if (val.type == &UA_TYPES[UA_TYPES_UINT32]) return {synnax::UINT32, false}; + if (val.type == &UA_TYPES[UA_TYPES_UINT64]) return {synnax::UINT64, false}; + if (val.type == &UA_TYPES[UA_TYPES_STRING]) return {synnax::STRING, false}; + if (val.type == &UA_TYPES[UA_TYPES_DATETIME]) return {synnax::TIMESTAMP, false}; + if (val.type == &UA_TYPES[UA_TYPES_GUID]) return {synnax::UINT128, false}; + return {synnax::DATA_TYPE_UNKNOWN, false}; + } } @@ -178,17 +178,17 @@ inline UA_Guid stringToGuid(const std::string &guidStr) { inline std::string guidToString(const UA_Guid &guid) { std::ostringstream stream; stream << std::hex << std::setfill('0') - << std::setw(8) << guid.data1 << "-" - << std::setw(4) << guid.data2 << "-" - << std::setw(4) << guid.data3 << "-" - << std::setw(2) << (guid.data4[0] & 0xFF) << std::setw(2) << ( - guid.data4[1] & 0xFF) << "-" - << std::setw(2) << (guid.data4[2] & 0xFF) << std::setw(2) << ( - guid.data4[3] & 0xFF) - << std::setw(2) << (guid.data4[4] & 0xFF) << std::setw(2) << ( - guid.data4[5] & 0xFF) - << std::setw(2) << (guid.data4[6] & 0xFF) << std::setw(2) << ( - guid.data4[7] & 0xFF); + << std::setw(8) << guid.data1 << "-" + << std::setw(4) << guid.data2 << "-" + << std::setw(4) << guid.data3 << "-" + << std::setw(2) << (guid.data4[0] & 0xFF) << std::setw(2) << ( + guid.data4[1] & 0xFF) << "-" + << std::setw(2) << (guid.data4[2] & 0xFF) << std::setw(2) << ( + guid.data4[3] & 0xFF) + << std::setw(2) << (guid.data4[4] & 0xFF) << std::setw(2) << ( + guid.data4[5] & 0xFF) + << std::setw(2) << (guid.data4[6] & 0xFF) << std::setw(2) << ( + guid.data4[7] & 0xFF); return stream.str(); } @@ -254,7 +254,7 @@ inline std::string nodeIdToString(const UA_NodeId &nodeId) { nodeIdStr << "B="; for (std::size_t i = 0; i < nodeId.identifier.byteString.length; ++i) { nodeIdStr << std::setfill('0') << std::setw(2) << std::hex - << (int) nodeId.identifier.byteString.data[i]; + << (int) nodeId.identifier.byteString.data[i]; } break; default: @@ -268,17 +268,17 @@ inline UA_ByteString stringToUAByteString(const std::string &str) { size_t len = str.length(); const UA_Byte *strData = reinterpret_cast(str.data()); - UA_Byte *data = static_cast(malloc(len*sizeof(UA_Byte))); + UA_Byte *data = static_cast(malloc(len * sizeof(UA_Byte))); - if(data == nullptr) { + if (data == nullptr) { return UA_BYTESTRING_NULL; } memcpy(data, strData, len); UA_ByteString b = { - .length = len, - .data = data + .length = len, + .data = data }; return b; diff --git a/driver/task/manager.cpp b/driver/task/manager.cpp index b0006fb718..0a17ad429f 100644 --- a/driver/task/manager.cpp +++ b/driver/task/manager.cpp @@ -15,10 +15,10 @@ #include "task.h" task::Manager::Manager( - Rack rack, - const std::shared_ptr &client, - std::unique_ptr factory, - breaker::Config breaker + Rack rack, + const std::shared_ptr &client, + std::unique_ptr factory, + breaker::Config breaker ) : rack_key(rack.key), internal(rack), ctx(std::make_shared(client)), @@ -31,7 +31,7 @@ const std::string TASK_DELETE_CHANNEL = "sy_task_delete"; const std::string TASK_CMD_CHANNEL = "sy_task_cmd"; freighter::Error task::Manager::start(std::atomic &done) { - if(running) return freighter::NIL; + if (running) return freighter::NIL; LOG(INFO) << "[task.manager] starting up"; const auto err = startGuarded(); breaker.start(); @@ -95,7 +95,7 @@ void task::Manager::run(std::atomic &done) { } freighter::Error task::Manager::stop() { - if(!running) return freighter::NIL; + if (!running) return freighter::NIL; if (!run_thread.joinable()) return freighter::NIL; running = false; streamer->closeSend(); @@ -107,10 +107,10 @@ freighter::Error task::Manager::stop() { freighter::Error task::Manager::runGuarded() { const std::vector stream_channels = { - task_set_channel.key, task_delete_channel.key, task_cmd_channel.key + task_set_channel.key, task_delete_channel.key, task_cmd_channel.key }; auto [s, open_err] = ctx->client->telem.openStreamer(StreamerConfig{ - .channels = stream_channels + .channels = stream_channels }); if (open_err) return open_err; streamer = std::make_unique(std::move(s)); @@ -150,7 +150,8 @@ void task::Manager::processTaskSet(const Series &series) { LOG(INFO) << "[task.manager] configuring task " << sy_task.name << " with key: " << key << "."; auto [driver_task, ok] = factory->configureTask(ctx, sy_task); if (ok && driver_task != nullptr) tasks[key] = std::move(driver_task); - else LOG(ERROR) << "[task.manager] failed to configure task: " << sy_task.name; + else + LOG(ERROR) << "[task.manager] failed to configure task: " << sy_task.name; } } diff --git a/driver/task/manager_test.cpp b/driver/task/manager_test.cpp index abfbcbc996..415f2244db 100644 --- a/driver/task/manager_test.cpp +++ b/driver/task/manager_test.cpp @@ -21,43 +21,61 @@ class MockTaskFactory : public task::Factory { bool configured = false; std::pair, bool> configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task + const std::shared_ptr &ctx, + const synnax::Task &task ) override { return {nullptr, false}; } }; -TEST(TaskManagerTests, testModuleNominalConfiguration) { - auto client = new_test_client(); - auto [rack, err] = client->hardware.createRack("test_rack"); - ASSERT_FALSE(err) << err.message(); - auto breaker = breaker::Breaker(breaker::Config{ +TEST(TaskManagerTests, testModuleNominalConfiguration +) { +auto client = new_test_client(); +auto [rack, err] = client->hardware.createRack("test_rack"); +ASSERT_FALSE(err) +<< err. + +message(); + +auto breaker = breaker::Breaker(breaker::Config{ "test_breaker", synnax::TimeSpan(1), 1, 1 - }); - std::unique_ptr factory = std::make_unique(); - auto task_manager = task::Manager( +}); +std::unique_ptr factory = std::make_unique(); +auto task_manager = task::Manager( rack.key, client, std::move(factory), breaker - ); - std::atomic done = false; - err = task_manager.start(done); - ASSERT_FALSE(err) << err.message(); - auto task_err = synnax::Task( +); +std::atomic done = false; +err = task_manager.start(done); +ASSERT_FALSE(err) +<< err. + +message(); + +auto task_err = synnax::Task( rack.key, "test_module", "", "" - ); - auto t_err = rack.tasks.create(task_err); - ASSERT_FALSE(t_err) << t_err.message(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); +); +auto t_err = rack.tasks.create(task_err); +ASSERT_FALSE(t_err) +<< t_err. + +message(); + +std::this_thread::sleep_for(std::chrono::milliseconds(100) +); + +err = task_manager.stop(); +ASSERT_FALSE(err) +<< err. + +message(); - err = task_manager.stop(); - ASSERT_FALSE(err) << err.message(); } diff --git a/driver/task/task.h b/driver/task/task.h index a3c7eb7a76..ec0b7cfd01 100644 --- a/driver/task/task.h +++ b/driver/task/task.h @@ -21,256 +21,257 @@ using json = nlohmann::json; namespace task { /// @brief A command that can be executed on a task in order to change its state. -struct Command { - /// @brief the key of the task to be commanded. - TaskKey task = 0; - /// @brief the type of the command to execute. - std::string type = ""; - /// @brief an optional key to assign to the command. This is useful for tracking - /// state updates related to the command. - std::string key = ""; - /// @brief json arguments to the command. - json args = {}; - - Command() = default; - - /// @brief constructs the command from the provided configuration parser. - explicit Command( - config::Parser parser - ): task(parser.required("task")), - type(parser.required("type")), - key(parser.optional("key", "")), - args(parser.optional("args", json{})) { - } - - /// @brief Construct a new Task Command object - Command(const TaskKey task, std::string type, json args) - : task(task), type(std::move(type)), args(std::move(args)) { - } -}; + struct Command { + /// @brief the key of the task to be commanded. + TaskKey task = 0; + /// @brief the type of the command to execute. + std::string type = ""; + /// @brief an optional key to assign to the command. This is useful for tracking + /// state updates related to the command. + std::string key = ""; + /// @brief json arguments to the command. + json args = {}; + + Command() = default; + + /// @brief constructs the command from the provided configuration parser. + explicit Command( + config::Parser parser + ) : task(parser.required("task")), + type(parser.required("type")), + key(parser.optional("key", "")), + args(parser.optional("args", json{})) { + } + + /// @brief Construct a new Task Command object + Command(const TaskKey task, std::string type, json args) + : task(task), type(std::move(type)), args(std::move(args)) { + } + }; /// @brief interface for a task that can be executed by the driver. Tasks should be /// constructed by an @see Factory. -class Task { -public: - synnax::TaskKey key = 0; + class Task { + public: + synnax::TaskKey key = 0; - /// @brief executes the command on the task. The task is responsible for updating - /// its state. - virtual void exec(Command &cmd) = 0; + /// @brief executes the command on the task. The task is responsible for updating + /// its state. + virtual void exec(Command &cmd) = 0; - /// @brief stops the task, halting activities and freeing all resources. stop - /// is called when the task is no longer needed, and is typically followed by a - /// a call to the destructor. - virtual void stop() = 0; + /// @brief stops the task, halting activities and freeing all resources. stop + /// is called when the task is no longer needed, and is typically followed by a + /// a call to the destructor. + virtual void stop() = 0; - virtual ~Task() = default; -}; + virtual ~Task() = default; + }; -const std::string TASK_FAILED = "error"; + const std::string TASK_FAILED = "error"; /// @brief struct that represents the network portable state of a task. Used both /// internally by a task and externally by the driver to track its state. -struct State { - /// @brief the key of the task. - TaskKey task = 0; - /// @brief an optional key to assign to the state update. This is particularly - /// useful for identifying responses to commands. - std::string key = ""; - /// @brief the type of the task. - std::string variant = ""; - /// @brief relevant details about the current state of the task. - json details = {}; - - json toJSON() const { - json j; - j["task"] = task; - j["key"] = key; - j["variant"] = variant; - j["details"] = details; - return j; - } -}; + struct State { + /// @brief the key of the task. + TaskKey task = 0; + /// @brief an optional key to assign to the state update. This is particularly + /// useful for identifying responses to commands. + std::string key = ""; + /// @brief the type of the task. + std::string variant = ""; + /// @brief relevant details about the current state of the task. + json details = {}; + + json toJSON() const { + json j; + j["task"] = task; + j["key"] = key; + j["variant"] = variant; + j["details"] = details; + return j; + } + }; /// @brief name of the channel used in Synnax to communicate state updates. -const std::string TASK_STATE_CHANNEL = "sy_task_state"; + const std::string TASK_STATE_CHANNEL = "sy_task_state"; /// @brief an interface for a standard context that is provided to every task in the /// driver. This context provides access to the Synnax client and alllows tasks to /// easily update their state. -class Context { -public: - /// @brief the client used to communicate with the Synnax server. - std::shared_ptr client; + class Context { + public: + /// @brief the client used to communicate with the Synnax server. + std::shared_ptr client; - Context() = default; + Context() = default; - virtual ~Context() = default; + virtual ~Context() = default; - explicit Context(std::shared_ptr client): client(client) { - } + explicit Context(std::shared_ptr client) : client(client) { + } - /// @brief updates the state of the task in the Synnax cluster. - virtual void setState(const State &state) = 0; -}; + /// @brief updates the state of the task in the Synnax cluster. + virtual void setState(const State &state) = 0; + }; /// @brief a mock context that can be used for testing tasks. -class MockContext final : public Context { -public: - std::vector states{}; - - explicit MockContext(std::shared_ptr client): Context(client) { - } - - - void setState(const State &state) override { - state_mutex.lock(); - states.push_back(state); - state_mutex.unlock(); - } - -private: - std::mutex state_mutex; -}; - -class SynnaxContext final : public Context { -public: - explicit SynnaxContext(std::shared_ptr client): Context(client) { - } - - void setState(const State &state) override { - state_mutex.lock(); - if (state_updater == nullptr) { - auto [task_state_ch, err] = client->channels.retrieve(TASK_STATE_CHANNEL); - if (err) { - LOG(ERROR) << "[task.context] failed to retrieve channel to update task state" << err. - message(); - state_mutex.unlock(); - return; + class MockContext final : public Context { + public: + std::vector states{}; + + explicit MockContext(std::shared_ptr client) : Context(client) { + } + + + void setState(const State &state) override { + state_mutex.lock(); + states.push_back(state); + state_mutex.unlock(); + } + + private: + std::mutex state_mutex; + }; + + class SynnaxContext final : public Context { + public: + explicit SynnaxContext(std::shared_ptr client) : Context(client) { + } + + void setState(const State &state) override { + state_mutex.lock(); + if (state_updater == nullptr) { + auto [task_state_ch, err] = client->channels.retrieve(TASK_STATE_CHANNEL); + if (err) { + LOG(ERROR) << "[task.context] failed to retrieve channel to update task state" << err. + message(); + state_mutex.unlock(); + return; + } + task_state_channel = task_state_ch; + auto [su, su_err] = client->telem.openWriter(WriterConfig{ + .channels = {task_state_ch.key} + }); + if (err) { + LOG(ERROR) << "[task.context] failed to open writer to update task state" << su_err. + message(); + state_mutex.unlock(); + return; + } + state_updater = std::make_unique(std::move(su)); } - task_state_channel = task_state_ch; - auto [su, su_err] = client->telem.openWriter(WriterConfig{ - .channels = {task_state_ch.key} - }); - if (err) { - LOG(ERROR) << "[task.context] failed to open writer to update task state" << su_err. - message(); - state_mutex.unlock(); - return; + auto fr = Frame(1); + fr.add(task_state_channel.key, + Series(std::vector{to_string(state.toJSON())}, JSON)); + if (!state_updater->write(std::move(fr))) { + auto err = state_updater->close(); + LOG(ERROR) << "[task.context] failed to write task state update" << err.message(); + state_updater = nullptr; } - state_updater = std::make_unique(std::move(su)); + state_mutex.unlock(); } - auto fr = Frame(1); - fr.add(task_state_channel.key, - Series(std::vector{to_string(state.toJSON())}, JSON)); - if (!state_updater->write(std::move(fr))) { - auto err = state_updater->close(); - LOG(ERROR) << "[task.context] failed to write task state update" << err.message(); - state_updater = nullptr; + + private: + std::mutex state_mutex; + std::unique_ptr state_updater; + Channel task_state_channel; + }; + + class Factory { + public: + virtual std::vector > > + configureInitialTasks( + const std::shared_ptr &ctx, + const synnax::Rack &rack + ) { return {}; } + + virtual std::pair, bool> configureTask( + const std::shared_ptr &ctx, + const synnax::Task &task + ) = 0; + + virtual ~Factory() = default; + }; + + class MultiFactory final : public Factory { + public: + explicit MultiFactory(std::vector > &&factories) + : factories(std::move(factories)) { } - state_mutex.unlock(); - } - -private: - std::mutex state_mutex; - std::unique_ptr state_updater; - Channel task_state_channel; -}; - -class Factory { -public: - virtual std::vector > > - configureInitialTasks( - const std::shared_ptr &ctx, - const synnax::Rack &rack - ) { return {}; } - - virtual std::pair, bool> configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task - ) = 0; - - virtual ~Factory() = default; -}; - -class MultiFactory final : public Factory { -public: - explicit MultiFactory(std::vector > &&factories) - : factories(std::move(factories)) { - } - - std::vector > > configureInitialTasks( - const std::shared_ptr &ctx, - const synnax::Rack &rack - ) override { - std::vector > > tasks; - for (const auto &factory: factories) { - auto new_tasks = factory->configureInitialTasks(ctx, rack); - for (auto &task: new_tasks) tasks.emplace_back(std::move(task)); + + std::vector > > configureInitialTasks( + const std::shared_ptr &ctx, + const synnax::Rack &rack + ) override { + std::vector > > tasks; + for (const auto &factory: factories) { + auto new_tasks = factory->configureInitialTasks(ctx, rack); + for (auto &task: new_tasks) tasks.emplace_back(std::move(task)); + } + return tasks; } - return tasks; - } - - std::pair, bool> - configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task - ) override { - for (const auto &factory: factories) { - auto [t, ok] = factory->configureTask(ctx, task); - if (ok) return {std::move(t), true}; + + std::pair, bool> + configureTask( + const std::shared_ptr &ctx, + const synnax::Task &task + ) override { + for (const auto &factory: factories) { + auto [t, ok] = factory->configureTask(ctx, task); + if (ok) return {std::move(t), true}; + } + return {nullptr, false}; } - return {nullptr, false}; - } -private: - std::vector > factories; -}; + private: + std::vector > factories; + }; /// @brief TaskManager is responsible for configuring, executing, and commanding data /// acqusition and control tasks. -class Manager { -public: - Manager( - Rack rack, - const std::shared_ptr &client, - std::unique_ptr factory, - breaker::Config breaker - ); + class Manager { + public: + Manager( + Rack rack, + const std::shared_ptr &client, + std::unique_ptr factory, + breaker::Config breaker + ); + + freighter::Error start(std::atomic &done); - freighter::Error start(std::atomic &done); + freighter::Error stop(); - freighter::Error stop(); + private: + RackKey rack_key; + Rack internal; + std::shared_ptr ctx; + std::unique_ptr streamer; + std::unique_ptr factory; + std::unordered_map > tasks{}; -private: - RackKey rack_key; - Rack internal; - std::shared_ptr ctx; - std::unique_ptr streamer; - std::unique_ptr factory; - std::unordered_map > tasks{}; + Channel task_set_channel; + Channel task_delete_channel; + Channel task_cmd_channel; + Channel task_state_channel; - Channel task_set_channel; - Channel task_delete_channel; - Channel task_cmd_channel; - Channel task_state_channel; + breaker::Breaker breaker; - breaker::Breaker breaker; + std::thread run_thread; + freighter::Error run_err; - std::thread run_thread; - freighter::Error run_err; + std::atomic running; - std::atomic running; - void run(std::atomic &done); + void run(std::atomic &done); - freighter::Error runGuarded(); + freighter::Error runGuarded(); - freighter::Error startGuarded(); + freighter::Error startGuarded(); - void processTaskSet(const Series &series); + void processTaskSet(const Series &series); - void processTaskDelete(const Series &series); + void processTaskDelete(const Series &series); - void processTaskCmd(const Series &series); -}; + void processTaskCmd(const Series &series); + }; } From 386e2dd134b33b12e52a000c131be9fc41adb46d Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 15 Jun 2024 11:02:43 -0400 Subject: [PATCH 35/41] delete main --- driver/main.cpp | 114 ------------------------------------------------ 1 file changed, 114 deletions(-) delete mode 100644 driver/main.cpp diff --git a/driver/main.cpp b/driver/main.cpp deleted file mode 100644 index d1c64fc66c..0000000000 --- a/driver/main.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2024 Synnax Labs, Inc. -// -// Use of this software is governed by the Business Source License included in the file -// licenses/BSL.txt. -// -// As of the Change Date specified in that file, in accordance with the Business Source -// License, use of this software will be governed by the Apache License, Version 2.0, -// included in the file licenses/APL.txt. - -#include -#include -#include -#include - -#include "nlohmann/json.hpp" -#include "glog/logging.h" - -#include "driver/driver.h" -#include "task/task.h" -#include "driver/opc/opc.h" -#include "driver/meminfo/meminfo.h" -#include "driver/ni/ni.h" - -using json = nlohmann::json; - -std::unique_ptr d; - -std::pair retrieveDriverRack( - const driver::Config &config, - breaker::Breaker &breaker, - const std::shared_ptr &client -) { - std::pair res; - if (config.rack_key != 0) - res = client->hardware.retrieveRack(config.rack_key); - else - res = client->hardware.retrieveRack(config.rack_name); - auto err = res.second; - if (err.matches(freighter::UNREACHABLE) && breaker.wait(err.message())) - return retrieveDriverRack(config, breaker, client); - return res; -} - -std::atomic stopped = false; - -int main(int argc, char *argv[]) { - FLAGS_logtostderr = 1; - google::InitGoogleLogging(argv[0]); - - std::string config_path = "./synnax-driver-config.json"; - if (argc > 1) config_path = argv[1]; // Use the first argument as the config path if provided - - LOG(INFO) << "[main] starting up"; - - auto cfg_json = driver::readConfig(config_path); - if (cfg_json.empty()) - LOG(INFO) << "[main] no configuration found at " << config_path << - ". We'll just use the default configuration"; - else { - LOG(INFO) << "[main] loaded configuration from " << config_path; - } - auto [cfg, cfg_err] = driver::parseConfig(cfg_json); - if (cfg_err) { - LOG(FATAL) << "[main] failed to parse configuration: " << cfg_err; - return 1; - } - LOG(INFO) << "[main] configuration parsed successfully"; - LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << cfg.client_config.port; - - - auto client = std::make_shared(cfg.client_config); - - auto breaker = breaker::Breaker(cfg.breaker_config); - breaker.start(); - LOG(INFO) << "[main] retrieving meta-data"; - auto [rack, rack_err] = retrieveDriverRack(cfg, breaker, client); - breaker.stop(); - if (rack_err) { - LOG(FATAL) << "[main] failed to retrieve meta-data - can't proceed without it. Exiting." << rack_err; - return 1; - } - - std::unique_ptr opc_factory = std::make_unique(); - std::unique_ptr meminfo_factory = std::make_unique< - meminfo::Factory>(); - std::unique_ptr ni_factory = std::make_unique(); - - std::vector > factories = { - std::move(opc_factory), std::move(meminfo_factory), std::move(ni_factory) - }; - - std::unique_ptr factory = std::make_unique( - std::move(factories) - ); - - d = std::make_unique( - rack, - client, - std::move(factory), - cfg.breaker_config - ); - signal(SIGINT, [](int) { - if (stopped) return; - LOG(INFO) << "[main] received interrupt signal. shutting down"; - stopped = true; - d->stop(); - }); - auto err = d->run(); - if (err) - LOG(FATAL) << "[main] failed to start: " << err; - - LOG(INFO) << "[main] shutdown complete"; - return 0; -} From 4681d987bb231c470290b23a427a78c1dee67a2e Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 15 Jun 2024 13:43:26 -0400 Subject: [PATCH 36/41] checkpoint --- driver/task/task.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/driver/task/task.h b/driver/task/task.h index 2bed897597..c1c3fb2011 100644 --- a/driver/task/task.h +++ b/driver/task/task.h @@ -261,8 +261,6 @@ class Manager { std::thread run_thread; freighter::Error run_err; - void run(std::atomic &done); - void run(std::atomic &done); freighter::Error runGuarded(); From 7b45aa7408f9a99c95d378b06fab282dc2fb66c8 Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 15 Jun 2024 14:00:42 -0400 Subject: [PATCH 37/41] merge issues --- driver/task/task.h | 223 +++++++++++++++++++++++---------------------- 1 file changed, 113 insertions(+), 110 deletions(-) diff --git a/driver/task/task.h b/driver/task/task.h index c1c3fb2011..dda7361f1c 100644 --- a/driver/task/task.h +++ b/driver/task/task.h @@ -1,3 +1,4 @@ + // Copyright 2024 Synnax Labs, Inc. // // Use of this software is governed by the Business Source License included in the file @@ -22,39 +23,39 @@ using json = nlohmann::json; namespace task { /// @brief A command that can be executed on a task in order to change its state. - struct Command { - /// @brief the key of the task to be commanded. - TaskKey task = 0; - /// @brief the type of the command to execute. - std::string type = ""; - /// @brief an optional key to assign to the command. This is useful for tracking - /// state updates related to the command. - std::string key = ""; - /// @brief json arguments to the command. - json args = {}; - - Command() = default; - - /// @brief constructs the command from the provided configuration parser. - explicit Command( - config::Parser parser - ) : task(parser.required("task")), - type(parser.required("type")), - key(parser.optional("key", "")), - args(parser.optional("args", json{})) { - } +struct Command { + /// @brief the key of the task to be commanded. + TaskKey task = 0; + /// @brief the type of the command to execute. + std::string type = ""; + /// @brief an optional key to assign to the command. This is useful for tracking + /// state updates related to the command. + std::string key = ""; + /// @brief json arguments to the command. + json args = {}; + + Command() = default; + + /// @brief constructs the command from the provided configuration parser. + explicit Command( + config::Parser parser + ): task(parser.required("task")), + type(parser.required("type")), + key(parser.optional("key", "")), + args(parser.optional("args", json{})) { + } - /// @brief Construct a new Task Command object - Command(const TaskKey task, std::string type, json args) - : task(task), type(std::move(type)), args(std::move(args)) { - } - }; + /// @brief Construct a new Task Command object + Command(const TaskKey task, std::string type, json args) + : task(task), type(std::move(type)), args(std::move(args)) { + } +}; /// @brief interface for a task that can be executed by the driver. Tasks should be /// constructed by an @see Factory. - class Task { - public: - synnax::TaskKey key = 0; +class Task { +public: + synnax::TaskKey key = 0; virtual std::string name() { return ""; } @@ -63,28 +64,28 @@ namespace task { virtual void exec(Command &cmd) { } - /// @brief stops the task, halting activities and freeing all resources. stop - /// is called when the task is no longer needed, and is typically followed by a - /// a call to the destructor. - virtual void stop() = 0; + /// @brief stops the task, halting activities and freeing all resources. stop + /// is called when the task is no longer needed, and is typically followed by a + /// a call to the destructor. + virtual void stop() = 0; - virtual ~Task() = default; - }; + virtual ~Task() = default; +}; - const std::string TASK_FAILED = "error"; +const std::string TASK_FAILED = "error"; /// @brief struct that represents the network portable state of a task. Used both /// internally by a task and externally by the driver to track its state. - struct State { - /// @brief the key of the task. - TaskKey task = 0; - /// @brief an optional key to assign to the state update. This is particularly - /// useful for identifying responses to commands. - std::string key = ""; - /// @brief the type of the task. - std::string variant = ""; - /// @brief relevant details about the current state of the task. - json details = {}; +struct State { + /// @brief the key of the task. + TaskKey task = 0; + /// @brief an optional key to assign to the state update. This is particularly + /// useful for identifying responses to commands. + std::string key = ""; + /// @brief the type of the task. + std::string variant = ""; + /// @brief relevant details about the current state of the task. + json details = {}; [[nodiscard]] json toJSON() const { json j; @@ -97,50 +98,50 @@ namespace task { }; /// @brief name of the channel used in Synnax to communicate state updates. - const std::string TASK_STATE_CHANNEL = "sy_task_state"; +const std::string TASK_STATE_CHANNEL = "sy_task_state"; /// @brief an interface for a standard context that is provided to every task in the /// driver. This context provides access to the Synnax client and alllows tasks to /// easily update their state. - class Context { - public: - /// @brief the client used to communicate with the Synnax server. - std::shared_ptr client; +class Context { +public: + /// @brief the client used to communicate with the Synnax server. + std::shared_ptr client; - Context() = default; + Context() = default; - virtual ~Context() = default; + virtual ~Context() = default; explicit Context(std::shared_ptr client): client(std::move(client)) { } - /// @brief updates the state of the task in the Synnax cluster. - virtual void setState(const State &state) = 0; - }; + /// @brief updates the state of the task in the Synnax cluster. + virtual void setState(const State &state) = 0; +}; /// @brief a mock context that can be used for testing tasks. - class MockContext final : public Context { - public: - std::vector states{}; +class MockContext final : public Context { +public: + std::vector states{}; - explicit MockContext(std::shared_ptr client) : Context(client) { - } + explicit MockContext(std::shared_ptr client): Context(client) { + } - void setState(const State &state) override { - state_mutex.lock(); - states.push_back(state); - state_mutex.unlock(); - } + void setState(const State &state) override { + state_mutex.lock(); + states.push_back(state); + state_mutex.unlock(); + } - private: - std::mutex state_mutex; - }; +private: + std::mutex state_mutex; +}; - class SynnaxContext final : public Context { - public: - explicit SynnaxContext(std::shared_ptr client) : Context(client) { - } +class SynnaxContext final : public Context { +public: + explicit SynnaxContext(std::shared_ptr client): Context(client) { + } void setState(const State &state) override { std::unique_lock lock(state_mutex); @@ -164,7 +165,7 @@ namespace task { message(); return; } - state_mutex.unlock(); + state_updater = std::make_unique(std::move(su)); } auto s = Series(to_string(state.toJSON()), JSON); auto fr = Frame(chan.key, std::move(s)); @@ -211,22 +212,24 @@ class MultiFactory final : public Factory { auto new_tasks = factory->configureInitialTasks(ctx, rack); for (auto &task: new_tasks) tasks.emplace_back(std::move(task)); } + return tasks; + } - std::pair, bool> - configureTask( - const std::shared_ptr &ctx, - const synnax::Task &task - ) override { - for (const auto &factory: factories) { - auto [t, ok] = factory->configureTask(ctx, task); - if (ok) return {std::move(t), true}; - } - return {nullptr, false}; + std::pair, bool> + configureTask( + const std::shared_ptr &ctx, + const synnax::Task &task + ) override { + for (const auto &factory: factories) { + auto [t, ok] = factory->configureTask(ctx, task); + if (ok) return {std::move(t), true}; } + return {nullptr, false}; + } - private: - std::vector > factories; - }; +private: + std::vector > factories; +}; /// @brief TaskManager is responsible for configuring, executing, and commanding data /// acqusition and control tasks. @@ -239,38 +242,38 @@ class Manager { const breaker::Config& breaker ); - freighter::Error start(std::atomic &done); + freighter::Error start(std::atomic &done); - freighter::Error stop(); + freighter::Error stop(); - private: - RackKey rack_key; - Rack internal; - std::shared_ptr ctx; - std::unique_ptr streamer; - std::unique_ptr factory; - std::unordered_map > tasks{}; +private: + RackKey rack_key; + Rack internal; + std::shared_ptr ctx; + std::unique_ptr streamer; + std::unique_ptr factory; + std::unordered_map > tasks{}; - Channel task_set_channel; - Channel task_delete_channel; - Channel task_cmd_channel; - Channel task_state_channel; + Channel task_set_channel; + Channel task_delete_channel; + Channel task_cmd_channel; + Channel task_state_channel; - breaker::Breaker breaker; + breaker::Breaker breaker; - std::thread run_thread; - freighter::Error run_err; + std::thread run_thread; + freighter::Error run_err; - void run(std::atomic &done); + void run(std::atomic &done); - freighter::Error runGuarded(); + freighter::Error runGuarded(); - freighter::Error startGuarded(); + freighter::Error startGuarded(); - void processTaskSet(const Series &series); + void processTaskSet(const Series &series); - void processTaskDelete(const Series &series); + void processTaskDelete(const Series &series); - void processTaskCmd(const Series &series); - }; + void processTaskCmd(const Series &series); +}; } From 32caca56b08a08496e870008f2d02ad72b574f8f Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 15 Jun 2024 14:27:26 -0400 Subject: [PATCH 38/41] build after backmerging rc --- client/cpp/telem/series.h | 9 + driver/BUILD.bazel | 2 +- driver/main_linux.cpp | 2 +- driver/main_windows.cpp | 61 +- driver/ni/analog_read.cpp | 13 +- driver/ni/daqmx.h | 11431 ++++++++++++---------------------- driver/ni/digital_read.cpp | 2 +- driver/ni/digital_write.cpp | 2 +- driver/ni/ni.h | 11 +- 9 files changed, 3879 insertions(+), 7654 deletions(-) diff --git a/client/cpp/telem/series.h b/client/cpp/telem/series.h index 4303e77a87..c758b60b84 100644 --- a/client/cpp/telem/series.h +++ b/client/cpp/telem/series.h @@ -279,6 +279,15 @@ class Series { pb->set_data(data.get(), byteSize()); } + [[nodiscard]] std::vector uint8() const { + if (data_type != synnax::UINT8) { + throw std::runtime_error("invalid data type"); + } + std::vector v(size); + memcpy(v.data(), data.get(), size); + return v; + } + /// @brief returns the data as a vector of strings. This method can only be used /// if the data type is STRING or JSON. [[nodiscard]] std::vector strings() const { diff --git a/driver/BUILD.bazel b/driver/BUILD.bazel index 8c9b14e3ce..86e6c6bcfb 100644 --- a/driver/BUILD.bazel +++ b/driver/BUILD.bazel @@ -66,7 +66,7 @@ cc_binary( "//driver", "//driver/breaker", "//driver/meminfo", - # "//driver/ni", + "//driver/ni", "//driver/opc", "//driver/task", "@com_github_gflags_gflags//:gflags", diff --git a/driver/main_linux.cpp b/driver/main_linux.cpp index 82491e44b8..15af04c513 100644 --- a/driver/main_linux.cpp +++ b/driver/main_linux.cpp @@ -114,4 +114,4 @@ int main(int argc, char *argv[]) { LOG(FATAL) << "[driver] failed to start: " << err; LOG(INFO) << "[driver] shutdown complete"; return 0; -} +} \ No newline at end of file diff --git a/driver/main_windows.cpp b/driver/main_windows.cpp index d1c64fc66c..1a6f18ddf4 100644 --- a/driver/main_windows.cpp +++ b/driver/main_windows.cpp @@ -15,18 +15,19 @@ #include "nlohmann/json.hpp" #include "glog/logging.h" -#include "driver/driver.h" +#include "driver/config.h" #include "task/task.h" #include "driver/opc/opc.h" #include "driver/meminfo/meminfo.h" +#include "driver/heartbeat/heartbeat.h" #include "driver/ni/ni.h" using json = nlohmann::json; -std::unique_ptr d; +std::unique_ptr task_manager; std::pair retrieveDriverRack( - const driver::Config &config, + const config::Config &config, breaker::Breaker &breaker, const std::shared_ptr &client ) { @@ -50,50 +51,53 @@ int main(int argc, char *argv[]) { std::string config_path = "./synnax-driver-config.json"; if (argc > 1) config_path = argv[1]; // Use the first argument as the config path if provided - LOG(INFO) << "[main] starting up"; + LOG(INFO) << "[driver] starting up"; - auto cfg_json = driver::readConfig(config_path); + auto cfg_json = config::read(config_path); if (cfg_json.empty()) - LOG(INFO) << "[main] no configuration found at " << config_path << + LOG(INFO) << "[driver] no configuration found at " << config_path << ". We'll just use the default configuration"; else { - LOG(INFO) << "[main] loaded configuration from " << config_path; + LOG(INFO) << "[driver] loaded configuration from " << config_path; } - auto [cfg, cfg_err] = driver::parseConfig(cfg_json); + auto [cfg, cfg_err] = config::parse(cfg_json); if (cfg_err) { - LOG(FATAL) << "[main] failed to parse configuration: " << cfg_err; + LOG(FATAL) << "[driver] failed to parse configuration: " << cfg_err; return 1; } - LOG(INFO) << "[main] configuration parsed successfully"; - LOG(INFO) << "[main] connecting to Synnax at " << cfg.client_config.host << ":" << cfg.client_config.port; + VLOG(1) << "[driver] configuration parsed successfully"; + VLOG(1) << "[driver] connecting to Synnax at " << cfg.client_config.host << ":" << + cfg.client_config.port; auto client = std::make_shared(cfg.client_config); auto breaker = breaker::Breaker(cfg.breaker_config); breaker.start(); - LOG(INFO) << "[main] retrieving meta-data"; + VLOG(1) << "[driver] retrieving meta-data"; auto [rack, rack_err] = retrieveDriverRack(cfg, breaker, client); breaker.stop(); if (rack_err) { - LOG(FATAL) << "[main] failed to retrieve meta-data - can't proceed without it. Exiting." << rack_err; + LOG(FATAL) << + "[driver] failed to retrieve meta-data - can't proceed without it. Exiting." + << rack_err; return 1; } - std::unique_ptr opc_factory = std::make_unique(); - std::unique_ptr meminfo_factory = std::make_unique< - meminfo::Factory>(); + auto meminfo_factory = std::make_unique(); + auto heartbeat_factory = std::make_unique(); + auto opc_factory = std::make_unique(); std::unique_ptr ni_factory = std::make_unique(); - std::vector > factories = { - std::move(opc_factory), std::move(meminfo_factory), std::move(ni_factory) + std::move(opc_factory), + // std::move(meminfo_factory), + std::move(heartbeat_factory), + std::move(ni_factory) }; - std::unique_ptr factory = std::make_unique( std::move(factories) ); - - d = std::make_unique( + task_manager = std::make_unique( rack, client, std::move(factory), @@ -101,14 +105,15 @@ int main(int argc, char *argv[]) { ); signal(SIGINT, [](int) { if (stopped) return; - LOG(INFO) << "[main] received interrupt signal. shutting down"; + LOG(INFO) << "[driver] received interrupt signal. shutting down"; stopped = true; - d->stop(); + task_manager->stop(); }); - auto err = d->run(); + std::atomic running = false; + auto err = task_manager->start(running); + running.wait(false); if (err) - LOG(FATAL) << "[main] failed to start: " << err; - - LOG(INFO) << "[main] shutdown complete"; + LOG(FATAL) << "[driver] failed to start: " << err; + LOG(INFO) << "[driver] shutdown complete"; return 0; -} +} \ No newline at end of file diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 73ded23984..8637823b75 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -35,17 +35,18 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser) { // analog channel names are formatted: /ai config.name = (this->reader_config.device_name + "/ai" + std::to_string(channel_builder.required("port"))); + config.channel_key = channel_builder.required("channel"); config.channel_type = channel_builder.required("channel_type"); // TODO: check scale parser in the function below - config.ni_channel = this->parseChannel(channel_builder, config.channel_type); + config.ni_channel = this->parseChannel(channel_builder, config.channel_type, config.name); this->reader_config.channels.push_back(config); }); } -ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type) { +std::shared_ptr ni::AnalogReadSource::parseChannel(config::Parser &parser, std::string channel_type,std::string channel_name) { // if (channel_type == "ai_accel") { // return Accel(parser, this->task_handle); // } @@ -131,7 +132,7 @@ ni::Analog ni::AnalogReadSource::parseChannel(config::Parser &parser, std::strin // return VelocityIEPE(parser, this->task_handle); // } if (channel_type == "ai_voltage") { - return Voltage(parser, this->task_handle); + return std::make_shared(parser, this->task_handle, channel_name); } // if (channel_type == "ai_voltage_rms") { // return VoltageRMS(parser, this->task_handle); @@ -196,7 +197,7 @@ void ni::AnalogReadSource::acquireData() { } } -std::pair ni::AnalogReadSource::read() { +std::pair ni::AnalogReadSource::read(breaker::Breaker& breaker) { synnax::Frame f = synnax::Frame(numChannels); // sleep per stream rate std::this_thread::sleep_for( @@ -246,8 +247,8 @@ int ni::AnalogReadSource::createChannels() { this->numChannels++; if (channel.channel_type == "index") continue; this->numAIChannels++; - this->checkNIError(channel.ni_channel.createNIScale()); - this->checkNIError(channel.ni_channel.createNIChannel()); + this->checkNIError(channel.ni_channel->createNIScale()); + this->checkNIError(channel.ni_channel->createNIChannel()); if (!this->ok()) { LOG(ERROR) << "[NI Reader] failed while configuring channel " << channel.name; return -1; diff --git a/driver/ni/daqmx.h b/driver/ni/daqmx.h index aedc52c178..8849cd5f81 100644 --- a/driver/ni/daqmx.h +++ b/driver/ni/daqmx.h @@ -17,125 +17,85 @@ /* */ /*============================================================================*/ -#ifndef -___nidaqmx_h___ -#define -___nidaqmx_h___ +#ifndef ___nidaqmx_h___ +#define ___nidaqmx_h___ -#ifdef -__cplusplus +#ifdef __cplusplus extern "C" { #endif -#if -defined(__linux__) || defined(__APPLE__) -#define -__CFUNC -#define -__CFUNC_C -#define -__CFUNCPTRVAR -#define -CVICDECL -#define -CVICALLBACK CVICDECL +#if defined(__linux__) || defined(__APPLE__) +#define __CFUNC +#define __CFUNC_C +#define __CFUNCPTRVAR +#define CVICDECL +#define CVICALLBACK CVICDECL #else -#define -__CFUNC __stdcall -#define -__CFUNC_C __cdecl -#define -__CFUNCPTRVAR __cdecl -#define -CVICDECL __cdecl -#define -CVICALLBACK CVICDECL +#define __CFUNC __stdcall +#define __CFUNC_C __cdecl +#define __CFUNCPTRVAR __cdecl +#define CVICDECL __cdecl +#define CVICALLBACK CVICDECL #endif -#if -defined(_CVI_) && !defined(__TPC__) -#pragma -EnableLibraryRuntimeChecking +#if defined(_CVI_) && !defined(__TPC__) +#pragma EnableLibraryRuntimeChecking #endif // NI-DAQmx Typedefs -#ifndef -_NI_int8_DEFINED_ -#define -_NI_int8_DEFINED_ -typedef signed char int8; +#ifndef _NI_int8_DEFINED_ +#define _NI_int8_DEFINED_ +typedef signed char int8; #endif -#ifndef -_NI_uInt8_DEFINED_ -#define -_NI_uInt8_DEFINED_ -typedef unsigned char uInt8; +#ifndef _NI_uInt8_DEFINED_ +#define _NI_uInt8_DEFINED_ +typedef unsigned char uInt8; #endif -#ifndef -_NI_int16_DEFINED_ -#define -_NI_int16_DEFINED_ -typedef signed short int16; +#ifndef _NI_int16_DEFINED_ +#define _NI_int16_DEFINED_ +typedef signed short int16; #endif -#ifndef -_NI_uInt16_DEFINED_ -#define -_NI_uInt16_DEFINED_ -typedef unsigned short uInt16; +#ifndef _NI_uInt16_DEFINED_ +#define _NI_uInt16_DEFINED_ +typedef unsigned short uInt16; #endif -#ifndef -_NI_int32_DEFINED_ -#define -_NI_int32_DEFINED_ -#if -((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) -typedef signed int int32; +#ifndef _NI_int32_DEFINED_ +#define _NI_int32_DEFINED_ +#if ((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) +typedef signed int int32; #else -typedef signed long int32; +typedef signed long int32; #endif #endif -#ifndef -_NI_uInt32_DEFINED_ -#define -_NI_uInt32_DEFINED_ -#if -((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) -typedef unsigned int uInt32; +#ifndef _NI_uInt32_DEFINED_ +#define _NI_uInt32_DEFINED_ +#if ((defined(__GNUG__) || defined(__GNUC__)) && defined(__x86_64__)) +typedef unsigned int uInt32; #else -typedef unsigned long uInt32; +typedef unsigned long uInt32; #endif #endif -#ifndef -_NI_float32_DEFINED_ -#define -_NI_float32_DEFINED_ -typedef float float32; +#ifndef _NI_float32_DEFINED_ +#define _NI_float32_DEFINED_ +typedef float float32; #endif -#ifndef -_NI_float64_DEFINED_ -#define -_NI_float64_DEFINED_ -typedef double float64; +#ifndef _NI_float64_DEFINED_ +#define _NI_float64_DEFINED_ +typedef double float64; #endif -#ifndef -_NI_int64_DEFINED_ -#define -_NI_int64_DEFINED_ -#if -defined(__linux__) || defined(__APPLE__) -typedef long long int int64; +#ifndef _NI_int64_DEFINED_ +#define _NI_int64_DEFINED_ +#if defined(__linux__) || defined(__APPLE__) +typedef long long int int64; #else -typedef long long int int64; +typedef long long int int64; #endif #endif -#ifndef -_NI_uInt64_DEFINED_ -#define -_NI_uInt64_DEFINED_ -#if -defined(__linux__) || defined(__APPLE__) +#ifndef _NI_uInt64_DEFINED_ +#define _NI_uInt64_DEFINED_ +#if defined(__linux__) || defined(__APPLE__) typedef unsigned long long uInt64; #else typedef unsigned long long uInt64; @@ -143,50 +103,35 @@ typedef unsigned long long uInt64; #endif -#pragma -pack(push) -#pragma -pack(4) +#pragma pack(push) +#pragma pack(4) -#ifndef -CVITime_DECLARED -#define -CVITime_DECLARED +#ifndef CVITime_DECLARED +#define CVITime_DECLARED // Please visit ni.com/info and enter the Info Code NI_BTF for more information -typedef struct CVITime { -uInt64 lsb; int64 msb; } CVITime; +typedef struct CVITime { uInt64 lsb; int64 msb; } CVITime; #endif -#ifndef -CVIAbsoluteTime_DECLARED -#define -CVIAbsoluteTime_DECLARED +#ifndef CVIAbsoluteTime_DECLARED +#define CVIAbsoluteTime_DECLARED // Please visit ni.com/info and enter the Info Code NI_BTF for more information -typedef union CVIAbsoluteTime { -CVITime cviTime; uInt32 u32Data[4]; } CVIAbsoluteTime; +typedef union CVIAbsoluteTime { CVITime cviTime; uInt32 u32Data[4]; } CVIAbsoluteTime; #endif -#pragma -pack(pop) +#pragma pack(pop) typedef uInt32 bool32; typedef void* TaskHandle; typedef uInt32 CalHandle; -#ifndef -TRUE -#define -TRUE (1L) +#ifndef TRUE +#define TRUE (1L) #endif -#ifndef -FALSE -#define -FALSE (0L) +#ifndef FALSE +#define FALSE (0L) #endif -#ifndef -NULL -#define -NULL (0L) +#ifndef NULL +#define NULL (0L) #endif @@ -195,2248 +140,1160 @@ NULL (0L) ******************************************************************************/ //********** Buffer Attributes ********** -#define -DAQmx_Buf_Input_BufSize 0x186C // Specifies the number of samples the input buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic input buffer allocation that NI-DAQmx performs. -#define -DAQmx_Buf_Input_OnbrdBufSize 0x230A // Indicates in samples per channel the size of the onboard input buffer of the device. -#define -DAQmx_Buf_Output_BufSize 0x186D // Specifies the number of samples the output buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic output buffer allocation that NI-DAQmx performs. -#define -DAQmx_Buf_Output_OnbrdBufSize 0x230B // Specifies in samples per channel the size of the onboard output buffer of the device. +#define DAQmx_Buf_Input_BufSize 0x186C // Specifies the number of samples the input buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic input buffer allocation that NI-DAQmx performs. +#define DAQmx_Buf_Input_OnbrdBufSize 0x230A // Indicates in samples per channel the size of the onboard input buffer of the device. +#define DAQmx_Buf_Output_BufSize 0x186D // Specifies the number of samples the output buffer can hold for each channel in the task. Zero indicates to allocate no buffer. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer. Setting this property overrides the automatic output buffer allocation that NI-DAQmx performs. +#define DAQmx_Buf_Output_OnbrdBufSize 0x230B // Specifies in samples per channel the size of the onboard output buffer of the device. //********** Calibration Info Attributes ********** -#define -DAQmx_SelfCal_Supported 0x1860 // Indicates whether the device supports self-calibration. -#define -DAQmx_SelfCal_LastTemp 0x1864 // Indicates in degrees Celsius the temperature of the device at the time of the last self-calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. -#define -DAQmx_ExtCal_RecommendedInterval 0x1868 // Indicates in months the National Instruments recommended interval between each external calibration of the device. -#define -DAQmx_ExtCal_LastTemp 0x1867 // Indicates in degrees Celsius the temperature of the device at the time of the last external calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. -#define -DAQmx_Cal_UserDefinedInfo 0x1861 // Specifies a string that contains arbitrary, user-defined information. This number of characters in this string can be no more than Max Size. -#define -DAQmx_Cal_UserDefinedInfo_MaxSize 0x191C // Indicates the maximum length in characters of Information. -#define -DAQmx_Cal_DevTemp 0x223B // Indicates in degrees Celsius the current temperature of the device. -#define -DAQmx_Cal_AccConnectionCount 0x2FEB // Specifies the number of times a particular connection that results in tangible wear and tear of onboard components has been made on the accessory. This connection count is useful for tracking accessory life and usage. -#define -DAQmx_Cal_RecommendedAccConnectionCountLimit 0x2FEC // Indicates the recommended connection count limit for an accessory. If the accessory connection count exceeds this limit, the accessory could require maintenance. +#define DAQmx_SelfCal_Supported 0x1860 // Indicates whether the device supports self-calibration. +#define DAQmx_SelfCal_LastTemp 0x1864 // Indicates in degrees Celsius the temperature of the device at the time of the last self-calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. +#define DAQmx_ExtCal_RecommendedInterval 0x1868 // Indicates in months the National Instruments recommended interval between each external calibration of the device. +#define DAQmx_ExtCal_LastTemp 0x1867 // Indicates in degrees Celsius the temperature of the device at the time of the last external calibration. Compare this temperature to the current onboard temperature to determine if you should perform another calibration. +#define DAQmx_Cal_UserDefinedInfo 0x1861 // Specifies a string that contains arbitrary, user-defined information. This number of characters in this string can be no more than Max Size. +#define DAQmx_Cal_UserDefinedInfo_MaxSize 0x191C // Indicates the maximum length in characters of Information. +#define DAQmx_Cal_DevTemp 0x223B // Indicates in degrees Celsius the current temperature of the device. +#define DAQmx_Cal_AccConnectionCount 0x2FEB // Specifies the number of times a particular connection that results in tangible wear and tear of onboard components has been made on the accessory. This connection count is useful for tracking accessory life and usage. +#define DAQmx_Cal_RecommendedAccConnectionCountLimit 0x2FEC // Indicates the recommended connection count limit for an accessory. If the accessory connection count exceeds this limit, the accessory could require maintenance. //********** Channel Attributes ********** -#define -DAQmx_AI_Max 0x17DD // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the device can measure with the current settings. -#define -DAQmx_AI_Min 0x17DE // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the device can measure with the current settings. -#define -DAQmx_AI_CustomScaleName 0x17E0 // Specifies the name of a custom scale for the channel. -#define -DAQmx_AI_MeasType 0x0695 // Indicates the measurement to take with the analog input channel and in some cases, such as for temperature measurements, the sensor to use. -#define -DAQmx_AI_Voltage_Units 0x1094 // Specifies the units to use to return voltage measurements from the channel. -#define -DAQmx_AI_Voltage_dBRef 0x29B0 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define -DAQmx_AI_Voltage_ACRMS_Units 0x17E2 // Specifies the units to use to return voltage RMS measurements from the channel. -#define -DAQmx_AI_Temp_Units 0x1033 // Specifies the units to use to return temperature measurements from the channel. -#define -DAQmx_AI_Thrmcpl_Type 0x1050 // Specifies the type of thermocouple connected to the channel. Thermocouple types differ in composition and measurement range. -#define -DAQmx_AI_Thrmcpl_ScaleType 0x29D0 // Specifies the method or equation form that the thermocouple scale uses. -#define -DAQmx_AI_Thrmcpl_CJCSrc 0x1035 // Indicates the source of cold-junction compensation. -#define -DAQmx_AI_Thrmcpl_CJCVal 0x1036 // Specifies the temperature of the cold junction if CJC Source is DAQmx_Val_ConstVal. Specify this value in the units of the measurement. +#define DAQmx_AI_Max 0x17DD // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the device can measure with the current settings. +#define DAQmx_AI_Min 0x17DE // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the device can measure with the current settings. +#define DAQmx_AI_CustomScaleName 0x17E0 // Specifies the name of a custom scale for the channel. +#define DAQmx_AI_MeasType 0x0695 // Indicates the measurement to take with the analog input channel and in some cases, such as for temperature measurements, the sensor to use. +#define DAQmx_AI_Voltage_Units 0x1094 // Specifies the units to use to return voltage measurements from the channel. +#define DAQmx_AI_Voltage_dBRef 0x29B0 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define DAQmx_AI_Voltage_ACRMS_Units 0x17E2 // Specifies the units to use to return voltage RMS measurements from the channel. +#define DAQmx_AI_Temp_Units 0x1033 // Specifies the units to use to return temperature measurements from the channel. +#define DAQmx_AI_Thrmcpl_Type 0x1050 // Specifies the type of thermocouple connected to the channel. Thermocouple types differ in composition and measurement range. +#define DAQmx_AI_Thrmcpl_ScaleType 0x29D0 // Specifies the method or equation form that the thermocouple scale uses. +#define DAQmx_AI_Thrmcpl_CJCSrc 0x1035 // Indicates the source of cold-junction compensation. +#define DAQmx_AI_Thrmcpl_CJCVal 0x1036 // Specifies the temperature of the cold junction if CJC Source is DAQmx_Val_ConstVal. Specify this value in the units of the measurement. #define DAQmx_AI_Thrmcpl_CJCChan 0x1034 // Indicates the channel that acquires the temperature of the cold junction if CJC Source is DAQmx_Val_Chan. If the channel is a temperature channel, NI-DAQmx acquires the temperature in the correct units. Other channel types, such as a resistance channel with a custom sensor, must use a custom scale to scale values to degrees Celsius. -#define -DAQmx_AI_RTD_Type 0x1032 // Specifies the type of RTD connected to the channel. -#define -DAQmx_AI_RTD_R0 0x1030 // Specifies in ohms the sensor resistance at 0 deg C. The Callendar-Van Dusen equation requires this value. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_RTD_A 0x1010 // Specifies the 'A' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define -DAQmx_AI_RTD_B 0x1011 // Specifies the 'B' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define -DAQmx_AI_RTD_C 0x1013 // Specifies the 'C' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. -#define -DAQmx_AI_Thrmstr_A 0x18C9 // Specifies the 'A' constant of the Steinhart-Hart thermistor equation. -#define -DAQmx_AI_Thrmstr_B 0x18CB // Specifies the 'B' constant of the Steinhart-Hart thermistor equation. -#define -DAQmx_AI_Thrmstr_C 0x18CA // Specifies the 'C' constant of the Steinhart-Hart thermistor equation. -#define -DAQmx_AI_Thrmstr_R1 0x1061 // Specifies in ohms the value of the reference resistor for the thermistor if you use voltage excitation. NI-DAQmx ignores this value for current excitation. -#define -DAQmx_AI_ForceReadFromChan 0x18F8 // Specifies whether to read from the channel if it is a cold-junction compensation channel. By default, an NI-DAQmx Read function does not return data from cold-junction compensation channels. Setting this property to TRUE forces read operations to return the cold-junction compensation channel data with the other channels in the task. -#define -DAQmx_AI_Current_Units 0x0701 // Specifies the units to use to return current measurements from the channel. -#define -DAQmx_AI_Current_ACRMS_Units 0x17E3 // Specifies the units to use to return current RMS measurements from the channel. -#define -DAQmx_AI_Strain_Units 0x0981 // Specifies the units to use to return strain measurements from the channel. -#define -DAQmx_AI_StrainGage_ForceReadFromChan 0x2FFA // Specifies whether the data is returned by an NI-DAQmx Read function when set on a raw strain channel that is part of a rosette configuration. -#define -DAQmx_AI_StrainGage_GageFactor 0x0994 // Specifies the sensitivity of the strain gage. Gage factor relates the change in electrical resistance to the change in strain. Refer to the sensor documentation for this value. -#define -DAQmx_AI_StrainGage_PoissonRatio 0x0998 // Specifies the ratio of lateral strain to axial strain in the material you are measuring. -#define -DAQmx_AI_StrainGage_Cfg 0x0982 // Specifies the bridge configuration of the strain gages. -#define -DAQmx_AI_RosetteStrainGage_RosetteType 0x2FFE // Indicates the type of rosette gage. -#define -DAQmx_AI_RosetteStrainGage_Orientation 0x2FFC // Specifies gage orientation in degrees with respect to the X axis. -#define -DAQmx_AI_RosetteStrainGage_StrainChans 0x2FFB // Indicates the raw strain channels that comprise the strain rosette. -#define -DAQmx_AI_RosetteStrainGage_RosetteMeasType 0x2FFD // Specifies the type of rosette measurement. -#define -DAQmx_AI_Resistance_Units 0x0955 // Specifies the units to use to return resistance measurements. -#define -DAQmx_AI_Freq_Units 0x0806 // Specifies the units to use to return frequency measurements from the channel. -#define -DAQmx_AI_Freq_ThreshVoltage 0x0815 // Specifies the voltage level at which to recognize waveform repetitions. You should select a voltage level that occurs only once within the entire period of a waveform. You also can select a voltage that occurs only once while the voltage rises or falls. -#define -DAQmx_AI_Freq_Hyst 0x0814 // Specifies in volts a window below Threshold Level. The input voltage must pass below Threshold Level minus this value before NI-DAQmx recognizes a waveform repetition at Threshold Level. Hysteresis can improve the measurement accuracy when the signal contains noise or jitter. -#define -DAQmx_AI_LVDT_Units 0x0910 // Specifies the units to use to return linear position measurements from the channel. -#define -DAQmx_AI_LVDT_Sensitivity 0x0939 // Specifies the sensitivity of the LVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_LVDT_SensitivityUnits 0x219A // Specifies the units of Sensitivity. -#define -DAQmx_AI_RVDT_Units 0x0877 // Specifies the units to use to return angular position measurements from the channel. -#define -DAQmx_AI_RVDT_Sensitivity 0x0903 // Specifies the sensitivity of the RVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_RVDT_SensitivityUnits 0x219B // Specifies the units of Sensitivity. -#define -DAQmx_AI_EddyCurrentProxProbe_Units 0x2AC0 // Specifies the units to use to return proximity measurements from the channel. -#define -DAQmx_AI_EddyCurrentProxProbe_Sensitivity 0x2ABE // Specifies the sensitivity of the eddy current proximity probe . This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits 0x2ABF // Specifies the units of Sensitivity. -#define -DAQmx_AI_SoundPressure_MaxSoundPressureLvl 0x223A // Specifies the maximum instantaneous sound pressure level you expect to measure. This value is in decibels, referenced to 20 micropascals. NI-DAQmx uses the maximum sound pressure level to calculate values in pascals for Maximum Value and Minimum Value for the channel. -#define -DAQmx_AI_SoundPressure_Units 0x1528 // Specifies the units to use to return sound pressure measurements from the channel. -#define -DAQmx_AI_SoundPressure_dBRef 0x29B1 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. NI-DAQmx also uses the decibel reference level when converting Maximum Sound Pressure Level to a voltage level. -#define -DAQmx_AI_Microphone_Sensitivity 0x1536 // Specifies the sensitivity of the microphone. This value is in mV/Pa. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_Accel_Units 0x0673 // Specifies the units to use to return acceleration measurements from the channel. -#define -DAQmx_AI_Accel_dBRef 0x29B2 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define -DAQmx_AI_Accel_4WireDCVoltage_Sensitivity 0x3115 // Specifies the sensitivity of the 4 wire DC voltage acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.4WireDCVoltage.SensitivityUnits. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits 0x3116 // Specifies the units of AI.Accel.4WireDCVoltage.Sensitivity. -#define -DAQmx_AI_Accel_Sensitivity 0x0692 // Specifies the sensitivity of the accelerometer. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_Accel_SensitivityUnits 0x219C // Specifies the units of Sensitivity. -#define -DAQmx_AI_Accel_Charge_Sensitivity 0x3113 // Specifies the sensitivity of the charge acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.Charge.SensitivityUnits. Refer to the sensor documentation to determine this value. -#define -DAQmx_AI_Accel_Charge_SensitivityUnits 0x3114 // Specifies the units of AI.Accel.Charge.Sensitivity. -#define -DAQmx_AI_Velocity_Units 0x2FF4 // Specifies in which unit to return velocity measurements from the channel. -#define -DAQmx_AI_Velocity_IEPESensor_dBRef 0x2FF5 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. -#define -DAQmx_AI_Velocity_IEPESensor_Sensitivity 0x2FF6 // Specifies the sensitivity of the IEPE velocity sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. +#define DAQmx_AI_RTD_Type 0x1032 // Specifies the type of RTD connected to the channel. +#define DAQmx_AI_RTD_R0 0x1030 // Specifies in ohms the sensor resistance at 0 deg C. The Callendar-Van Dusen equation requires this value. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_RTD_A 0x1010 // Specifies the 'A' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define DAQmx_AI_RTD_B 0x1011 // Specifies the 'B' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define DAQmx_AI_RTD_C 0x1013 // Specifies the 'C' constant of the Callendar-Van Dusen equation. NI-DAQmx requires this value when you use a custom RTD. +#define DAQmx_AI_Thrmstr_A 0x18C9 // Specifies the 'A' constant of the Steinhart-Hart thermistor equation. +#define DAQmx_AI_Thrmstr_B 0x18CB // Specifies the 'B' constant of the Steinhart-Hart thermistor equation. +#define DAQmx_AI_Thrmstr_C 0x18CA // Specifies the 'C' constant of the Steinhart-Hart thermistor equation. +#define DAQmx_AI_Thrmstr_R1 0x1061 // Specifies in ohms the value of the reference resistor for the thermistor if you use voltage excitation. NI-DAQmx ignores this value for current excitation. +#define DAQmx_AI_ForceReadFromChan 0x18F8 // Specifies whether to read from the channel if it is a cold-junction compensation channel. By default, an NI-DAQmx Read function does not return data from cold-junction compensation channels. Setting this property to TRUE forces read operations to return the cold-junction compensation channel data with the other channels in the task. +#define DAQmx_AI_Current_Units 0x0701 // Specifies the units to use to return current measurements from the channel. +#define DAQmx_AI_Current_ACRMS_Units 0x17E3 // Specifies the units to use to return current RMS measurements from the channel. +#define DAQmx_AI_Strain_Units 0x0981 // Specifies the units to use to return strain measurements from the channel. +#define DAQmx_AI_StrainGage_ForceReadFromChan 0x2FFA // Specifies whether the data is returned by an NI-DAQmx Read function when set on a raw strain channel that is part of a rosette configuration. +#define DAQmx_AI_StrainGage_GageFactor 0x0994 // Specifies the sensitivity of the strain gage. Gage factor relates the change in electrical resistance to the change in strain. Refer to the sensor documentation for this value. +#define DAQmx_AI_StrainGage_PoissonRatio 0x0998 // Specifies the ratio of lateral strain to axial strain in the material you are measuring. +#define DAQmx_AI_StrainGage_Cfg 0x0982 // Specifies the bridge configuration of the strain gages. +#define DAQmx_AI_RosetteStrainGage_RosetteType 0x2FFE // Indicates the type of rosette gage. +#define DAQmx_AI_RosetteStrainGage_Orientation 0x2FFC // Specifies gage orientation in degrees with respect to the X axis. +#define DAQmx_AI_RosetteStrainGage_StrainChans 0x2FFB // Indicates the raw strain channels that comprise the strain rosette. +#define DAQmx_AI_RosetteStrainGage_RosetteMeasType 0x2FFD // Specifies the type of rosette measurement. +#define DAQmx_AI_Resistance_Units 0x0955 // Specifies the units to use to return resistance measurements. +#define DAQmx_AI_Freq_Units 0x0806 // Specifies the units to use to return frequency measurements from the channel. +#define DAQmx_AI_Freq_ThreshVoltage 0x0815 // Specifies the voltage level at which to recognize waveform repetitions. You should select a voltage level that occurs only once within the entire period of a waveform. You also can select a voltage that occurs only once while the voltage rises or falls. +#define DAQmx_AI_Freq_Hyst 0x0814 // Specifies in volts a window below Threshold Level. The input voltage must pass below Threshold Level minus this value before NI-DAQmx recognizes a waveform repetition at Threshold Level. Hysteresis can improve the measurement accuracy when the signal contains noise or jitter. +#define DAQmx_AI_LVDT_Units 0x0910 // Specifies the units to use to return linear position measurements from the channel. +#define DAQmx_AI_LVDT_Sensitivity 0x0939 // Specifies the sensitivity of the LVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_LVDT_SensitivityUnits 0x219A // Specifies the units of Sensitivity. +#define DAQmx_AI_RVDT_Units 0x0877 // Specifies the units to use to return angular position measurements from the channel. +#define DAQmx_AI_RVDT_Sensitivity 0x0903 // Specifies the sensitivity of the RVDT. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_RVDT_SensitivityUnits 0x219B // Specifies the units of Sensitivity. +#define DAQmx_AI_EddyCurrentProxProbe_Units 0x2AC0 // Specifies the units to use to return proximity measurements from the channel. +#define DAQmx_AI_EddyCurrentProxProbe_Sensitivity 0x2ABE // Specifies the sensitivity of the eddy current proximity probe . This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits 0x2ABF // Specifies the units of Sensitivity. +#define DAQmx_AI_SoundPressure_MaxSoundPressureLvl 0x223A // Specifies the maximum instantaneous sound pressure level you expect to measure. This value is in decibels, referenced to 20 micropascals. NI-DAQmx uses the maximum sound pressure level to calculate values in pascals for Maximum Value and Minimum Value for the channel. +#define DAQmx_AI_SoundPressure_Units 0x1528 // Specifies the units to use to return sound pressure measurements from the channel. +#define DAQmx_AI_SoundPressure_dBRef 0x29B1 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. NI-DAQmx also uses the decibel reference level when converting Maximum Sound Pressure Level to a voltage level. +#define DAQmx_AI_Microphone_Sensitivity 0x1536 // Specifies the sensitivity of the microphone. This value is in mV/Pa. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_Accel_Units 0x0673 // Specifies the units to use to return acceleration measurements from the channel. +#define DAQmx_AI_Accel_dBRef 0x29B2 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define DAQmx_AI_Accel_4WireDCVoltage_Sensitivity 0x3115 // Specifies the sensitivity of the 4 wire DC voltage acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.4WireDCVoltage.SensitivityUnits. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits 0x3116 // Specifies the units of AI.Accel.4WireDCVoltage.Sensitivity. +#define DAQmx_AI_Accel_Sensitivity 0x0692 // Specifies the sensitivity of the accelerometer. This value is in the units you specify with Sensitivity Units. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_Accel_SensitivityUnits 0x219C // Specifies the units of Sensitivity. +#define DAQmx_AI_Accel_Charge_Sensitivity 0x3113 // Specifies the sensitivity of the charge acceleration sensor connected to the channel. This value is the units you specify with AI.Accel.Charge.SensitivityUnits. Refer to the sensor documentation to determine this value. +#define DAQmx_AI_Accel_Charge_SensitivityUnits 0x3114 // Specifies the units of AI.Accel.Charge.Sensitivity. +#define DAQmx_AI_Velocity_Units 0x2FF4 // Specifies in which unit to return velocity measurements from the channel. +#define DAQmx_AI_Velocity_IEPESensor_dBRef 0x2FF5 // Specifies the decibel reference level in the units of the channel. When you read samples as a waveform, the decibel reference level is included in the waveform attributes. +#define DAQmx_AI_Velocity_IEPESensor_Sensitivity 0x2FF6 // Specifies the sensitivity of the IEPE velocity sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. #define DAQmx_AI_Velocity_IEPESensor_SensitivityUnits 0x2FF7 // Specifies the units for Sensitivity. -#define -DAQmx_AI_Force_Units 0x2F75 // Specifies in which unit to return force or load measurements from the channel. -#define -DAQmx_AI_Force_IEPESensor_Sensitivity 0x2F81 // Specifies the sensitivity of the IEPE force sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. -#define -DAQmx_AI_Force_IEPESensor_SensitivityUnits 0x2F82 // Specifies the units for Sensitivity. -#define -DAQmx_AI_Pressure_Units 0x2F76 // Specifies in which unit to return pressure measurements from the channel. -#define -DAQmx_AI_Torque_Units 0x2F77 // Specifies in which unit to return torque measurements from the channel. -#define -DAQmx_AI_Bridge_Units 0x2F92 // Specifies in which unit to return voltage ratios from the channel. -#define -DAQmx_AI_Bridge_ElectricalUnits 0x2F87 // Specifies from which electrical unit to scale data. Select the same unit that the sensor data sheet or calibration certificate uses for electrical values. -#define -DAQmx_AI_Bridge_PhysicalUnits 0x2F88 // Specifies to which physical unit to scale electrical data. Select the same unit that the sensor data sheet or calibration certificate uses for physical values. -#define -DAQmx_AI_Bridge_ScaleType 0x2F89 // Specifies the scaling type to use when scaling electrical values from the sensor to physical units. -#define -DAQmx_AI_Bridge_TwoPointLin_First_ElectricalVal 0x2F8A // Specifies the first electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. -#define -DAQmx_AI_Bridge_TwoPointLin_First_PhysicalVal 0x2F8B // Specifies the first physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. -#define -DAQmx_AI_Bridge_TwoPointLin_Second_ElectricalVal 0x2F8C // Specifies the second electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. -#define -DAQmx_AI_Bridge_TwoPointLin_Second_PhysicalVal 0x2F8D // Specifies the second physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. -#define -DAQmx_AI_Bridge_Table_ElectricalVals 0x2F8E // Specifies the array of electrical values that map to the values in Physical Values. Specify this value in the unit indicated by Electrical Units. -#define -DAQmx_AI_Bridge_Table_PhysicalVals 0x2F8F // Specifies the array of physical values that map to the values in Electrical Values. Specify this value in the unit indicated by Physical Units. -#define -DAQmx_AI_Bridge_Poly_ForwardCoeff 0x2F90 // Specifies an array of coefficients for the polynomial that converts electrical values to physical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define -DAQmx_AI_Bridge_Poly_ReverseCoeff 0x2F91 // Specifies an array of coefficients for the polynomial that converts physical values to electrical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define -DAQmx_AI_Charge_Units 0x3112 // Specifies the units to use to return charge measurements from the channel. -#define -DAQmx_AI_Is_TEDS 0x2983 // Indicates if the virtual channel was initialized using a TEDS bitstream from the corresponding physical channel. -#define -DAQmx_AI_TEDS_Units 0x21E0 // Indicates the units defined by TEDS information associated with the channel. -#define -DAQmx_AI_Coupling 0x0064 // Specifies the coupling for the channel. -#define -DAQmx_AI_Impedance 0x0062 // Specifies the input impedance of the channel. -#define -DAQmx_AI_TermCfg 0x1097 // Specifies the terminal configuration for the channel. -#define -DAQmx_AI_InputSrc 0x2198 // Specifies the source of the channel. You can use the signal from the I/O connector or one of several calibration signals. Certain devices have a single calibration signal bus. For these devices, you must specify the same calibration signal for all channels you connect to a calibration signal. -#define -DAQmx_AI_ResistanceCfg 0x1881 // Specifies the resistance configuration for the channel. NI-DAQmx uses this value for any resistance-based measurements, including temperature measurement using a thermistor or RTD. -#define -DAQmx_AI_LeadWireResistance 0x17EE // Specifies in ohms the resistance of the wires that lead to the sensor. -#define -DAQmx_AI_Bridge_Cfg 0x0087 // Specifies the type of Wheatstone bridge connected to the channel. -#define -DAQmx_AI_Bridge_NomResistance 0x17EC // Specifies in ohms the resistance of the bridge while not under load. -#define -DAQmx_AI_Bridge_InitialVoltage 0x17ED // Specifies in volts the output voltage of the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Ratio, NI-DAQmx coerces this property to Initial Bridge Ratio times Actual Excitation Value. This property is set by DAQmx Perform Bridge Offset Nulling Calibration. If you set this property, NI-DAQmx coerces Initial Bridge Ratio... -#define -DAQmx_AI_Bridge_InitialRatio 0x2F86 // Specifies in volts per volt the ratio of output voltage from the bridge to excitation voltage supplied to the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Voltage, NI-DAQmx coerces this property to Initial Bridge Voltage divided by Actual Excitation Value. If you set this property, NI-DAQmx coerces Initial Bridge Volt... -#define -DAQmx_AI_Bridge_ShuntCal_Enable 0x0094 // Specifies whether to enable a shunt calibration switch. Use Shunt Cal Select to select the switch(es) to enable. -#define -DAQmx_AI_Bridge_ShuntCal_Select 0x21D5 // Specifies which shunt calibration switch(es) to enable. Use Shunt Cal Enable to enable the switch(es) you specify with this property. -#define -DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc 0x30CA // Specifies whether to use internal or external shunt when Shunt Cal A is selected. -#define -DAQmx_AI_Bridge_ShuntCal_GainAdjust 0x193F // Specifies the result of a shunt calibration. This property is set by DAQmx Perform Shunt Calibration. NI-DAQmx multiplies data read from the channel by the value of this property. This value should be close to 1.0. -#define -DAQmx_AI_Bridge_ShuntCal_ShuntCalAResistance 0x2F78 // Specifies in ohms the desired value of the internal shunt calibration A resistor. -#define -DAQmx_AI_Bridge_ShuntCal_ShuntCalAActualResistance 0x2F79 // Specifies in ohms the actual value of the internal shunt calibration A resistor. -#define -DAQmx_AI_Bridge_ShuntCal_ShuntCalBResistance 0x2F7A // Specifies in ohms the desired value of the internal shunt calibration B resistor. -#define -DAQmx_AI_Bridge_ShuntCal_ShuntCalBActualResistance 0x2F7B // Specifies in ohms the actual value of the internal shunt calibration B resistor. -#define -DAQmx_AI_Bridge_Balance_CoarsePot 0x17F1 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 127. -#define -DAQmx_AI_Bridge_Balance_FinePot 0x18F4 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 4095. -#define -DAQmx_AI_CurrentShunt_Loc 0x17F2 // Specifies the shunt resistor location for current measurements. -#define -DAQmx_AI_CurrentShunt_Resistance 0x17F3 // Specifies in ohms the external shunt resistance for current measurements. -#define -DAQmx_AI_Excit_Sense 0x30FD // Specifies whether to use local or remote sense to sense excitation. -#define -DAQmx_AI_Excit_Src 0x17F4 // Specifies the source of excitation. -#define -DAQmx_AI_Excit_Val 0x17F5 // Specifies the amount of excitation that the sensor requires. If Voltage or Current is DAQmx_Val_Voltage, this value is in volts. If Voltage or Current is DAQmx_Val_Current, this value is in amperes. -#define -DAQmx_AI_Excit_UseForScaling 0x17FC // Specifies if NI-DAQmx divides the measurement by the excitation. You should typically set this property to TRUE for ratiometric transducers. If you set this property to TRUE, set Maximum Value and Minimum Value to reflect the scaling. -#define -DAQmx_AI_Excit_UseMultiplexed 0x2180 // Specifies if the SCXI-1122 multiplexes the excitation to the upper half of the channels as it advances through the scan list. -#define -DAQmx_AI_Excit_ActualVal 0x1883 // Specifies the actual amount of excitation supplied by an internal excitation source. If you read an internal excitation source more precisely with an external device, set this property to the value you read. NI-DAQmx ignores this value for external excitation. When performing shunt calibration, some devices set this property automatically. -#define -DAQmx_AI_Excit_DCorAC 0x17FB // Specifies if the excitation supply is DC or AC. +#define DAQmx_AI_Force_Units 0x2F75 // Specifies in which unit to return force or load measurements from the channel. +#define DAQmx_AI_Force_IEPESensor_Sensitivity 0x2F81 // Specifies the sensitivity of the IEPE force sensor connected to the channel. Specify this value in the unit indicated by Sensitivity Units. +#define DAQmx_AI_Force_IEPESensor_SensitivityUnits 0x2F82 // Specifies the units for Sensitivity. +#define DAQmx_AI_Pressure_Units 0x2F76 // Specifies in which unit to return pressure measurements from the channel. +#define DAQmx_AI_Torque_Units 0x2F77 // Specifies in which unit to return torque measurements from the channel. +#define DAQmx_AI_Bridge_Units 0x2F92 // Specifies in which unit to return voltage ratios from the channel. +#define DAQmx_AI_Bridge_ElectricalUnits 0x2F87 // Specifies from which electrical unit to scale data. Select the same unit that the sensor data sheet or calibration certificate uses for electrical values. +#define DAQmx_AI_Bridge_PhysicalUnits 0x2F88 // Specifies to which physical unit to scale electrical data. Select the same unit that the sensor data sheet or calibration certificate uses for physical values. +#define DAQmx_AI_Bridge_ScaleType 0x2F89 // Specifies the scaling type to use when scaling electrical values from the sensor to physical units. +#define DAQmx_AI_Bridge_TwoPointLin_First_ElectricalVal 0x2F8A // Specifies the first electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. +#define DAQmx_AI_Bridge_TwoPointLin_First_PhysicalVal 0x2F8B // Specifies the first physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. +#define DAQmx_AI_Bridge_TwoPointLin_Second_ElectricalVal 0x2F8C // Specifies the second electrical value, corresponding to Physical Value. Specify this value in the unit indicated by Electrical Units. +#define DAQmx_AI_Bridge_TwoPointLin_Second_PhysicalVal 0x2F8D // Specifies the second physical value, corresponding to Electrical Value. Specify this value in the unit indicated by Physical Units. +#define DAQmx_AI_Bridge_Table_ElectricalVals 0x2F8E // Specifies the array of electrical values that map to the values in Physical Values. Specify this value in the unit indicated by Electrical Units. +#define DAQmx_AI_Bridge_Table_PhysicalVals 0x2F8F // Specifies the array of physical values that map to the values in Electrical Values. Specify this value in the unit indicated by Physical Units. +#define DAQmx_AI_Bridge_Poly_ForwardCoeff 0x2F90 // Specifies an array of coefficients for the polynomial that converts electrical values to physical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define DAQmx_AI_Bridge_Poly_ReverseCoeff 0x2F91 // Specifies an array of coefficients for the polynomial that converts physical values to electrical values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define DAQmx_AI_Charge_Units 0x3112 // Specifies the units to use to return charge measurements from the channel. +#define DAQmx_AI_Is_TEDS 0x2983 // Indicates if the virtual channel was initialized using a TEDS bitstream from the corresponding physical channel. +#define DAQmx_AI_TEDS_Units 0x21E0 // Indicates the units defined by TEDS information associated with the channel. +#define DAQmx_AI_Coupling 0x0064 // Specifies the coupling for the channel. +#define DAQmx_AI_Impedance 0x0062 // Specifies the input impedance of the channel. +#define DAQmx_AI_TermCfg 0x1097 // Specifies the terminal configuration for the channel. +#define DAQmx_AI_InputSrc 0x2198 // Specifies the source of the channel. You can use the signal from the I/O connector or one of several calibration signals. Certain devices have a single calibration signal bus. For these devices, you must specify the same calibration signal for all channels you connect to a calibration signal. +#define DAQmx_AI_ResistanceCfg 0x1881 // Specifies the resistance configuration for the channel. NI-DAQmx uses this value for any resistance-based measurements, including temperature measurement using a thermistor or RTD. +#define DAQmx_AI_LeadWireResistance 0x17EE // Specifies in ohms the resistance of the wires that lead to the sensor. +#define DAQmx_AI_Bridge_Cfg 0x0087 // Specifies the type of Wheatstone bridge connected to the channel. +#define DAQmx_AI_Bridge_NomResistance 0x17EC // Specifies in ohms the resistance of the bridge while not under load. +#define DAQmx_AI_Bridge_InitialVoltage 0x17ED // Specifies in volts the output voltage of the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Ratio, NI-DAQmx coerces this property to Initial Bridge Ratio times Actual Excitation Value. This property is set by DAQmx Perform Bridge Offset Nulling Calibration. If you set this property, NI-DAQmx coerces Initial Bridge Ratio... +#define DAQmx_AI_Bridge_InitialRatio 0x2F86 // Specifies in volts per volt the ratio of output voltage from the bridge to excitation voltage supplied to the bridge while not under load. NI-DAQmx subtracts this value from any measurements before applying scaling equations. If you set Initial Bridge Voltage, NI-DAQmx coerces this property to Initial Bridge Voltage divided by Actual Excitation Value. If you set this property, NI-DAQmx coerces Initial Bridge Volt... +#define DAQmx_AI_Bridge_ShuntCal_Enable 0x0094 // Specifies whether to enable a shunt calibration switch. Use Shunt Cal Select to select the switch(es) to enable. +#define DAQmx_AI_Bridge_ShuntCal_Select 0x21D5 // Specifies which shunt calibration switch(es) to enable. Use Shunt Cal Enable to enable the switch(es) you specify with this property. +#define DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc 0x30CA // Specifies whether to use internal or external shunt when Shunt Cal A is selected. +#define DAQmx_AI_Bridge_ShuntCal_GainAdjust 0x193F // Specifies the result of a shunt calibration. This property is set by DAQmx Perform Shunt Calibration. NI-DAQmx multiplies data read from the channel by the value of this property. This value should be close to 1.0. +#define DAQmx_AI_Bridge_ShuntCal_ShuntCalAResistance 0x2F78 // Specifies in ohms the desired value of the internal shunt calibration A resistor. +#define DAQmx_AI_Bridge_ShuntCal_ShuntCalAActualResistance 0x2F79 // Specifies in ohms the actual value of the internal shunt calibration A resistor. +#define DAQmx_AI_Bridge_ShuntCal_ShuntCalBResistance 0x2F7A // Specifies in ohms the desired value of the internal shunt calibration B resistor. +#define DAQmx_AI_Bridge_ShuntCal_ShuntCalBActualResistance 0x2F7B // Specifies in ohms the actual value of the internal shunt calibration B resistor. +#define DAQmx_AI_Bridge_Balance_CoarsePot 0x17F1 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 127. +#define DAQmx_AI_Bridge_Balance_FinePot 0x18F4 // Specifies by how much to compensate for offset in the signal. This value can be between 0 and 4095. +#define DAQmx_AI_CurrentShunt_Loc 0x17F2 // Specifies the shunt resistor location for current measurements. +#define DAQmx_AI_CurrentShunt_Resistance 0x17F3 // Specifies in ohms the external shunt resistance for current measurements. +#define DAQmx_AI_Excit_Sense 0x30FD // Specifies whether to use local or remote sense to sense excitation. +#define DAQmx_AI_Excit_Src 0x17F4 // Specifies the source of excitation. +#define DAQmx_AI_Excit_Val 0x17F5 // Specifies the amount of excitation that the sensor requires. If Voltage or Current is DAQmx_Val_Voltage, this value is in volts. If Voltage or Current is DAQmx_Val_Current, this value is in amperes. +#define DAQmx_AI_Excit_UseForScaling 0x17FC // Specifies if NI-DAQmx divides the measurement by the excitation. You should typically set this property to TRUE for ratiometric transducers. If you set this property to TRUE, set Maximum Value and Minimum Value to reflect the scaling. +#define DAQmx_AI_Excit_UseMultiplexed 0x2180 // Specifies if the SCXI-1122 multiplexes the excitation to the upper half of the channels as it advances through the scan list. +#define DAQmx_AI_Excit_ActualVal 0x1883 // Specifies the actual amount of excitation supplied by an internal excitation source. If you read an internal excitation source more precisely with an external device, set this property to the value you read. NI-DAQmx ignores this value for external excitation. When performing shunt calibration, some devices set this property automatically. +#define DAQmx_AI_Excit_DCorAC 0x17FB // Specifies if the excitation supply is DC or AC. #define DAQmx_AI_Excit_VoltageOrCurrent 0x17F6 // Specifies if the channel uses current or voltage excitation. -#define -DAQmx_AI_Excit_IdleOutputBehavior 0x30B8 // Specifies whether this channel will disable excitation after the task is uncommitted. Setting this to Zero Volts or Amps disables excitation after task uncommit. Setting this attribute to Maintain Existing Value leaves the excitation on after task uncommit. -#define -DAQmx_AI_ACExcit_Freq 0x0101 // Specifies the AC excitation frequency in Hertz. -#define -DAQmx_AI_ACExcit_SyncEnable 0x0102 // Specifies whether to synchronize the AC excitation source of the channel to that of another channel. Synchronize the excitation sources of multiple channels to use multichannel sensors. Set this property to FALSE for the master channel and to TRUE for the slave channels. -#define -DAQmx_AI_ACExcit_WireMode 0x18CD // Specifies the number of leads on the LVDT or RVDT. Some sensors require you to tie leads together to configure a four- or five- wire sensor. Refer to the sensor documentation for more information. -#define -DAQmx_AI_SensorPower_Voltage 0x3169 // Specifies the voltage level for the sensor's power supply. -#define -DAQmx_AI_SensorPower_Cfg 0x316A // Specifies whether to turn on the sensor's power supply or to leave the configuration unchanged. -#define -DAQmx_AI_SensorPower_Type 0x316B // Specifies the type of power supplied to the sensor. -#define -DAQmx_AI_OpenThrmcplDetectEnable 0x2F72 // Specifies whether to apply the open thermocouple detection bias voltage to the channel. Changing the value of this property on a channel may require settling time before the data returned is valid. To compensate for this settling time, discard unsettled data or add a delay between committing and starting the task. Refer to your device specifications for the required settling time. When open thermocouple detection ... -#define -DAQmx_AI_Thrmcpl_LeadOffsetVoltage 0x2FB8 // Specifies the lead offset nulling voltage to subtract from measurements on a device. This property is ignored if open thermocouple detection is disabled. -#define -DAQmx_AI_Atten 0x1801 // Specifies the amount of attenuation to use. -#define -DAQmx_AI_ProbeAtten 0x2A88 // Specifies the amount of attenuation provided by the probe connected to the channel. Specify this attenuation as a ratio. -#define -DAQmx_AI_Lowpass_Enable 0x1802 // Specifies whether to enable the lowpass filter of the channel. -#define -DAQmx_AI_Lowpass_CutoffFreq 0x1803 // Specifies the frequency in Hertz that corresponds to the -3dB cutoff of the filter. -#define -DAQmx_AI_Lowpass_SwitchCap_ClkSrc 0x1884 // Specifies the source of the filter clock. If you need a higher resolution for the filter, you can supply an external clock to increase the resolution. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define -DAQmx_AI_Lowpass_SwitchCap_ExtClkFreq 0x1885 // Specifies the frequency of the external clock when you set Clock Source to DAQmx_Val_External. NI-DAQmx uses this frequency to set the pre- and post- filters on the SCXI-1141, SCXI-1142, and SCXI-1143. On those devices, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more... -#define -DAQmx_AI_Lowpass_SwitchCap_ExtClkDiv 0x1886 // Specifies the divisor for the external clock when you set Clock Source to DAQmx_Val_External. On the SCXI-1141, SCXI-1142, and SCXI-1143, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define -DAQmx_AI_Lowpass_SwitchCap_OutClkDiv 0x1887 // Specifies the divisor for the output clock. NI-DAQmx uses the cutoff frequency to determine the output clock frequency. Refer to the SCXI-1141/1142/1143 User Manual for more information. -#define -DAQmx_AI_DigFltr_Enable 0x30BD // Specifies whether the digital filter is enabled or disabled. -#define -DAQmx_AI_DigFltr_Type 0x30BE // Specifies the digital filter type. -#define -DAQmx_AI_DigFltr_Response 0x30BF // Specifies the digital filter response. -#define -DAQmx_AI_DigFltr_Order 0x30C0 // Specifies the order of the digital filter. -#define -DAQmx_AI_DigFltr_Lowpass_CutoffFreq 0x30C1 // Specifies the lowpass cutoff frequency of the digital filter. -#define -DAQmx_AI_DigFltr_Highpass_CutoffFreq 0x30C2 // Specifies the highpass cutoff frequency of the digital filter. -#define -DAQmx_AI_DigFltr_Bandpass_CenterFreq 0x30C3 // Specifies the center frequency of the passband for the digital filter. -#define -DAQmx_AI_DigFltr_Bandpass_Width 0x30C4 // Specifies the width of the passband centered around the center frequency for the digital filter. -#define -DAQmx_AI_DigFltr_Notch_CenterFreq 0x30C5 // Specifies the center frequency of the stopband for the digital filter. -#define -DAQmx_AI_DigFltr_Notch_Width 0x30C6 // Specifies the width of the stopband centered around the center frequency for the digital filter. -#define -DAQmx_AI_DigFltr_Coeff 0x30C7 // Specifies the digital filter coefficients. -#define -DAQmx_AI_Filter_Enable 0x3173 // Specifies the corresponding filter enable/disable state. -#define -DAQmx_AI_Filter_Freq 0x3174 // Specifies the corresponding filter frequency (cutoff or center) of the filter response. -#define -DAQmx_AI_Filter_Response 0x3175 // Specifies the corresponding filter response and defines the shape of the filter response. -#define -DAQmx_AI_Filter_Order 0x3176 // Specifies the corresponding filter order and defines the slope of the filter response. -#define -DAQmx_AI_FilterDelay 0x2FED // Indicates the amount of time between when the ADC samples data and when the sample is read by the host device. This value is in the units you specify with Filter Delay Units. You can adjust this amount of time using Filter Delay Adjustment. -#define -DAQmx_AI_FilterDelayUnits 0x3071 // Specifies the units of Filter Delay and Filter Delay Adjustment. -#define -DAQmx_AI_RemoveFilterDelay 0x2FBD // Specifies if filter delay removal is enabled on the device. -#define -DAQmx_AI_FilterDelayAdjustment 0x3074 // Specifies the amount of filter delay that gets removed if Remove Filter Delay is enabled. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. -#define -DAQmx_AI_AveragingWinSize 0x2FEE // Specifies the number of samples to average while acquiring data. Increasing the number of samples to average reduces noise in your measurement. -#define -DAQmx_AI_ResolutionUnits 0x1764 // Indicates the units of Resolution Value. -#define -DAQmx_AI_Resolution 0x1765 // Indicates the resolution of the analog-to-digital converter of the channel. This value is in the units you specify with Resolution Units. -#define -DAQmx_AI_RawSampSize 0x22DA // Indicates in bits the size of a raw sample from the device. -#define -DAQmx_AI_RawSampJustification 0x0050 // Indicates the justification of a raw sample from the device. -#define -DAQmx_AI_ADCTimingMode 0x29F9 // Specifies the ADC timing mode, controlling the tradeoff between speed and effective resolution. Some ADC timing modes provide increased powerline noise rejection. On devices that have an AI Convert clock, this setting affects both the maximum and default values for Rate. You must use the same ADC timing mode for all channels on a device, but you can use different ADC timing modes for different devices in the same ... -#define -DAQmx_AI_ADCCustomTimingMode 0x2F6B // Specifies the timing mode of the ADC when Timing Mode is DAQmx_Val_Custom. -#define -DAQmx_AI_Dither_Enable 0x0068 // Specifies whether to enable dithering. Dithering adds Gaussian noise to the input signal. You can use dithering to achieve higher resolution measurements by over sampling the input signal and averaging the results. -#define -DAQmx_AI_ChanCal_HasValidCalInfo 0x2297 // Indicates if the channel has calibration information. -#define -DAQmx_AI_ChanCal_EnableCal 0x2298 // Specifies whether to enable the channel calibration associated with the channel. -#define -DAQmx_AI_ChanCal_ApplyCalIfExp 0x2299 // Specifies whether to apply the channel calibration to the channel after the expiration date has passed. -#define -DAQmx_AI_ChanCal_ScaleType 0x229C // Specifies the method or equation form that the calibration scale uses. -#define -DAQmx_AI_ChanCal_Table_PreScaledVals 0x229D // Specifies the reference values collected when calibrating the channel. +#define DAQmx_AI_Excit_IdleOutputBehavior 0x30B8 // Specifies whether this channel will disable excitation after the task is uncommitted. Setting this to Zero Volts or Amps disables excitation after task uncommit. Setting this attribute to Maintain Existing Value leaves the excitation on after task uncommit. +#define DAQmx_AI_ACExcit_Freq 0x0101 // Specifies the AC excitation frequency in Hertz. +#define DAQmx_AI_ACExcit_SyncEnable 0x0102 // Specifies whether to synchronize the AC excitation source of the channel to that of another channel. Synchronize the excitation sources of multiple channels to use multichannel sensors. Set this property to FALSE for the master channel and to TRUE for the slave channels. +#define DAQmx_AI_ACExcit_WireMode 0x18CD // Specifies the number of leads on the LVDT or RVDT. Some sensors require you to tie leads together to configure a four- or five- wire sensor. Refer to the sensor documentation for more information. +#define DAQmx_AI_SensorPower_Voltage 0x3169 // Specifies the voltage level for the sensor's power supply. +#define DAQmx_AI_SensorPower_Cfg 0x316A // Specifies whether to turn on the sensor's power supply or to leave the configuration unchanged. +#define DAQmx_AI_SensorPower_Type 0x316B // Specifies the type of power supplied to the sensor. +#define DAQmx_AI_OpenThrmcplDetectEnable 0x2F72 // Specifies whether to apply the open thermocouple detection bias voltage to the channel. Changing the value of this property on a channel may require settling time before the data returned is valid. To compensate for this settling time, discard unsettled data or add a delay between committing and starting the task. Refer to your device specifications for the required settling time. When open thermocouple detection ... +#define DAQmx_AI_Thrmcpl_LeadOffsetVoltage 0x2FB8 // Specifies the lead offset nulling voltage to subtract from measurements on a device. This property is ignored if open thermocouple detection is disabled. +#define DAQmx_AI_Atten 0x1801 // Specifies the amount of attenuation to use. +#define DAQmx_AI_ProbeAtten 0x2A88 // Specifies the amount of attenuation provided by the probe connected to the channel. Specify this attenuation as a ratio. +#define DAQmx_AI_Lowpass_Enable 0x1802 // Specifies whether to enable the lowpass filter of the channel. +#define DAQmx_AI_Lowpass_CutoffFreq 0x1803 // Specifies the frequency in Hertz that corresponds to the -3dB cutoff of the filter. +#define DAQmx_AI_Lowpass_SwitchCap_ClkSrc 0x1884 // Specifies the source of the filter clock. If you need a higher resolution for the filter, you can supply an external clock to increase the resolution. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define DAQmx_AI_Lowpass_SwitchCap_ExtClkFreq 0x1885 // Specifies the frequency of the external clock when you set Clock Source to DAQmx_Val_External. NI-DAQmx uses this frequency to set the pre- and post- filters on the SCXI-1141, SCXI-1142, and SCXI-1143. On those devices, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more... +#define DAQmx_AI_Lowpass_SwitchCap_ExtClkDiv 0x1886 // Specifies the divisor for the external clock when you set Clock Source to DAQmx_Val_External. On the SCXI-1141, SCXI-1142, and SCXI-1143, NI-DAQmx determines the filter cutoff by using the equation f/(100*n), where f is the external frequency, and n is the external clock divisor. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define DAQmx_AI_Lowpass_SwitchCap_OutClkDiv 0x1887 // Specifies the divisor for the output clock. NI-DAQmx uses the cutoff frequency to determine the output clock frequency. Refer to the SCXI-1141/1142/1143 User Manual for more information. +#define DAQmx_AI_DigFltr_Enable 0x30BD // Specifies whether the digital filter is enabled or disabled. +#define DAQmx_AI_DigFltr_Type 0x30BE // Specifies the digital filter type. +#define DAQmx_AI_DigFltr_Response 0x30BF // Specifies the digital filter response. +#define DAQmx_AI_DigFltr_Order 0x30C0 // Specifies the order of the digital filter. +#define DAQmx_AI_DigFltr_Lowpass_CutoffFreq 0x30C1 // Specifies the lowpass cutoff frequency of the digital filter. +#define DAQmx_AI_DigFltr_Highpass_CutoffFreq 0x30C2 // Specifies the highpass cutoff frequency of the digital filter. +#define DAQmx_AI_DigFltr_Bandpass_CenterFreq 0x30C3 // Specifies the center frequency of the passband for the digital filter. +#define DAQmx_AI_DigFltr_Bandpass_Width 0x30C4 // Specifies the width of the passband centered around the center frequency for the digital filter. +#define DAQmx_AI_DigFltr_Notch_CenterFreq 0x30C5 // Specifies the center frequency of the stopband for the digital filter. +#define DAQmx_AI_DigFltr_Notch_Width 0x30C6 // Specifies the width of the stopband centered around the center frequency for the digital filter. +#define DAQmx_AI_DigFltr_Coeff 0x30C7 // Specifies the digital filter coefficients. +#define DAQmx_AI_Filter_Enable 0x3173 // Specifies the corresponding filter enable/disable state. +#define DAQmx_AI_Filter_Freq 0x3174 // Specifies the corresponding filter frequency (cutoff or center) of the filter response. +#define DAQmx_AI_Filter_Response 0x3175 // Specifies the corresponding filter response and defines the shape of the filter response. +#define DAQmx_AI_Filter_Order 0x3176 // Specifies the corresponding filter order and defines the slope of the filter response. +#define DAQmx_AI_FilterDelay 0x2FED // Indicates the amount of time between when the ADC samples data and when the sample is read by the host device. This value is in the units you specify with Filter Delay Units. You can adjust this amount of time using Filter Delay Adjustment. +#define DAQmx_AI_FilterDelayUnits 0x3071 // Specifies the units of Filter Delay and Filter Delay Adjustment. +#define DAQmx_AI_RemoveFilterDelay 0x2FBD // Specifies if filter delay removal is enabled on the device. +#define DAQmx_AI_FilterDelayAdjustment 0x3074 // Specifies the amount of filter delay that gets removed if Remove Filter Delay is enabled. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. +#define DAQmx_AI_AveragingWinSize 0x2FEE // Specifies the number of samples to average while acquiring data. Increasing the number of samples to average reduces noise in your measurement. +#define DAQmx_AI_ResolutionUnits 0x1764 // Indicates the units of Resolution Value. +#define DAQmx_AI_Resolution 0x1765 // Indicates the resolution of the analog-to-digital converter of the channel. This value is in the units you specify with Resolution Units. +#define DAQmx_AI_RawSampSize 0x22DA // Indicates in bits the size of a raw sample from the device. +#define DAQmx_AI_RawSampJustification 0x0050 // Indicates the justification of a raw sample from the device. +#define DAQmx_AI_ADCTimingMode 0x29F9 // Specifies the ADC timing mode, controlling the tradeoff between speed and effective resolution. Some ADC timing modes provide increased powerline noise rejection. On devices that have an AI Convert clock, this setting affects both the maximum and default values for Rate. You must use the same ADC timing mode for all channels on a device, but you can use different ADC timing modes for different devices in the same ... +#define DAQmx_AI_ADCCustomTimingMode 0x2F6B // Specifies the timing mode of the ADC when Timing Mode is DAQmx_Val_Custom. +#define DAQmx_AI_Dither_Enable 0x0068 // Specifies whether to enable dithering. Dithering adds Gaussian noise to the input signal. You can use dithering to achieve higher resolution measurements by over sampling the input signal and averaging the results. +#define DAQmx_AI_ChanCal_HasValidCalInfo 0x2297 // Indicates if the channel has calibration information. +#define DAQmx_AI_ChanCal_EnableCal 0x2298 // Specifies whether to enable the channel calibration associated with the channel. +#define DAQmx_AI_ChanCal_ApplyCalIfExp 0x2299 // Specifies whether to apply the channel calibration to the channel after the expiration date has passed. +#define DAQmx_AI_ChanCal_ScaleType 0x229C // Specifies the method or equation form that the calibration scale uses. +#define DAQmx_AI_ChanCal_Table_PreScaledVals 0x229D // Specifies the reference values collected when calibrating the channel. #define DAQmx_AI_ChanCal_Table_ScaledVals 0x229E // Specifies the acquired values collected when calibrating the channel. -#define -DAQmx_AI_ChanCal_Poly_ForwardCoeff 0x229F // Specifies the forward polynomial values used for calibrating the channel. -#define -DAQmx_AI_ChanCal_Poly_ReverseCoeff 0x22A0 // Specifies the reverse polynomial values used for calibrating the channel. -#define -DAQmx_AI_ChanCal_OperatorName 0x22A3 // Specifies the name of the operator who performed the channel calibration. -#define -DAQmx_AI_ChanCal_Desc 0x22A4 // Specifies the description entered for the calibration of the channel. -#define -DAQmx_AI_ChanCal_Verif_RefVals 0x22A1 // Specifies the reference values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. -#define -DAQmx_AI_ChanCal_Verif_AcqVals 0x22A2 // Specifies the acquired values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. -#define -DAQmx_AI_Rng_High 0x1815 // Specifies the upper limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define -DAQmx_AI_Rng_Low 0x1816 // Specifies the lower limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define -DAQmx_AI_DCOffset 0x2A89 // Specifies the DC value to add to the input range of the device. Use High and Low to specify the input range. This offset is in the native units of the device . -#define -DAQmx_AI_Gain 0x1818 // Specifies a gain factor to apply to the channel. -#define -DAQmx_AI_SampAndHold_Enable 0x181A // Specifies whether to enable the sample and hold circuitry of the device. When you disable sample and hold circuitry, a small voltage offset might be introduced into the signal. You can eliminate this offset by using Auto Zero Mode to perform an auto zero on the channel. -#define -DAQmx_AI_AutoZeroMode 0x1760 // Specifies how often to measure ground. NI-DAQmx subtracts the measured ground voltage from every sample. -#define -DAQmx_AI_ChopEnable 0x3143 // Specifies whether the device will chop its inputs. Chopping removes offset voltages and other low frequency errors. -#define -DAQmx_AI_DataXferMaxRate 0x3117 // Specifies the sample_rate in B/s to transfer data from the device. If this value is not set, then the device will transfer data at a sample_rate based on the bus detected. Modify this value to affect performance under different combinations of operating system, configuration, and device. -#define -DAQmx_AI_DataXferMech 0x1821 // Specifies the data transfer mode for the device. -#define -DAQmx_AI_DataXferReqCond 0x188B // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define -DAQmx_AI_DataXferCustomThreshold 0x230C // Specifies the number of samples that must be in the FIFO to transfer data from the device if Data Transfer Request Condition is DAQmx_Val_OnbrdMemCustomThreshold. -#define -DAQmx_AI_UsbXferReqSize 0x2A8E // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_AI_UsbXferReqCount 0x3000 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_AI_MemMapEnable 0x188C // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_AI_RawDataCompressionType 0x22D8 // Specifies the type of compression to apply to raw samples returned from the device. -#define -DAQmx_AI_LossyLSBRemoval_CompressedSampSize 0x22D9 // Specifies the number of bits to return in a raw sample when Raw Data Compression Type is set to DAQmx_Val_LossyLSBRemoval. -#define -DAQmx_AI_DevScalingCoeff 0x1930 // Indicates the coefficients of a polynomial equation that NI-DAQmx uses to scale values from the native format of the device to volts. Each element of the array corresponds to a term of the equation. For example, if index two of the array is 4, the third term of the equation is 4x^2. Scaling coefficients do not account for any custom scales or sensors contained by the channel. -#define -DAQmx_AI_EnhancedAliasRejectionEnable 0x2294 // Specifies whether to enable enhanced alias rejection. Leave this property set to the default value for most applications. -#define -DAQmx_AI_OpenChanDetectEnable 0x30FF // Specifies whether to enable open channel detection. -#define -DAQmx_AI_InputLimitsFaultDetect_UpperLimit 0x318C // Specifies the level of the upper limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. -#define -DAQmx_AI_InputLimitsFaultDetect_LowerLimit 0x318D // Specifies the level of the lower limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. -#define -DAQmx_AI_InputLimitsFaultDetectEnable 0x318E // Specifies whether to enable input limits fault detection. -#define -DAQmx_AI_PowerSupplyFaultDetectEnable 0x3191 // Specifies whether to enable power supply fault detection. -#define -DAQmx_AI_OvercurrentDetectEnable 0x3194 // Specifies whether to enable overcurrent detection. -#define -DAQmx_AO_Max 0x1186 // Specifies the maximum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value larger than the maximum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a smaller value if other task settings restrict the device from generating the desired maximum. -#define -DAQmx_AO_Min 0x1187 // Specifies the minimum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value smaller than the minimum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a larger value if other task settings restrict the device from generating the desired minimum. -#define -DAQmx_AO_CustomScaleName 0x1188 // Specifies the name of a custom scale for the channel. -#define -DAQmx_AO_OutputType 0x1108 // Indicates whether the channel generates voltage, current, or a waveform. -#define -DAQmx_AO_Voltage_Units 0x1184 // Specifies in what units to generate voltage on the channel. Write data to the channel in the units you select. -#define -DAQmx_AO_Voltage_CurrentLimit 0x2A1D // Specifies the current limit, in amperes, for the voltage channel. -#define -DAQmx_AO_Current_Units 0x1109 // Specifies in what units to generate current on the channel. Write data to the channel in the units you select. -#define -DAQmx_AO_FuncGen_Type 0x2A18 // Specifies the kind of the waveform to generate. -#define -DAQmx_AO_FuncGen_Freq 0x2A19 // Specifies the frequency of the waveform to generate in hertz. -#define -DAQmx_AO_FuncGen_Amplitude 0x2A1A // Specifies the zero-to-peak amplitude of the waveform to generate in volts. Zero and negative values are valid. -#define -DAQmx_AO_FuncGen_Offset 0x2A1B // Specifies the voltage offset of the waveform to generate. -#define -DAQmx_AO_FuncGen_Square_DutyCycle 0x2A1C // Specifies the square wave duty cycle of the waveform to generate. -#define -DAQmx_AO_FuncGen_ModulationType 0x2A22 // Specifies if the device generates a modulated version of the waveform using the original waveform as a carrier and input from an external terminal as the signal. -#define -DAQmx_AO_FuncGen_FMDeviation 0x2A23 // Specifies the FM deviation in hertz per volt when Type is DAQmx_Val_FM. -#define -DAQmx_AO_OutputImpedance 0x1490 // Specifies in ohms the impedance of the analog output stage of the device. -#define -DAQmx_AO_LoadImpedance 0x0121 // Specifies in ohms the load impedance connected to the analog output channel. -#define -DAQmx_AO_IdleOutputBehavior 0x2240 // Specifies the state of the channel when no generation is in progress. -#define -DAQmx_AO_TermCfg 0x188E // Specifies the terminal configuration of the channel. -#define -DAQmx_AO_ResolutionUnits 0x182B // Specifies the units of Resolution Value. +#define DAQmx_AI_ChanCal_Poly_ForwardCoeff 0x229F // Specifies the forward polynomial values used for calibrating the channel. +#define DAQmx_AI_ChanCal_Poly_ReverseCoeff 0x22A0 // Specifies the reverse polynomial values used for calibrating the channel. +#define DAQmx_AI_ChanCal_OperatorName 0x22A3 // Specifies the name of the operator who performed the channel calibration. +#define DAQmx_AI_ChanCal_Desc 0x22A4 // Specifies the description entered for the calibration of the channel. +#define DAQmx_AI_ChanCal_Verif_RefVals 0x22A1 // Specifies the reference values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. +#define DAQmx_AI_ChanCal_Verif_AcqVals 0x22A2 // Specifies the acquired values collected when verifying the calibration. NI-DAQmx stores these values as a record of calibration accuracy and does not use them in the scaling process. +#define DAQmx_AI_Rng_High 0x1815 // Specifies the upper limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define DAQmx_AI_Rng_Low 0x1816 // Specifies the lower limit of the input range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define DAQmx_AI_DCOffset 0x2A89 // Specifies the DC value to add to the input range of the device. Use High and Low to specify the input range. This offset is in the native units of the device . +#define DAQmx_AI_Gain 0x1818 // Specifies a gain factor to apply to the channel. +#define DAQmx_AI_SampAndHold_Enable 0x181A // Specifies whether to enable the sample and hold circuitry of the device. When you disable sample and hold circuitry, a small voltage offset might be introduced into the signal. You can eliminate this offset by using Auto Zero Mode to perform an auto zero on the channel. +#define DAQmx_AI_AutoZeroMode 0x1760 // Specifies how often to measure ground. NI-DAQmx subtracts the measured ground voltage from every sample. +#define DAQmx_AI_ChopEnable 0x3143 // Specifies whether the device will chop its inputs. Chopping removes offset voltages and other low frequency errors. +#define DAQmx_AI_DataXferMaxRate 0x3117 // Specifies the sample_rate in B/s to transfer data from the device. If this value is not set, then the device will transfer data at a sample_rate based on the bus detected. Modify this value to affect performance under different combinations of operating system, configuration, and device. +#define DAQmx_AI_DataXferMech 0x1821 // Specifies the data transfer mode for the device. +#define DAQmx_AI_DataXferReqCond 0x188B // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define DAQmx_AI_DataXferCustomThreshold 0x230C // Specifies the number of samples that must be in the FIFO to transfer data from the device if Data Transfer Request Condition is DAQmx_Val_OnbrdMemCustomThreshold. +#define DAQmx_AI_UsbXferReqSize 0x2A8E // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_AI_UsbXferReqCount 0x3000 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_AI_MemMapEnable 0x188C // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_AI_RawDataCompressionType 0x22D8 // Specifies the type of compression to apply to raw samples returned from the device. +#define DAQmx_AI_LossyLSBRemoval_CompressedSampSize 0x22D9 // Specifies the number of bits to return in a raw sample when Raw Data Compression Type is set to DAQmx_Val_LossyLSBRemoval. +#define DAQmx_AI_DevScalingCoeff 0x1930 // Indicates the coefficients of a polynomial equation that NI-DAQmx uses to scale values from the native format of the device to volts. Each element of the array corresponds to a term of the equation. For example, if index two of the array is 4, the third term of the equation is 4x^2. Scaling coefficients do not account for any custom scales or sensors contained by the channel. +#define DAQmx_AI_EnhancedAliasRejectionEnable 0x2294 // Specifies whether to enable enhanced alias rejection. Leave this property set to the default value for most applications. +#define DAQmx_AI_OpenChanDetectEnable 0x30FF // Specifies whether to enable open channel detection. +#define DAQmx_AI_InputLimitsFaultDetect_UpperLimit 0x318C // Specifies the level of the upper limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. +#define DAQmx_AI_InputLimitsFaultDetect_LowerLimit 0x318D // Specifies the level of the lower limit for input limits detection. An input sample outside the upper and lower bounds causes a fault. Note: Fault detection applies to both positive and negative inputs. For instance, if you specify a lower limit of 2 mA and an upper limit of 12 mA, NI-DAQmx detects a fault at 15 mA and -15 mA, but not at -6 mA because it is in the range of -12 mA to -2 mA. +#define DAQmx_AI_InputLimitsFaultDetectEnable 0x318E // Specifies whether to enable input limits fault detection. +#define DAQmx_AI_PowerSupplyFaultDetectEnable 0x3191 // Specifies whether to enable power supply fault detection. +#define DAQmx_AI_OvercurrentDetectEnable 0x3194 // Specifies whether to enable overcurrent detection. +#define DAQmx_AO_Max 0x1186 // Specifies the maximum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value larger than the maximum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a smaller value if other task settings restrict the device from generating the desired maximum. +#define DAQmx_AO_Min 0x1187 // Specifies the minimum value you expect to generate. The value is in the units you specify with a units property. If you try to write a value smaller than the minimum value, NI-DAQmx generates an error. NI-DAQmx might coerce this value to a larger value if other task settings restrict the device from generating the desired minimum. +#define DAQmx_AO_CustomScaleName 0x1188 // Specifies the name of a custom scale for the channel. +#define DAQmx_AO_OutputType 0x1108 // Indicates whether the channel generates voltage, current, or a waveform. +#define DAQmx_AO_Voltage_Units 0x1184 // Specifies in what units to generate voltage on the channel. Write data to the channel in the units you select. +#define DAQmx_AO_Voltage_CurrentLimit 0x2A1D // Specifies the current limit, in amperes, for the voltage channel. +#define DAQmx_AO_Current_Units 0x1109 // Specifies in what units to generate current on the channel. Write data to the channel in the units you select. +#define DAQmx_AO_FuncGen_Type 0x2A18 // Specifies the kind of the waveform to generate. +#define DAQmx_AO_FuncGen_Freq 0x2A19 // Specifies the frequency of the waveform to generate in hertz. +#define DAQmx_AO_FuncGen_Amplitude 0x2A1A // Specifies the zero-to-peak amplitude of the waveform to generate in volts. Zero and negative values are valid. +#define DAQmx_AO_FuncGen_Offset 0x2A1B // Specifies the voltage offset of the waveform to generate. +#define DAQmx_AO_FuncGen_Square_DutyCycle 0x2A1C // Specifies the square wave duty cycle of the waveform to generate. +#define DAQmx_AO_FuncGen_ModulationType 0x2A22 // Specifies if the device generates a modulated version of the waveform using the original waveform as a carrier and input from an external terminal as the signal. +#define DAQmx_AO_FuncGen_FMDeviation 0x2A23 // Specifies the FM deviation in hertz per volt when Type is DAQmx_Val_FM. +#define DAQmx_AO_OutputImpedance 0x1490 // Specifies in ohms the impedance of the analog output stage of the device. +#define DAQmx_AO_LoadImpedance 0x0121 // Specifies in ohms the load impedance connected to the analog output channel. +#define DAQmx_AO_IdleOutputBehavior 0x2240 // Specifies the state of the channel when no generation is in progress. +#define DAQmx_AO_TermCfg 0x188E // Specifies the terminal configuration of the channel. +#define DAQmx_AO_ResolutionUnits 0x182B // Specifies the units of Resolution Value. #define DAQmx_AO_Resolution 0x182C // Indicates the resolution of the digital-to-analog converter of the channel. This value is in the units you specify with Resolution Units. -#define -DAQmx_AO_DAC_Rng_High 0x182E // Specifies the upper limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define -DAQmx_AO_DAC_Rng_Low 0x182D // Specifies the lower limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. -#define -DAQmx_AO_DAC_Ref_ConnToGnd 0x0130 // Specifies whether to ground the internal DAC reference. Grounding the internal DAC reference has the effect of grounding all analog output channels and stopping waveform generation across all analog output channels regardless of whether the channels belong to the current task. You can ground the internal DAC reference only when Source is DAQmx_Val_Internal and Allow Connecting DAC Reference to Ground at Runtime is... -#define -DAQmx_AO_DAC_Ref_AllowConnToGnd 0x1830 // Specifies whether to allow grounding the internal DAC reference at run time. You must set this property to TRUE and set Source to DAQmx_Val_Internal before you can set Connect DAC Reference to Ground to TRUE. -#define -DAQmx_AO_DAC_Ref_Src 0x0132 // Specifies the source of the DAC reference voltage. The value of this voltage source determines the full-scale value of the DAC. -#define -DAQmx_AO_DAC_Ref_ExtSrc 0x2252 // Specifies the source of the DAC reference voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. -#define -DAQmx_AO_DAC_Ref_Val 0x1832 // Specifies in volts the value of the DAC reference voltage. This voltage determines the full-scale range of the DAC. Smaller reference voltages result in smaller ranges, but increased resolution. -#define -DAQmx_AO_DAC_Offset_Src 0x2253 // Specifies the source of the DAC offset voltage. The value of this voltage source determines the full-scale value of the DAC. -#define -DAQmx_AO_DAC_Offset_ExtSrc 0x2254 // Specifies the source of the DAC offset voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. -#define -DAQmx_AO_DAC_Offset_Val 0x2255 // Specifies in volts the value of the DAC offset voltage. To achieve best accuracy, the DAC offset value should be hand calibrated. -#define -DAQmx_AO_ReglitchEnable 0x0133 // Specifies whether to enable reglitching. The output of a DAC normally glitches whenever the DAC is updated with a new value. The amount of glitching differs from code to code and is generally largest at major code transitions. Reglitching generates uniform glitch energy at each code transition and provides for more uniform glitches. Uniform glitch energy makes it easier to filter out the noise introduced from g... -#define -DAQmx_AO_FilterDelay 0x3075 // Specifies the amount of time between when the sample is written by the host device and when the sample is output by the DAC. This value is in the units you specify with Filter Delay Units. -#define -DAQmx_AO_FilterDelayUnits 0x3076 // Specifies the units of Filter Delay and Filter Delay Adjustment. -#define -DAQmx_AO_FilterDelayAdjustment 0x3072 // Specifies an additional amount of time to wait between when the sample is written by the host device and when the sample is output by the DAC. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. -#define -DAQmx_AO_Gain 0x0118 // Specifies in decibels the gain factor to apply to the channel. -#define -DAQmx_AO_UseOnlyOnBrdMem 0x183A // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. -#define -DAQmx_AO_DataXferMech 0x0134 // Specifies the data transfer mode for the device. -#define -DAQmx_AO_DataXferReqCond 0x183C // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define -DAQmx_AO_UsbXferReqSize 0x2A8F // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_AO_UsbXferReqCount 0x3001 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_AO_MemMapEnable 0x188F // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_AO_DevScalingCoeff 0x1931 // Indicates the coefficients of a linear equation that NI-DAQmx uses to scale values from a voltage to the native format of the device. Each element of the array corresponds to a term of the equation. The first element of the array corresponds to the y-intercept, and the second element corresponds to the slope. Scaling coefficients do not account for any custom scales that may be applied to the channel. -#define -DAQmx_AO_EnhancedImageRejectionEnable 0x2241 // Specifies whether to enable the DAC interpolation filter. Disable the interpolation filter to improve DAC signal-to-noise ratio at the expense of degraded image rejection. -#define -DAQmx_DI_InvertLines 0x0793 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. -#define -DAQmx_DI_NumLines 0x2178 // Indicates the number of digital lines in the channel. -#define -DAQmx_DI_DigFltr_Enable 0x21D6 // Specifies whether to enable the digital filter for the line(s) or port(s). You can enable the filter on a line-by-line basis. You do not have to enable the filter for all lines in a channel. -#define -DAQmx_DI_DigFltr_MinPulseWidth 0x21D7 // Specifies in seconds the minimum pulse width the filter recognizes as a valid high or low state transition. -#define -DAQmx_DI_DigFltr_EnableBusMode 0x2EFE // Specifies whether to enable bus mode for digital filtering. If you set this property to TRUE, NI-DAQmx treats all lines that use common filtering settings as a bus. If any line in the bus has jitter, all lines in the bus hold state until the entire bus stabilizes, or until 2 times the minimum pulse width elapses. If you set this property to FALSE, NI-DAQmx filters all lines individually. Jitter in one line does no... -#define -DAQmx_DI_DigFltr_TimebaseSrc 0x2ED4 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_DI_DigFltr_TimebaseRate 0x2ED5 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_DI_DigSync_Enable 0x2ED6 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_DI_Tristate 0x1890 // Specifies whether to tristate the lines in the channel. If you set this property to TRUE, NI-DAQmx tristates the lines in the channel. If you set this property to FALSE, NI-DAQmx does not modify the configuration of the lines even if the lines were previously tristated. Set this property to FALSE to read lines in other tasks or to read output-only lines. -#define -DAQmx_DI_LogicFamily 0x296D // Specifies the logic family to use for acquisition. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. -#define -DAQmx_DI_DataXferMech 0x2263 // Specifies the data transfer mode for the device. -#define -DAQmx_DI_DataXferReqCond 0x2264 // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define -DAQmx_DI_UsbXferReqSize 0x2A90 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_DI_UsbXferReqCount 0x3002 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_DI_MemMapEnable 0x296A // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_DI_AcquireOn 0x2966 // Specifies on which edge of the sample clock to acquire samples. -#define -DAQmx_DO_OutputDriveType 0x1137 // Specifies the drive type for digital output channels. -#define -DAQmx_DO_InvertLines 0x1133 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. -#define -DAQmx_DO_NumLines 0x2179 // Indicates the number of digital lines in the channel. -#define -DAQmx_DO_Tristate 0x18F3 // Specifies whether to stop driving the channel and set it to a high-impedance state. You must commit the task for this setting to take effect. -#define -DAQmx_DO_LineStates_StartState 0x2972 // Specifies the state of the lines in a digital output task when the task starts. -#define -DAQmx_DO_LineStates_PausedState 0x2967 // Specifies the state of the lines in a digital output task when the task pauses. -#define -DAQmx_DO_LineStates_DoneState 0x2968 // Specifies the state of the lines in a digital output task when the task completes execution. -#define -DAQmx_DO_LogicFamily 0x296E // Specifies the logic family to use for generation. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. -#define -DAQmx_DO_Overcurrent_Limit 0x2A85 // Specifies the current threshold in Amperes for the channel. A value of 0 means the channel observes no limit. Devices can monitor only a finite number of current thresholds simultaneously. If you attempt to monitor additional thresholds, NI-DAQmx returns an error. -#define -DAQmx_DO_Overcurrent_AutoReenable 0x2A86 // Specifies whether to automatically reenable channels after they no longer exceed the current limit specified by Current Limit. +#define DAQmx_AO_DAC_Rng_High 0x182E // Specifies the upper limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define DAQmx_AO_DAC_Rng_Low 0x182D // Specifies the lower limit of the output range of the device. This value is in the native units of the device. On E Series devices, for example, the native units is volts. +#define DAQmx_AO_DAC_Ref_ConnToGnd 0x0130 // Specifies whether to ground the internal DAC reference. Grounding the internal DAC reference has the effect of grounding all analog output channels and stopping waveform generation across all analog output channels regardless of whether the channels belong to the current task. You can ground the internal DAC reference only when Source is DAQmx_Val_Internal and Allow Connecting DAC Reference to Ground at Runtime is... +#define DAQmx_AO_DAC_Ref_AllowConnToGnd 0x1830 // Specifies whether to allow grounding the internal DAC reference at run time. You must set this property to TRUE and set Source to DAQmx_Val_Internal before you can set Connect DAC Reference to Ground to TRUE. +#define DAQmx_AO_DAC_Ref_Src 0x0132 // Specifies the source of the DAC reference voltage. The value of this voltage source determines the full-scale value of the DAC. +#define DAQmx_AO_DAC_Ref_ExtSrc 0x2252 // Specifies the source of the DAC reference voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. +#define DAQmx_AO_DAC_Ref_Val 0x1832 // Specifies in volts the value of the DAC reference voltage. This voltage determines the full-scale range of the DAC. Smaller reference voltages result in smaller ranges, but increased resolution. +#define DAQmx_AO_DAC_Offset_Src 0x2253 // Specifies the source of the DAC offset voltage. The value of this voltage source determines the full-scale value of the DAC. +#define DAQmx_AO_DAC_Offset_ExtSrc 0x2254 // Specifies the source of the DAC offset voltage if Source is DAQmx_Val_External. The valid sources for this signal vary by device. +#define DAQmx_AO_DAC_Offset_Val 0x2255 // Specifies in volts the value of the DAC offset voltage. To achieve best accuracy, the DAC offset value should be hand calibrated. +#define DAQmx_AO_ReglitchEnable 0x0133 // Specifies whether to enable reglitching. The output of a DAC normally glitches whenever the DAC is updated with a new value. The amount of glitching differs from code to code and is generally largest at major code transitions. Reglitching generates uniform glitch energy at each code transition and provides for more uniform glitches. Uniform glitch energy makes it easier to filter out the noise introduced from g... +#define DAQmx_AO_FilterDelay 0x3075 // Specifies the amount of time between when the sample is written by the host device and when the sample is output by the DAC. This value is in the units you specify with Filter Delay Units. +#define DAQmx_AO_FilterDelayUnits 0x3076 // Specifies the units of Filter Delay and Filter Delay Adjustment. +#define DAQmx_AO_FilterDelayAdjustment 0x3072 // Specifies an additional amount of time to wait between when the sample is written by the host device and when the sample is output by the DAC. This delay adjustment is in addition to the value indicated by Filter Delay. This delay adjustment is in the units you specify with Filter Delay Units. +#define DAQmx_AO_Gain 0x0118 // Specifies in decibels the gain factor to apply to the channel. +#define DAQmx_AO_UseOnlyOnBrdMem 0x183A // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. +#define DAQmx_AO_DataXferMech 0x0134 // Specifies the data transfer mode for the device. +#define DAQmx_AO_DataXferReqCond 0x183C // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define DAQmx_AO_UsbXferReqSize 0x2A8F // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_AO_UsbXferReqCount 0x3001 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_AO_MemMapEnable 0x188F // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_AO_DevScalingCoeff 0x1931 // Indicates the coefficients of a linear equation that NI-DAQmx uses to scale values from a voltage to the native format of the device. Each element of the array corresponds to a term of the equation. The first element of the array corresponds to the y-intercept, and the second element corresponds to the slope. Scaling coefficients do not account for any custom scales that may be applied to the channel. +#define DAQmx_AO_EnhancedImageRejectionEnable 0x2241 // Specifies whether to enable the DAC interpolation filter. Disable the interpolation filter to improve DAC signal-to-noise ratio at the expense of degraded image rejection. +#define DAQmx_DI_InvertLines 0x0793 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. +#define DAQmx_DI_NumLines 0x2178 // Indicates the number of digital lines in the channel. +#define DAQmx_DI_DigFltr_Enable 0x21D6 // Specifies whether to enable the digital filter for the line(s) or port(s). You can enable the filter on a line-by-line basis. You do not have to enable the filter for all lines in a channel. +#define DAQmx_DI_DigFltr_MinPulseWidth 0x21D7 // Specifies in seconds the minimum pulse width the filter recognizes as a valid high or low state transition. +#define DAQmx_DI_DigFltr_EnableBusMode 0x2EFE // Specifies whether to enable bus mode for digital filtering. If you set this property to TRUE, NI-DAQmx treats all lines that use common filtering settings as a bus. If any line in the bus has jitter, all lines in the bus hold state until the entire bus stabilizes, or until 2 times the minimum pulse width elapses. If you set this property to FALSE, NI-DAQmx filters all lines individually. Jitter in one line does no... +#define DAQmx_DI_DigFltr_TimebaseSrc 0x2ED4 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_DI_DigFltr_TimebaseRate 0x2ED5 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_DI_DigSync_Enable 0x2ED6 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_DI_Tristate 0x1890 // Specifies whether to tristate the lines in the channel. If you set this property to TRUE, NI-DAQmx tristates the lines in the channel. If you set this property to FALSE, NI-DAQmx does not modify the configuration of the lines even if the lines were previously tristated. Set this property to FALSE to read lines in other tasks or to read output-only lines. +#define DAQmx_DI_LogicFamily 0x296D // Specifies the logic family to use for acquisition. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. +#define DAQmx_DI_DataXferMech 0x2263 // Specifies the data transfer mode for the device. +#define DAQmx_DI_DataXferReqCond 0x2264 // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define DAQmx_DI_UsbXferReqSize 0x2A90 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_DI_UsbXferReqCount 0x3002 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_DI_MemMapEnable 0x296A // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_DI_AcquireOn 0x2966 // Specifies on which edge of the sample clock to acquire samples. +#define DAQmx_DO_OutputDriveType 0x1137 // Specifies the drive type for digital output channels. +#define DAQmx_DO_InvertLines 0x1133 // Specifies whether to invert the lines in the channel. If you set this property to TRUE, the lines are at high logic when off and at low logic when on. +#define DAQmx_DO_NumLines 0x2179 // Indicates the number of digital lines in the channel. +#define DAQmx_DO_Tristate 0x18F3 // Specifies whether to stop driving the channel and set it to a high-impedance state. You must commit the task for this setting to take effect. +#define DAQmx_DO_LineStates_StartState 0x2972 // Specifies the state of the lines in a digital output task when the task starts. +#define DAQmx_DO_LineStates_PausedState 0x2967 // Specifies the state of the lines in a digital output task when the task pauses. +#define DAQmx_DO_LineStates_DoneState 0x2968 // Specifies the state of the lines in a digital output task when the task completes execution. +#define DAQmx_DO_LogicFamily 0x296E // Specifies the logic family to use for generation. A logic family corresponds to voltage thresholds that are compatible with a group of voltage standards. Refer to the device documentation for information on the logic high and logic low voltages for these logic families. +#define DAQmx_DO_Overcurrent_Limit 0x2A85 // Specifies the current threshold in Amperes for the channel. A value of 0 means the channel observes no limit. Devices can monitor only a finite number of current thresholds simultaneously. If you attempt to monitor additional thresholds, NI-DAQmx returns an error. +#define DAQmx_DO_Overcurrent_AutoReenable 0x2A86 // Specifies whether to automatically reenable channels after they no longer exceed the current limit specified by Current Limit. #define DAQmx_DO_Overcurrent_ReenablePeriod 0x2A87 // Specifies the delay in seconds between the time a channel no longer exceeds the current limit and the reactivation of that channel, if Automatic Re-enable is TRUE. -#define -DAQmx_DO_UseOnlyOnBrdMem 0x2265 // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory after you start the task. Onboard memory includes data FIFOs. -#define -DAQmx_DO_DataXferMech 0x2266 // Specifies the data transfer mode for the device. -#define -DAQmx_DO_DataXferReqCond 0x2267 // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define -DAQmx_DO_UsbXferReqSize 0x2A91 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_DO_UsbXferReqCount 0x3003 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_DO_MemMapEnable 0x296B // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_DO_GenerateOn 0x2969 // Specifies on which edge of the sample clock to generate samples. -#define -DAQmx_CI_Max 0x189C // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the hardware can measure with the current settings. -#define -DAQmx_CI_Min 0x189D // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the hardware can measure with the current settings. -#define -DAQmx_CI_CustomScaleName 0x189E // Specifies the name of a custom scale for the channel. -#define -DAQmx_CI_MeasType 0x18A0 // Indicates the measurement to take with the channel. -#define -DAQmx_CI_Freq_Units 0x18A1 // Specifies the units to use to return frequency measurements. -#define -DAQmx_CI_Freq_Term 0x18A2 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_Freq_TermCfg 0x3097 // Specifies the input terminal configuration. -#define -DAQmx_CI_Freq_LogicLvlBehavior 0x3098 // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_Freq_DigFltr_Enable 0x21E7 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Freq_DigFltr_MinPulseWidth 0x21E8 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Freq_DigFltr_TimebaseSrc 0x21E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Freq_DigFltr_TimebaseRate 0x21EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Freq_DigSync_Enable 0x21EB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Freq_StartingEdge 0x0799 // Specifies between which edges to measure the frequency of the signal. -#define -DAQmx_CI_Freq_MeasMeth 0x0144 // Specifies the method to use to measure the frequency of the signal. -#define -DAQmx_CI_Freq_EnableAveraging 0x2ED0 // Specifies whether to enable averaging mode for Sample Clock-timed frequency measurements. -#define -DAQmx_CI_Freq_MeasTime 0x0145 // Specifies in seconds the length of time to measure the frequency of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. -#define -DAQmx_CI_Freq_Div 0x0147 // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. -#define -DAQmx_CI_Period_Units 0x18A3 // Specifies the unit to use to return period measurements. -#define -DAQmx_CI_Period_Term 0x18A4 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_Period_TermCfg 0x3099 // Specifies the input terminal configuration. -#define -DAQmx_CI_Period_LogicLvlBehavior 0x309A // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_Period_DigFltr_Enable 0x21EC // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Period_DigFltr_MinPulseWidth 0x21ED // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Period_DigFltr_TimebaseSrc 0x21EE // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Period_DigFltr_TimebaseRate 0x21EF // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Period_DigSync_Enable 0x21F0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Period_StartingEdge 0x0852 // Specifies between which edges to measure the period of the signal. -#define -DAQmx_CI_Period_MeasMeth 0x192C // Specifies the method to use to measure the period of the signal. -#define -DAQmx_CI_Period_EnableAveraging 0x2ED1 // Specifies whether to enable averaging mode for Sample Clock-timed period measurements. -#define -DAQmx_CI_Period_MeasTime 0x192D // Specifies in seconds the length of time to measure the period of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. -#define -DAQmx_CI_Period_Div 0x192E // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. -#define -DAQmx_CI_CountEdges_Term 0x18C7 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_CountEdges_TermCfg 0x309B // Specifies the input terminal configuration. -#define -DAQmx_CI_CountEdges_LogicLvlBehavior 0x309C // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_CountEdges_DigFltr_Enable 0x21F6 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_CountEdges_DigFltr_MinPulseWidth 0x21F7 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_CountEdges_DigFltr_TimebaseSrc 0x21F8 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_CountEdges_DigFltr_TimebaseRate 0x21F9 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_CountEdges_DigSync_Enable 0x21FA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_CountEdges_Dir 0x0696 // Specifies whether to increment or decrement the counter on each edge. -#define -DAQmx_CI_CountEdges_DirTerm 0x21E1 // Specifies the source terminal of the digital signal that controls the count direction if Direction is DAQmx_Val_ExtControlled. +#define DAQmx_DO_UseOnlyOnBrdMem 0x2265 // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory after you start the task. Onboard memory includes data FIFOs. +#define DAQmx_DO_DataXferMech 0x2266 // Specifies the data transfer mode for the device. +#define DAQmx_DO_DataXferReqCond 0x2267 // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define DAQmx_DO_UsbXferReqSize 0x2A91 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_DO_UsbXferReqCount 0x3003 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_DO_MemMapEnable 0x296B // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_DO_GenerateOn 0x2969 // Specifies on which edge of the sample clock to generate samples. +#define DAQmx_CI_Max 0x189C // Specifies the maximum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced maximum value that the hardware can measure with the current settings. +#define DAQmx_CI_Min 0x189D // Specifies the minimum value you expect to measure. This value is in the units you specify with a units property. When you query this property, it returns the coerced minimum value that the hardware can measure with the current settings. +#define DAQmx_CI_CustomScaleName 0x189E // Specifies the name of a custom scale for the channel. +#define DAQmx_CI_MeasType 0x18A0 // Indicates the measurement to take with the channel. +#define DAQmx_CI_Freq_Units 0x18A1 // Specifies the units to use to return frequency measurements. +#define DAQmx_CI_Freq_Term 0x18A2 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_Freq_TermCfg 0x3097 // Specifies the input terminal configuration. +#define DAQmx_CI_Freq_LogicLvlBehavior 0x3098 // Specifies the logic level behavior on the input line. +#define DAQmx_CI_Freq_DigFltr_Enable 0x21E7 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Freq_DigFltr_MinPulseWidth 0x21E8 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Freq_DigFltr_TimebaseSrc 0x21E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Freq_DigFltr_TimebaseRate 0x21EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Freq_DigSync_Enable 0x21EB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Freq_StartingEdge 0x0799 // Specifies between which edges to measure the frequency of the signal. +#define DAQmx_CI_Freq_MeasMeth 0x0144 // Specifies the method to use to measure the frequency of the signal. +#define DAQmx_CI_Freq_EnableAveraging 0x2ED0 // Specifies whether to enable averaging mode for Sample Clock-timed frequency measurements. +#define DAQmx_CI_Freq_MeasTime 0x0145 // Specifies in seconds the length of time to measure the frequency of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. +#define DAQmx_CI_Freq_Div 0x0147 // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. +#define DAQmx_CI_Period_Units 0x18A3 // Specifies the unit to use to return period measurements. +#define DAQmx_CI_Period_Term 0x18A4 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_Period_TermCfg 0x3099 // Specifies the input terminal configuration. +#define DAQmx_CI_Period_LogicLvlBehavior 0x309A // Specifies the logic level behavior on the input line. +#define DAQmx_CI_Period_DigFltr_Enable 0x21EC // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Period_DigFltr_MinPulseWidth 0x21ED // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Period_DigFltr_TimebaseSrc 0x21EE // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Period_DigFltr_TimebaseRate 0x21EF // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Period_DigSync_Enable 0x21F0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Period_StartingEdge 0x0852 // Specifies between which edges to measure the period of the signal. +#define DAQmx_CI_Period_MeasMeth 0x192C // Specifies the method to use to measure the period of the signal. +#define DAQmx_CI_Period_EnableAveraging 0x2ED1 // Specifies whether to enable averaging mode for Sample Clock-timed period measurements. +#define DAQmx_CI_Period_MeasTime 0x192D // Specifies in seconds the length of time to measure the period of the signal if Method is DAQmx_Val_HighFreq2Ctr. Measurement accuracy increases with increased measurement time and with increased signal frequency. If you measure a high-frequency signal for too long, however, the count register could roll over, which results in an incorrect measurement. +#define DAQmx_CI_Period_Div 0x192E // Specifies the value by which to divide the input signal if Method is DAQmx_Val_LargeRng2Ctr. The larger the divisor, the more accurate the measurement. However, too large a value could cause the count register to roll over, which results in an incorrect measurement. +#define DAQmx_CI_CountEdges_Term 0x18C7 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_CountEdges_TermCfg 0x309B // Specifies the input terminal configuration. +#define DAQmx_CI_CountEdges_LogicLvlBehavior 0x309C // Specifies the logic level behavior on the input line. +#define DAQmx_CI_CountEdges_DigFltr_Enable 0x21F6 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_CountEdges_DigFltr_MinPulseWidth 0x21F7 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_CountEdges_DigFltr_TimebaseSrc 0x21F8 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CountEdges_DigFltr_TimebaseRate 0x21F9 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_CountEdges_DigSync_Enable 0x21FA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_CountEdges_Dir 0x0696 // Specifies whether to increment or decrement the counter on each edge. +#define DAQmx_CI_CountEdges_DirTerm 0x21E1 // Specifies the source terminal of the digital signal that controls the count direction if Direction is DAQmx_Val_ExtControlled. #define DAQmx_CI_CountEdges_CountDir_TermCfg 0x309D // Specifies the input terminal configuration. -#define -DAQmx_CI_CountEdges_CountDir_LogicLvlBehavior 0x309E // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_CountEdges_CountDir_DigFltr_Enable 0x21F1 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_CountEdges_CountDir_DigFltr_MinPulseWidth 0x21F2 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseSrc 0x21F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseRate 0x21F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_CountEdges_CountDir_DigSync_Enable 0x21F5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_CountEdges_InitialCnt 0x0698 // Specifies the starting value from which to count. -#define -DAQmx_CI_CountEdges_ActiveEdge 0x0697 // Specifies on which edges to increment or decrement the counter. -#define -DAQmx_CI_CountEdges_CountReset_Enable 0x2FAF // Specifies whether to reset the count on the active edge specified with Terminal. -#define -DAQmx_CI_CountEdges_CountReset_ResetCount 0x2FB0 // Specifies the value to reset the count to. -#define -DAQmx_CI_CountEdges_CountReset_Term 0x2FB1 // Specifies the input terminal of the signal to reset the count. -#define -DAQmx_CI_CountEdges_CountReset_TermCfg 0x309F // Specifies the input terminal configuration. -#define -DAQmx_CI_CountEdges_CountReset_LogicLvlBehavior 0x30A0 // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_CountEdges_CountReset_DigFltr_Enable 0x2FB3 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_CountEdges_CountReset_DigFltr_MinPulseWidth 0x2FB4 // Specifies the minimum pulse width the filter recognizes. -#define -DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseSrc 0x2FB5 // Specifies the input of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseRate 0x2FB6 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_CountEdges_CountReset_DigSync_Enable 0x2FB7 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_CountEdges_CountReset_ActiveEdge 0x2FB2 // Specifies on which edge of the signal to reset the count. -#define -DAQmx_CI_CountEdges_Gate_Enable 0x30ED // Specifies whether to enable the functionality to gate the counter input signal for a count edges measurement. -#define -DAQmx_CI_CountEdges_Gate_Term 0x30EE // Specifies the gate terminal. -#define -DAQmx_CI_CountEdges_Gate_TermCfg 0x30EF // Specifies the gate terminal configuration. -#define -DAQmx_CI_CountEdges_Gate_LogicLvlBehavior 0x30F0 // Specifies the logic level behavior on the gate input line. -#define -DAQmx_CI_CountEdges_Gate_DigFltrEnable 0x30F1 // Specifies whether to apply the pulse width filter to the gate input signal. -#define -DAQmx_CI_CountEdges_Gate_DigFltrMinPulseWidth 0x30F2 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define -DAQmx_CI_CountEdges_Gate_DigFltrTimebaseSrc 0x30F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_CountEdges_Gate_DigFltrTimebaseRate 0x30F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_CountEdges_GateWhen 0x30F5 // Specifies whether the counter gates input pulses while the signal is high or low. -#define -DAQmx_CI_DutyCycle_Term 0x308D // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_DutyCycle_TermCfg 0x30A1 // Specifies the input terminal configuration. -#define -DAQmx_CI_DutyCycle_LogicLvlBehavior 0x30A2 // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_DutyCycle_DigFltr_Enable 0x308E // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_DutyCycle_DigFltr_MinPulseWidth 0x308F // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define -DAQmx_CI_DutyCycle_DigFltr_TimebaseSrc 0x3090 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_DutyCycle_DigFltr_TimebaseRate 0x3091 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_DutyCycle_StartingEdge 0x3092 // Specifies which edge of the input signal to begin the duty cycle measurement. -#define -DAQmx_CI_AngEncoder_Units 0x18A6 // Specifies the units to use to return angular position measurements from the channel. -#define -DAQmx_CI_AngEncoder_PulsesPerRev 0x0875 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. -#define -DAQmx_CI_AngEncoder_InitialAngle 0x0881 // Specifies the starting angle of the encoder. This value is in the units you specify with Units. -#define -DAQmx_CI_LinEncoder_Units 0x18A9 // Specifies the units to use to return linear encoder measurements from the channel. -#define -DAQmx_CI_LinEncoder_DistPerPulse 0x0911 // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify with Units. -#define -DAQmx_CI_LinEncoder_InitialPos 0x0915 // Specifies the position of the encoder when the measurement begins. This value is in the units you specify with Units. -#define -DAQmx_CI_Encoder_DecodingType 0x21E6 // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. DAQmx_Val_X1, DAQmx_Val_X2, and DAQmx_Val_X4 are valid for quadrature encoders only. DAQmx_Val_TwoPulseCounting is valid for two-pulse encoders only. -#define -DAQmx_CI_Encoder_AInputTerm 0x219D // Specifies the terminal to which signal A is connected. -#define -DAQmx_CI_Encoder_AInputTermCfg 0x30A3 // Specifies the input terminal configuration. -#define -DAQmx_CI_Encoder_AInputLogicLvlBehavior 0x30A4 // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_Encoder_AInput_DigFltr_Enable 0x21FB // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Encoder_AInput_DigFltr_MinPulseWidth 0x21FC // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Encoder_AInput_DigFltr_TimebaseSrc 0x21FD // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CountEdges_CountDir_LogicLvlBehavior 0x309E // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_CountEdges_CountDir_DigFltr_Enable 0x21F1 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_CountEdges_CountDir_DigFltr_MinPulseWidth 0x21F2 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseSrc 0x21F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CountEdges_CountDir_DigFltr_TimebaseRate 0x21F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_CountEdges_CountDir_DigSync_Enable 0x21F5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_CountEdges_InitialCnt 0x0698 // Specifies the starting value from which to count. +#define DAQmx_CI_CountEdges_ActiveEdge 0x0697 // Specifies on which edges to increment or decrement the counter. +#define DAQmx_CI_CountEdges_CountReset_Enable 0x2FAF // Specifies whether to reset the count on the active edge specified with Terminal. +#define DAQmx_CI_CountEdges_CountReset_ResetCount 0x2FB0 // Specifies the value to reset the count to. +#define DAQmx_CI_CountEdges_CountReset_Term 0x2FB1 // Specifies the input terminal of the signal to reset the count. +#define DAQmx_CI_CountEdges_CountReset_TermCfg 0x309F // Specifies the input terminal configuration. +#define DAQmx_CI_CountEdges_CountReset_LogicLvlBehavior 0x30A0 // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_CountEdges_CountReset_DigFltr_Enable 0x2FB3 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_CountEdges_CountReset_DigFltr_MinPulseWidth 0x2FB4 // Specifies the minimum pulse width the filter recognizes. +#define DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseSrc 0x2FB5 // Specifies the input of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CountEdges_CountReset_DigFltr_TimebaseRate 0x2FB6 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_CountEdges_CountReset_DigSync_Enable 0x2FB7 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_CountEdges_CountReset_ActiveEdge 0x2FB2 // Specifies on which edge of the signal to reset the count. +#define DAQmx_CI_CountEdges_Gate_Enable 0x30ED // Specifies whether to enable the functionality to gate the counter input signal for a count edges measurement. +#define DAQmx_CI_CountEdges_Gate_Term 0x30EE // Specifies the gate terminal. +#define DAQmx_CI_CountEdges_Gate_TermCfg 0x30EF // Specifies the gate terminal configuration. +#define DAQmx_CI_CountEdges_Gate_LogicLvlBehavior 0x30F0 // Specifies the logic level behavior on the gate input line. +#define DAQmx_CI_CountEdges_Gate_DigFltrEnable 0x30F1 // Specifies whether to apply the pulse width filter to the gate input signal. +#define DAQmx_CI_CountEdges_Gate_DigFltrMinPulseWidth 0x30F2 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define DAQmx_CI_CountEdges_Gate_DigFltrTimebaseSrc 0x30F3 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CountEdges_Gate_DigFltrTimebaseRate 0x30F4 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_CountEdges_GateWhen 0x30F5 // Specifies whether the counter gates input pulses while the signal is high or low. +#define DAQmx_CI_DutyCycle_Term 0x308D // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_DutyCycle_TermCfg 0x30A1 // Specifies the input terminal configuration. +#define DAQmx_CI_DutyCycle_LogicLvlBehavior 0x30A2 // Specifies the logic level behavior on the input line. +#define DAQmx_CI_DutyCycle_DigFltr_Enable 0x308E // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_DutyCycle_DigFltr_MinPulseWidth 0x308F // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define DAQmx_CI_DutyCycle_DigFltr_TimebaseSrc 0x3090 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_DutyCycle_DigFltr_TimebaseRate 0x3091 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_DutyCycle_StartingEdge 0x3092 // Specifies which edge of the input signal to begin the duty cycle measurement. +#define DAQmx_CI_AngEncoder_Units 0x18A6 // Specifies the units to use to return angular position measurements from the channel. +#define DAQmx_CI_AngEncoder_PulsesPerRev 0x0875 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. +#define DAQmx_CI_AngEncoder_InitialAngle 0x0881 // Specifies the starting angle of the encoder. This value is in the units you specify with Units. +#define DAQmx_CI_LinEncoder_Units 0x18A9 // Specifies the units to use to return linear encoder measurements from the channel. +#define DAQmx_CI_LinEncoder_DistPerPulse 0x0911 // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify with Units. +#define DAQmx_CI_LinEncoder_InitialPos 0x0915 // Specifies the position of the encoder when the measurement begins. This value is in the units you specify with Units. +#define DAQmx_CI_Encoder_DecodingType 0x21E6 // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. DAQmx_Val_X1, DAQmx_Val_X2, and DAQmx_Val_X4 are valid for quadrature encoders only. DAQmx_Val_TwoPulseCounting is valid for two-pulse encoders only. +#define DAQmx_CI_Encoder_AInputTerm 0x219D // Specifies the terminal to which signal A is connected. +#define DAQmx_CI_Encoder_AInputTermCfg 0x30A3 // Specifies the input terminal configuration. +#define DAQmx_CI_Encoder_AInputLogicLvlBehavior 0x30A4 // Specifies the logic level behavior on the input line. +#define DAQmx_CI_Encoder_AInput_DigFltr_Enable 0x21FB // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Encoder_AInput_DigFltr_MinPulseWidth 0x21FC // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Encoder_AInput_DigFltr_TimebaseSrc 0x21FD // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. #define DAQmx_CI_Encoder_AInput_DigFltr_TimebaseRate 0x21FE // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Encoder_AInput_DigSync_Enable 0x21FF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Encoder_BInputTerm 0x219E // Specifies the terminal to which signal B is connected. -#define -DAQmx_CI_Encoder_BInputTermCfg 0x30A5 // Specifies the input terminal configuration. -#define -DAQmx_CI_Encoder_BInputLogicLvlBehavior 0x30A6 // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_Encoder_BInput_DigFltr_Enable 0x2200 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Encoder_BInput_DigFltr_MinPulseWidth 0x2201 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Encoder_BInput_DigFltr_TimebaseSrc 0x2202 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Encoder_BInput_DigFltr_TimebaseRate 0x2203 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Encoder_BInput_DigSync_Enable 0x2204 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Encoder_ZInputTerm 0x219F // Specifies the terminal to which signal Z is connected. -#define -DAQmx_CI_Encoder_ZInputTermCfg 0x30A7 // Specifies the input terminal configuration. -#define -DAQmx_CI_Encoder_ZInputLogicLvlBehavior 0x30A8 // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_Encoder_ZInput_DigFltr_Enable 0x2205 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Encoder_ZInput_DigFltr_MinPulseWidth 0x2206 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseSrc 0x2207 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseRate 0x2208 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Encoder_ZInput_DigSync_Enable 0x2209 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Encoder_ZIndexEnable 0x0890 // Specifies whether to use Z indexing for the channel. -#define -DAQmx_CI_Encoder_ZIndexVal 0x0888 // Specifies the value to which to reset the measurement when signal Z is high and signal A and signal B are at the states you specify with Z Index Phase. Specify this value in the units of the measurement. -#define -DAQmx_CI_Encoder_ZIndexPhase 0x0889 // Specifies the states at which signal A and signal B must be while signal Z is high for NI-DAQmx to reset the measurement. If signal Z is never high while signal A and signal B are high, for example, you must choose a phase other than DAQmx_Val_AHighBHigh. -#define -DAQmx_CI_PulseWidth_Units 0x0823 // Specifies the units to use to return pulse width measurements. -#define -DAQmx_CI_PulseWidth_Term 0x18AA // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_PulseWidth_TermCfg 0x30A9 // Specifies the input terminal configuration. -#define -DAQmx_CI_PulseWidth_LogicLvlBehavior 0x30AA // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_PulseWidth_DigFltr_Enable 0x220A // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_PulseWidth_DigFltr_MinPulseWidth 0x220B // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_PulseWidth_DigFltr_TimebaseSrc 0x220C // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_PulseWidth_DigFltr_TimebaseRate 0x220D // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_PulseWidth_DigSync_Enable 0x220E // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_PulseWidth_StartingEdge 0x0825 // Specifies on which edge of the input signal to begin each pulse width measurement. -#define -DAQmx_CI_Timestamp_Units 0x22B3 // Specifies the units to use to return timestamp measurements. -#define -DAQmx_CI_Timestamp_InitialSeconds 0x22B4 // Specifies the number of seconds that elapsed since the beginning of the current year. This value is ignored if Synchronization Method is DAQmx_Val_IRIGB. -#define -DAQmx_CI_GPS_SyncMethod 0x1092 // Specifies the method to use to synchronize the counter to a GPS receiver. -#define -DAQmx_CI_GPS_SyncSrc 0x1093 // Specifies the terminal to which the GPS synchronization signal is connected. -#define -DAQmx_CI_Velocity_AngEncoder_Units 0x30D8 // Specifies the units to use to return angular velocity counter measurements. -#define -DAQmx_CI_Velocity_AngEncoder_PulsesPerRev 0x30D9 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. -#define -DAQmx_CI_Velocity_LinEncoder_Units 0x30DA // Specifies the units to use to return linear encoder velocity measurements from the channel. -#define -DAQmx_CI_Velocity_LinEncoder_DistPerPulse 0x30DB // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify in CI.Velocity.LinEncoder.DistUnits. -#define -DAQmx_CI_Velocity_Encoder_DecodingType 0x30DC // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. X1, X2, and X4 are valid for quadrature encoders only. Two Pulse Counting is valid for two-pulse encoders only. -#define -DAQmx_CI_Velocity_Encoder_AInputTerm 0x30DD // Specifies the terminal to which signal A is connected. -#define -DAQmx_CI_Velocity_Encoder_AInputTermCfg 0x30DE // Specifies the input terminal configuration. -#define -DAQmx_CI_Velocity_Encoder_AInputLogicLvlBehavior 0x30DF // Specifies the logic level behavior of the input terminal. -#define -DAQmx_CI_Velocity_Encoder_AInputDigFltr_Enable 0x30E0 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Velocity_Encoder_AInputDigFltr_MinPulseWidth 0x30E1 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define -DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseSrc 0x30E2 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseRate 0x30E3 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Velocity_Encoder_BInputTerm 0x30E4 // Specifies the terminal to which signal B is connected. -#define -DAQmx_CI_Velocity_Encoder_BInputTermCfg 0x30E5 // Specifies the input terminal configuration. -#define -DAQmx_CI_Velocity_Encoder_BInputLogicLvlBehavior 0x30E6 // Specifies the logic level behavior of the input terminal. +#define DAQmx_CI_Encoder_AInput_DigSync_Enable 0x21FF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Encoder_BInputTerm 0x219E // Specifies the terminal to which signal B is connected. +#define DAQmx_CI_Encoder_BInputTermCfg 0x30A5 // Specifies the input terminal configuration. +#define DAQmx_CI_Encoder_BInputLogicLvlBehavior 0x30A6 // Specifies the logic level behavior on the input line. +#define DAQmx_CI_Encoder_BInput_DigFltr_Enable 0x2200 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Encoder_BInput_DigFltr_MinPulseWidth 0x2201 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Encoder_BInput_DigFltr_TimebaseSrc 0x2202 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Encoder_BInput_DigFltr_TimebaseRate 0x2203 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Encoder_BInput_DigSync_Enable 0x2204 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Encoder_ZInputTerm 0x219F // Specifies the terminal to which signal Z is connected. +#define DAQmx_CI_Encoder_ZInputTermCfg 0x30A7 // Specifies the input terminal configuration. +#define DAQmx_CI_Encoder_ZInputLogicLvlBehavior 0x30A8 // Specifies the logic level behavior on the input line. +#define DAQmx_CI_Encoder_ZInput_DigFltr_Enable 0x2205 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Encoder_ZInput_DigFltr_MinPulseWidth 0x2206 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseSrc 0x2207 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Encoder_ZInput_DigFltr_TimebaseRate 0x2208 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Encoder_ZInput_DigSync_Enable 0x2209 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Encoder_ZIndexEnable 0x0890 // Specifies whether to use Z indexing for the channel. +#define DAQmx_CI_Encoder_ZIndexVal 0x0888 // Specifies the value to which to reset the measurement when signal Z is high and signal A and signal B are at the states you specify with Z Index Phase. Specify this value in the units of the measurement. +#define DAQmx_CI_Encoder_ZIndexPhase 0x0889 // Specifies the states at which signal A and signal B must be while signal Z is high for NI-DAQmx to reset the measurement. If signal Z is never high while signal A and signal B are high, for example, you must choose a phase other than DAQmx_Val_AHighBHigh. +#define DAQmx_CI_PulseWidth_Units 0x0823 // Specifies the units to use to return pulse width measurements. +#define DAQmx_CI_PulseWidth_Term 0x18AA // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_PulseWidth_TermCfg 0x30A9 // Specifies the input terminal configuration. +#define DAQmx_CI_PulseWidth_LogicLvlBehavior 0x30AA // Specifies the logic level behavior on the input line. +#define DAQmx_CI_PulseWidth_DigFltr_Enable 0x220A // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_PulseWidth_DigFltr_MinPulseWidth 0x220B // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_PulseWidth_DigFltr_TimebaseSrc 0x220C // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_PulseWidth_DigFltr_TimebaseRate 0x220D // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_PulseWidth_DigSync_Enable 0x220E // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_PulseWidth_StartingEdge 0x0825 // Specifies on which edge of the input signal to begin each pulse width measurement. +#define DAQmx_CI_Timestamp_Units 0x22B3 // Specifies the units to use to return timestamp measurements. +#define DAQmx_CI_Timestamp_InitialSeconds 0x22B4 // Specifies the number of seconds that elapsed since the beginning of the current year. This value is ignored if Synchronization Method is DAQmx_Val_IRIGB. +#define DAQmx_CI_GPS_SyncMethod 0x1092 // Specifies the method to use to synchronize the counter to a GPS receiver. +#define DAQmx_CI_GPS_SyncSrc 0x1093 // Specifies the terminal to which the GPS synchronization signal is connected. +#define DAQmx_CI_Velocity_AngEncoder_Units 0x30D8 // Specifies the units to use to return angular velocity counter measurements. +#define DAQmx_CI_Velocity_AngEncoder_PulsesPerRev 0x30D9 // Specifies the number of pulses the encoder generates per revolution. This value is the number of pulses on either signal A or signal B, not the total number of pulses on both signal A and signal B. +#define DAQmx_CI_Velocity_LinEncoder_Units 0x30DA // Specifies the units to use to return linear encoder velocity measurements from the channel. +#define DAQmx_CI_Velocity_LinEncoder_DistPerPulse 0x30DB // Specifies the distance to measure for each pulse the encoder generates on signal A or signal B. This value is in the units you specify in CI.Velocity.LinEncoder.DistUnits. +#define DAQmx_CI_Velocity_Encoder_DecodingType 0x30DC // Specifies how to count and interpret the pulses the encoder generates on signal A and signal B. X1, X2, and X4 are valid for quadrature encoders only. Two Pulse Counting is valid for two-pulse encoders only. +#define DAQmx_CI_Velocity_Encoder_AInputTerm 0x30DD // Specifies the terminal to which signal A is connected. +#define DAQmx_CI_Velocity_Encoder_AInputTermCfg 0x30DE // Specifies the input terminal configuration. +#define DAQmx_CI_Velocity_Encoder_AInputLogicLvlBehavior 0x30DF // Specifies the logic level behavior of the input terminal. +#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_Enable 0x30E0 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_MinPulseWidth 0x30E1 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseSrc 0x30E2 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Velocity_Encoder_AInputDigFltr_TimebaseRate 0x30E3 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Velocity_Encoder_BInputTerm 0x30E4 // Specifies the terminal to which signal B is connected. +#define DAQmx_CI_Velocity_Encoder_BInputTermCfg 0x30E5 // Specifies the input terminal configuration. +#define DAQmx_CI_Velocity_Encoder_BInputLogicLvlBehavior 0x30E6 // Specifies the logic level behavior of the input terminal. #define DAQmx_CI_Velocity_Encoder_BInputDigFltr_Enable 0x30E7 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_Velocity_Encoder_BInputDigFltr_MinPulseWidth 0x30E8 // Specifies in seconds the minimum pulse width the digital filter recognizes. -#define -DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseSrc 0x30E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseRate 0x30EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Velocity_MeasTime 0x30EB // Specifies in seconds the length of time to measure the velocity of the signal. -#define -DAQmx_CI_Velocity_Div 0x30EC // Specifies the value by which to divide the input signal. -#define -DAQmx_CI_TwoEdgeSep_Units 0x18AC // Specifies the units to use to return two-edge separation measurements from the channel. -#define -DAQmx_CI_TwoEdgeSep_FirstTerm 0x18AD // Specifies the source terminal of the digital signal that starts each measurement. -#define -DAQmx_CI_TwoEdgeSep_FirstTermCfg 0x30AB // Specifies the input terminal configuration. -#define -DAQmx_CI_TwoEdgeSep_FirstLogicLvlBehavior 0x30AC // Specifies the logic level behavior on the input line. -#define -DAQmx_CI_TwoEdgeSep_First_DigFltr_Enable 0x220F // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_TwoEdgeSep_First_DigFltr_MinPulseWidth 0x2210 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseSrc 0x2211 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseRate 0x2212 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_TwoEdgeSep_First_DigSync_Enable 0x2213 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_TwoEdgeSep_FirstEdge 0x0833 // Specifies on which edge of the first signal to start each measurement. -#define -DAQmx_CI_TwoEdgeSep_SecondTerm 0x18AE // Specifies the source terminal of the digital signal that stops each measurement. -#define -DAQmx_CI_TwoEdgeSep_SecondTermCfg 0x30AD // Specifies the input terminal configuration. -#define -DAQmx_CI_TwoEdgeSep_SecondLogicLvlBehavior 0x30AE // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_TwoEdgeSep_Second_DigFltr_Enable 0x2214 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_TwoEdgeSep_Second_DigFltr_MinPulseWidth 0x2215 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseSrc 0x2216 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseRate 0x2217 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_TwoEdgeSep_Second_DigSync_Enable 0x2218 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_TwoEdgeSep_SecondEdge 0x0834 // Specifies on which edge of the second signal to stop each measurement. -#define -DAQmx_CI_SemiPeriod_Units 0x18AF // Specifies the units to use to return semi-period measurements. -#define -DAQmx_CI_SemiPeriod_Term 0x18B0 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_SemiPeriod_TermCfg 0x30AF // Specifies the input terminal configuration. -#define -DAQmx_CI_SemiPeriod_LogicLvlBehavior 0x30B0 // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_SemiPeriod_DigFltr_Enable 0x2219 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_SemiPeriod_DigFltr_MinPulseWidth 0x221A // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_SemiPeriod_DigFltr_TimebaseSrc 0x221B // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_SemiPeriod_DigFltr_TimebaseRate 0x221C // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_SemiPeriod_DigSync_Enable 0x221D // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_SemiPeriod_StartingEdge 0x22FE // Specifies on which edge of the input signal to begin semi-period measurement. Semi-period measurements alternate between high time and low time, starting on this edge. -#define -DAQmx_CI_Pulse_Freq_Units 0x2F0B // Specifies the units to use to return pulse specifications in terms of frequency. -#define -DAQmx_CI_Pulse_Freq_Term 0x2F04 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_Pulse_Freq_TermCfg 0x30B1 // Specifies the input terminal configuration. -#define -DAQmx_CI_Pulse_Freq_LogicLvlBehavior 0x30B2 // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_Pulse_Freq_DigFltr_Enable 0x2F06 // Specifies whether to apply a digital filter to the signal to measure. -#define -DAQmx_CI_Pulse_Freq_DigFltr_MinPulseWidth 0x2F07 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Pulse_Freq_DigFltr_TimebaseSrc 0x2F08 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_CI_Pulse_Freq_DigFltr_TimebaseRate 0x2F09 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Pulse_Freq_DigSync_Enable 0x2F0A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Pulse_Freq_Start_Edge 0x2F05 // Specifies on which edge of the input signal to begin pulse measurement. -#define -DAQmx_CI_Pulse_Time_Units 0x2F13 // Specifies the units to use to return pulse specifications in terms of high time and low time. -#define -DAQmx_CI_Pulse_Time_Term 0x2F0C // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_Pulse_Time_TermCfg 0x30B3 // Specifies the input terminal configuration. -#define -DAQmx_CI_Pulse_Time_LogicLvlBehavior 0x30B4 // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_Pulse_Time_DigFltr_Enable 0x2F0E // Specifies whether to apply a digital filter to the signal to measure. +#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_MinPulseWidth 0x30E8 // Specifies in seconds the minimum pulse width the digital filter recognizes. +#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseSrc 0x30E9 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_Velocity_Encoder_BInputDigFltr_TimebaseRate 0x30EA // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Velocity_MeasTime 0x30EB // Specifies in seconds the length of time to measure the velocity of the signal. +#define DAQmx_CI_Velocity_Div 0x30EC // Specifies the value by which to divide the input signal. +#define DAQmx_CI_TwoEdgeSep_Units 0x18AC // Specifies the units to use to return two-edge separation measurements from the channel. +#define DAQmx_CI_TwoEdgeSep_FirstTerm 0x18AD // Specifies the source terminal of the digital signal that starts each measurement. +#define DAQmx_CI_TwoEdgeSep_FirstTermCfg 0x30AB // Specifies the input terminal configuration. +#define DAQmx_CI_TwoEdgeSep_FirstLogicLvlBehavior 0x30AC // Specifies the logic level behavior on the input line. +#define DAQmx_CI_TwoEdgeSep_First_DigFltr_Enable 0x220F // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_TwoEdgeSep_First_DigFltr_MinPulseWidth 0x2210 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseSrc 0x2211 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_TwoEdgeSep_First_DigFltr_TimebaseRate 0x2212 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_TwoEdgeSep_First_DigSync_Enable 0x2213 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_TwoEdgeSep_FirstEdge 0x0833 // Specifies on which edge of the first signal to start each measurement. +#define DAQmx_CI_TwoEdgeSep_SecondTerm 0x18AE // Specifies the source terminal of the digital signal that stops each measurement. +#define DAQmx_CI_TwoEdgeSep_SecondTermCfg 0x30AD // Specifies the input terminal configuration. +#define DAQmx_CI_TwoEdgeSep_SecondLogicLvlBehavior 0x30AE // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_Enable 0x2214 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_MinPulseWidth 0x2215 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseSrc 0x2216 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_TwoEdgeSep_Second_DigFltr_TimebaseRate 0x2217 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_TwoEdgeSep_Second_DigSync_Enable 0x2218 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_TwoEdgeSep_SecondEdge 0x0834 // Specifies on which edge of the second signal to stop each measurement. +#define DAQmx_CI_SemiPeriod_Units 0x18AF // Specifies the units to use to return semi-period measurements. +#define DAQmx_CI_SemiPeriod_Term 0x18B0 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_SemiPeriod_TermCfg 0x30AF // Specifies the input terminal configuration. +#define DAQmx_CI_SemiPeriod_LogicLvlBehavior 0x30B0 // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_SemiPeriod_DigFltr_Enable 0x2219 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_SemiPeriod_DigFltr_MinPulseWidth 0x221A // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_SemiPeriod_DigFltr_TimebaseSrc 0x221B // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_SemiPeriod_DigFltr_TimebaseRate 0x221C // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_SemiPeriod_DigSync_Enable 0x221D // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_SemiPeriod_StartingEdge 0x22FE // Specifies on which edge of the input signal to begin semi-period measurement. Semi-period measurements alternate between high time and low time, starting on this edge. +#define DAQmx_CI_Pulse_Freq_Units 0x2F0B // Specifies the units to use to return pulse specifications in terms of frequency. +#define DAQmx_CI_Pulse_Freq_Term 0x2F04 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_Pulse_Freq_TermCfg 0x30B1 // Specifies the input terminal configuration. +#define DAQmx_CI_Pulse_Freq_LogicLvlBehavior 0x30B2 // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_Pulse_Freq_DigFltr_Enable 0x2F06 // Specifies whether to apply a digital filter to the signal to measure. +#define DAQmx_CI_Pulse_Freq_DigFltr_MinPulseWidth 0x2F07 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Pulse_Freq_DigFltr_TimebaseSrc 0x2F08 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_CI_Pulse_Freq_DigFltr_TimebaseRate 0x2F09 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Pulse_Freq_DigSync_Enable 0x2F0A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Pulse_Freq_Start_Edge 0x2F05 // Specifies on which edge of the input signal to begin pulse measurement. +#define DAQmx_CI_Pulse_Time_Units 0x2F13 // Specifies the units to use to return pulse specifications in terms of high time and low time. +#define DAQmx_CI_Pulse_Time_Term 0x2F0C // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_Pulse_Time_TermCfg 0x30B3 // Specifies the input terminal configuration. +#define DAQmx_CI_Pulse_Time_LogicLvlBehavior 0x30B4 // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_Pulse_Time_DigFltr_Enable 0x2F0E // Specifies whether to apply a digital filter to the signal to measure. #define DAQmx_CI_Pulse_Time_DigFltr_MinPulseWidth 0x2F0F // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Pulse_Time_DigFltr_TimebaseSrc 0x2F10 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_CI_Pulse_Time_DigFltr_TimebaseRate 0x2F11 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Pulse_Time_DigSync_Enable 0x2F12 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Pulse_Time_StartEdge 0x2F0D // Specifies on which edge of the input signal to begin pulse measurement. -#define -DAQmx_CI_Pulse_Ticks_Term 0x2F14 // Specifies the input terminal of the signal to measure. -#define -DAQmx_CI_Pulse_Ticks_TermCfg 0x30B5 // Specifies the input terminal configuration. -#define -DAQmx_CI_Pulse_Ticks_LogicLvlBehavior 0x30B6 // Specifies the logic level behavior on the count reset line. -#define -DAQmx_CI_Pulse_Ticks_DigFltr_Enable 0x2F16 // Specifies whether to apply a digital filter to the signal to measure. -#define -DAQmx_CI_Pulse_Ticks_DigFltr_MinPulseWidth 0x2F17 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseSrc 0x2F18 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseRate 0x2F19 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_Pulse_Ticks_DigSync_Enable 0x2F1A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_Pulse_Ticks_StartEdge 0x2F15 // Specifies on which edge of the input signal to begin pulse measurement. -#define -DAQmx_CI_CtrTimebaseSrc 0x0143 // Specifies the terminal of the timebase to use for the counter. -#define -DAQmx_CI_CtrTimebaseRate 0x18B2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to take measurements in terms of time or frequency rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can take measurements only in terms of ticks of the timebase. -#define -DAQmx_CI_CtrTimebaseActiveEdge 0x0142 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. -#define -DAQmx_CI_CtrTimebase_DigFltr_Enable 0x2271 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CI_CtrTimebase_DigFltr_MinPulseWidth 0x2272 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CI_CtrTimebase_DigFltr_TimebaseSrc 0x2273 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CI_CtrTimebase_DigFltr_TimebaseRate 0x2274 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CI_CtrTimebase_DigSync_Enable 0x2275 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CI_ThreshVoltage 0x30B7 // Specifies the digital threshold value in Volts for high and low input transitions. Some devices do not support this for differential channels. -#define -DAQmx_CI_Count 0x0148 // Indicates the current value of the count register. -#define -DAQmx_CI_OutputState 0x0149 // Indicates the current state of the out terminal of the counter. -#define -DAQmx_CI_TCReached 0x0150 // Indicates whether the counter rolled over. When you query this property, NI-DAQmx resets it to FALSE. -#define -DAQmx_CI_CtrTimebaseMasterTimebaseDiv 0x18B3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to measure slower signals without causing the count register to roll over. -#define -DAQmx_CI_SampClkOverrunBehavior 0x3093 // Specifies the counter behavior when data is read but a new value was not detected during a sample clock. -#define -DAQmx_CI_SampClkOverrunSentinelVal 0x3094 // Specifies the sentinel value returned when the No New Sample Behavior is set to Sentinel Value. -#define -DAQmx_CI_DataXferMech 0x0200 // Specifies the data transfer mode for the channel. -#define -DAQmx_CI_DataXferReqCond 0x2EFB // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. -#define -DAQmx_CI_UsbXferReqSize 0x2A92 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_CI_UsbXferReqCount 0x3004 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_CI_MemMapEnable 0x2ED2 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_CI_NumPossiblyInvalidSamps 0x193C // Indicates the number of samples that the device might have overwritten before it could transfer them to the buffer. -#define -DAQmx_CI_DupCountPrevent 0x21AC // Specifies whether to enable duplicate count prevention for the channel. Duplicate count prevention is enabled by default. Setting Prescaler disables duplicate count prevention unless you explicitly enable it. -#define -DAQmx_CI_Prescaler 0x2239 // Specifies the divisor to apply to the signal you connect to the counter source terminal. Scaled data that you read takes this setting into account. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. Setting this value disables duplicate count prevention unless you explicitly set Duplicate ... -#define -DAQmx_CI_MaxMeasPeriod 0x3095 // Specifies the maximum period (in seconds) in which the device will recognize signals. For frequency measurements, a signal with a higher period than the one set in this property will return 0 Hz. For duty cycle, the device will return 0 or 1 depending on the state of the line during the max defined period of time. Period measurements will return NaN. Pulse width measurement will return zero. -#define -DAQmx_CO_OutputType 0x18B5 // Indicates how to define pulses generated on the channel. -#define -DAQmx_CO_Pulse_IdleState 0x1170 // Specifies the resting state of the output terminal. -#define -DAQmx_CO_Pulse_Term 0x18E1 // Specifies on which terminal to generate pulses. -#define -DAQmx_CO_Pulse_Time_Units 0x18D6 // Specifies the units in which to define high and low pulse time. -#define -DAQmx_CO_Pulse_HighTime 0x18BA // Specifies the amount of time that the pulse is at a high voltage. This value is in the units you specify with Units or when you configure the channel. -#define -DAQmx_CO_Pulse_LowTime 0x18BB // Specifies the amount of time that the pulse is at a low voltage. This value is in the units you specify with Units or when you configure the channel. -#define -DAQmx_CO_Pulse_Time_InitialDelay 0x18BC // Specifies in seconds the amount of time to wait before generating the first pulse. -#define -DAQmx_CO_Pulse_DutyCyc 0x1176 // Specifies the duty cycle of the pulses. The duty cycle of a signal is the width of the pulse divided by period. NI-DAQmx uses this ratio and the pulse frequency to determine the width of the pulses and the delay between pulses. -#define -DAQmx_CO_Pulse_Freq_Units 0x18D5 // Specifies the units in which to define pulse frequency. -#define -DAQmx_CO_Pulse_Freq 0x1178 // Specifies the frequency of the pulses to generate. This value is in the units you specify with Units or when you configure the channel. -#define -DAQmx_CO_Pulse_Freq_InitialDelay 0x0299 // Specifies in seconds the amount of time to wait before generating the first pulse. -#define -DAQmx_CO_Pulse_HighTicks 0x1169 // Specifies the number of ticks the pulse is high. +#define DAQmx_CI_Pulse_Time_DigFltr_TimebaseSrc 0x2F10 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_CI_Pulse_Time_DigFltr_TimebaseRate 0x2F11 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Pulse_Time_DigSync_Enable 0x2F12 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Pulse_Time_StartEdge 0x2F0D // Specifies on which edge of the input signal to begin pulse measurement. +#define DAQmx_CI_Pulse_Ticks_Term 0x2F14 // Specifies the input terminal of the signal to measure. +#define DAQmx_CI_Pulse_Ticks_TermCfg 0x30B5 // Specifies the input terminal configuration. +#define DAQmx_CI_Pulse_Ticks_LogicLvlBehavior 0x30B6 // Specifies the logic level behavior on the count reset line. +#define DAQmx_CI_Pulse_Ticks_DigFltr_Enable 0x2F16 // Specifies whether to apply a digital filter to the signal to measure. +#define DAQmx_CI_Pulse_Ticks_DigFltr_MinPulseWidth 0x2F17 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseSrc 0x2F18 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_CI_Pulse_Ticks_DigFltr_TimebaseRate 0x2F19 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_Pulse_Ticks_DigSync_Enable 0x2F1A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_Pulse_Ticks_StartEdge 0x2F15 // Specifies on which edge of the input signal to begin pulse measurement. +#define DAQmx_CI_CtrTimebaseSrc 0x0143 // Specifies the terminal of the timebase to use for the counter. +#define DAQmx_CI_CtrTimebaseRate 0x18B2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to take measurements in terms of time or frequency rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can take measurements only in terms of ticks of the timebase. +#define DAQmx_CI_CtrTimebaseActiveEdge 0x0142 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. +#define DAQmx_CI_CtrTimebase_DigFltr_Enable 0x2271 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CI_CtrTimebase_DigFltr_MinPulseWidth 0x2272 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CI_CtrTimebase_DigFltr_TimebaseSrc 0x2273 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CI_CtrTimebase_DigFltr_TimebaseRate 0x2274 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CI_CtrTimebase_DigSync_Enable 0x2275 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CI_ThreshVoltage 0x30B7 // Specifies the digital threshold value in Volts for high and low input transitions. Some devices do not support this for differential channels. +#define DAQmx_CI_Count 0x0148 // Indicates the current value of the count register. +#define DAQmx_CI_OutputState 0x0149 // Indicates the current state of the out terminal of the counter. +#define DAQmx_CI_TCReached 0x0150 // Indicates whether the counter rolled over. When you query this property, NI-DAQmx resets it to FALSE. +#define DAQmx_CI_CtrTimebaseMasterTimebaseDiv 0x18B3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to measure slower signals without causing the count register to roll over. +#define DAQmx_CI_SampClkOverrunBehavior 0x3093 // Specifies the counter behavior when data is read but a new value was not detected during a sample clock. +#define DAQmx_CI_SampClkOverrunSentinelVal 0x3094 // Specifies the sentinel value returned when the No New Sample Behavior is set to Sentinel Value. +#define DAQmx_CI_DataXferMech 0x0200 // Specifies the data transfer mode for the channel. +#define DAQmx_CI_DataXferReqCond 0x2EFB // Specifies under what condition to transfer data from the onboard memory of the device to the buffer. +#define DAQmx_CI_UsbXferReqSize 0x2A92 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_CI_UsbXferReqCount 0x3004 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_CI_MemMapEnable 0x2ED2 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_CI_NumPossiblyInvalidSamps 0x193C // Indicates the number of samples that the device might have overwritten before it could transfer them to the buffer. +#define DAQmx_CI_DupCountPrevent 0x21AC // Specifies whether to enable duplicate count prevention for the channel. Duplicate count prevention is enabled by default. Setting Prescaler disables duplicate count prevention unless you explicitly enable it. +#define DAQmx_CI_Prescaler 0x2239 // Specifies the divisor to apply to the signal you connect to the counter source terminal. Scaled data that you read takes this setting into account. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. Setting this value disables duplicate count prevention unless you explicitly set Duplicate ... +#define DAQmx_CI_MaxMeasPeriod 0x3095 // Specifies the maximum period (in seconds) in which the device will recognize signals. For frequency measurements, a signal with a higher period than the one set in this property will return 0 Hz. For duty cycle, the device will return 0 or 1 depending on the state of the line during the max defined period of time. Period measurements will return NaN. Pulse width measurement will return zero. +#define DAQmx_CO_OutputType 0x18B5 // Indicates how to define pulses generated on the channel. +#define DAQmx_CO_Pulse_IdleState 0x1170 // Specifies the resting state of the output terminal. +#define DAQmx_CO_Pulse_Term 0x18E1 // Specifies on which terminal to generate pulses. +#define DAQmx_CO_Pulse_Time_Units 0x18D6 // Specifies the units in which to define high and low pulse time. +#define DAQmx_CO_Pulse_HighTime 0x18BA // Specifies the amount of time that the pulse is at a high voltage. This value is in the units you specify with Units or when you configure the channel. +#define DAQmx_CO_Pulse_LowTime 0x18BB // Specifies the amount of time that the pulse is at a low voltage. This value is in the units you specify with Units or when you configure the channel. +#define DAQmx_CO_Pulse_Time_InitialDelay 0x18BC // Specifies in seconds the amount of time to wait before generating the first pulse. +#define DAQmx_CO_Pulse_DutyCyc 0x1176 // Specifies the duty cycle of the pulses. The duty cycle of a signal is the width of the pulse divided by period. NI-DAQmx uses this ratio and the pulse frequency to determine the width of the pulses and the delay between pulses. +#define DAQmx_CO_Pulse_Freq_Units 0x18D5 // Specifies the units in which to define pulse frequency. +#define DAQmx_CO_Pulse_Freq 0x1178 // Specifies the frequency of the pulses to generate. This value is in the units you specify with Units or when you configure the channel. +#define DAQmx_CO_Pulse_Freq_InitialDelay 0x0299 // Specifies in seconds the amount of time to wait before generating the first pulse. +#define DAQmx_CO_Pulse_HighTicks 0x1169 // Specifies the number of ticks the pulse is high. #define DAQmx_CO_Pulse_LowTicks 0x1171 // Specifies the number of ticks the pulse is low. -#define -DAQmx_CO_Pulse_Ticks_InitialDelay 0x0298 // Specifies the number of ticks to wait before generating the first pulse. -#define -DAQmx_CO_CtrTimebaseSrc 0x0339 // Specifies the terminal of the timebase to use for the counter. Typically, NI-DAQmx uses one of the internal counter timebases when generating pulses. Use this property to specify an external timebase and produce custom pulse widths that are not possible using the internal timebases. -#define -DAQmx_CO_CtrTimebaseRate 0x18C2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to define output pulses in seconds rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can define output pulses only in ticks of the timebase. -#define -DAQmx_CO_CtrTimebaseActiveEdge 0x0341 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. -#define -DAQmx_CO_CtrTimebase_DigFltr_Enable 0x2276 // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_CO_CtrTimebase_DigFltr_MinPulseWidth 0x2277 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_CO_CtrTimebase_DigFltr_TimebaseSrc 0x2278 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_CO_CtrTimebase_DigFltr_TimebaseRate 0x2279 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_CO_CtrTimebase_DigSync_Enable 0x227A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_CO_Count 0x0293 // Indicates the current value of the count register. -#define -DAQmx_CO_OutputState 0x0294 // Indicates the current state of the output terminal of the counter. -#define -DAQmx_CO_AutoIncrCnt 0x0295 // Specifies a number of timebase ticks by which to increase the time spent in the idle state for each successive pulse. -#define -DAQmx_CO_CtrTimebaseMasterTimebaseDiv 0x18C3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to generate slower signals without causing the count register to roll over. -#define -DAQmx_CO_PulseDone 0x190E // Indicates if the task completed pulse generation. Use this value for retriggerable pulse generation when you need to determine if the device generated the current pulse. For retriggerable tasks, when you query this property, NI-DAQmx resets it to FALSE. -#define -DAQmx_CO_EnableInitialDelayOnRetrigger 0x2EC9 // Specifies whether to apply the initial delay to retriggered pulse trains. -#define -DAQmx_CO_ConstrainedGenMode 0x29F2 // Specifies constraints to apply when the counter generates pulses. Constraining the counter reduces the device resources required for counter operation. Constraining the counter can also allow additional analog or counter tasks on the device to run concurrently. For continuous counter tasks, NI-DAQmx consumes no device resources when the counter is constrained. For finite counter tasks, resource use increases with ... -#define -DAQmx_CO_UseOnlyOnBrdMem 0x2ECB // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. -#define -DAQmx_CO_DataXferMech 0x2ECC // Specifies the data transfer mode for the device. For buffered operations, use DMA or USB Bulk. For non-buffered operations, use Polled. -#define -DAQmx_CO_DataXferReqCond 0x2ECD // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. -#define -DAQmx_CO_UsbXferReqSize 0x2A93 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_CO_UsbXferReqCount 0x3005 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. -#define -DAQmx_CO_MemMapEnable 0x2ED3 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... -#define -DAQmx_CO_Prescaler 0x226D // Specifies the divisor to apply to the signal you connect to the counter source terminal. Pulse generations defined by frequency or time take this setting into account, but pulse generations defined by ticks do not. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. -#define -DAQmx_CO_RdyForNewVal 0x22FF // Indicates whether the counter is ready for new continuous pulse train values. -#define -DAQmx_ChanType 0x187F // Indicates the type of the virtual channel. -#define -DAQmx_PhysicalChanName 0x18F5 // Specifies the name of the physical channel upon which this virtual channel is based. -#define -DAQmx_ChanDescr 0x1926 // Specifies a user-defined description for the channel. -#define -DAQmx_ChanIsGlobal 0x2304 // Indicates whether the channel is a global channel. -#define -DAQmx_Chan_SyncUnlockBehavior 0x313C // Specifies the action to take if the target loses its synchronization to the grand master. +#define DAQmx_CO_Pulse_Ticks_InitialDelay 0x0298 // Specifies the number of ticks to wait before generating the first pulse. +#define DAQmx_CO_CtrTimebaseSrc 0x0339 // Specifies the terminal of the timebase to use for the counter. Typically, NI-DAQmx uses one of the internal counter timebases when generating pulses. Use this property to specify an external timebase and produce custom pulse widths that are not possible using the internal timebases. +#define DAQmx_CO_CtrTimebaseRate 0x18C2 // Specifies in Hertz the frequency of the counter timebase. Specifying the sample_rate of a counter timebase allows you to define output pulses in seconds rather than in ticks of the timebase. If you use an external timebase and do not specify the sample_rate, you can define output pulses only in ticks of the timebase. +#define DAQmx_CO_CtrTimebaseActiveEdge 0x0341 // Specifies whether a timebase cycle is from rising edge to rising edge or from falling edge to falling edge. +#define DAQmx_CO_CtrTimebase_DigFltr_Enable 0x2276 // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_CO_CtrTimebase_DigFltr_MinPulseWidth 0x2277 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_CO_CtrTimebase_DigFltr_TimebaseSrc 0x2278 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_CO_CtrTimebase_DigFltr_TimebaseRate 0x2279 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_CO_CtrTimebase_DigSync_Enable 0x227A // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_CO_Count 0x0293 // Indicates the current value of the count register. +#define DAQmx_CO_OutputState 0x0294 // Indicates the current state of the output terminal of the counter. +#define DAQmx_CO_AutoIncrCnt 0x0295 // Specifies a number of timebase ticks by which to increase the time spent in the idle state for each successive pulse. +#define DAQmx_CO_CtrTimebaseMasterTimebaseDiv 0x18C3 // Specifies the divisor for an external counter timebase. You can divide the counter timebase in order to generate slower signals without causing the count register to roll over. +#define DAQmx_CO_PulseDone 0x190E // Indicates if the task completed pulse generation. Use this value for retriggerable pulse generation when you need to determine if the device generated the current pulse. For retriggerable tasks, when you query this property, NI-DAQmx resets it to FALSE. +#define DAQmx_CO_EnableInitialDelayOnRetrigger 0x2EC9 // Specifies whether to apply the initial delay to retriggered pulse trains. +#define DAQmx_CO_ConstrainedGenMode 0x29F2 // Specifies constraints to apply when the counter generates pulses. Constraining the counter reduces the device resources required for counter operation. Constraining the counter can also allow additional analog or counter tasks on the device to run concurrently. For continuous counter tasks, NI-DAQmx consumes no device resources when the counter is constrained. For finite counter tasks, resource use increases with ... +#define DAQmx_CO_UseOnlyOnBrdMem 0x2ECB // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory directly after you start the task. Onboard memory includes data FIFOs. +#define DAQmx_CO_DataXferMech 0x2ECC // Specifies the data transfer mode for the device. For buffered operations, use DMA or USB Bulk. For non-buffered operations, use Polled. +#define DAQmx_CO_DataXferReqCond 0x2ECD // Specifies under what condition to transfer data from the buffer to the onboard memory of the device. +#define DAQmx_CO_UsbXferReqSize 0x2A93 // Specifies the maximum size of a USB transfer request in bytes. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_CO_UsbXferReqCount 0x3005 // Specifies the maximum number of simultaneous USB transfers used to stream data. Modify this value to affect performance under different combinations of operating system and device. +#define DAQmx_CO_MemMapEnable 0x2ED3 // Specifies for NI-DAQmx to map hardware registers to the memory space of the application, if possible. Normally, NI-DAQmx maps hardware registers to memory accessible only to the kernel. Mapping the registers to the memory space of the application increases performance. However, if the application accesses the memory space mapped to the registers, it can adversely affect the operation of the device and possibly res... +#define DAQmx_CO_Prescaler 0x226D // Specifies the divisor to apply to the signal you connect to the counter source terminal. Pulse generations defined by frequency or time take this setting into account, but pulse generations defined by ticks do not. You should use a prescaler only when you connect an external signal to the counter source terminal and when that signal has a higher frequency than the fastest onboard timebase. +#define DAQmx_CO_RdyForNewVal 0x22FF // Indicates whether the counter is ready for new continuous pulse train values. +#define DAQmx_ChanType 0x187F // Indicates the type of the virtual channel. +#define DAQmx_PhysicalChanName 0x18F5 // Specifies the name of the physical channel upon which this virtual channel is based. +#define DAQmx_ChanDescr 0x1926 // Specifies a user-defined description for the channel. +#define DAQmx_ChanIsGlobal 0x2304 // Indicates whether the channel is a global channel. +#define DAQmx_Chan_SyncUnlockBehavior 0x313C // Specifies the action to take if the target loses its synchronization to the grand master. //********** Device Attributes ********** -#define -DAQmx_Dev_IsSimulated 0x22CA // Indicates if the device is a simulated device. -#define -DAQmx_Dev_ProductCategory 0x29A9 // Indicates the product category of the device. This category corresponds to the category displayed in MAX when creating NI-DAQmx simulated devices. -#define -DAQmx_Dev_ProductType 0x0631 // Indicates the product name of the device. -#define -DAQmx_Dev_ProductNum 0x231D // Indicates the unique hardware identification number for the device. -#define -DAQmx_Dev_SerialNum 0x0632 // Indicates the serial number of the device. This value is zero if the device does not have a serial number. -#define -DAQmx_Dev_Accessory_ProductTypes 0x2F6D // Indicates the model names of accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains an empty string for each connector with no accessory connected. -#define -DAQmx_Dev_Accessory_ProductNums 0x2F6E // Indicates the unique hardware identification number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. -#define -DAQmx_Dev_Accessory_SerialNums 0x2F6F // Indicates the serial number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. -#define -DAQmx_Carrier_SerialNum 0x2A8A // Indicates the serial number of the device carrier. This value is zero if the carrier does not have a serial number. -#define -DAQmx_FieldDAQ_DevName 0x3171 // Indicates the parent device which this bank is located in. -#define -DAQmx_FieldDAQ_BankDevNames 0x3178 // Indicates an array containing the names of the banks in the FieldDAQ. -#define -DAQmx_Dev_Chassis_ModuleDevNames 0x29B6 // Indicates an array containing the names of the modules in the chassis. -#define -DAQmx_Dev_AnlgTrigSupported 0x2984 // Indicates if the device supports analog triggering. -#define -DAQmx_Dev_DigTrigSupported 0x2985 // Indicates if the device supports digital triggering. -#define -DAQmx_Dev_TimeTrigSupported 0x301F // Indicates whether the device supports time triggering. -#define -DAQmx_Dev_AI_PhysicalChans 0x231E // Indicates an array containing the names of the analog input physical channels available on the device. -#define -DAQmx_Dev_AI_SupportedMeasTypes 0x2FD2 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. -#define -DAQmx_Dev_AI_MaxSingleChanRate 0x298C // Indicates the maximum sample_rate for an analog input task if the task contains only a single channel from this device. -#define -DAQmx_Dev_AI_MaxMultiChanRate 0x298D // Indicates the maximum sampling sample_rate for an analog input task from this device. To find the maximum sample_rate for the task, take the minimum of Maximum Single Channel Rate or the indicated sampling sample_rate of this device divided by the number of channels to acquire data from (including cold-junction compensation and autozero channels). -#define -DAQmx_Dev_AI_MinRate 0x298E // Indicates the minimum sample_rate for an analog input task on this device. NI-DAQmx returns a warning or error if you attempt to sample at a slower sample_rate. +#define DAQmx_Dev_IsSimulated 0x22CA // Indicates if the device is a simulated device. +#define DAQmx_Dev_ProductCategory 0x29A9 // Indicates the product category of the device. This category corresponds to the category displayed in MAX when creating NI-DAQmx simulated devices. +#define DAQmx_Dev_ProductType 0x0631 // Indicates the product name of the device. +#define DAQmx_Dev_ProductNum 0x231D // Indicates the unique hardware identification number for the device. +#define DAQmx_Dev_SerialNum 0x0632 // Indicates the serial number of the device. This value is zero if the device does not have a serial number. +#define DAQmx_Dev_Accessory_ProductTypes 0x2F6D // Indicates the model names of accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains an empty string for each connector with no accessory connected. +#define DAQmx_Dev_Accessory_ProductNums 0x2F6E // Indicates the unique hardware identification number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. +#define DAQmx_Dev_Accessory_SerialNums 0x2F6F // Indicates the serial number for accessories connected to the device. Each array element corresponds to a connector. For example, index 0 corresponds to connector 0. The array contains 0 for each connector with no accessory connected. +#define DAQmx_Carrier_SerialNum 0x2A8A // Indicates the serial number of the device carrier. This value is zero if the carrier does not have a serial number. +#define DAQmx_FieldDAQ_DevName 0x3171 // Indicates the parent device which this bank is located in. +#define DAQmx_FieldDAQ_BankDevNames 0x3178 // Indicates an array containing the names of the banks in the FieldDAQ. +#define DAQmx_Dev_Chassis_ModuleDevNames 0x29B6 // Indicates an array containing the names of the modules in the chassis. +#define DAQmx_Dev_AnlgTrigSupported 0x2984 // Indicates if the device supports analog triggering. +#define DAQmx_Dev_DigTrigSupported 0x2985 // Indicates if the device supports digital triggering. +#define DAQmx_Dev_TimeTrigSupported 0x301F // Indicates whether the device supports time triggering. +#define DAQmx_Dev_AI_PhysicalChans 0x231E // Indicates an array containing the names of the analog input physical channels available on the device. +#define DAQmx_Dev_AI_SupportedMeasTypes 0x2FD2 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. +#define DAQmx_Dev_AI_MaxSingleChanRate 0x298C // Indicates the maximum sample_rate for an analog input task if the task contains only a single channel from this device. +#define DAQmx_Dev_AI_MaxMultiChanRate 0x298D // Indicates the maximum sampling sample_rate for an analog input task from this device. To find the maximum sample_rate for the task, take the minimum of Maximum Single Channel Rate or the indicated sampling sample_rate of this device divided by the number of channels to acquire data from (including cold-junction compensation and autozero channels). +#define DAQmx_Dev_AI_MinRate 0x298E // Indicates the minimum sample_rate for an analog input task on this device. NI-DAQmx returns a warning or error if you attempt to sample at a slower sample_rate. #define DAQmx_Dev_AI_SimultaneousSamplingSupported 0x298F // Indicates if the device supports simultaneous sampling. -#define -DAQmx_Dev_AI_NumSampTimingEngines 0x3163 // Indicates the number of Analog Input sample timing engines supported by the device. -#define -DAQmx_Dev_AI_SampModes 0x2FDC // Indicates sample modes supported by devices that support sample clocked analog input. -#define -DAQmx_Dev_AI_NumSyncPulseSrcs 0x3164 // Indicates the number of Analog Input synchronization pulse sources supported by the device. -#define -DAQmx_Dev_AI_TrigUsage 0x2986 // Indicates the triggers supported by this device for an analog input task. -#define -DAQmx_Dev_AI_VoltageRngs 0x2990 // Indicates pairs of input voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define -DAQmx_Dev_AI_VoltageIntExcitDiscreteVals 0x29C9 // Indicates the set of discrete internal voltage excitation values supported by this device. If the device supports ranges of internal excitation values, use Range Values to determine supported excitation values. -#define -DAQmx_Dev_AI_VoltageIntExcitRangeVals 0x29CA // Indicates pairs of internal voltage excitation ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete internal excitation values, use Discrete Values to determine the supported excitation values. -#define -DAQmx_Dev_AI_ChargeRngs 0x3111 // Indicates in coulombs pairs of input charge ranges for the device. Each pair consists of the low value followed by the high value. -#define -DAQmx_Dev_AI_CurrentRngs 0x2991 // Indicates the pairs of current input ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define -DAQmx_Dev_AI_CurrentIntExcitDiscreteVals 0x29CB // Indicates the set of discrete internal current excitation values supported by this device. -#define -DAQmx_Dev_AI_BridgeRngs 0x2FD0 // Indicates pairs of input voltage ratio ranges, in volts per volt, supported by devices that acquire using ratiometric measurements. Each pair consists of the low value followed by the high value. -#define -DAQmx_Dev_AI_ResistanceRngs 0x2A15 // Indicates pairs of input resistance ranges, in ohms, supported by devices that have the necessary signal conditioning to measure resistances. Each pair consists of the low value followed by the high value. -#define -DAQmx_Dev_AI_FreqRngs 0x2992 // Indicates the pairs of frequency input ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define -DAQmx_Dev_AI_Gains 0x2993 // Indicates the input gain settings supported by this device. -#define -DAQmx_Dev_AI_Couplings 0x2994 // Indicates the coupling types supported by this device. -#define -DAQmx_Dev_AI_LowpassCutoffFreqDiscreteVals 0x2995 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use Range Values to determine supported frequencies. -#define -DAQmx_Dev_AI_LowpassCutoffFreqRangeVals 0x29CF // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use Discrete Values to determine the supported frequencies. -#define -DAQmx_AI_DigFltr_Types 0x3107 // Indicates the AI digital filter types supported by the device. -#define -DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqDiscreteVals 0x30C8 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.RangeVals to determine supported frequencies. -#define -DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqRangeVals 0x30C9 // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.DiscreteVals to determine the supported frequencies. -#define -DAQmx_Dev_AO_PhysicalChans 0x231F // Indicates an array containing the names of the analog output physical channels available on the device. -#define -DAQmx_Dev_AO_SupportedOutputTypes 0x2FD3 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. -#define -DAQmx_Dev_AO_MaxRate 0x2997 // Indicates the maximum analog output sample_rate of the device. -#define -DAQmx_Dev_AO_MinRate 0x2998 // Indicates the minimum analog output sample_rate of the device. -#define -DAQmx_Dev_AO_SampClkSupported 0x2996 // Indicates if the device supports the sample clock timing type for analog output tasks. -#define -DAQmx_Dev_AO_NumSampTimingEngines 0x3165 // Indicates the number of Analog Output sample timing engines supported by the device. -#define -DAQmx_Dev_AO_SampModes 0x2FDD // Indicates sample modes supported by devices that support sample clocked analog output. -#define -DAQmx_Dev_AO_NumSyncPulseSrcs 0x3166 // Indicates the number of Analog Output synchronization pulse sources supported by the device. -#define -DAQmx_Dev_AO_TrigUsage 0x2987 // Indicates the triggers supported by this device for analog output tasks. -#define -DAQmx_Dev_AO_VoltageRngs 0x299B // Indicates pairs of output voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define -DAQmx_Dev_AO_CurrentRngs 0x299C // Indicates pairs of output current ranges supported by this device. Each pair consists of the low value, followed by the high value. -#define -DAQmx_Dev_AO_Gains 0x299D // Indicates the output gain settings supported by this device. -#define -DAQmx_Dev_DI_Lines 0x2320 // Indicates an array containing the names of the digital input lines available on the device. -#define -DAQmx_Dev_DI_Ports 0x2321 // Indicates an array containing the names of the digital input ports available on the device. -#define -DAQmx_Dev_DI_MaxRate 0x2999 // Indicates the maximum digital input sample_rate of the device. -#define -DAQmx_Dev_DI_NumSampTimingEngines 0x3167 // Indicates the number of Digital Input sample timing engines supported by the device. -#define -DAQmx_Dev_DI_TrigUsage 0x2988 // Indicates the triggers supported by this device for digital input tasks. -#define -DAQmx_Dev_DO_Lines 0x2322 // Indicates an array containing the names of the digital output lines available on the device. -#define -DAQmx_Dev_DO_Ports 0x2323 // Indicates an array containing the names of the digital output ports available on the device. -#define -DAQmx_Dev_DO_MaxRate 0x299A // Indicates the maximum digital output sample_rate of the device. -#define -DAQmx_Dev_DO_NumSampTimingEngines 0x3168 // Indicates the number of Digital Output synchronization pulse sources supported by the device. -#define -DAQmx_Dev_DO_TrigUsage 0x2989 // Indicates the triggers supported by this device for digital output tasks. -#define -DAQmx_Dev_CI_PhysicalChans 0x2324 // Indicates an array containing the names of the counter input physical channels available on the device. -#define -DAQmx_Dev_CI_SupportedMeasTypes 0x2FD4 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. -#define -DAQmx_Dev_CI_TrigUsage 0x298A // Indicates the triggers supported by this device for counter input tasks. -#define -DAQmx_Dev_CI_SampClkSupported 0x299E // Indicates if the device supports the sample clock timing type for counter input tasks. -#define -DAQmx_Dev_CI_SampModes 0x2FDE // Indicates sample modes supported by devices that support sample clocked counter input. -#define -DAQmx_Dev_CI_MaxSize 0x299F // Indicates in bits the size of the counters on the device. -#define -DAQmx_Dev_CI_MaxTimebase 0x29A0 // Indicates in hertz the maximum counter timebase frequency. +#define DAQmx_Dev_AI_NumSampTimingEngines 0x3163 // Indicates the number of Analog Input sample timing engines supported by the device. +#define DAQmx_Dev_AI_SampModes 0x2FDC // Indicates sample modes supported by devices that support sample clocked analog input. +#define DAQmx_Dev_AI_NumSyncPulseSrcs 0x3164 // Indicates the number of Analog Input synchronization pulse sources supported by the device. +#define DAQmx_Dev_AI_TrigUsage 0x2986 // Indicates the triggers supported by this device for an analog input task. +#define DAQmx_Dev_AI_VoltageRngs 0x2990 // Indicates pairs of input voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define DAQmx_Dev_AI_VoltageIntExcitDiscreteVals 0x29C9 // Indicates the set of discrete internal voltage excitation values supported by this device. If the device supports ranges of internal excitation values, use Range Values to determine supported excitation values. +#define DAQmx_Dev_AI_VoltageIntExcitRangeVals 0x29CA // Indicates pairs of internal voltage excitation ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete internal excitation values, use Discrete Values to determine the supported excitation values. +#define DAQmx_Dev_AI_ChargeRngs 0x3111 // Indicates in coulombs pairs of input charge ranges for the device. Each pair consists of the low value followed by the high value. +#define DAQmx_Dev_AI_CurrentRngs 0x2991 // Indicates the pairs of current input ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define DAQmx_Dev_AI_CurrentIntExcitDiscreteVals 0x29CB // Indicates the set of discrete internal current excitation values supported by this device. +#define DAQmx_Dev_AI_BridgeRngs 0x2FD0 // Indicates pairs of input voltage ratio ranges, in volts per volt, supported by devices that acquire using ratiometric measurements. Each pair consists of the low value followed by the high value. +#define DAQmx_Dev_AI_ResistanceRngs 0x2A15 // Indicates pairs of input resistance ranges, in ohms, supported by devices that have the necessary signal conditioning to measure resistances. Each pair consists of the low value followed by the high value. +#define DAQmx_Dev_AI_FreqRngs 0x2992 // Indicates the pairs of frequency input ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define DAQmx_Dev_AI_Gains 0x2993 // Indicates the input gain settings supported by this device. +#define DAQmx_Dev_AI_Couplings 0x2994 // Indicates the coupling types supported by this device. +#define DAQmx_Dev_AI_LowpassCutoffFreqDiscreteVals 0x2995 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use Range Values to determine supported frequencies. +#define DAQmx_Dev_AI_LowpassCutoffFreqRangeVals 0x29CF // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use Discrete Values to determine the supported frequencies. +#define DAQmx_AI_DigFltr_Types 0x3107 // Indicates the AI digital filter types supported by the device. +#define DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqDiscreteVals 0x30C8 // Indicates the set of discrete lowpass cutoff frequencies supported by this device. If the device supports ranges of lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.RangeVals to determine supported frequencies. +#define DAQmx_Dev_AI_DigFltr_LowpassCutoffFreqRangeVals 0x30C9 // Indicates pairs of lowpass cutoff frequency ranges supported by this device. Each pair consists of the low value, followed by the high value. If the device supports a set of discrete lowpass cutoff frequencies, use AI.DigFltr.Lowpass.CutoffFreq.DiscreteVals to determine the supported frequencies. +#define DAQmx_Dev_AO_PhysicalChans 0x231F // Indicates an array containing the names of the analog output physical channels available on the device. +#define DAQmx_Dev_AO_SupportedOutputTypes 0x2FD3 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. +#define DAQmx_Dev_AO_MaxRate 0x2997 // Indicates the maximum analog output sample_rate of the device. +#define DAQmx_Dev_AO_MinRate 0x2998 // Indicates the minimum analog output sample_rate of the device. +#define DAQmx_Dev_AO_SampClkSupported 0x2996 // Indicates if the device supports the sample clock timing type for analog output tasks. +#define DAQmx_Dev_AO_NumSampTimingEngines 0x3165 // Indicates the number of Analog Output sample timing engines supported by the device. +#define DAQmx_Dev_AO_SampModes 0x2FDD // Indicates sample modes supported by devices that support sample clocked analog output. +#define DAQmx_Dev_AO_NumSyncPulseSrcs 0x3166 // Indicates the number of Analog Output synchronization pulse sources supported by the device. +#define DAQmx_Dev_AO_TrigUsage 0x2987 // Indicates the triggers supported by this device for analog output tasks. +#define DAQmx_Dev_AO_VoltageRngs 0x299B // Indicates pairs of output voltage ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define DAQmx_Dev_AO_CurrentRngs 0x299C // Indicates pairs of output current ranges supported by this device. Each pair consists of the low value, followed by the high value. +#define DAQmx_Dev_AO_Gains 0x299D // Indicates the output gain settings supported by this device. +#define DAQmx_Dev_DI_Lines 0x2320 // Indicates an array containing the names of the digital input lines available on the device. +#define DAQmx_Dev_DI_Ports 0x2321 // Indicates an array containing the names of the digital input ports available on the device. +#define DAQmx_Dev_DI_MaxRate 0x2999 // Indicates the maximum digital input sample_rate of the device. +#define DAQmx_Dev_DI_NumSampTimingEngines 0x3167 // Indicates the number of Digital Input sample timing engines supported by the device. +#define DAQmx_Dev_DI_TrigUsage 0x2988 // Indicates the triggers supported by this device for digital input tasks. +#define DAQmx_Dev_DO_Lines 0x2322 // Indicates an array containing the names of the digital output lines available on the device. +#define DAQmx_Dev_DO_Ports 0x2323 // Indicates an array containing the names of the digital output ports available on the device. +#define DAQmx_Dev_DO_MaxRate 0x299A // Indicates the maximum digital output sample_rate of the device. +#define DAQmx_Dev_DO_NumSampTimingEngines 0x3168 // Indicates the number of Digital Output synchronization pulse sources supported by the device. +#define DAQmx_Dev_DO_TrigUsage 0x2989 // Indicates the triggers supported by this device for digital output tasks. +#define DAQmx_Dev_CI_PhysicalChans 0x2324 // Indicates an array containing the names of the counter input physical channels available on the device. +#define DAQmx_Dev_CI_SupportedMeasTypes 0x2FD4 // Indicates the measurement types supported by the physical channels of the device. Refer to Measurement Types for information on specific channels. +#define DAQmx_Dev_CI_TrigUsage 0x298A // Indicates the triggers supported by this device for counter input tasks. +#define DAQmx_Dev_CI_SampClkSupported 0x299E // Indicates if the device supports the sample clock timing type for counter input tasks. +#define DAQmx_Dev_CI_SampModes 0x2FDE // Indicates sample modes supported by devices that support sample clocked counter input. +#define DAQmx_Dev_CI_MaxSize 0x299F // Indicates in bits the size of the counters on the device. +#define DAQmx_Dev_CI_MaxTimebase 0x29A0 // Indicates in hertz the maximum counter timebase frequency. #define DAQmx_Dev_CO_PhysicalChans 0x2325 // Indicates an array containing the names of the counter output physical channels available on the device. -#define -DAQmx_Dev_CO_SupportedOutputTypes 0x2FD5 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. -#define -DAQmx_Dev_CO_SampClkSupported 0x2F5B // Indicates if the device supports Sample Clock timing for counter output tasks. -#define -DAQmx_Dev_CO_SampModes 0x2FDF // Indicates sample modes supported by devices that support sample clocked counter output. -#define -DAQmx_Dev_CO_TrigUsage 0x298B // Indicates the triggers supported by this device for counter output tasks. -#define -DAQmx_Dev_CO_MaxSize 0x29A1 // Indicates in bits the size of the counters on the device. -#define -DAQmx_Dev_CO_MaxTimebase 0x29A2 // Indicates in hertz the maximum counter timebase frequency. -#define -DAQmx_Dev_TEDS_HWTEDSSupported 0x2FD6 // Indicates whether the device supports hardware TEDS. -#define -DAQmx_Dev_NumDMAChans 0x233C // Indicates the number of DMA channels on the device. -#define -DAQmx_Dev_BusType 0x2326 // Indicates the bus type of the device. -#define -DAQmx_Dev_PCI_BusNum 0x2327 // Indicates the PCI bus number of the device. -#define -DAQmx_Dev_PCI_DevNum 0x2328 // Indicates the PCI slot number of the device. -#define -DAQmx_Dev_PXI_ChassisNum 0x2329 // Indicates the PXI chassis number of the device, as identified in MAX. -#define -DAQmx_Dev_PXI_SlotNum 0x232A // Indicates the PXI slot number of the device. -#define -DAQmx_Dev_CompactDAQ_ChassisDevName 0x29B7 // Indicates the name of the CompactDAQ chassis that contains this module. -#define -DAQmx_Dev_CompactDAQ_SlotNum 0x29B8 // Indicates the slot number in which this module is located in the CompactDAQ chassis. -#define -DAQmx_Dev_CompactRIO_ChassisDevName 0x3161 // Indicates the name of the CompactRIO chassis that contains this module. -#define -DAQmx_Dev_CompactRIO_SlotNum 0x3162 // Indicates the slot number of the CompactRIO chassis where this module is located. -#define -DAQmx_Dev_TCPIP_Hostname 0x2A8B // Indicates the IPv4 hostname of the device. -#define -DAQmx_Dev_TCPIP_EthernetIP 0x2A8C // Indicates the IPv4 address of the Ethernet interface in dotted decimal format. This property returns 0.0.0.0 if the Ethernet interface cannot acquire an address. -#define -DAQmx_Dev_TCPIP_WirelessIP 0x2A8D // Indicates the IPv4 address of the 802.11 wireless interface in dotted decimal format. This property returns 0.0.0.0 if the wireless interface cannot acquire an address. -#define -DAQmx_Dev_Terminals 0x2A40 // Indicates a list of all terminals on the device. -#define -DAQmx_Dev_NumTimeTrigs 0x3141 // Indicates the number of time triggers available on the device. -#define -DAQmx_Dev_NumTimestampEngines 0x3142 // Indicates the number of timestamp engines available on the device. +#define DAQmx_Dev_CO_SupportedOutputTypes 0x2FD5 // Indicates the generation types supported by the physical channels of the device. Refer to Output Types for information on specific channels. +#define DAQmx_Dev_CO_SampClkSupported 0x2F5B // Indicates if the device supports Sample Clock timing for counter output tasks. +#define DAQmx_Dev_CO_SampModes 0x2FDF // Indicates sample modes supported by devices that support sample clocked counter output. +#define DAQmx_Dev_CO_TrigUsage 0x298B // Indicates the triggers supported by this device for counter output tasks. +#define DAQmx_Dev_CO_MaxSize 0x29A1 // Indicates in bits the size of the counters on the device. +#define DAQmx_Dev_CO_MaxTimebase 0x29A2 // Indicates in hertz the maximum counter timebase frequency. +#define DAQmx_Dev_TEDS_HWTEDSSupported 0x2FD6 // Indicates whether the device supports hardware TEDS. +#define DAQmx_Dev_NumDMAChans 0x233C // Indicates the number of DMA channels on the device. +#define DAQmx_Dev_BusType 0x2326 // Indicates the bus type of the device. +#define DAQmx_Dev_PCI_BusNum 0x2327 // Indicates the PCI bus number of the device. +#define DAQmx_Dev_PCI_DevNum 0x2328 // Indicates the PCI slot number of the device. +#define DAQmx_Dev_PXI_ChassisNum 0x2329 // Indicates the PXI chassis number of the device, as identified in MAX. +#define DAQmx_Dev_PXI_SlotNum 0x232A // Indicates the PXI slot number of the device. +#define DAQmx_Dev_CompactDAQ_ChassisDevName 0x29B7 // Indicates the name of the CompactDAQ chassis that contains this module. +#define DAQmx_Dev_CompactDAQ_SlotNum 0x29B8 // Indicates the slot number in which this module is located in the CompactDAQ chassis. +#define DAQmx_Dev_CompactRIO_ChassisDevName 0x3161 // Indicates the name of the CompactRIO chassis that contains this module. +#define DAQmx_Dev_CompactRIO_SlotNum 0x3162 // Indicates the slot number of the CompactRIO chassis where this module is located. +#define DAQmx_Dev_TCPIP_Hostname 0x2A8B // Indicates the IPv4 hostname of the device. +#define DAQmx_Dev_TCPIP_EthernetIP 0x2A8C // Indicates the IPv4 address of the Ethernet interface in dotted decimal format. This property returns 0.0.0.0 if the Ethernet interface cannot acquire an address. +#define DAQmx_Dev_TCPIP_WirelessIP 0x2A8D // Indicates the IPv4 address of the 802.11 wireless interface in dotted decimal format. This property returns 0.0.0.0 if the wireless interface cannot acquire an address. +#define DAQmx_Dev_Terminals 0x2A40 // Indicates a list of all terminals on the device. +#define DAQmx_Dev_NumTimeTrigs 0x3141 // Indicates the number of time triggers available on the device. +#define DAQmx_Dev_NumTimestampEngines 0x3142 // Indicates the number of timestamp engines available on the device. //********** Export Signal Attributes ********** -#define -DAQmx_Exported_AIConvClk_OutputTerm 0x1687 // Specifies the terminal to which to route the AI Convert Clock. -#define -DAQmx_Exported_AIConvClk_Pulse_Polarity 0x1688 // Indicates the polarity of the exported AI Convert Clock. The polarity is fixed and independent of the active edge of the source of the AI Convert Clock. -#define -DAQmx_Exported_10MHzRefClk_OutputTerm 0x226E // Specifies the terminal to which to route the 10MHz Clock. -#define -DAQmx_Exported_20MHzTimebase_OutputTerm 0x1657 // Specifies the terminal to which to route the 20MHz Timebase. -#define -DAQmx_Exported_SampClk_OutputBehavior 0x186B // Specifies whether the exported Sample Clock issues a pulse at the beginning of a sample or changes to a high state for the duration of the sample. -#define -DAQmx_Exported_SampClk_OutputTerm 0x1663 // Specifies the terminal to which to route the Sample Clock. -#define -DAQmx_Exported_SampClk_DelayOffset 0x21C4 // Specifies in seconds the amount of time to offset the exported Sample clock. Refer to timing diagrams for generation applications in the device documentation for more information about this value. -#define -DAQmx_Exported_SampClk_Pulse_Polarity 0x1664 // Specifies the polarity of the exported Sample Clock if Output Behavior is DAQmx_Val_Pulse. -#define -DAQmx_Exported_SampClkTimebase_OutputTerm 0x18F9 // Specifies the terminal to which to route the Sample Clock Timebase. -#define -DAQmx_Exported_DividedSampClkTimebase_OutputTerm 0x21A1 // Specifies the terminal to which to route the Divided Sample Clock Timebase. -#define -DAQmx_Exported_AdvTrig_OutputTerm 0x1645 // Specifies the terminal to which to route the Advance Trigger. -#define -DAQmx_Exported_AdvTrig_Pulse_Polarity 0x1646 // Indicates the polarity of the exported Advance Trigger. -#define -DAQmx_Exported_AdvTrig_Pulse_WidthUnits 0x1647 // Specifies the units of Width Value. -#define -DAQmx_Exported_AdvTrig_Pulse_Width 0x1648 // Specifies the width of an exported Advance Trigger pulse. Specify this value in the units you specify with Width Units. -#define -DAQmx_Exported_PauseTrig_OutputTerm 0x1615 // Specifies the terminal to which to route the Pause Trigger. -#define -DAQmx_Exported_PauseTrig_Lvl_ActiveLvl 0x1616 // Specifies the active level of the exported Pause Trigger. -#define -DAQmx_Exported_RefTrig_OutputTerm 0x0590 // Specifies the terminal to which to route the Reference Trigger. -#define -DAQmx_Exported_RefTrig_Pulse_Polarity 0x0591 // Specifies the polarity of the exported Reference Trigger. -#define -DAQmx_Exported_StartTrig_OutputTerm 0x0584 // Specifies the terminal to which to route the Start Trigger. -#define -DAQmx_Exported_StartTrig_Pulse_Polarity 0x0585 // Specifies the polarity of the exported Start Trigger. -#define -DAQmx_Exported_AdvCmpltEvent_OutputTerm 0x1651 // Specifies the terminal to which to route the Advance Complete Event. -#define -DAQmx_Exported_AdvCmpltEvent_Delay 0x1757 // Specifies the output signal delay in periods of the sample clock. -#define -DAQmx_Exported_AdvCmpltEvent_Pulse_Polarity 0x1652 // Specifies the polarity of the exported Advance Complete Event. -#define -DAQmx_Exported_AdvCmpltEvent_Pulse_Width 0x1654 // Specifies the width of the exported Advance Complete Event pulse. -#define -DAQmx_Exported_AIHoldCmpltEvent_OutputTerm 0x18ED // Specifies the terminal to which to route the AI Hold Complete Event. -#define -DAQmx_Exported_AIHoldCmpltEvent_PulsePolarity 0x18EE // Specifies the polarity of an exported AI Hold Complete Event pulse. +#define DAQmx_Exported_AIConvClk_OutputTerm 0x1687 // Specifies the terminal to which to route the AI Convert Clock. +#define DAQmx_Exported_AIConvClk_Pulse_Polarity 0x1688 // Indicates the polarity of the exported AI Convert Clock. The polarity is fixed and independent of the active edge of the source of the AI Convert Clock. +#define DAQmx_Exported_10MHzRefClk_OutputTerm 0x226E // Specifies the terminal to which to route the 10MHz Clock. +#define DAQmx_Exported_20MHzTimebase_OutputTerm 0x1657 // Specifies the terminal to which to route the 20MHz Timebase. +#define DAQmx_Exported_SampClk_OutputBehavior 0x186B // Specifies whether the exported Sample Clock issues a pulse at the beginning of a sample or changes to a high state for the duration of the sample. +#define DAQmx_Exported_SampClk_OutputTerm 0x1663 // Specifies the terminal to which to route the Sample Clock. +#define DAQmx_Exported_SampClk_DelayOffset 0x21C4 // Specifies in seconds the amount of time to offset the exported Sample clock. Refer to timing diagrams for generation applications in the device documentation for more information about this value. +#define DAQmx_Exported_SampClk_Pulse_Polarity 0x1664 // Specifies the polarity of the exported Sample Clock if Output Behavior is DAQmx_Val_Pulse. +#define DAQmx_Exported_SampClkTimebase_OutputTerm 0x18F9 // Specifies the terminal to which to route the Sample Clock Timebase. +#define DAQmx_Exported_DividedSampClkTimebase_OutputTerm 0x21A1 // Specifies the terminal to which to route the Divided Sample Clock Timebase. +#define DAQmx_Exported_AdvTrig_OutputTerm 0x1645 // Specifies the terminal to which to route the Advance Trigger. +#define DAQmx_Exported_AdvTrig_Pulse_Polarity 0x1646 // Indicates the polarity of the exported Advance Trigger. +#define DAQmx_Exported_AdvTrig_Pulse_WidthUnits 0x1647 // Specifies the units of Width Value. +#define DAQmx_Exported_AdvTrig_Pulse_Width 0x1648 // Specifies the width of an exported Advance Trigger pulse. Specify this value in the units you specify with Width Units. +#define DAQmx_Exported_PauseTrig_OutputTerm 0x1615 // Specifies the terminal to which to route the Pause Trigger. +#define DAQmx_Exported_PauseTrig_Lvl_ActiveLvl 0x1616 // Specifies the active level of the exported Pause Trigger. +#define DAQmx_Exported_RefTrig_OutputTerm 0x0590 // Specifies the terminal to which to route the Reference Trigger. +#define DAQmx_Exported_RefTrig_Pulse_Polarity 0x0591 // Specifies the polarity of the exported Reference Trigger. +#define DAQmx_Exported_StartTrig_OutputTerm 0x0584 // Specifies the terminal to which to route the Start Trigger. +#define DAQmx_Exported_StartTrig_Pulse_Polarity 0x0585 // Specifies the polarity of the exported Start Trigger. +#define DAQmx_Exported_AdvCmpltEvent_OutputTerm 0x1651 // Specifies the terminal to which to route the Advance Complete Event. +#define DAQmx_Exported_AdvCmpltEvent_Delay 0x1757 // Specifies the output signal delay in periods of the sample clock. +#define DAQmx_Exported_AdvCmpltEvent_Pulse_Polarity 0x1652 // Specifies the polarity of the exported Advance Complete Event. +#define DAQmx_Exported_AdvCmpltEvent_Pulse_Width 0x1654 // Specifies the width of the exported Advance Complete Event pulse. +#define DAQmx_Exported_AIHoldCmpltEvent_OutputTerm 0x18ED // Specifies the terminal to which to route the AI Hold Complete Event. +#define DAQmx_Exported_AIHoldCmpltEvent_PulsePolarity 0x18EE // Specifies the polarity of an exported AI Hold Complete Event pulse. #define DAQmx_Exported_ChangeDetectEvent_OutputTerm 0x2197 // Specifies the terminal to which to route the Change Detection Event. -#define -DAQmx_Exported_ChangeDetectEvent_Pulse_Polarity 0x2303 // Specifies the polarity of an exported Change Detection Event pulse. -#define -DAQmx_Exported_CtrOutEvent_OutputTerm 0x1717 // Specifies the terminal to which to route the Counter Output Event. -#define -DAQmx_Exported_CtrOutEvent_OutputBehavior 0x174F // Specifies whether the exported Counter Output Event pulses or changes from one state to the other when the counter reaches terminal count. -#define -DAQmx_Exported_CtrOutEvent_Pulse_Polarity 0x1718 // Specifies the polarity of the pulses at the output terminal of the counter when Output Behavior is DAQmx_Val_Pulse. NI-DAQmx ignores this property if Output Behavior is DAQmx_Val_Toggle. -#define -DAQmx_Exported_CtrOutEvent_Toggle_IdleState 0x186A // Specifies the initial state of the output terminal of the counter when Output Behavior is DAQmx_Val_Toggle. The terminal enters this state when NI-DAQmx commits the task. -#define -DAQmx_Exported_HshkEvent_OutputTerm 0x22BA // Specifies the terminal to which to route the Handshake Event. -#define -DAQmx_Exported_HshkEvent_OutputBehavior 0x22BB // Specifies the output behavior of the Handshake Event. -#define -DAQmx_Exported_HshkEvent_Delay 0x22BC // Specifies the number of seconds to delay after the Handshake Trigger deasserts before asserting the Handshake Event. -#define -DAQmx_Exported_HshkEvent_Interlocked_AssertedLvl 0x22BD // Specifies the asserted level of the exported Handshake Event if Output Behavior is DAQmx_Val_Interlocked. -#define -DAQmx_Exported_HshkEvent_Interlocked_AssertOnStart 0x22BE // Specifies to assert the Handshake Event when the task starts if Output Behavior is DAQmx_Val_Interlocked. -#define -DAQmx_Exported_HshkEvent_Interlocked_DeassertDelay 0x22BF // Specifies in seconds the amount of time to wait after the Handshake Trigger asserts before deasserting the Handshake Event if Output Behavior is DAQmx_Val_Interlocked. -#define -DAQmx_Exported_HshkEvent_Pulse_Polarity 0x22C0 // Specifies the polarity of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. -#define -DAQmx_Exported_HshkEvent_Pulse_Width 0x22C1 // Specifies in seconds the pulse width of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. -#define -DAQmx_Exported_RdyForXferEvent_OutputTerm 0x22B5 // Specifies the terminal to which to route the Ready for Transfer Event. -#define -DAQmx_Exported_RdyForXferEvent_Lvl_ActiveLvl 0x22B6 // Specifies the active level of the exported Ready for Transfer Event. -#define -DAQmx_Exported_RdyForXferEvent_DeassertCond 0x2963 // Specifies when the ready for transfer event deasserts. -#define -DAQmx_Exported_RdyForXferEvent_DeassertCondCustomThreshold 0x2964 // Specifies in samples the threshold below which the Ready for Transfer Event deasserts. This threshold is an amount of space available in the onboard memory of the device. Deassert Condition must be DAQmx_Val_OnbrdMemCustomThreshold to use a custom threshold. -#define -DAQmx_Exported_DataActiveEvent_OutputTerm 0x1633 // Specifies the terminal to which to export the Data Active Event. -#define -DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl 0x1634 // Specifies the polarity of the exported Data Active Event. -#define -DAQmx_Exported_RdyForStartEvent_OutputTerm 0x1609 // Specifies the terminal to which to route the Ready for Start Event. -#define -DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl 0x1751 // Specifies the polarity of the exported Ready for Start Event. -#define -DAQmx_Exported_SyncPulseEvent_OutputTerm 0x223C // Specifies the terminal to which to route the Synchronization Pulse Event. -#define -DAQmx_Exported_WatchdogExpiredEvent_OutputTerm 0x21AA // Specifies the terminal to which to route the Watchdog Timer Expired Event. +#define DAQmx_Exported_ChangeDetectEvent_Pulse_Polarity 0x2303 // Specifies the polarity of an exported Change Detection Event pulse. +#define DAQmx_Exported_CtrOutEvent_OutputTerm 0x1717 // Specifies the terminal to which to route the Counter Output Event. +#define DAQmx_Exported_CtrOutEvent_OutputBehavior 0x174F // Specifies whether the exported Counter Output Event pulses or changes from one state to the other when the counter reaches terminal count. +#define DAQmx_Exported_CtrOutEvent_Pulse_Polarity 0x1718 // Specifies the polarity of the pulses at the output terminal of the counter when Output Behavior is DAQmx_Val_Pulse. NI-DAQmx ignores this property if Output Behavior is DAQmx_Val_Toggle. +#define DAQmx_Exported_CtrOutEvent_Toggle_IdleState 0x186A // Specifies the initial state of the output terminal of the counter when Output Behavior is DAQmx_Val_Toggle. The terminal enters this state when NI-DAQmx commits the task. +#define DAQmx_Exported_HshkEvent_OutputTerm 0x22BA // Specifies the terminal to which to route the Handshake Event. +#define DAQmx_Exported_HshkEvent_OutputBehavior 0x22BB // Specifies the output behavior of the Handshake Event. +#define DAQmx_Exported_HshkEvent_Delay 0x22BC // Specifies the number of seconds to delay after the Handshake Trigger deasserts before asserting the Handshake Event. +#define DAQmx_Exported_HshkEvent_Interlocked_AssertedLvl 0x22BD // Specifies the asserted level of the exported Handshake Event if Output Behavior is DAQmx_Val_Interlocked. +#define DAQmx_Exported_HshkEvent_Interlocked_AssertOnStart 0x22BE // Specifies to assert the Handshake Event when the task starts if Output Behavior is DAQmx_Val_Interlocked. +#define DAQmx_Exported_HshkEvent_Interlocked_DeassertDelay 0x22BF // Specifies in seconds the amount of time to wait after the Handshake Trigger asserts before deasserting the Handshake Event if Output Behavior is DAQmx_Val_Interlocked. +#define DAQmx_Exported_HshkEvent_Pulse_Polarity 0x22C0 // Specifies the polarity of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. +#define DAQmx_Exported_HshkEvent_Pulse_Width 0x22C1 // Specifies in seconds the pulse width of the exported Handshake Event if Output Behavior is DAQmx_Val_Pulse. +#define DAQmx_Exported_RdyForXferEvent_OutputTerm 0x22B5 // Specifies the terminal to which to route the Ready for Transfer Event. +#define DAQmx_Exported_RdyForXferEvent_Lvl_ActiveLvl 0x22B6 // Specifies the active level of the exported Ready for Transfer Event. +#define DAQmx_Exported_RdyForXferEvent_DeassertCond 0x2963 // Specifies when the ready for transfer event deasserts. +#define DAQmx_Exported_RdyForXferEvent_DeassertCondCustomThreshold 0x2964 // Specifies in samples the threshold below which the Ready for Transfer Event deasserts. This threshold is an amount of space available in the onboard memory of the device. Deassert Condition must be DAQmx_Val_OnbrdMemCustomThreshold to use a custom threshold. +#define DAQmx_Exported_DataActiveEvent_OutputTerm 0x1633 // Specifies the terminal to which to export the Data Active Event. +#define DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl 0x1634 // Specifies the polarity of the exported Data Active Event. +#define DAQmx_Exported_RdyForStartEvent_OutputTerm 0x1609 // Specifies the terminal to which to route the Ready for Start Event. +#define DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl 0x1751 // Specifies the polarity of the exported Ready for Start Event. +#define DAQmx_Exported_SyncPulseEvent_OutputTerm 0x223C // Specifies the terminal to which to route the Synchronization Pulse Event. +#define DAQmx_Exported_WatchdogExpiredEvent_OutputTerm 0x21AA // Specifies the terminal to which to route the Watchdog Timer Expired Event. //********** Persisted Channel Attributes ********** -#define -DAQmx_PersistedChan_Author 0x22D0 // Indicates the author of the global channel. -#define -DAQmx_PersistedChan_AllowInteractiveEditing 0x22D1 // Indicates whether the global channel can be edited in the DAQ Assistant. -#define -DAQmx_PersistedChan_AllowInteractiveDeletion 0x22D2 // Indicates whether the global channel can be deleted through MAX. +#define DAQmx_PersistedChan_Author 0x22D0 // Indicates the author of the global channel. +#define DAQmx_PersistedChan_AllowInteractiveEditing 0x22D1 // Indicates whether the global channel can be edited in the DAQ Assistant. +#define DAQmx_PersistedChan_AllowInteractiveDeletion 0x22D2 // Indicates whether the global channel can be deleted through MAX. //********** Persisted Scale Attributes ********** -#define -DAQmx_PersistedScale_Author 0x22D4 // Indicates the author of the custom scale. -#define -DAQmx_PersistedScale_AllowInteractiveEditing 0x22D5 // Indicates whether the custom scale can be edited in the DAQ Assistant. -#define -DAQmx_PersistedScale_AllowInteractiveDeletion 0x22D6 // Indicates whether the custom scale can be deleted through MAX. +#define DAQmx_PersistedScale_Author 0x22D4 // Indicates the author of the custom scale. +#define DAQmx_PersistedScale_AllowInteractiveEditing 0x22D5 // Indicates whether the custom scale can be edited in the DAQ Assistant. +#define DAQmx_PersistedScale_AllowInteractiveDeletion 0x22D6 // Indicates whether the custom scale can be deleted through MAX. //********** Persisted Task Attributes ********** -#define -DAQmx_PersistedTask_Author 0x22CC // Indicates the author of the task. -#define -DAQmx_PersistedTask_AllowInteractiveEditing 0x22CD // Indicates whether the task can be edited in the DAQ Assistant. -#define -DAQmx_PersistedTask_AllowInteractiveDeletion 0x22CE // Indicates whether the task can be deleted through MAX. +#define DAQmx_PersistedTask_Author 0x22CC // Indicates the author of the task. +#define DAQmx_PersistedTask_AllowInteractiveEditing 0x22CD // Indicates whether the task can be edited in the DAQ Assistant. +#define DAQmx_PersistedTask_AllowInteractiveDeletion 0x22CE // Indicates whether the task can be deleted through MAX. //********** Physical Channel Attributes ********** -#define -DAQmx_PhysicalChan_AI_SupportedMeasTypes 0x2FD7 // Indicates the measurement types supported by the channel. -#define -DAQmx_PhysicalChan_AI_TermCfgs 0x2342 // Indicates the list of terminal configurations supported by the channel. -#define -DAQmx_PhysicalChan_AI_InputSrcs 0x2FD8 // Indicates the list of input sources supported by the channel. Channels may support using the signal from the I/O connector or one of several calibration signals. -#define -DAQmx_PhysicalChan_AI_SensorPower_Types 0x3179 // Indicates the types of power supplied to the sensor supported by this channel. -#define -DAQmx_PhysicalChan_AI_SensorPower_VoltageRangeVals 0x317A // Indicates pairs of sensor power voltage ranges supported by this channel. Each pair consists of the low value followed by the high value. -#define -DAQmx_PhysicalChan_AI_PowerControl_Voltage 0x316C // Specifies the voltage level for the sensor's power supply. -#define -DAQmx_PhysicalChan_AI_PowerControl_Enable 0x316D // Specifies whether to turn on the sensor's power supply. -#define -DAQmx_PhysicalChan_AI_PowerControl_Type 0x316E // Specifies the type of power supplied to the sensor. -#define -DAQmx_PhysicalChan_AI_SensorPower_OpenChan 0x317C // Indicates whether there is an open channel or undercurrent condition on the channel. -#define -DAQmx_PhysicalChan_AI_SensorPower_Overcurrent 0x317D // Indicates whether there is an overcurrent condition on the channel. -#define -DAQmx_PhysicalChan_AO_SupportedOutputTypes 0x2FD9 // Indicates the output types supported by the channel. -#define -DAQmx_PhysicalChan_AO_SupportedPowerUpOutputTypes 0x304E // Indicates the power up output types supported by the channel. -#define -DAQmx_PhysicalChan_AO_TermCfgs 0x29A3 // Indicates the list of terminal configurations supported by the channel. -#define -DAQmx_PhysicalChan_AO_ManualControlEnable 0x2A1E // Specifies if you can control the physical channel externally via a manual control located on the device. You cannot simultaneously control a channel manually and with NI-DAQmx. -#define -DAQmx_PhysicalChan_AO_ManualControl_ShortDetected 0x2EC3 // Indicates whether the physical channel is currently disabled due to a short detected on the channel. -#define -DAQmx_PhysicalChan_AO_ManualControlAmplitude 0x2A1F // Indicates the current value of the front panel amplitude control for the physical channel in volts. -#define -DAQmx_PhysicalChan_AO_ManualControlFreq 0x2A20 // Indicates the current value of the front panel frequency control for the physical channel in hertz. +#define DAQmx_PhysicalChan_AI_SupportedMeasTypes 0x2FD7 // Indicates the measurement types supported by the channel. +#define DAQmx_PhysicalChan_AI_TermCfgs 0x2342 // Indicates the list of terminal configurations supported by the channel. +#define DAQmx_PhysicalChan_AI_InputSrcs 0x2FD8 // Indicates the list of input sources supported by the channel. Channels may support using the signal from the I/O connector or one of several calibration signals. +#define DAQmx_PhysicalChan_AI_SensorPower_Types 0x3179 // Indicates the types of power supplied to the sensor supported by this channel. +#define DAQmx_PhysicalChan_AI_SensorPower_VoltageRangeVals 0x317A // Indicates pairs of sensor power voltage ranges supported by this channel. Each pair consists of the low value followed by the high value. +#define DAQmx_PhysicalChan_AI_PowerControl_Voltage 0x316C // Specifies the voltage level for the sensor's power supply. +#define DAQmx_PhysicalChan_AI_PowerControl_Enable 0x316D // Specifies whether to turn on the sensor's power supply. +#define DAQmx_PhysicalChan_AI_PowerControl_Type 0x316E // Specifies the type of power supplied to the sensor. +#define DAQmx_PhysicalChan_AI_SensorPower_OpenChan 0x317C // Indicates whether there is an open channel or undercurrent condition on the channel. +#define DAQmx_PhysicalChan_AI_SensorPower_Overcurrent 0x317D // Indicates whether there is an overcurrent condition on the channel. +#define DAQmx_PhysicalChan_AO_SupportedOutputTypes 0x2FD9 // Indicates the output types supported by the channel. +#define DAQmx_PhysicalChan_AO_SupportedPowerUpOutputTypes 0x304E // Indicates the power up output types supported by the channel. +#define DAQmx_PhysicalChan_AO_TermCfgs 0x29A3 // Indicates the list of terminal configurations supported by the channel. +#define DAQmx_PhysicalChan_AO_ManualControlEnable 0x2A1E // Specifies if you can control the physical channel externally via a manual control located on the device. You cannot simultaneously control a channel manually and with NI-DAQmx. +#define DAQmx_PhysicalChan_AO_ManualControl_ShortDetected 0x2EC3 // Indicates whether the physical channel is currently disabled due to a short detected on the channel. +#define DAQmx_PhysicalChan_AO_ManualControlAmplitude 0x2A1F // Indicates the current value of the front panel amplitude control for the physical channel in volts. +#define DAQmx_PhysicalChan_AO_ManualControlFreq 0x2A20 // Indicates the current value of the front panel frequency control for the physical channel in hertz. #define DAQmx_AO_PowerAmp_ChannelEnable 0x3062 // Specifies whether to enable or disable a channel for amplification. This property can also be used to check if a channel is enabled. -#define -DAQmx_AO_PowerAmp_ScalingCoeff 0x3063 // Indicates the coefficients of a polynomial equation used to scale from pre-amplified values. -#define -DAQmx_AO_PowerAmp_Overcurrent 0x3064 // Indicates if the channel detected an overcurrent condition. -#define -DAQmx_AO_PowerAmp_Gain 0x3065 // Indicates the calibrated gain of the channel. -#define -DAQmx_AO_PowerAmp_Offset 0x3066 // Indicates the calibrated offset of the channel in volts. -#define -DAQmx_PhysicalChan_DI_PortWidth 0x29A4 // Indicates in bits the width of digital input port. -#define -DAQmx_PhysicalChan_DI_SampClkSupported 0x29A5 // Indicates if the sample clock timing type is supported for the digital input physical channel. -#define -DAQmx_PhysicalChan_DI_SampModes 0x2FE0 // Indicates the sample modes supported by devices that support sample clocked digital input. -#define -DAQmx_PhysicalChan_DI_ChangeDetectSupported 0x29A6 // Indicates if the change detection timing type is supported for the digital input physical channel. -#define -DAQmx_PhysicalChan_DO_PortWidth 0x29A7 // Indicates in bits the width of digital output port. -#define -DAQmx_PhysicalChan_DO_SampClkSupported 0x29A8 // Indicates if the sample clock timing type is supported for the digital output physical channel. -#define -DAQmx_PhysicalChan_DO_SampModes 0x2FE1 // Indicates the sample modes supported by devices that support sample clocked digital output. -#define -DAQmx_PhysicalChan_CI_SupportedMeasTypes 0x2FDA // Indicates the measurement types supported by the channel. -#define -DAQmx_PhysicalChan_CO_SupportedOutputTypes 0x2FDB // Indicates the output types supported by the channel. -#define -DAQmx_PhysicalChan_TEDS_MfgID 0x21DA // Indicates the manufacturer ID of the sensor. -#define -DAQmx_PhysicalChan_TEDS_ModelNum 0x21DB // Indicates the model number of the sensor. -#define -DAQmx_PhysicalChan_TEDS_SerialNum 0x21DC // Indicates the serial number of the sensor. -#define -DAQmx_PhysicalChan_TEDS_VersionNum 0x21DD // Indicates the version number of the sensor. -#define -DAQmx_PhysicalChan_TEDS_VersionLetter 0x21DE // Indicates the version letter of the sensor. -#define -DAQmx_PhysicalChan_TEDS_BitStream 0x21DF // Indicates the TEDS binary bitstream without checksums. -#define -DAQmx_PhysicalChan_TEDS_TemplateIDs 0x228F // Indicates the IDs of the templates in the bitstream in BitStream. +#define DAQmx_AO_PowerAmp_ScalingCoeff 0x3063 // Indicates the coefficients of a polynomial equation used to scale from pre-amplified values. +#define DAQmx_AO_PowerAmp_Overcurrent 0x3064 // Indicates if the channel detected an overcurrent condition. +#define DAQmx_AO_PowerAmp_Gain 0x3065 // Indicates the calibrated gain of the channel. +#define DAQmx_AO_PowerAmp_Offset 0x3066 // Indicates the calibrated offset of the channel in volts. +#define DAQmx_PhysicalChan_DI_PortWidth 0x29A4 // Indicates in bits the width of digital input port. +#define DAQmx_PhysicalChan_DI_SampClkSupported 0x29A5 // Indicates if the sample clock timing type is supported for the digital input physical channel. +#define DAQmx_PhysicalChan_DI_SampModes 0x2FE0 // Indicates the sample modes supported by devices that support sample clocked digital input. +#define DAQmx_PhysicalChan_DI_ChangeDetectSupported 0x29A6 // Indicates if the change detection timing type is supported for the digital input physical channel. +#define DAQmx_PhysicalChan_DO_PortWidth 0x29A7 // Indicates in bits the width of digital output port. +#define DAQmx_PhysicalChan_DO_SampClkSupported 0x29A8 // Indicates if the sample clock timing type is supported for the digital output physical channel. +#define DAQmx_PhysicalChan_DO_SampModes 0x2FE1 // Indicates the sample modes supported by devices that support sample clocked digital output. +#define DAQmx_PhysicalChan_CI_SupportedMeasTypes 0x2FDA // Indicates the measurement types supported by the channel. +#define DAQmx_PhysicalChan_CO_SupportedOutputTypes 0x2FDB // Indicates the output types supported by the channel. +#define DAQmx_PhysicalChan_TEDS_MfgID 0x21DA // Indicates the manufacturer ID of the sensor. +#define DAQmx_PhysicalChan_TEDS_ModelNum 0x21DB // Indicates the model number of the sensor. +#define DAQmx_PhysicalChan_TEDS_SerialNum 0x21DC // Indicates the serial number of the sensor. +#define DAQmx_PhysicalChan_TEDS_VersionNum 0x21DD // Indicates the version number of the sensor. +#define DAQmx_PhysicalChan_TEDS_VersionLetter 0x21DE // Indicates the version letter of the sensor. +#define DAQmx_PhysicalChan_TEDS_BitStream 0x21DF // Indicates the TEDS binary bitstream without checksums. +#define DAQmx_PhysicalChan_TEDS_TemplateIDs 0x228F // Indicates the IDs of the templates in the bitstream in BitStream. //********** Read Attributes ********** -#define -DAQmx_Read_RelativeTo 0x190A // Specifies the point in the buffer at which to begin a read operation. If you also specify an offset with Offset, the read operation begins at that offset relative to the point you select with this property. The default value is DAQmx_Val_CurrReadPos unless you configure a Reference Trigger for the task. If you configure a Reference Trigger, the default value is DAQmx_Val_FirstPretrigSamp. -#define -DAQmx_Read_Offset 0x190B // Specifies an offset in samples per channel at which to begin a read operation. This offset is relative to the location you specify with RelativeTo. -#define -DAQmx_Read_ChannelsToRead 0x1823 // Specifies a subset of channels in the task from which to read. -#define -DAQmx_Read_ReadAllAvailSamp 0x1215 // Specifies whether subsequent read operations read all samples currently available in the buffer or wait for the buffer to become full before reading. NI-DAQmx uses this setting for finite acquisitions and only when the number of samples to read is -1. For continuous acquisitions when the number of samples to read is -1, a read operation always reads all samples currently available in the buffer. -#define -DAQmx_Read_AutoStart 0x1826 // Specifies if an NI-DAQmx Read function automatically starts the task if you did not start the task explicitly by using DAQmxStartTask(). The default value is TRUE. When an NI-DAQmx Read function starts a finite acquisition task, it also stops the task after reading the last sample. -#define -DAQmx_Read_OverWrite 0x1211 // Specifies whether to overwrite samples in the buffer that you have not yet read. -#define -DAQmx_Logging_FilePath 0x2EC4 // Specifies the path to the TDMS file to which you want to log data. If the file path is changed while the task is running, this takes effect on the next sample interval (if Logging.SampsPerFile has been set) or when DAQmx Start New File is called. New file paths can be specified by ending with "\" or "/". Files created after specifying a new file path retain the same name and numbering sequence. -#define -DAQmx_Logging_Mode 0x2EC5 // Specifies whether to enable logging and whether to allow reading data while logging. Log mode allows for the best performance. However, you cannot read data while logging if you specify this mode. If you want to read data while logging, specify Log and Read mode. -#define -DAQmx_Logging_TDMS_GroupName 0x2EC6 // Specifies the name of the group to configure within the TDMS file for data from this task. If you append data to an existing file and the specified group already exists, NI-DAQmx appends a number symbol and a number to the group name, incrementing that number until finding a group name that does not exist. For example, if you specify a group name of Voltage Task, and that group already exists, NI-DAQmx assigns the gr... -#define -DAQmx_Logging_TDMS_Operation 0x2EC7 // Specifies how to open the TDMS file. -#define -DAQmx_Logging_Pause 0x2FE3 // Specifies whether logging is paused while a task is executing. If Mode is set to Log and Read mode, this value is taken into consideration on the next call to DAQmx Read, where data is written to disk. If Mode is set to Log Only mode, this value is taken into consideration the next time that data is written to disk. A new TDMS group is written when logging is resumed from a paused state. -#define -DAQmx_Logging_SampsPerFile 0x2FE4 // Specifies how many samples to write to each file. When the file reaches the number of samples specified, a new file is created with the naming convention of <filename>_####.tdms, where #### starts at 0001 and increments automatically with each new file. For example, if the file specified is C:\data.tdms, the next file name used is C:\data_0001.tdms. To disable file spanning behavior, set this attribute to ... -#define -DAQmx_Logging_FileWriteSize 0x2FC3 // Specifies the size, in samples, in which data will be written to disk. The size must be evenly divisible by the volume sector size, in bytes. -#define -DAQmx_Logging_FilePreallocationSize 0x2FC6 // Specifies a size in samples to be used to pre-allocate space on disk. Pre-allocation can improve file I/O performance, especially in situations where multiple files are being written to disk. For finite tasks, the default behavior is to pre-allocate the file based on the number of samples you configure the task to acquire. -#define -DAQmx_Read_CurrReadPos 0x1221 // Indicates in samples per channel the current position in the buffer. -#define -DAQmx_Read_AvailSampPerChan 0x1223 // Indicates the number of samples available to read per channel. This value is the same for all channels in the task. -#define -DAQmx_Read_TotalSampPerChanAcquired 0x192A // Indicates the total number of samples acquired by each channel. NI-DAQmx returns a single value because this value is the same for all channels. For retriggered acquisitions, this value is the cumulative number of samples across all retriggered acquisitions. -#define -DAQmx_Read_CommonModeRangeErrorChansExist 0x2A98 // Indicates if the device(s) detected a common mode range violation for any virtual channel in the task. Common mode range violation occurs when the voltage of either the positive terminal or negative terminal to ground are out of range. Reading this property clears the common mode range violation status for all channels in the task. You must read this property before you read Common Mode Range Error Channels. Other... -#define -DAQmx_Read_CommonModeRangeErrorChans 0x2A99 // Indicates a list of names of any virtual channels in the task for which the device(s) detected a common mode range violation. You must read Common Mode Range Error Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_ExcitFaultChansExist 0x3088 // Indicates if the device(s) detected an excitation fault condition for any virtual channel in the task. Reading this property clears the excitation fault status for all channels in the task. You must read this property before you read Excitation Fault Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_ExcitFaultChans 0x3089 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an excitation fault condition. You must read Excitation Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_OvercurrentChansExist 0x29E6 // Indicates if the device(s) detected an overcurrent condition for any virtual channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_OvercurrentChans 0x29E7 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an overcurrent condition. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. On some devices, you must restart the task for all overcurrent channels to recover. -#define -DAQmx_Read_OvertemperatureChansExist 0x3081 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_OvertemperatureChans 0x3082 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_OpenChansExist 0x3100 // Indicates if the device or devices detected an open channel condition in any virtual channel in the task. Reading this property clears the open channel status for all channels in this task. You must read this property before you read Open Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_OpenChans 0x3101 // Indicates a list of names of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. -#define -DAQmx_Read_OpenChansDetails 0x3102 // Indicates a list of details of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. -#define -DAQmx_Read_OpenCurrentLoopChansExist 0x2A09 // Indicates if the device(s) detected an open current loop for any virtual channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. +#define DAQmx_Read_RelativeTo 0x190A // Specifies the point in the buffer at which to begin a read operation. If you also specify an offset with Offset, the read operation begins at that offset relative to the point you select with this property. The default value is DAQmx_Val_CurrReadPos unless you configure a Reference Trigger for the task. If you configure a Reference Trigger, the default value is DAQmx_Val_FirstPretrigSamp. +#define DAQmx_Read_Offset 0x190B // Specifies an offset in samples per channel at which to begin a read operation. This offset is relative to the location you specify with RelativeTo. +#define DAQmx_Read_ChannelsToRead 0x1823 // Specifies a subset of channels in the task from which to read. +#define DAQmx_Read_ReadAllAvailSamp 0x1215 // Specifies whether subsequent read operations read all samples currently available in the buffer or wait for the buffer to become full before reading. NI-DAQmx uses this setting for finite acquisitions and only when the number of samples to read is -1. For continuous acquisitions when the number of samples to read is -1, a read operation always reads all samples currently available in the buffer. +#define DAQmx_Read_AutoStart 0x1826 // Specifies if an NI-DAQmx Read function automatically starts the task if you did not start the task explicitly by using DAQmxStartTask(). The default value is TRUE. When an NI-DAQmx Read function starts a finite acquisition task, it also stops the task after reading the last sample. +#define DAQmx_Read_OverWrite 0x1211 // Specifies whether to overwrite samples in the buffer that you have not yet read. +#define DAQmx_Logging_FilePath 0x2EC4 // Specifies the path to the TDMS file to which you want to log data. If the file path is changed while the task is running, this takes effect on the next sample interval (if Logging.SampsPerFile has been set) or when DAQmx Start New File is called. New file paths can be specified by ending with "\" or "/". Files created after specifying a new file path retain the same name and numbering sequence. +#define DAQmx_Logging_Mode 0x2EC5 // Specifies whether to enable logging and whether to allow reading data while logging. Log mode allows for the best performance. However, you cannot read data while logging if you specify this mode. If you want to read data while logging, specify Log and Read mode. +#define DAQmx_Logging_TDMS_GroupName 0x2EC6 // Specifies the name of the group to configure within the TDMS file for data from this task. If you append data to an existing file and the specified group already exists, NI-DAQmx appends a number symbol and a number to the group name, incrementing that number until finding a group name that does not exist. For example, if you specify a group name of Voltage Task, and that group already exists, NI-DAQmx assigns the gr... +#define DAQmx_Logging_TDMS_Operation 0x2EC7 // Specifies how to open the TDMS file. +#define DAQmx_Logging_Pause 0x2FE3 // Specifies whether logging is paused while a task is executing. If Mode is set to Log and Read mode, this value is taken into consideration on the next call to DAQmx Read, where data is written to disk. If Mode is set to Log Only mode, this value is taken into consideration the next time that data is written to disk. A new TDMS group is written when logging is resumed from a paused state. +#define DAQmx_Logging_SampsPerFile 0x2FE4 // Specifies how many samples to write to each file. When the file reaches the number of samples specified, a new file is created with the naming convention of <filename>_####.tdms, where #### starts at 0001 and increments automatically with each new file. For example, if the file specified is C:\data.tdms, the next file name used is C:\data_0001.tdms. To disable file spanning behavior, set this attribute to ... +#define DAQmx_Logging_FileWriteSize 0x2FC3 // Specifies the size, in samples, in which data will be written to disk. The size must be evenly divisible by the volume sector size, in bytes. +#define DAQmx_Logging_FilePreallocationSize 0x2FC6 // Specifies a size in samples to be used to pre-allocate space on disk. Pre-allocation can improve file I/O performance, especially in situations where multiple files are being written to disk. For finite tasks, the default behavior is to pre-allocate the file based on the number of samples you configure the task to acquire. +#define DAQmx_Read_CurrReadPos 0x1221 // Indicates in samples per channel the current position in the buffer. +#define DAQmx_Read_AvailSampPerChan 0x1223 // Indicates the number of samples available to read per channel. This value is the same for all channels in the task. +#define DAQmx_Read_TotalSampPerChanAcquired 0x192A // Indicates the total number of samples acquired by each channel. NI-DAQmx returns a single value because this value is the same for all channels. For retriggered acquisitions, this value is the cumulative number of samples across all retriggered acquisitions. +#define DAQmx_Read_CommonModeRangeErrorChansExist 0x2A98 // Indicates if the device(s) detected a common mode range violation for any virtual channel in the task. Common mode range violation occurs when the voltage of either the positive terminal or negative terminal to ground are out of range. Reading this property clears the common mode range violation status for all channels in the task. You must read this property before you read Common Mode Range Error Channels. Other... +#define DAQmx_Read_CommonModeRangeErrorChans 0x2A99 // Indicates a list of names of any virtual channels in the task for which the device(s) detected a common mode range violation. You must read Common Mode Range Error Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_ExcitFaultChansExist 0x3088 // Indicates if the device(s) detected an excitation fault condition for any virtual channel in the task. Reading this property clears the excitation fault status for all channels in the task. You must read this property before you read Excitation Fault Channels. Otherwise, you will receive an error. +#define DAQmx_Read_ExcitFaultChans 0x3089 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an excitation fault condition. You must read Excitation Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_OvercurrentChansExist 0x29E6 // Indicates if the device(s) detected an overcurrent condition for any virtual channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. +#define DAQmx_Read_OvercurrentChans 0x29E7 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an overcurrent condition. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. On some devices, you must restart the task for all overcurrent channels to recover. +#define DAQmx_Read_OvertemperatureChansExist 0x3081 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. +#define DAQmx_Read_OvertemperatureChans 0x3082 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_OpenChansExist 0x3100 // Indicates if the device or devices detected an open channel condition in any virtual channel in the task. Reading this property clears the open channel status for all channels in this task. You must read this property before you read Open Channels. Otherwise, you will receive an error. +#define DAQmx_Read_OpenChans 0x3101 // Indicates a list of names of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. +#define DAQmx_Read_OpenChansDetails 0x3102 // Indicates a list of details of any open virtual channels. You must read Open Channels Exist before you read this property. Otherwise you will receive an error. +#define DAQmx_Read_OpenCurrentLoopChansExist 0x2A09 // Indicates if the device(s) detected an open current loop for any virtual channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. #define DAQmx_Read_OpenCurrentLoopChans 0x2A0A // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_OpenThrmcplChansExist 0x2A96 // Indicates if the device(s) detected an open thermocouple connected to any virtual channel in the task. Reading this property clears the open thermocouple status for all channels in the task. You must read this property before you read Open Thermocouple Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_OpenThrmcplChans 0x2A97 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open thermcouple. You must read Open Thermocouple Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_OverloadedChansExist 0x2174 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_OverloadedChans 0x2175 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_InputLimitsFaultChansExist 0x318F // Indicates if the device or devices detected a sample that was outside the upper or lower limits configured for each channel in the task. Reading this property clears the input limits fault channel status for all channels in the task. You must read this property before you read Input Limits Fault Channels. Otherwise, you will receive an error. Note: Fault detection applies to both positive and negative inputs. For ... -#define -DAQmx_Read_InputLimitsFaultChans 0x3190 // Indicates the virtual channels that have detected samples outside the upper or lower limits configured for each channel in the task. You must read Input Limits Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_PLL_UnlockedChansExist 0x3118 // Indicates whether the PLL is currently locked, or whether it became unlocked during the previous acquisition. Devices may report PLL Unlock either during acquisition or after acquisition. -#define -DAQmx_Read_PLL_UnlockedChans 0x3119 // Indicates the channels that had their PLLs unlock. -#define -DAQmx_Read_PowerSupplyFaultChansExist 0x3192 // Indicates if the device or devices detected a power supply fault condition in any virtual channel in the task. Reading this property clears the power supply fault status for all channels in this task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. -#define -DAQmx_Read_PowerSupplyFaultChans 0x3193 // Indicates the virtual channels that have detected a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_Sync_UnlockedChansExist 0x313D // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. -#define -DAQmx_Read_Sync_UnlockedChans 0x313E // Indicates the channels from devices in an unlocked target. -#define -DAQmx_Read_AccessoryInsertionOrRemovalDetected 0x2F70 // Indicates if any device(s) in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. -#define -DAQmx_Read_DevsWithInsertedOrRemovedAccessories 0x2F71 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Read_ChangeDetect_HasOverflowed 0x2194 // Indicates if samples were missed because change detection events occurred faster than the device could handle them. Some devices detect overflows differently than others. -#define -DAQmx_Read_RawDataWidth 0x217A // Indicates in bytes the size of a raw sample from the task. -#define -DAQmx_Read_NumChans 0x217B // Indicates the number of channels that an NI-DAQmx Read function reads from the task. This value is the number of channels in the task or the number of channels you specify with Channels to Read. -#define -DAQmx_Read_DigitalLines_BytesPerChan 0x217C // Indicates the number of bytes per channel that NI-DAQmx returns in a sample for line-based reads. If a channel has fewer lines than this number, the extra bytes are FALSE. -#define -DAQmx_Read_WaitMode 0x2232 // Specifies how an NI-DAQmx Read function waits for samples to become available. -#define -DAQmx_Read_SleepTime 0x22B0 // Specifies in seconds the amount of time to sleep after checking for available samples if Wait Mode is DAQmx_Val_Sleep. +#define DAQmx_Read_OpenThrmcplChansExist 0x2A96 // Indicates if the device(s) detected an open thermocouple connected to any virtual channel in the task. Reading this property clears the open thermocouple status for all channels in the task. You must read this property before you read Open Thermocouple Channels. Otherwise, you will receive an error. +#define DAQmx_Read_OpenThrmcplChans 0x2A97 // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open thermcouple. You must read Open Thermocouple Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_OverloadedChansExist 0x2174 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. +#define DAQmx_Read_OverloadedChans 0x2175 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_InputLimitsFaultChansExist 0x318F // Indicates if the device or devices detected a sample that was outside the upper or lower limits configured for each channel in the task. Reading this property clears the input limits fault channel status for all channels in the task. You must read this property before you read Input Limits Fault Channels. Otherwise, you will receive an error. Note: Fault detection applies to both positive and negative inputs. For ... +#define DAQmx_Read_InputLimitsFaultChans 0x3190 // Indicates the virtual channels that have detected samples outside the upper or lower limits configured for each channel in the task. You must read Input Limits Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_PLL_UnlockedChansExist 0x3118 // Indicates whether the PLL is currently locked, or whether it became unlocked during the previous acquisition. Devices may report PLL Unlock either during acquisition or after acquisition. +#define DAQmx_Read_PLL_UnlockedChans 0x3119 // Indicates the channels that had their PLLs unlock. +#define DAQmx_Read_PowerSupplyFaultChansExist 0x3192 // Indicates if the device or devices detected a power supply fault condition in any virtual channel in the task. Reading this property clears the power supply fault status for all channels in this task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. +#define DAQmx_Read_PowerSupplyFaultChans 0x3193 // Indicates the virtual channels that have detected a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_Sync_UnlockedChansExist 0x313D // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. +#define DAQmx_Read_Sync_UnlockedChans 0x313E // Indicates the channels from devices in an unlocked target. +#define DAQmx_Read_AccessoryInsertionOrRemovalDetected 0x2F70 // Indicates if any device(s) in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. +#define DAQmx_Read_DevsWithInsertedOrRemovedAccessories 0x2F71 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. +#define DAQmx_Read_ChangeDetect_HasOverflowed 0x2194 // Indicates if samples were missed because change detection events occurred faster than the device could handle them. Some devices detect overflows differently than others. +#define DAQmx_Read_RawDataWidth 0x217A // Indicates in bytes the size of a raw sample from the task. +#define DAQmx_Read_NumChans 0x217B // Indicates the number of channels that an NI-DAQmx Read function reads from the task. This value is the number of channels in the task or the number of channels you specify with Channels to Read. +#define DAQmx_Read_DigitalLines_BytesPerChan 0x217C // Indicates the number of bytes per channel that NI-DAQmx returns in a sample for line-based reads. If a channel has fewer lines than this number, the extra bytes are FALSE. +#define DAQmx_Read_WaitMode 0x2232 // Specifies how an NI-DAQmx Read function waits for samples to become available. +#define DAQmx_Read_SleepTime 0x22B0 // Specifies in seconds the amount of time to sleep after checking for available samples if Wait Mode is DAQmx_Val_Sleep. //********** Real-Time Attributes ********** -#define -DAQmx_RealTime_ConvLateErrorsToWarnings 0x22EE // Specifies if DAQmxWaitForNextSampleClock(), an NI-DAQmx Read function, and an NI-DAQmx Write function convert late errors to warnings. NI-DAQmx returns no late warnings or errors until the number of warmup iterations you specify with Number Of Warmup Iterations run. -#define -DAQmx_RealTime_NumOfWarmupIters 0x22ED // Specifies the number of loop iterations that must occur before DAQmxWaitForNextSampleClock() and an NI-DAQmx Read function return any late warnings or errors. The system needs a number of iterations to stabilize. During this period, a large amount of jitter occurs, potentially causing reads and writes to be late. The default number of warmup iterations is 100. Specify a larger number if needed to stabilize the sys... -#define -DAQmx_RealTime_WaitForNextSampClkWaitMode 0x22EF // Specifies how DAQmxWaitForNextSampleClock() waits for the next Sample Clock pulse. -#define -DAQmx_RealTime_ReportMissedSamp 0x2319 // Specifies whether an NI-DAQmx Read function returns lateness errors or warnings when it detects missed Sample Clock pulses. This setting does not affect DAQmxWaitForNextSampleClock(). Set this property to TRUE for applications that need to detect lateness without using DAQmxWaitForNextSampleClock(). -#define -DAQmx_RealTime_WriteRecoveryMode 0x231A // Specifies how NI-DAQmx attempts to recover after missing a Sample Clock pulse when performing counter writes. +#define DAQmx_RealTime_ConvLateErrorsToWarnings 0x22EE // Specifies if DAQmxWaitForNextSampleClock(), an NI-DAQmx Read function, and an NI-DAQmx Write function convert late errors to warnings. NI-DAQmx returns no late warnings or errors until the number of warmup iterations you specify with Number Of Warmup Iterations run. +#define DAQmx_RealTime_NumOfWarmupIters 0x22ED // Specifies the number of loop iterations that must occur before DAQmxWaitForNextSampleClock() and an NI-DAQmx Read function return any late warnings or errors. The system needs a number of iterations to stabilize. During this period, a large amount of jitter occurs, potentially causing reads and writes to be late. The default number of warmup iterations is 100. Specify a larger number if needed to stabilize the sys... +#define DAQmx_RealTime_WaitForNextSampClkWaitMode 0x22EF // Specifies how DAQmxWaitForNextSampleClock() waits for the next Sample Clock pulse. +#define DAQmx_RealTime_ReportMissedSamp 0x2319 // Specifies whether an NI-DAQmx Read function returns lateness errors or warnings when it detects missed Sample Clock pulses. This setting does not affect DAQmxWaitForNextSampleClock(). Set this property to TRUE for applications that need to detect lateness without using DAQmxWaitForNextSampleClock(). +#define DAQmx_RealTime_WriteRecoveryMode 0x231A // Specifies how NI-DAQmx attempts to recover after missing a Sample Clock pulse when performing counter writes. //********** Scale Attributes ********** -#define -DAQmx_Scale_Descr 0x1226 // Specifies a description for the scale. -#define -DAQmx_Scale_ScaledUnits 0x191B // Specifies the units to use for scaled values. You can use an arbitrary string. -#define -DAQmx_Scale_PreScaledUnits 0x18F7 // Specifies the units of the values that you want to scale. -#define -DAQmx_Scale_Type 0x1929 // Indicates the method or equation form that the custom scale uses. -#define -DAQmx_Scale_Lin_Slope 0x1227 // Specifies the slope, m, in the equation y=mx+b. -#define -DAQmx_Scale_Lin_YIntercept 0x1228 // Specifies the y-intercept, b, in the equation y=mx+b. -#define -DAQmx_Scale_Map_ScaledMax 0x1229 // Specifies the largest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Maximum Value. Reads coerce samples that are larger than this value to match this value. Writes generate errors for samples that are larger than this value. -#define -DAQmx_Scale_Map_PreScaledMax 0x1231 // Specifies the largest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Maximum Value. -#define -DAQmx_Scale_Map_ScaledMin 0x1230 // Specifies the smallest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Minimum Value. Reads coerce samples that are smaller than this value to match this value. Writes generate errors for samples that are smaller than this value. -#define -DAQmx_Scale_Map_PreScaledMin 0x1232 // Specifies the smallest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Minimum Value. -#define -DAQmx_Scale_Poly_ForwardCoeff 0x1234 // Specifies an array of coefficients for the polynomial that converts pre-scaled values to scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. -#define -DAQmx_Scale_Poly_ReverseCoeff 0x1235 // Specifies an array of coefficients for the polynomial that converts scaled values to pre-scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9y^3. -#define -DAQmx_Scale_Table_ScaledVals 0x1236 // Specifies an array of scaled values. These values map directly to the values in Pre-Scaled Values. -#define -DAQmx_Scale_Table_PreScaledVals 0x1237 // Specifies an array of pre-scaled values. These values map directly to the values in Scaled Values. +#define DAQmx_Scale_Descr 0x1226 // Specifies a description for the scale. +#define DAQmx_Scale_ScaledUnits 0x191B // Specifies the units to use for scaled values. You can use an arbitrary string. +#define DAQmx_Scale_PreScaledUnits 0x18F7 // Specifies the units of the values that you want to scale. +#define DAQmx_Scale_Type 0x1929 // Indicates the method or equation form that the custom scale uses. +#define DAQmx_Scale_Lin_Slope 0x1227 // Specifies the slope, m, in the equation y=mx+b. +#define DAQmx_Scale_Lin_YIntercept 0x1228 // Specifies the y-intercept, b, in the equation y=mx+b. +#define DAQmx_Scale_Map_ScaledMax 0x1229 // Specifies the largest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Maximum Value. Reads coerce samples that are larger than this value to match this value. Writes generate errors for samples that are larger than this value. +#define DAQmx_Scale_Map_PreScaledMax 0x1231 // Specifies the largest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Maximum Value. +#define DAQmx_Scale_Map_ScaledMin 0x1230 // Specifies the smallest value in the range of scaled values. NI-DAQmx maps this value to Pre-Scaled Minimum Value. Reads coerce samples that are smaller than this value to match this value. Writes generate errors for samples that are smaller than this value. +#define DAQmx_Scale_Map_PreScaledMin 0x1232 // Specifies the smallest value in the range of pre-scaled values. NI-DAQmx maps this value to Scaled Minimum Value. +#define DAQmx_Scale_Poly_ForwardCoeff 0x1234 // Specifies an array of coefficients for the polynomial that converts pre-scaled values to scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9x^3. +#define DAQmx_Scale_Poly_ReverseCoeff 0x1235 // Specifies an array of coefficients for the polynomial that converts scaled values to pre-scaled values. Each element of the array corresponds to a term of the equation. For example, if index three of the array is 9, the fourth term of the equation is 9y^3. +#define DAQmx_Scale_Table_ScaledVals 0x1236 // Specifies an array of scaled values. These values map directly to the values in Pre-Scaled Values. +#define DAQmx_Scale_Table_PreScaledVals 0x1237 // Specifies an array of pre-scaled values. These values map directly to the values in Scaled Values. //********** Switch Channel Attributes ********** -#define -DAQmx_SwitchChan_Usage 0x18E4 // (Deprecated) Specifies how you can use the channel. Using this property acts as a safety mechanism to prevent you from connecting two source channels, for example. -#define -DAQmx_SwitchChan_AnlgBusSharingEnable 0x2F9E // (Deprecated) Specifies whether to enable sharing of an analog bus line so that multiple switch devices can connect to it simultaneously. For each device that will share the analog bus line, set this property to TRUE to enable sharing on the channel that connects to the analog bus line. Analog bus sharing is disabled by default. -#define -DAQmx_SwitchChan_MaxACCarryCurrent 0x0648 // (Deprecated) Indicates in amperes the maximum AC current that the device can carry. -#define -DAQmx_SwitchChan_MaxACSwitchCurrent 0x0646 // (Deprecated) Indicates in amperes the maximum AC current that the device can switch. This current is always against an RMS voltage level. -#define -DAQmx_SwitchChan_MaxACCarryPwr 0x0642 // (Deprecated) Indicates in watts the maximum AC power that the device can carry. -#define -DAQmx_SwitchChan_MaxACSwitchPwr 0x0644 // (Deprecated) Indicates in watts the maximum AC power that the device can switch. -#define -DAQmx_SwitchChan_MaxDCCarryCurrent 0x0647 // (Deprecated) Indicates in amperes the maximum DC current that the device can carry. -#define -DAQmx_SwitchChan_MaxDCSwitchCurrent 0x0645 // (Deprecated) Indicates in amperes the maximum DC current that the device can switch. This current is always against a DC voltage level. -#define -DAQmx_SwitchChan_MaxDCCarryPwr 0x0643 // (Deprecated) Indicates in watts the maximum DC power that the device can carry. -#define -DAQmx_SwitchChan_MaxDCSwitchPwr 0x0649 // (Deprecated) Indicates in watts the maximum DC power that the device can switch. +#define DAQmx_SwitchChan_Usage 0x18E4 // (Deprecated) Specifies how you can use the channel. Using this property acts as a safety mechanism to prevent you from connecting two source channels, for example. +#define DAQmx_SwitchChan_AnlgBusSharingEnable 0x2F9E // (Deprecated) Specifies whether to enable sharing of an analog bus line so that multiple switch devices can connect to it simultaneously. For each device that will share the analog bus line, set this property to TRUE to enable sharing on the channel that connects to the analog bus line. Analog bus sharing is disabled by default. +#define DAQmx_SwitchChan_MaxACCarryCurrent 0x0648 // (Deprecated) Indicates in amperes the maximum AC current that the device can carry. +#define DAQmx_SwitchChan_MaxACSwitchCurrent 0x0646 // (Deprecated) Indicates in amperes the maximum AC current that the device can switch. This current is always against an RMS voltage level. +#define DAQmx_SwitchChan_MaxACCarryPwr 0x0642 // (Deprecated) Indicates in watts the maximum AC power that the device can carry. +#define DAQmx_SwitchChan_MaxACSwitchPwr 0x0644 // (Deprecated) Indicates in watts the maximum AC power that the device can switch. +#define DAQmx_SwitchChan_MaxDCCarryCurrent 0x0647 // (Deprecated) Indicates in amperes the maximum DC current that the device can carry. +#define DAQmx_SwitchChan_MaxDCSwitchCurrent 0x0645 // (Deprecated) Indicates in amperes the maximum DC current that the device can switch. This current is always against a DC voltage level. +#define DAQmx_SwitchChan_MaxDCCarryPwr 0x0643 // (Deprecated) Indicates in watts the maximum DC power that the device can carry. +#define DAQmx_SwitchChan_MaxDCSwitchPwr 0x0649 // (Deprecated) Indicates in watts the maximum DC power that the device can switch. #define DAQmx_SwitchChan_MaxACVoltage 0x0651 // (Deprecated) Indicates in volts the maximum AC RMS voltage that the device can switch. -#define -DAQmx_SwitchChan_MaxDCVoltage 0x0650 // (Deprecated) Indicates in volts the maximum DC voltage that the device can switch. -#define -DAQmx_SwitchChan_WireMode 0x18E5 // (Deprecated) Indicates the number of wires that the channel switches. -#define -DAQmx_SwitchChan_Bandwidth 0x0640 // (Deprecated) Indicates in Hertz the maximum frequency of a signal that can pass through the switch without significant deterioration. -#define -DAQmx_SwitchChan_Impedance 0x0641 // (Deprecated) Indicates in ohms the switch impedance. This value is important in the RF domain and should match the impedance of the sources and loads. +#define DAQmx_SwitchChan_MaxDCVoltage 0x0650 // (Deprecated) Indicates in volts the maximum DC voltage that the device can switch. +#define DAQmx_SwitchChan_WireMode 0x18E5 // (Deprecated) Indicates the number of wires that the channel switches. +#define DAQmx_SwitchChan_Bandwidth 0x0640 // (Deprecated) Indicates in Hertz the maximum frequency of a signal that can pass through the switch without significant deterioration. +#define DAQmx_SwitchChan_Impedance 0x0641 // (Deprecated) Indicates in ohms the switch impedance. This value is important in the RF domain and should match the impedance of the sources and loads. //********** Switch Device Attributes ********** -#define -DAQmx_SwitchDev_SettlingTime 0x1244 // (Deprecated) Specifies in seconds the amount of time to wait for the switch to settle (or debounce). NI-DAQmx adds this time to the settling time of the motherboard. Modify this property only if the switch does not settle within the settling time of the motherboard. Refer to device documentation for supported settling times. -#define -DAQmx_SwitchDev_AutoConnAnlgBus 0x17DA // (Deprecated) Specifies if NI-DAQmx routes multiplexed channels to the analog bus backplane. Only the SCXI-1127 and SCXI-1128 support this property. -#define -DAQmx_SwitchDev_PwrDownLatchRelaysAfterSettling 0x22DB // (Deprecated) Specifies if DAQmxSwitchWaitForSettling() powers down latching relays after waiting for the device to settle. -#define -DAQmx_SwitchDev_Settled 0x1243 // (Deprecated) Indicates when Settling Time expires. -#define -DAQmx_SwitchDev_RelayList 0x17DC // (Deprecated) Indicates a comma-delimited list of relay names. -#define -DAQmx_SwitchDev_NumRelays 0x18E6 // (Deprecated) Indicates the number of relays on the device. This value matches the number of relay names in Relay List. -#define -DAQmx_SwitchDev_SwitchChanList 0x18E7 // (Deprecated) Indicates a comma-delimited list of channel names for the current topology of the device. -#define -DAQmx_SwitchDev_NumSwitchChans 0x18E8 // (Deprecated) Indicates the number of switch channels for the current topology of the device. This value matches the number of channel names in Switch Channel List. -#define -DAQmx_SwitchDev_NumRows 0x18E9 // (Deprecated) Indicates the number of rows on a device in a matrix switch topology. Indicates the number of multiplexed channels on a device in a mux topology. -#define -DAQmx_SwitchDev_NumColumns 0x18EA // (Deprecated) Indicates the number of columns on a device in a matrix switch topology. This value is always 1 if the device is in a mux topology. -#define -DAQmx_SwitchDev_Topology 0x193D // (Deprecated) Indicates the current topology of the device. This value is one of the topology options in DAQmxSwitchSetTopologyAndReset(). -#define -DAQmx_SwitchDev_Temperature 0x301A // (Deprecated) Indicates the current temperature as read by the Switch module in degrees Celsius. Refer to your device documentation for more information. +#define DAQmx_SwitchDev_SettlingTime 0x1244 // (Deprecated) Specifies in seconds the amount of time to wait for the switch to settle (or debounce). NI-DAQmx adds this time to the settling time of the motherboard. Modify this property only if the switch does not settle within the settling time of the motherboard. Refer to device documentation for supported settling times. +#define DAQmx_SwitchDev_AutoConnAnlgBus 0x17DA // (Deprecated) Specifies if NI-DAQmx routes multiplexed channels to the analog bus backplane. Only the SCXI-1127 and SCXI-1128 support this property. +#define DAQmx_SwitchDev_PwrDownLatchRelaysAfterSettling 0x22DB // (Deprecated) Specifies if DAQmxSwitchWaitForSettling() powers down latching relays after waiting for the device to settle. +#define DAQmx_SwitchDev_Settled 0x1243 // (Deprecated) Indicates when Settling Time expires. +#define DAQmx_SwitchDev_RelayList 0x17DC // (Deprecated) Indicates a comma-delimited list of relay names. +#define DAQmx_SwitchDev_NumRelays 0x18E6 // (Deprecated) Indicates the number of relays on the device. This value matches the number of relay names in Relay List. +#define DAQmx_SwitchDev_SwitchChanList 0x18E7 // (Deprecated) Indicates a comma-delimited list of channel names for the current topology of the device. +#define DAQmx_SwitchDev_NumSwitchChans 0x18E8 // (Deprecated) Indicates the number of switch channels for the current topology of the device. This value matches the number of channel names in Switch Channel List. +#define DAQmx_SwitchDev_NumRows 0x18E9 // (Deprecated) Indicates the number of rows on a device in a matrix switch topology. Indicates the number of multiplexed channels on a device in a mux topology. +#define DAQmx_SwitchDev_NumColumns 0x18EA // (Deprecated) Indicates the number of columns on a device in a matrix switch topology. This value is always 1 if the device is in a mux topology. +#define DAQmx_SwitchDev_Topology 0x193D // (Deprecated) Indicates the current topology of the device. This value is one of the topology options in DAQmxSwitchSetTopologyAndReset(). +#define DAQmx_SwitchDev_Temperature 0x301A // (Deprecated) Indicates the current temperature as read by the Switch module in degrees Celsius. Refer to your device documentation for more information. //********** Switch Scan Attributes ********** -#define -DAQmx_SwitchScan_BreakMode 0x1247 // (Deprecated) Specifies the action to take between each entry in a scan list. -#define -DAQmx_SwitchScan_RepeatMode 0x1248 // (Deprecated) Specifies if the task advances through the scan list multiple times. -#define -DAQmx_SwitchScan_WaitingForAdv 0x17D9 // (Deprecated) Indicates if the switch hardware is waiting for an Advance Trigger. If the hardware is waiting, it completed the previous entry in the scan list. +#define DAQmx_SwitchScan_BreakMode 0x1247 // (Deprecated) Specifies the action to take between each entry in a scan list. +#define DAQmx_SwitchScan_RepeatMode 0x1248 // (Deprecated) Specifies if the task advances through the scan list multiple times. +#define DAQmx_SwitchScan_WaitingForAdv 0x17D9 // (Deprecated) Indicates if the switch hardware is waiting for an Advance Trigger. If the hardware is waiting, it completed the previous entry in the scan list. //********** System Attributes ********** -#define -DAQmx_Sys_GlobalChans 0x1265 // Indicates an array that contains the names of all global channels saved on the system. -#define -DAQmx_Sys_Scales 0x1266 // Indicates an array that contains the names of all custom scales saved on the system. -#define -DAQmx_Sys_Tasks 0x1267 // Indicates an array that contains the names of all tasks saved on the system. -#define -DAQmx_Sys_DevNames 0x193B // Indicates the names of all devices installed in the system. -#define -DAQmx_Sys_NIDAQMajorVersion 0x1272 // Indicates the major portion of the installed version of NI-DAQmx, such as 7 for version 7.0. -#define -DAQmx_Sys_NIDAQMinorVersion 0x1923 // Indicates the minor portion of the installed version of NI-DAQmx, such as 0 for version 7.0. -#define -DAQmx_Sys_NIDAQUpdateVersion 0x2F22 // Indicates the update portion of the installed version of NI-DAQmx, such as 1 for version 9.0.1. +#define DAQmx_Sys_GlobalChans 0x1265 // Indicates an array that contains the names of all global channels saved on the system. +#define DAQmx_Sys_Scales 0x1266 // Indicates an array that contains the names of all custom scales saved on the system. +#define DAQmx_Sys_Tasks 0x1267 // Indicates an array that contains the names of all tasks saved on the system. +#define DAQmx_Sys_DevNames 0x193B // Indicates the names of all devices installed in the system. +#define DAQmx_Sys_NIDAQMajorVersion 0x1272 // Indicates the major portion of the installed version of NI-DAQmx, such as 7 for version 7.0. +#define DAQmx_Sys_NIDAQMinorVersion 0x1923 // Indicates the minor portion of the installed version of NI-DAQmx, such as 0 for version 7.0. +#define DAQmx_Sys_NIDAQUpdateVersion 0x2F22 // Indicates the update portion of the installed version of NI-DAQmx, such as 1 for version 9.0.1. //********** Task Attributes ********** -#define -DAQmx_Task_Name 0x1276 // Indicates the name of the task. -#define -DAQmx_Task_Channels 0x1273 // Indicates the names of all virtual channels in the task. -#define -DAQmx_Task_NumChans 0x2181 // Indicates the number of virtual channels in the task. -#define -DAQmx_Task_Devices 0x230E // Indicates an array containing the names of all devices in the task. -#define -DAQmx_Task_NumDevices 0x29BA // Indicates the number of devices in the task. -#define -DAQmx_Task_Complete 0x1274 // Indicates whether the task completed execution. +#define DAQmx_Task_Name 0x1276 // Indicates the name of the task. +#define DAQmx_Task_Channels 0x1273 // Indicates the names of all virtual channels in the task. +#define DAQmx_Task_NumChans 0x2181 // Indicates the number of virtual channels in the task. +#define DAQmx_Task_Devices 0x230E // Indicates an array containing the names of all devices in the task. +#define DAQmx_Task_NumDevices 0x29BA // Indicates the number of devices in the task. +#define DAQmx_Task_Complete 0x1274 // Indicates whether the task completed execution. //********** Timing Attributes ********** -#define -DAQmx_SampQuant_SampMode 0x1300 // Specifies if a task acquires or generates a finite number of samples or if it continuously acquires or generates samples. -#define -DAQmx_SampQuant_SampPerChan 0x1310 // Specifies the number of samples to acquire or generate for each channel if Sample Mode is DAQmx_Val_FiniteSamps. If Sample Mode is DAQmx_Val_ContSamps, NI-DAQmx uses this value to determine the buffer size. -#define -DAQmx_SampTimingType 0x1347 // Specifies the type of sample timing to use for the task. -#define -DAQmx_SampClk_Rate 0x1344 // Specifies the sampling sample_rate in samples per channel per second. If you use an external source for the Sample Clock, set this input to the maximum expected sample_rate of that clock. -#define -DAQmx_SampClk_MaxRate 0x22C8 // Indicates the maximum Sample Clock sample_rate supported by the task, based on other timing settings. For output tasks, the maximum Sample Clock sample_rate is the maximum sample_rate of the DAC. For input tasks, NI-DAQmx calculates the maximum sampling sample_rate differently for multiplexed devices than simultaneous sampling devices. -#define -DAQmx_SampClk_Src 0x1852 // Specifies the terminal of the signal to use as the Sample Clock. -#define -DAQmx_SampClk_ActiveEdge 0x1301 // Specifies on which edge of a clock pulse sampling takes place. This property is useful primarily when the signal you use as the Sample Clock is not a periodic clock. -#define -DAQmx_SampClk_OverrunBehavior 0x2EFC // Specifies the action to take if Sample Clock edges occur faster than the device can handle them. -#define -DAQmx_SampClk_UnderflowBehavior 0x2961 // Specifies the action to take when the onboard memory of the device becomes empty. In either case, the sample clock does not stop. -#define -DAQmx_SampClk_TimebaseDiv 0x18EB // Specifies the number of Sample Clock Timebase pulses needed to produce a single Sample Clock pulse. -#define -DAQmx_SampClk_Term 0x2F1B // Indicates the name of the internal Sample Clock terminal for the task. This property does not return the name of the Sample Clock source terminal specified with Source. -#define -DAQmx_SampClk_Timebase_Rate 0x1303 // Specifies the sample_rate of the Sample Clock Timebase. Some applications require that you specify a sample_rate when you use any signal other than the onboard Sample Clock Timebase. NI-DAQmx requires this sample_rate to calculate other timing parameters. -#define -DAQmx_SampClk_Timebase_Src 0x1308 // Specifies the terminal of the signal to use as the Sample Clock Timebase. -#define -DAQmx_SampClk_Timebase_ActiveEdge 0x18EC // Specifies on which edge to recognize a Sample Clock Timebase pulse. This property is useful primarily when the signal you use as the Sample Clock Timebase is not a periodic clock. -#define -DAQmx_SampClk_Timebase_MasterTimebaseDiv 0x1305 // Specifies the number of pulses of the Master Timebase needed to produce a single pulse of the Sample Clock Timebase. -#define -DAQmx_SampClkTimebase_Term 0x2F1C // Indicates the name of the internal Sample Clock Timebase terminal for the task. This property does not return the name of the Sample Clock Timebase source terminal specified with Source. -#define -DAQmx_SampClk_DigFltr_Enable 0x221E // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_SampQuant_SampMode 0x1300 // Specifies if a task acquires or generates a finite number of samples or if it continuously acquires or generates samples. +#define DAQmx_SampQuant_SampPerChan 0x1310 // Specifies the number of samples to acquire or generate for each channel if Sample Mode is DAQmx_Val_FiniteSamps. If Sample Mode is DAQmx_Val_ContSamps, NI-DAQmx uses this value to determine the buffer size. +#define DAQmx_SampTimingType 0x1347 // Specifies the type of sample timing to use for the task. +#define DAQmx_SampClk_Rate 0x1344 // Specifies the sampling sample_rate in samples per channel per second. If you use an external source for the Sample Clock, set this input to the maximum expected sample_rate of that clock. +#define DAQmx_SampClk_MaxRate 0x22C8 // Indicates the maximum Sample Clock sample_rate supported by the task, based on other timing settings. For output tasks, the maximum Sample Clock sample_rate is the maximum sample_rate of the DAC. For input tasks, NI-DAQmx calculates the maximum sampling sample_rate differently for multiplexed devices than simultaneous sampling devices. +#define DAQmx_SampClk_Src 0x1852 // Specifies the terminal of the signal to use as the Sample Clock. +#define DAQmx_SampClk_ActiveEdge 0x1301 // Specifies on which edge of a clock pulse sampling takes place. This property is useful primarily when the signal you use as the Sample Clock is not a periodic clock. +#define DAQmx_SampClk_OverrunBehavior 0x2EFC // Specifies the action to take if Sample Clock edges occur faster than the device can handle them. +#define DAQmx_SampClk_UnderflowBehavior 0x2961 // Specifies the action to take when the onboard memory of the device becomes empty. In either case, the sample clock does not stop. +#define DAQmx_SampClk_TimebaseDiv 0x18EB // Specifies the number of Sample Clock Timebase pulses needed to produce a single Sample Clock pulse. +#define DAQmx_SampClk_Term 0x2F1B // Indicates the name of the internal Sample Clock terminal for the task. This property does not return the name of the Sample Clock source terminal specified with Source. +#define DAQmx_SampClk_Timebase_Rate 0x1303 // Specifies the sample_rate of the Sample Clock Timebase. Some applications require that you specify a sample_rate when you use any signal other than the onboard Sample Clock Timebase. NI-DAQmx requires this sample_rate to calculate other timing parameters. +#define DAQmx_SampClk_Timebase_Src 0x1308 // Specifies the terminal of the signal to use as the Sample Clock Timebase. +#define DAQmx_SampClk_Timebase_ActiveEdge 0x18EC // Specifies on which edge to recognize a Sample Clock Timebase pulse. This property is useful primarily when the signal you use as the Sample Clock Timebase is not a periodic clock. +#define DAQmx_SampClk_Timebase_MasterTimebaseDiv 0x1305 // Specifies the number of pulses of the Master Timebase needed to produce a single pulse of the Sample Clock Timebase. +#define DAQmx_SampClkTimebase_Term 0x2F1C // Indicates the name of the internal Sample Clock Timebase terminal for the task. This property does not return the name of the Sample Clock Timebase source terminal specified with Source. +#define DAQmx_SampClk_DigFltr_Enable 0x221E // Specifies whether to apply the pulse width filter to the signal. #define DAQmx_SampClk_DigFltr_MinPulseWidth 0x221F // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_SampClk_DigFltr_TimebaseSrc 0x2220 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_SampClk_DigFltr_TimebaseRate 0x2221 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_SampClk_DigSync_Enable 0x2222 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_SampClk_WriteWfm_UseInitialWfmDT 0x30FC // Specifies that the value of Rate will be determined by the dt component of the initial DAQmx Write waveform input for Output tasks. -#define -DAQmx_Hshk_DelayAfterXfer 0x22C2 // Specifies the number of seconds to wait after a handshake cycle before starting a new handshake cycle. -#define -DAQmx_Hshk_StartCond 0x22C3 // Specifies the point in the handshake cycle that the device is in when the task starts. -#define -DAQmx_Hshk_SampleInputDataWhen 0x22C4 // Specifies on which edge of the Handshake Trigger an input task latches the data from the peripheral device. -#define -DAQmx_ChangeDetect_DI_RisingEdgePhysicalChans 0x2195 // Specifies the names of the digital lines or ports on which to detect rising edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. -#define -DAQmx_ChangeDetect_DI_FallingEdgePhysicalChans 0x2196 // Specifies the names of the digital lines or ports on which to detect falling edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. -#define -DAQmx_ChangeDetect_DI_Tristate 0x2EFA // Specifies whether to tristate lines specified with Rising Edge Physical Channels and Falling Edge Physical Channels that are not in a virtual channel in the task. If you set this property to TRUE, NI-DAQmx tristates rising/falling edge lines that are not in a virtual channel in the task. If you set this property to FALSE, NI-DAQmx does not modify the configuration of rising/falling edge lines that are not in a vir... -#define -DAQmx_OnDemand_SimultaneousAOEnable 0x21A0 // Specifies whether to update all channels in the task simultaneously, rather than updating channels independently when you write a sample to that channel. -#define -DAQmx_Implicit_UnderflowBehavior 0x2EFD // Specifies the action to take when the onboard memory of the device becomes empty. -#define -DAQmx_AIConv_Rate 0x1848 // Specifies in Hertz the sample_rate at which to clock the analog-to-digital converter. This clock is specific to the analog input section of multiplexed devices. -#define -DAQmx_AIConv_MaxRate 0x22C9 // Indicates the maximum convert sample_rate supported by the task, given the current devices and channel count. -#define -DAQmx_AIConv_Src 0x1502 // Specifies the terminal of the signal to use as the AI Convert Clock. -#define -DAQmx_AIConv_ActiveEdge 0x1853 // Specifies on which edge of the clock pulse an analog-to-digital conversion takes place. -#define -DAQmx_AIConv_TimebaseDiv 0x1335 // Specifies the number of AI Convert Clock Timebase pulses needed to produce a single AI Convert Clock pulse. -#define -DAQmx_AIConv_Timebase_Src 0x1339 // Specifies the terminal of the signal to use as the AI Convert Clock Timebase. -#define -DAQmx_DelayFromSampClk_DelayUnits 0x1304 // Specifies the units of Delay. -#define -DAQmx_DelayFromSampClk_Delay 0x1317 // Specifies the amount of time to wait after receiving a Sample Clock edge before beginning to acquire the sample. This value is in the units you specify with Delay Units. -#define -DAQmx_AIConv_DigFltr_Enable 0x2EDC // Specifies whether to apply a digital filter to the AI Convert Clock. -#define -DAQmx_AIConv_DigFltr_MinPulseWidth 0x2EDD // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AIConv_DigFltr_TimebaseSrc 0x2EDE // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AIConv_DigFltr_TimebaseRate 0x2EDF // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AIConv_DigSync_Enable 0x2EE0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_MasterTimebase_Rate 0x1495 // Specifies the sample_rate of the Master Timebase. -#define -DAQmx_MasterTimebase_Src 0x1343 // Specifies the terminal of the signal to use as the Master Timebase. On an E Series device, you can choose only between the onboard 20MHz Timebase or the RTSI7 terminal. -#define -DAQmx_RefClk_Rate 0x1315 // Specifies the frequency of the Reference Clock. -#define -DAQmx_RefClk_Src 0x1316 // Specifies the terminal of the signal to use as the Reference Clock. -#define -DAQmx_SyncPulse_Type 0x3136 // Specifies the type of sync pulse used in the task. -#define -DAQmx_SyncPulse_Src 0x223D // Specifies the terminal of the signal to use as the synchronization pulse. The synchronization pulse resets the clock dividers and the ADCs/DACs on the device. -#define -DAQmx_SyncPulse_Time_When 0x3137 // Specifies the start time of the sync pulse. -#define -DAQmx_SyncPulse_Time_Timescale 0x3138 // Specifies the timescale to be used for timestamps for a sync pulse. -#define -DAQmx_SyncPulse_SyncTime 0x223E // Indicates in seconds the delay required to reset the ADCs/DACs after the device receives the synchronization pulse. -#define -DAQmx_SyncPulse_MinDelayToStart 0x223F // Specifies in seconds the amount of time that elapses after the master device issues the synchronization pulse before the task starts. -#define -DAQmx_SyncPulse_ResetTime 0x2F7C // Indicates in seconds the amount of time required for the ADCs or DACs on the device to reset. When synchronizing devices, query this property on all devices and note the largest reset time. Then, for each device, subtract the value of this property from the largest reset time and set Reset Delay to the resulting value. -#define -DAQmx_SyncPulse_ResetDelay 0x2F7D // Specifies in seconds the amount of time to wait after the Synchronization Pulse before resetting the ADCs or DACs on the device. When synchronizing devices, query Reset Time on all devices and note the largest reset time. Then, for each device, subtract the reset time from the largest reset time and set this property to the resulting value. -#define -DAQmx_SyncPulse_Term 0x2F85 // Indicates the name of the internal Synchronization Pulse terminal for the task. This property does not return the name of the source terminal. -#define -DAQmx_SyncClk_Interval 0x2F7E // Specifies the interval, in Sample Clock periods, between each internal Synchronization Clock pulse. NI-DAQmx uses this pulse for synchronization of triggers between multiple devices at different rates. Refer to device documentation for information about how to calculate this value. -#define -DAQmx_SampTimingEngine 0x2A26 // Specifies which timing engine to use for the task. -#define -DAQmx_FirstSampTimestamp_Enable 0x3139 // Specifies whether to enable the first sample timestamp. -#define -DAQmx_FirstSampTimestamp_Timescale 0x313B // Specifies the timescale to be used for the first sample timestamp. -#define -DAQmx_FirstSampTimestamp_Val 0x313A // Indicates the timestamp of the first sample. -#define -DAQmx_FirstSampClk_When 0x3182 // Specifies the time of the first sample clock pulse. -#define -DAQmx_FirstSampClk_Timescale 0x3183 // Specifies the timescale to be used for the value of When. -#define -DAQmx_FirstSampClk_Offset 0x31AA // Specifies, in seconds, the offset to apply to the When value. This offset modifies when the first sample clock occurs and is used to account for known delays in the signal path. +#define DAQmx_SampClk_DigFltr_TimebaseSrc 0x2220 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_SampClk_DigFltr_TimebaseRate 0x2221 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_SampClk_DigSync_Enable 0x2222 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_SampClk_WriteWfm_UseInitialWfmDT 0x30FC // Specifies that the value of Rate will be determined by the dt component of the initial DAQmx Write waveform input for Output tasks. +#define DAQmx_Hshk_DelayAfterXfer 0x22C2 // Specifies the number of seconds to wait after a handshake cycle before starting a new handshake cycle. +#define DAQmx_Hshk_StartCond 0x22C3 // Specifies the point in the handshake cycle that the device is in when the task starts. +#define DAQmx_Hshk_SampleInputDataWhen 0x22C4 // Specifies on which edge of the Handshake Trigger an input task latches the data from the peripheral device. +#define DAQmx_ChangeDetect_DI_RisingEdgePhysicalChans 0x2195 // Specifies the names of the digital lines or ports on which to detect rising edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. +#define DAQmx_ChangeDetect_DI_FallingEdgePhysicalChans 0x2196 // Specifies the names of the digital lines or ports on which to detect falling edges. The lines or ports must be used by virtual channels in the task. You also can specify a string that contains a list or range of digital lines or ports. +#define DAQmx_ChangeDetect_DI_Tristate 0x2EFA // Specifies whether to tristate lines specified with Rising Edge Physical Channels and Falling Edge Physical Channels that are not in a virtual channel in the task. If you set this property to TRUE, NI-DAQmx tristates rising/falling edge lines that are not in a virtual channel in the task. If you set this property to FALSE, NI-DAQmx does not modify the configuration of rising/falling edge lines that are not in a vir... +#define DAQmx_OnDemand_SimultaneousAOEnable 0x21A0 // Specifies whether to update all channels in the task simultaneously, rather than updating channels independently when you write a sample to that channel. +#define DAQmx_Implicit_UnderflowBehavior 0x2EFD // Specifies the action to take when the onboard memory of the device becomes empty. +#define DAQmx_AIConv_Rate 0x1848 // Specifies in Hertz the sample_rate at which to clock the analog-to-digital converter. This clock is specific to the analog input section of multiplexed devices. +#define DAQmx_AIConv_MaxRate 0x22C9 // Indicates the maximum convert sample_rate supported by the task, given the current devices and channel count. +#define DAQmx_AIConv_Src 0x1502 // Specifies the terminal of the signal to use as the AI Convert Clock. +#define DAQmx_AIConv_ActiveEdge 0x1853 // Specifies on which edge of the clock pulse an analog-to-digital conversion takes place. +#define DAQmx_AIConv_TimebaseDiv 0x1335 // Specifies the number of AI Convert Clock Timebase pulses needed to produce a single AI Convert Clock pulse. +#define DAQmx_AIConv_Timebase_Src 0x1339 // Specifies the terminal of the signal to use as the AI Convert Clock Timebase. +#define DAQmx_DelayFromSampClk_DelayUnits 0x1304 // Specifies the units of Delay. +#define DAQmx_DelayFromSampClk_Delay 0x1317 // Specifies the amount of time to wait after receiving a Sample Clock edge before beginning to acquire the sample. This value is in the units you specify with Delay Units. +#define DAQmx_AIConv_DigFltr_Enable 0x2EDC // Specifies whether to apply a digital filter to the AI Convert Clock. +#define DAQmx_AIConv_DigFltr_MinPulseWidth 0x2EDD // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AIConv_DigFltr_TimebaseSrc 0x2EDE // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AIConv_DigFltr_TimebaseRate 0x2EDF // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AIConv_DigSync_Enable 0x2EE0 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_MasterTimebase_Rate 0x1495 // Specifies the sample_rate of the Master Timebase. +#define DAQmx_MasterTimebase_Src 0x1343 // Specifies the terminal of the signal to use as the Master Timebase. On an E Series device, you can choose only between the onboard 20MHz Timebase or the RTSI7 terminal. +#define DAQmx_RefClk_Rate 0x1315 // Specifies the frequency of the Reference Clock. +#define DAQmx_RefClk_Src 0x1316 // Specifies the terminal of the signal to use as the Reference Clock. +#define DAQmx_SyncPulse_Type 0x3136 // Specifies the type of sync pulse used in the task. +#define DAQmx_SyncPulse_Src 0x223D // Specifies the terminal of the signal to use as the synchronization pulse. The synchronization pulse resets the clock dividers and the ADCs/DACs on the device. +#define DAQmx_SyncPulse_Time_When 0x3137 // Specifies the start time of the sync pulse. +#define DAQmx_SyncPulse_Time_Timescale 0x3138 // Specifies the timescale to be used for timestamps for a sync pulse. +#define DAQmx_SyncPulse_SyncTime 0x223E // Indicates in seconds the delay required to reset the ADCs/DACs after the device receives the synchronization pulse. +#define DAQmx_SyncPulse_MinDelayToStart 0x223F // Specifies in seconds the amount of time that elapses after the master device issues the synchronization pulse before the task starts. +#define DAQmx_SyncPulse_ResetTime 0x2F7C // Indicates in seconds the amount of time required for the ADCs or DACs on the device to reset. When synchronizing devices, query this property on all devices and note the largest reset time. Then, for each device, subtract the value of this property from the largest reset time and set Reset Delay to the resulting value. +#define DAQmx_SyncPulse_ResetDelay 0x2F7D // Specifies in seconds the amount of time to wait after the Synchronization Pulse before resetting the ADCs or DACs on the device. When synchronizing devices, query Reset Time on all devices and note the largest reset time. Then, for each device, subtract the reset time from the largest reset time and set this property to the resulting value. +#define DAQmx_SyncPulse_Term 0x2F85 // Indicates the name of the internal Synchronization Pulse terminal for the task. This property does not return the name of the source terminal. +#define DAQmx_SyncClk_Interval 0x2F7E // Specifies the interval, in Sample Clock periods, between each internal Synchronization Clock pulse. NI-DAQmx uses this pulse for synchronization of triggers between multiple devices at different rates. Refer to device documentation for information about how to calculate this value. +#define DAQmx_SampTimingEngine 0x2A26 // Specifies which timing engine to use for the task. +#define DAQmx_FirstSampTimestamp_Enable 0x3139 // Specifies whether to enable the first sample timestamp. +#define DAQmx_FirstSampTimestamp_Timescale 0x313B // Specifies the timescale to be used for the first sample timestamp. +#define DAQmx_FirstSampTimestamp_Val 0x313A // Indicates the timestamp of the first sample. +#define DAQmx_FirstSampClk_When 0x3182 // Specifies the time of the first sample clock pulse. +#define DAQmx_FirstSampClk_Timescale 0x3183 // Specifies the timescale to be used for the value of When. +#define DAQmx_FirstSampClk_Offset 0x31AA // Specifies, in seconds, the offset to apply to the When value. This offset modifies when the first sample clock occurs and is used to account for known delays in the signal path. //********** Trigger Attributes ********** -#define -DAQmx_StartTrig_Type 0x1393 // Specifies the type of trigger to use to start a task. -#define -DAQmx_StartTrig_Term 0x2F1E // Indicates the name of the internal Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define -DAQmx_DigEdge_StartTrig_Src 0x1407 // Specifies the name of a terminal where there is a digital signal to use as the source of the Start Trigger. +#define DAQmx_StartTrig_Type 0x1393 // Specifies the type of trigger to use to start a task. +#define DAQmx_StartTrig_Term 0x2F1E // Indicates the name of the internal Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define DAQmx_DigEdge_StartTrig_Src 0x1407 // Specifies the name of a terminal where there is a digital signal to use as the source of the Start Trigger. #define DAQmx_DigEdge_StartTrig_Edge 0x1404 // Specifies on which edge of a digital pulse to start acquiring or generating samples. -#define -DAQmx_DigEdge_StartTrig_DigFltr_Enable 0x2223 // Specifies whether to apply a digital filter to the trigger signal. -#define -DAQmx_DigEdge_StartTrig_DigFltr_MinPulseWidth 0x2224 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_DigEdge_StartTrig_DigFltr_TimebaseSrc 0x2225 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_DigEdge_StartTrig_DigFltr_TimebaseRate 0x2226 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_DigEdge_StartTrig_DigSync_Enable 0x2227 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. If you set this property to TRUE, the device does not recognize and act upon the trigger until the next pulse of the internal timebase. -#define -DAQmx_DigPattern_StartTrig_Src 0x1410 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. -#define -DAQmx_DigPattern_StartTrig_Pattern 0x2186 // Specifies the digital pattern that must be met for the Start Trigger to occur. -#define -DAQmx_DigPattern_StartTrig_When 0x1411 // Specifies whether the Start Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define -DAQmx_AnlgEdge_StartTrig_Src 0x1398 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. -#define -DAQmx_AnlgEdge_StartTrig_Slope 0x1397 // Specifies on which slope of the trigger signal to start acquiring or generating samples. -#define -DAQmx_AnlgEdge_StartTrig_Lvl 0x1396 // Specifies at what threshold in the units of the measurement or generation to start acquiring or generating samples. Use Slope to specify on which slope to trigger on this threshold. -#define -DAQmx_AnlgEdge_StartTrig_Hyst 0x1395 // Specifies a hysteresis level in the units of the measurement or generation. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hyste... -#define -DAQmx_AnlgEdge_StartTrig_Coupling 0x2233 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgEdge_StartTrig_DigFltr_Enable 0x2EE1 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define -DAQmx_AnlgEdge_StartTrig_DigFltr_MinPulseWidth 0x2EE2 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseSrc 0x2EE3 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseRate 0x2EE4 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgEdge_StartTrig_DigSync_Enable 0x2EE5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_AnlgMultiEdge_StartTrig_Srcs 0x3121 // Specifies a list and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_StartTrig_Slopes 0x3122 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_StartTrig_Lvls 0x3123 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_StartTrig_Hysts 0x3124 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Start.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Start.AnlgMultiEdge.Lvls minus the hysteresis. If Start.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Start.AnlgEdge... -#define -DAQmx_AnlgMultiEdge_StartTrig_Couplings 0x3125 // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgWin_StartTrig_Src 0x1400 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. -#define -DAQmx_AnlgWin_StartTrig_When 0x1401 // Specifies whether the task starts acquiring or generating samples when the signal enters or leaves the window you specify with Bottom and Top. -#define -DAQmx_AnlgWin_StartTrig_Top 0x1403 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. -#define -DAQmx_AnlgWin_StartTrig_Btm 0x1402 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. -#define -DAQmx_AnlgWin_StartTrig_Coupling 0x2234 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgWin_StartTrig_DigFltr_Enable 0x2EFF // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define -DAQmx_AnlgWin_StartTrig_DigFltr_MinPulseWidth 0x2F00 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseSrc 0x2F01 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseRate 0x2F02 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgWin_StartTrig_DigSync_Enable 0x2F03 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_StartTrig_TrigWhen 0x304D // Specifies when to trigger the start trigger. -#define -DAQmx_StartTrig_Timescale 0x3036 // Specifies the timescale to be used for timestamps used in a time trigger. -#define -DAQmx_StartTrig_TimestampEnable 0x314A // Specifies whether the start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define -DAQmx_StartTrig_TimestampTimescale 0x312D // Specifies the start trigger timestamp timescale. -#define -DAQmx_StartTrig_TimestampVal 0x314B // Indicates the start trigger timestamp value. -#define -DAQmx_StartTrig_Delay 0x1856 // Specifies an amount of time to wait after the Start Trigger is received before acquiring or generating the first sample. This value is in the units you specify with Delay Units. -#define -DAQmx_StartTrig_DelayUnits 0x18C8 // Specifies the units of Delay. -#define -DAQmx_StartTrig_Retriggerable 0x190F // Specifies whether a finite task resets and waits for another Start Trigger after the task completes. When you set this property to TRUE, the device performs a finite acquisition or generation each time the Start Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring or generating signals. -#define -DAQmx_StartTrig_TrigWin 0x311A // Specifies the period of time in seconds after the task starts during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples for any triggers detected. If no triggers are detected during the entire period, then no data will be returned. Ensure the period of time specified covers the entire time... -#define -DAQmx_StartTrig_RetriggerWin 0x311B // Specifies the period of time in seconds after each trigger during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples that it already started. Ensure the period of time specified covers the entire time span desired for retrigger detection to avoid missed triggers. Specifying a Retrigger Win... -#define -DAQmx_StartTrig_MaxNumTrigsToDetect 0x311C // Specifies the maximum number of times the task will detect a start trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number of ... -#define -DAQmx_RefTrig_Type 0x1419 // Specifies the type of trigger to use to mark a reference point for the measurement. -#define -DAQmx_RefTrig_PretrigSamples 0x1445 // Specifies the minimum number of pretrigger samples to acquire from each channel before recognizing the reference trigger. Post-trigger samples per channel are equal to Samples Per Channel minus the number of pretrigger samples per channel. -#define -DAQmx_RefTrig_Term 0x2F1F // Indicates the name of the internal Reference Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define -DAQmx_DigEdge_RefTrig_Src 0x1434 // Specifies the name of a terminal where there is a digital signal to use as the source of the Reference Trigger. -#define -DAQmx_DigEdge_RefTrig_Edge 0x1430 // Specifies on what edge of a digital pulse the Reference Trigger occurs. +#define DAQmx_DigEdge_StartTrig_DigFltr_Enable 0x2223 // Specifies whether to apply a digital filter to the trigger signal. +#define DAQmx_DigEdge_StartTrig_DigFltr_MinPulseWidth 0x2224 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_DigEdge_StartTrig_DigFltr_TimebaseSrc 0x2225 // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_DigEdge_StartTrig_DigFltr_TimebaseRate 0x2226 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_DigEdge_StartTrig_DigSync_Enable 0x2227 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. If you set this property to TRUE, the device does not recognize and act upon the trigger until the next pulse of the internal timebase. +#define DAQmx_DigPattern_StartTrig_Src 0x1410 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. +#define DAQmx_DigPattern_StartTrig_Pattern 0x2186 // Specifies the digital pattern that must be met for the Start Trigger to occur. +#define DAQmx_DigPattern_StartTrig_When 0x1411 // Specifies whether the Start Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define DAQmx_AnlgEdge_StartTrig_Src 0x1398 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. +#define DAQmx_AnlgEdge_StartTrig_Slope 0x1397 // Specifies on which slope of the trigger signal to start acquiring or generating samples. +#define DAQmx_AnlgEdge_StartTrig_Lvl 0x1396 // Specifies at what threshold in the units of the measurement or generation to start acquiring or generating samples. Use Slope to specify on which slope to trigger on this threshold. +#define DAQmx_AnlgEdge_StartTrig_Hyst 0x1395 // Specifies a hysteresis level in the units of the measurement or generation. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hyste... +#define DAQmx_AnlgEdge_StartTrig_Coupling 0x2233 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgEdge_StartTrig_DigFltr_Enable 0x2EE1 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define DAQmx_AnlgEdge_StartTrig_DigFltr_MinPulseWidth 0x2EE2 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseSrc 0x2EE3 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgEdge_StartTrig_DigFltr_TimebaseRate 0x2EE4 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgEdge_StartTrig_DigSync_Enable 0x2EE5 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_AnlgMultiEdge_StartTrig_Srcs 0x3121 // Specifies a list and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_StartTrig_Slopes 0x3122 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_StartTrig_Lvls 0x3123 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_StartTrig_Hysts 0x3124 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Start.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Start.AnlgMultiEdge.Lvls minus the hysteresis. If Start.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Start.AnlgEdge... +#define DAQmx_AnlgMultiEdge_StartTrig_Couplings 0x3125 // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Start.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgWin_StartTrig_Src 0x1400 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Start Trigger. +#define DAQmx_AnlgWin_StartTrig_When 0x1401 // Specifies whether the task starts acquiring or generating samples when the signal enters or leaves the window you specify with Bottom and Top. +#define DAQmx_AnlgWin_StartTrig_Top 0x1403 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. +#define DAQmx_AnlgWin_StartTrig_Btm 0x1402 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. +#define DAQmx_AnlgWin_StartTrig_Coupling 0x2234 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgWin_StartTrig_DigFltr_Enable 0x2EFF // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define DAQmx_AnlgWin_StartTrig_DigFltr_MinPulseWidth 0x2F00 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseSrc 0x2F01 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgWin_StartTrig_DigFltr_TimebaseRate 0x2F02 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgWin_StartTrig_DigSync_Enable 0x2F03 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_StartTrig_TrigWhen 0x304D // Specifies when to trigger the start trigger. +#define DAQmx_StartTrig_Timescale 0x3036 // Specifies the timescale to be used for timestamps used in a time trigger. +#define DAQmx_StartTrig_TimestampEnable 0x314A // Specifies whether the start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define DAQmx_StartTrig_TimestampTimescale 0x312D // Specifies the start trigger timestamp timescale. +#define DAQmx_StartTrig_TimestampVal 0x314B // Indicates the start trigger timestamp value. +#define DAQmx_StartTrig_Delay 0x1856 // Specifies an amount of time to wait after the Start Trigger is received before acquiring or generating the first sample. This value is in the units you specify with Delay Units. +#define DAQmx_StartTrig_DelayUnits 0x18C8 // Specifies the units of Delay. +#define DAQmx_StartTrig_Retriggerable 0x190F // Specifies whether a finite task resets and waits for another Start Trigger after the task completes. When you set this property to TRUE, the device performs a finite acquisition or generation each time the Start Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring or generating signals. +#define DAQmx_StartTrig_TrigWin 0x311A // Specifies the period of time in seconds after the task starts during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples for any triggers detected. If no triggers are detected during the entire period, then no data will be returned. Ensure the period of time specified covers the entire time... +#define DAQmx_StartTrig_RetriggerWin 0x311B // Specifies the period of time in seconds after each trigger during which the device may trigger. Once the window has expired, the device stops detecting triggers, and the task will finish after the device finishes acquiring post-trigger samples that it already started. Ensure the period of time specified covers the entire time span desired for retrigger detection to avoid missed triggers. Specifying a Retrigger Win... +#define DAQmx_StartTrig_MaxNumTrigsToDetect 0x311C // Specifies the maximum number of times the task will detect a start trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number of ... +#define DAQmx_RefTrig_Type 0x1419 // Specifies the type of trigger to use to mark a reference point for the measurement. +#define DAQmx_RefTrig_PretrigSamples 0x1445 // Specifies the minimum number of pretrigger samples to acquire from each channel before recognizing the reference trigger. Post-trigger samples per channel are equal to Samples Per Channel minus the number of pretrigger samples per channel. +#define DAQmx_RefTrig_Term 0x2F1F // Indicates the name of the internal Reference Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define DAQmx_DigEdge_RefTrig_Src 0x1434 // Specifies the name of a terminal where there is a digital signal to use as the source of the Reference Trigger. +#define DAQmx_DigEdge_RefTrig_Edge 0x1430 // Specifies on what edge of a digital pulse the Reference Trigger occurs. #define DAQmx_DigEdge_RefTrig_DigFltr_Enable 0x2ED7 // Specifies whether to apply a digital filter to the trigger signal. -#define -DAQmx_DigEdge_RefTrig_DigFltr_MinPulseWidth 0x2ED8 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_DigEdge_RefTrig_DigFltr_TimebaseSrc 0x2ED9 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_DigEdge_RefTrig_DigFltr_TimebaseRate 0x2EDA // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_DigEdge_RefTrig_DigSync_Enable 0x2EDB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_DigPattern_RefTrig_Src 0x1437 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. -#define -DAQmx_DigPattern_RefTrig_Pattern 0x2187 // Specifies the digital pattern that must be met for the Reference Trigger to occur. -#define -DAQmx_DigPattern_RefTrig_When 0x1438 // Specifies whether the Reference Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define -DAQmx_AnlgEdge_RefTrig_Src 0x1424 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. -#define -DAQmx_AnlgEdge_RefTrig_Slope 0x1423 // Specifies on which slope of the source signal the Reference Trigger occurs. -#define -DAQmx_AnlgEdge_RefTrig_Lvl 0x1422 // Specifies in the units of the measurement the threshold at which the Reference Trigger occurs. Use Slope to specify on which slope to trigger at this threshold. -#define -DAQmx_AnlgEdge_RefTrig_Hyst 0x1421 // Specifies a hysteresis level in the units of the measurement. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hysteresis. -#define -DAQmx_AnlgEdge_RefTrig_Coupling 0x2235 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgEdge_RefTrig_DigFltr_Enable 0x2EE6 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define -DAQmx_AnlgEdge_RefTrig_DigFltr_MinPulseWidth 0x2EE7 // Specifies in seconds the minimum pulse width thefilter recognizes. -#define -DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseSrc 0x2EE8 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseRate 0x2EE9 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgEdge_RefTrig_DigSync_Enable 0x2EEA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_AnlgMultiEdge_RefTrig_Srcs 0x3126 // Specifies a List and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_RefTrig_Slopes 0x3127 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_RefTrig_Lvls 0x3128 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgMultiEdge_RefTrig_Hysts 0x3129 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Ref.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Ref.AnlgMultiEdge.Lvls minus the hysteresis. If Ref.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Ref.AnlgEdge.Lvl plu... -#define -DAQmx_AnlgMultiEdge_RefTrig_Couplings 0x312A // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. -#define -DAQmx_AnlgWin_RefTrig_Src 0x1426 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. -#define -DAQmx_AnlgWin_RefTrig_When 0x1427 // Specifies whether the Reference Trigger occurs when the source signal enters the window or when it leaves the window. Use Bottom and Top to specify the window. -#define -DAQmx_AnlgWin_RefTrig_Top 0x1429 // Specifies the upper limit of the window. Specify this value in the units of the measurement. -#define -DAQmx_AnlgWin_RefTrig_Btm 0x1428 // Specifies the lower limit of the window. Specify this value in the units of the measurement. -#define -DAQmx_AnlgWin_RefTrig_Coupling 0x1857 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgWin_RefTrig_DigFltr_Enable 0x2EEB // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define -DAQmx_AnlgWin_RefTrig_DigFltr_MinPulseWidth 0x2EEC // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseSrc 0x2EED // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseRate 0x2EEE // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgWin_RefTrig_DigSync_Enable 0x2EEF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_RefTrig_AutoTrigEnable 0x2EC1 // Specifies whether to send a software trigger to the device when a hardware trigger is no longer active in order to prevent a timeout. -#define -DAQmx_RefTrig_AutoTriggered 0x2EC2 // Indicates whether a completed acquisition was triggered by the auto trigger. If an acquisition has not completed after the task starts, this property returns FALSE. This property is only applicable when Enable is TRUE. -#define -DAQmx_RefTrig_TimestampEnable 0x312E // Specifies whether the reference trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define -DAQmx_RefTrig_TimestampTimescale 0x3130 // Specifies the reference trigger timestamp timescale. -#define -DAQmx_RefTrig_TimestampVal 0x312F // Indicates the reference trigger timestamp value. -#define -DAQmx_RefTrig_Delay 0x1483 // Specifies in seconds the time to wait after the device receives the Reference Trigger before switching from pretrigger to posttrigger samples. -#define -DAQmx_RefTrig_Retriggerable 0x311D // Specifies whether a finite task resets, acquires pretrigger samples, and waits for another Reference Trigger after the task completes. When you set this property to TRUE, the device will acquire post-trigger samples, reset, and acquire pretrigger samples each time the Reference Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring signals. -#define -DAQmx_RefTrig_TrigWin 0x311E // Specifies the duration in seconds after the task starts during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. If no triggers are detected during the entire period, then no data will be returned. Specifying a Trigger Window of -1 causes the window to be infinite. -#define -DAQmx_RefTrig_RetriggerWin 0x311F // Specifies the duration in seconds after each trigger during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. Specifying a Retrigger Window of -1 causes the window to be infinite. -#define -DAQmx_RefTrig_MaxNumTrigsToDetect 0x3120 // Specifies the maximum number of times the task will detect a reference trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number... -#define -DAQmx_AdvTrig_Type 0x1365 // (Deprecated) Specifies the type of trigger to use to advance to the next entry in a switch scan list. -#define -DAQmx_DigEdge_AdvTrig_Src 0x1362 // (Deprecated) Specifies the name of a terminal where there is a digital signal to use as the source of the Advance Trigger. -#define -DAQmx_DigEdge_AdvTrig_Edge 0x1360 // (Deprecated) Specifies on which edge of a digital signal to advance to the next entry in a scan list. -#define -DAQmx_DigEdge_AdvTrig_DigFltr_Enable 0x2238 // (Deprecated) Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_HshkTrig_Type 0x22B7 // Specifies the type of Handshake Trigger to use. -#define -DAQmx_Interlocked_HshkTrig_Src 0x22B8 // Specifies the source terminal of the Handshake Trigger. -#define -DAQmx_Interlocked_HshkTrig_AssertedLvl 0x22B9 // Specifies the asserted level of the Handshake Trigger. +#define DAQmx_DigEdge_RefTrig_DigFltr_MinPulseWidth 0x2ED8 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_DigEdge_RefTrig_DigFltr_TimebaseSrc 0x2ED9 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_DigEdge_RefTrig_DigFltr_TimebaseRate 0x2EDA // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_DigEdge_RefTrig_DigSync_Enable 0x2EDB // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_DigPattern_RefTrig_Src 0x1437 // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the order of the physical channels within the port is in ascending order. +#define DAQmx_DigPattern_RefTrig_Pattern 0x2187 // Specifies the digital pattern that must be met for the Reference Trigger to occur. +#define DAQmx_DigPattern_RefTrig_When 0x1438 // Specifies whether the Reference Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define DAQmx_AnlgEdge_RefTrig_Src 0x1424 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. +#define DAQmx_AnlgEdge_RefTrig_Slope 0x1423 // Specifies on which slope of the source signal the Reference Trigger occurs. +#define DAQmx_AnlgEdge_RefTrig_Lvl 0x1422 // Specifies in the units of the measurement the threshold at which the Reference Trigger occurs. Use Slope to specify on which slope to trigger at this threshold. +#define DAQmx_AnlgEdge_RefTrig_Hyst 0x1421 // Specifies a hysteresis level in the units of the measurement. If Slope is DAQmx_Val_RisingSlope, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Slope is DAQmx_Val_FallingSlope, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hysteresis. +#define DAQmx_AnlgEdge_RefTrig_Coupling 0x2235 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgEdge_RefTrig_DigFltr_Enable 0x2EE6 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define DAQmx_AnlgEdge_RefTrig_DigFltr_MinPulseWidth 0x2EE7 // Specifies in seconds the minimum pulse width thefilter recognizes. +#define DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseSrc 0x2EE8 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgEdge_RefTrig_DigFltr_TimebaseRate 0x2EE9 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgEdge_RefTrig_DigSync_Enable 0x2EEA // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_AnlgMultiEdge_RefTrig_Srcs 0x3126 // Specifies a List and/or range of analog sources that are going to be used for Analog triggering. Each source corresponds to an element in each of the Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_RefTrig_Slopes 0x3127 // Specifies an array of slopes on which to trigger task to start generating or acquiring samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_RefTrig_Lvls 0x3128 // Specifies an array of thresholds in the units of the measurement or generation to start acquiring or generating samples. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgMultiEdge_RefTrig_Hysts 0x3129 // Specifies an array of hysteresis levels in the units of the measurement or generation. If the corresponding element of Ref.AnlgMultiEdge.Slopes is Rising, the trigger does not deassert until the source signal passes below the corresponding element of Ref.AnlgMultiEdge.Lvls minus the hysteresis. If Ref.AnlgEdge.Slope is Falling, the trigger does not deassert until the source signal passes above Ref.AnlgEdge.Lvl plu... +#define DAQmx_AnlgMultiEdge_RefTrig_Couplings 0x312A // Specifies an array that describes the couplings for the corresponding source signal of the trigger if the source is a terminal rather than a virtual channel. Each element of the array corresponds to a source in Ref.AnlgMultiEdge.Srcs and an element in each of the other Analog Multi Edge property arrays, if they are not empty. +#define DAQmx_AnlgWin_RefTrig_Src 0x1426 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the Reference Trigger. +#define DAQmx_AnlgWin_RefTrig_When 0x1427 // Specifies whether the Reference Trigger occurs when the source signal enters the window or when it leaves the window. Use Bottom and Top to specify the window. +#define DAQmx_AnlgWin_RefTrig_Top 0x1429 // Specifies the upper limit of the window. Specify this value in the units of the measurement. +#define DAQmx_AnlgWin_RefTrig_Btm 0x1428 // Specifies the lower limit of the window. Specify this value in the units of the measurement. +#define DAQmx_AnlgWin_RefTrig_Coupling 0x1857 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgWin_RefTrig_DigFltr_Enable 0x2EEB // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define DAQmx_AnlgWin_RefTrig_DigFltr_MinPulseWidth 0x2EEC // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseSrc 0x2EED // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgWin_RefTrig_DigFltr_TimebaseRate 0x2EEE // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgWin_RefTrig_DigSync_Enable 0x2EEF // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_RefTrig_AutoTrigEnable 0x2EC1 // Specifies whether to send a software trigger to the device when a hardware trigger is no longer active in order to prevent a timeout. +#define DAQmx_RefTrig_AutoTriggered 0x2EC2 // Indicates whether a completed acquisition was triggered by the auto trigger. If an acquisition has not completed after the task starts, this property returns FALSE. This property is only applicable when Enable is TRUE. +#define DAQmx_RefTrig_TimestampEnable 0x312E // Specifies whether the reference trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define DAQmx_RefTrig_TimestampTimescale 0x3130 // Specifies the reference trigger timestamp timescale. +#define DAQmx_RefTrig_TimestampVal 0x312F // Indicates the reference trigger timestamp value. +#define DAQmx_RefTrig_Delay 0x1483 // Specifies in seconds the time to wait after the device receives the Reference Trigger before switching from pretrigger to posttrigger samples. +#define DAQmx_RefTrig_Retriggerable 0x311D // Specifies whether a finite task resets, acquires pretrigger samples, and waits for another Reference Trigger after the task completes. When you set this property to TRUE, the device will acquire post-trigger samples, reset, and acquire pretrigger samples each time the Reference Trigger occurs until the task stops. The device ignores a trigger if it is in the process of acquiring signals. +#define DAQmx_RefTrig_TrigWin 0x311E // Specifies the duration in seconds after the task starts during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. If no triggers are detected during the entire period, then no data will be returned. Specifying a Trigger Window of -1 causes the window to be infinite. +#define DAQmx_RefTrig_RetriggerWin 0x311F // Specifies the duration in seconds after each trigger during which the device may trigger. Once the window has passed, the device stops detecting triggers, and the task will stop after the device finishes acquiring post-trigger samples that it already started. Specifying a Retrigger Window of -1 causes the window to be infinite. +#define DAQmx_RefTrig_MaxNumTrigsToDetect 0x3120 // Specifies the maximum number of times the task will detect a reference trigger during the task. The number of times a trigger is detected and acted upon by the module may be less than the specified amount if the task stops early because of trigger/retrigger window expiration. Specifying the Maximum Number of Triggers to Detect to be 0 causes the driver to automatically set this value to the maximum possible number... +#define DAQmx_AdvTrig_Type 0x1365 // (Deprecated) Specifies the type of trigger to use to advance to the next entry in a switch scan list. +#define DAQmx_DigEdge_AdvTrig_Src 0x1362 // (Deprecated) Specifies the name of a terminal where there is a digital signal to use as the source of the Advance Trigger. +#define DAQmx_DigEdge_AdvTrig_Edge 0x1360 // (Deprecated) Specifies on which edge of a digital signal to advance to the next entry in a scan list. +#define DAQmx_DigEdge_AdvTrig_DigFltr_Enable 0x2238 // (Deprecated) Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_HshkTrig_Type 0x22B7 // Specifies the type of Handshake Trigger to use. +#define DAQmx_Interlocked_HshkTrig_Src 0x22B8 // Specifies the source terminal of the Handshake Trigger. +#define DAQmx_Interlocked_HshkTrig_AssertedLvl 0x22B9 // Specifies the asserted level of the Handshake Trigger. #define DAQmx_PauseTrig_Type 0x1366 // Specifies the type of trigger to use to pause a task. -#define -DAQmx_PauseTrig_Term 0x2F20 // Indicates the name of the internal Pause Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define -DAQmx_AnlgLvl_PauseTrig_Src 0x1370 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. -#define -DAQmx_AnlgLvl_PauseTrig_When 0x1371 // Specifies whether the task pauses above or below the threshold you specify with Level. -#define -DAQmx_AnlgLvl_PauseTrig_Lvl 0x1369 // Specifies the threshold at which to pause the task. Specify this value in the units of the measurement or generation. Use Pause When to specify whether the task pauses above or below this threshold. -#define -DAQmx_AnlgLvl_PauseTrig_Hyst 0x1368 // Specifies a hysteresis level in the units of the measurement or generation. If Pause When is DAQmx_Val_AboveLvl, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Pause When is DAQmx_Val_BelowLvl, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hys... -#define -DAQmx_AnlgLvl_PauseTrig_Coupling 0x2236 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgLvl_PauseTrig_DigFltr_Enable 0x2EF0 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. -#define -DAQmx_AnlgLvl_PauseTrig_DigFltr_MinPulseWidth 0x2EF1 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseSrc 0x2EF2 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseRate 0x2EF3 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgLvl_PauseTrig_DigSync_Enable 0x2EF4 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_AnlgWin_PauseTrig_Src 0x1373 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. -#define -DAQmx_AnlgWin_PauseTrig_When 0x1374 // Specifies whether the task pauses while the trigger signal is inside or outside the window you specify with Bottom and Top. -#define -DAQmx_AnlgWin_PauseTrig_Top 0x1376 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. -#define -DAQmx_AnlgWin_PauseTrig_Btm 0x1375 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. -#define -DAQmx_AnlgWin_PauseTrig_Coupling 0x2237 // Specifies the coupling for the source signal of the terminal if the source is a terminal rather than a virtual channel. -#define -DAQmx_AnlgWin_PauseTrig_DigFltr_Enable 0x2EF5 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. -#define -DAQmx_AnlgWin_PauseTrig_DigFltr_MinPulseWidth 0x2EF6 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseSrc 0x2EF7 // Specifies the terminal of the signal to use as the timebase of the digital filter. -#define -DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseRate 0x2EF8 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_AnlgWin_PauseTrig_DigSync_Enable 0x2EF9 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_DigLvl_PauseTrig_Src 0x1379 // Specifies the name of a terminal where there is a digital signal to use as the source of the Pause Trigger. -#define -DAQmx_DigLvl_PauseTrig_When 0x1380 // Specifies whether the task pauses while the signal is high or low. -#define -DAQmx_DigLvl_PauseTrig_DigFltr_Enable 0x2228 // Specifies whether to apply a digital filter to the trigger signal. -#define -DAQmx_DigLvl_PauseTrig_DigFltr_MinPulseWidth 0x2229 // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseSrc 0x222A // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseRate 0x222B // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_DigLvl_PauseTrig_DigSync_Enable 0x222C // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_DigPattern_PauseTrig_Src 0x216F // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the lines within the port are in ascending order. -#define -DAQmx_DigPattern_PauseTrig_Pattern 0x2188 // Specifies the digital pattern that must be met for the Pause Trigger to occur. -#define -DAQmx_DigPattern_PauseTrig_When 0x2170 // Specifies if the Pause Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. -#define -DAQmx_ArmStartTrig_Type 0x1414 // Specifies the type of trigger to use to arm the task for a Start Trigger. If you configure an Arm Start Trigger, the task does not respond to a Start Trigger until the device receives the Arm Start Trigger. -#define -DAQmx_ArmStart_Term 0x2F7F // Indicates the name of the internal Arm Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. -#define -DAQmx_DigEdge_ArmStartTrig_Src 0x1417 // Specifies the name of a terminal where there is a digital signal to use as the source of the Arm Start Trigger. -#define -DAQmx_DigEdge_ArmStartTrig_Edge 0x1415 // Specifies on which edge of a digital signal to arm the task for a Start Trigger. -#define -DAQmx_DigEdge_ArmStartTrig_DigFltr_Enable 0x222D // Specifies whether to apply the pulse width filter to the signal. -#define -DAQmx_DigEdge_ArmStartTrig_DigFltr_MinPulseWidth 0x222E // Specifies in seconds the minimum pulse width the filter recognizes. -#define -DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseSrc 0x222F // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. -#define -DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseRate 0x2230 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. -#define -DAQmx_DigEdge_ArmStartTrig_DigSync_Enable 0x2231 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. -#define -DAQmx_ArmStartTrig_TrigWhen 0x3131 // Specifies when to trigger the arm start trigger. -#define -DAQmx_ArmStartTrig_Timescale 0x3132 // Specifies the timescale to be used for timestamps used in an arm start time trigger. -#define -DAQmx_ArmStartTrig_TimestampEnable 0x3133 // Specifies whether the arm start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. -#define -DAQmx_ArmStartTrig_TimestampTimescale 0x3135 // Specifies the arm start trigger timestamp timescale. -#define -DAQmx_ArmStartTrig_TimestampVal 0x3134 // Indicates the arm start trigger timestamp value. -#define -DAQmx_Trigger_SyncType 0x2F80 // Specifies the role of the device in a synchronized system. Setting this value to DAQmx_Val_Master or DAQmx_Val_Slave enables trigger skew correction. If you enable trigger skew correction, set this property to DAQmx_Val_Master on only one device, and set this property to DAQmx_Val_Slave on the other devices. +#define DAQmx_PauseTrig_Term 0x2F20 // Indicates the name of the internal Pause Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define DAQmx_AnlgLvl_PauseTrig_Src 0x1370 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. +#define DAQmx_AnlgLvl_PauseTrig_When 0x1371 // Specifies whether the task pauses above or below the threshold you specify with Level. +#define DAQmx_AnlgLvl_PauseTrig_Lvl 0x1369 // Specifies the threshold at which to pause the task. Specify this value in the units of the measurement or generation. Use Pause When to specify whether the task pauses above or below this threshold. +#define DAQmx_AnlgLvl_PauseTrig_Hyst 0x1368 // Specifies a hysteresis level in the units of the measurement or generation. If Pause When is DAQmx_Val_AboveLvl, the trigger does not deassert until the source signal passes below Level minus the hysteresis. If Pause When is DAQmx_Val_BelowLvl, the trigger does not deassert until the source signal passes above Level plus the hysteresis. Hysteresis is always enabled. Set this property to a non-zero value to use hys... +#define DAQmx_AnlgLvl_PauseTrig_Coupling 0x2236 // Specifies the coupling for the source signal of the trigger if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgLvl_PauseTrig_DigFltr_Enable 0x2EF0 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay above or below the trigger level for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the hysteresis window raschematicly. +#define DAQmx_AnlgLvl_PauseTrig_DigFltr_MinPulseWidth 0x2EF1 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseSrc 0x2EF2 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgLvl_PauseTrig_DigFltr_TimebaseRate 0x2EF3 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgLvl_PauseTrig_DigSync_Enable 0x2EF4 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_AnlgWin_PauseTrig_Src 0x1373 // Specifies the name of a virtual channel or terminal where there is an analog signal to use as the source of the trigger. +#define DAQmx_AnlgWin_PauseTrig_When 0x1374 // Specifies whether the task pauses while the trigger signal is inside or outside the window you specify with Bottom and Top. +#define DAQmx_AnlgWin_PauseTrig_Top 0x1376 // Specifies the upper limit of the window. Specify this value in the units of the measurement or generation. +#define DAQmx_AnlgWin_PauseTrig_Btm 0x1375 // Specifies the lower limit of the window. Specify this value in the units of the measurement or generation. +#define DAQmx_AnlgWin_PauseTrig_Coupling 0x2237 // Specifies the coupling for the source signal of the terminal if the source is a terminal rather than a virtual channel. +#define DAQmx_AnlgWin_PauseTrig_DigFltr_Enable 0x2EF5 // Specifies whether to apply a digital filter to the digital output of the analog triggering circuitry (the Analog Comparison Event). When enabled, the analog signal must stay within the trigger window for the minimum pulse width before being recognized. Use filtering for noisy trigger signals that transition in and out of the window raschematicly. +#define DAQmx_AnlgWin_PauseTrig_DigFltr_MinPulseWidth 0x2EF6 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseSrc 0x2EF7 // Specifies the terminal of the signal to use as the timebase of the digital filter. +#define DAQmx_AnlgWin_PauseTrig_DigFltr_TimebaseRate 0x2EF8 // Specifies in hertz the sample_rate of the digital filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_AnlgWin_PauseTrig_DigSync_Enable 0x2EF9 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_DigLvl_PauseTrig_Src 0x1379 // Specifies the name of a terminal where there is a digital signal to use as the source of the Pause Trigger. +#define DAQmx_DigLvl_PauseTrig_When 0x1380 // Specifies whether the task pauses while the signal is high or low. +#define DAQmx_DigLvl_PauseTrig_DigFltr_Enable 0x2228 // Specifies whether to apply a digital filter to the trigger signal. +#define DAQmx_DigLvl_PauseTrig_DigFltr_MinPulseWidth 0x2229 // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseSrc 0x222A // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_DigLvl_PauseTrig_DigFltr_TimebaseRate 0x222B // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_DigLvl_PauseTrig_DigSync_Enable 0x222C // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_DigPattern_PauseTrig_Src 0x216F // Specifies the physical channels to use for pattern matching. The order of the physical channels determines the order of the pattern. If a port is included, the lines within the port are in ascending order. +#define DAQmx_DigPattern_PauseTrig_Pattern 0x2188 // Specifies the digital pattern that must be met for the Pause Trigger to occur. +#define DAQmx_DigPattern_PauseTrig_When 0x2170 // Specifies if the Pause Trigger occurs when the physical channels specified with Source match or differ from the digital pattern specified with Pattern. +#define DAQmx_ArmStartTrig_Type 0x1414 // Specifies the type of trigger to use to arm the task for a Start Trigger. If you configure an Arm Start Trigger, the task does not respond to a Start Trigger until the device receives the Arm Start Trigger. +#define DAQmx_ArmStart_Term 0x2F7F // Indicates the name of the internal Arm Start Trigger terminal for the task. This property does not return the name of the trigger source terminal. +#define DAQmx_DigEdge_ArmStartTrig_Src 0x1417 // Specifies the name of a terminal where there is a digital signal to use as the source of the Arm Start Trigger. +#define DAQmx_DigEdge_ArmStartTrig_Edge 0x1415 // Specifies on which edge of a digital signal to arm the task for a Start Trigger. +#define DAQmx_DigEdge_ArmStartTrig_DigFltr_Enable 0x222D // Specifies whether to apply the pulse width filter to the signal. +#define DAQmx_DigEdge_ArmStartTrig_DigFltr_MinPulseWidth 0x222E // Specifies in seconds the minimum pulse width the filter recognizes. +#define DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseSrc 0x222F // Specifies the input terminal of the signal to use as the timebase of the pulse width filter. +#define DAQmx_DigEdge_ArmStartTrig_DigFltr_TimebaseRate 0x2230 // Specifies in hertz the sample_rate of the pulse width filter timebase. NI-DAQmx uses this value to compute settings for the filter. +#define DAQmx_DigEdge_ArmStartTrig_DigSync_Enable 0x2231 // Specifies whether to synchronize recognition of transitions in the signal to the internal timebase of the device. +#define DAQmx_ArmStartTrig_TrigWhen 0x3131 // Specifies when to trigger the arm start trigger. +#define DAQmx_ArmStartTrig_Timescale 0x3132 // Specifies the timescale to be used for timestamps used in an arm start time trigger. +#define DAQmx_ArmStartTrig_TimestampEnable 0x3133 // Specifies whether the arm start trigger timestamp is enabled. If the timestamp is enabled but no resources are available, an error will be returned at run time. +#define DAQmx_ArmStartTrig_TimestampTimescale 0x3135 // Specifies the arm start trigger timestamp timescale. +#define DAQmx_ArmStartTrig_TimestampVal 0x3134 // Indicates the arm start trigger timestamp value. +#define DAQmx_Trigger_SyncType 0x2F80 // Specifies the role of the device in a synchronized system. Setting this value to DAQmx_Val_Master or DAQmx_Val_Slave enables trigger skew correction. If you enable trigger skew correction, set this property to DAQmx_Val_Master on only one device, and set this property to DAQmx_Val_Slave on the other devices. //********** Watchdog Attributes ********** -#define -DAQmx_Watchdog_Timeout 0x21A9 // Specifies in seconds the amount of time until the watchdog timer expires. A value of -1 means the internal timer never expires. Set this input to -1 if you use an Expiration Trigger to expire the watchdog task. -#define -DAQmx_WatchdogExpirTrig_Type 0x21A3 // Specifies the type of trigger to use to expire a watchdog task. -#define -DAQmx_WatchdogExpirTrig_TrigOnNetworkConnLoss 0x305D // Specifies the watchdog timer behavior when the network connection is lost between the host and the chassis. If set to true, the watchdog timer expires when the chassis detects the loss of network connection. +#define DAQmx_Watchdog_Timeout 0x21A9 // Specifies in seconds the amount of time until the watchdog timer expires. A value of -1 means the internal timer never expires. Set this input to -1 if you use an Expiration Trigger to expire the watchdog task. +#define DAQmx_WatchdogExpirTrig_Type 0x21A3 // Specifies the type of trigger to use to expire a watchdog task. +#define DAQmx_WatchdogExpirTrig_TrigOnNetworkConnLoss 0x305D // Specifies the watchdog timer behavior when the network connection is lost between the host and the chassis. If set to true, the watchdog timer expires when the chassis detects the loss of network connection. #define DAQmx_DigEdge_WatchdogExpirTrig_Src 0x21A4 // Specifies the name of a terminal where a digital signal exists to use as the source of the Expiration Trigger. -#define -DAQmx_DigEdge_WatchdogExpirTrig_Edge 0x21A5 // Specifies on which edge of a digital signal to expire the watchdog task. -#define -DAQmx_Watchdog_DO_ExpirState 0x21A7 // Specifies the state to which to set the digital physical channels when the watchdog task expires. You cannot modify the expiration state of dedicated digital input physical channels. -#define -DAQmx_Watchdog_AO_OutputType 0x305E // Specifies the output type of the analog output physical channels when the watchdog task expires. -#define -DAQmx_Watchdog_AO_ExpirState 0x305F // Specifies the state to set the analog output physical channels when the watchdog task expires. -#define -DAQmx_Watchdog_CO_ExpirState 0x3060 // Specifies the state to set the counter output channel terminal when the watchdog task expires. -#define -DAQmx_Watchdog_HasExpired 0x21A8 // Indicates if the watchdog timer expired. You can read this property only while the task is running. +#define DAQmx_DigEdge_WatchdogExpirTrig_Edge 0x21A5 // Specifies on which edge of a digital signal to expire the watchdog task. +#define DAQmx_Watchdog_DO_ExpirState 0x21A7 // Specifies the state to which to set the digital physical channels when the watchdog task expires. You cannot modify the expiration state of dedicated digital input physical channels. +#define DAQmx_Watchdog_AO_OutputType 0x305E // Specifies the output type of the analog output physical channels when the watchdog task expires. +#define DAQmx_Watchdog_AO_ExpirState 0x305F // Specifies the state to set the analog output physical channels when the watchdog task expires. +#define DAQmx_Watchdog_CO_ExpirState 0x3060 // Specifies the state to set the counter output channel terminal when the watchdog task expires. +#define DAQmx_Watchdog_HasExpired 0x21A8 // Indicates if the watchdog timer expired. You can read this property only while the task is running. //********** Write Attributes ********** -#define -DAQmx_Write_RelativeTo 0x190C // Specifies the point in the buffer at which to write data. If you also specify an offset with Offset, the write operation begins at that offset relative to this point you select with this property. -#define -DAQmx_Write_Offset 0x190D // Specifies in samples per channel an offset at which a write operation begins. This offset is relative to the location you specify with Relative To. -#define -DAQmx_Write_RegenMode 0x1453 // Specifies whether to allow NI-DAQmx to generate the same data multiple times. -#define -DAQmx_Write_CurrWritePos 0x1458 // Indicates the position in the buffer of the next sample to generate. This value is identical for all channels in the task. -#define -DAQmx_Write_OvercurrentChansExist 0x29E8 // Indicates if the device(s) detected an overcurrent condition for any channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. -#define -DAQmx_Write_OvercurrentChans 0x29E9 // Indicates a list of names of any virtual channels in the task for which an overcurrent condition has been detected. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_OvertemperatureChansExist 0x2A84 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. -#define -DAQmx_Write_OvertemperatureChans 0x3083 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. The list of names may be empty if the device cannot determine the source of the overtemperature. -#define -DAQmx_Write_ExternalOvervoltageChansExist 0x30BB // Indicates if the device(s) detected an External Overvoltage condition for any channel in the task. Reading this property clears the External Overvoltage status for all channels in the task. You must read this property before you read External OvervoltageChans. Otherwise, you will receive an error. -#define -DAQmx_Write_ExternalOvervoltageChans 0x30BC // Indicates a list of names of any virtual channels in the task for which an External Overvoltage condition has been detected. You must read External OvervoltageChansExist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_OverloadedChansExist 0x3084 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. -#define -DAQmx_Write_OverloadedChans 0x3085 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_OpenCurrentLoopChansExist 0x29EA // Indicates if the device(s) detected an open current loop for any channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. -#define -DAQmx_Write_OpenCurrentLoopChans 0x29EB // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_PowerSupplyFaultChansExist 0x29EC // Indicates if the device(s) detected a power supply fault for any channel in the task. Reading this property clears the power supply fault status for all channels in the task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. -#define -DAQmx_Write_PowerSupplyFaultChans 0x29ED // Indicates a list of names of any virtual channels in the task that have a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_Sync_UnlockedChansExist 0x313F // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. -#define -DAQmx_Write_Sync_UnlockedChans 0x3140 // Indicates the channels from devices in an unlocked target. -#define -DAQmx_Write_SpaceAvail 0x1460 // Indicates in samples per channel the amount of available space in the buffer. -#define -DAQmx_Write_TotalSampPerChanGenerated 0x192B // Indicates the total number of samples generated by each channel in the task. This value is identical for all channels in the task. -#define -DAQmx_Write_AccessoryInsertionOrRemovalDetected 0x3053 // Indicates if any devices in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. -#define -DAQmx_Write_DevsWithInsertedOrRemovedAccessories 0x3054 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. -#define -DAQmx_Write_RawDataWidth 0x217D // Indicates in bytes the required size of a raw sample to write to the task. -#define -DAQmx_Write_NumChans 0x217E // Indicates the number of channels that an NI-DAQmx Write function writes to the task. This value is the number of channels in the task. -#define -DAQmx_Write_WaitMode 0x22B1 // Specifies how an NI-DAQmx Write function waits for space to become available in the buffer. -#define -DAQmx_Write_SleepTime 0x22B2 // Specifies in seconds the amount of time to sleep after checking for available buffer space if Wait Mode is DAQmx_Val_Sleep. -#define -DAQmx_Write_DigitalLines_BytesPerChan 0x217F // Indicates the number of Boolean values expected per channel in a sample for line-based writes. This property is determined by the channel in the task with the most digital lines. If a channel has fewer lines than this number, NI-DAQmx ignores the extra Boolean values. +#define DAQmx_Write_RelativeTo 0x190C // Specifies the point in the buffer at which to write data. If you also specify an offset with Offset, the write operation begins at that offset relative to this point you select with this property. +#define DAQmx_Write_Offset 0x190D // Specifies in samples per channel an offset at which a write operation begins. This offset is relative to the location you specify with Relative To. +#define DAQmx_Write_RegenMode 0x1453 // Specifies whether to allow NI-DAQmx to generate the same data multiple times. +#define DAQmx_Write_CurrWritePos 0x1458 // Indicates the position in the buffer of the next sample to generate. This value is identical for all channels in the task. +#define DAQmx_Write_OvercurrentChansExist 0x29E8 // Indicates if the device(s) detected an overcurrent condition for any channel in the task. Reading this property clears the overcurrent status for all channels in the task. You must read this property before you read Overcurrent Channels. Otherwise, you will receive an error. +#define DAQmx_Write_OvercurrentChans 0x29E9 // Indicates a list of names of any virtual channels in the task for which an overcurrent condition has been detected. You must read Overcurrent Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_OvertemperatureChansExist 0x2A84 // Indicates if the device(s) detected an overtemperature condition in any virtual channel in the task. Reading this property clears the overtemperature status for all channels in the task. You must read this property before you read Overtemperature Channels. Otherwise, you will receive an error. +#define DAQmx_Write_OvertemperatureChans 0x3083 // Indicates a list of names of any overtemperature virtual channels. You must read Overtemperature Channels Exist before you read this property. Otherwise, you will receive an error. The list of names may be empty if the device cannot determine the source of the overtemperature. +#define DAQmx_Write_ExternalOvervoltageChansExist 0x30BB // Indicates if the device(s) detected an External Overvoltage condition for any channel in the task. Reading this property clears the External Overvoltage status for all channels in the task. You must read this property before you read External OvervoltageChans. Otherwise, you will receive an error. +#define DAQmx_Write_ExternalOvervoltageChans 0x30BC // Indicates a list of names of any virtual channels in the task for which an External Overvoltage condition has been detected. You must read External OvervoltageChansExist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_OverloadedChansExist 0x3084 // Indicates if the device(s) detected an overload in any virtual channel in the task. Reading this property clears the overload status for all channels in the task. You must read this property before you read Overloaded Channels. Otherwise, you will receive an error. +#define DAQmx_Write_OverloadedChans 0x3085 // Indicates a list of names of any overloaded virtual channels in the task. You must read Overloaded Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_OpenCurrentLoopChansExist 0x29EA // Indicates if the device(s) detected an open current loop for any channel in the task. Reading this property clears the open current loop status for all channels in the task. You must read this property before you read Open Current Loop Channels. Otherwise, you will receive an error. +#define DAQmx_Write_OpenCurrentLoopChans 0x29EB // Indicates a list of names of any virtual channels in the task for which the device(s) detected an open current loop. You must read Open Current Loop Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_PowerSupplyFaultChansExist 0x29EC // Indicates if the device(s) detected a power supply fault for any channel in the task. Reading this property clears the power supply fault status for all channels in the task. You must read this property before you read Power Supply Fault Channels. Otherwise, you will receive an error. +#define DAQmx_Write_PowerSupplyFaultChans 0x29ED // Indicates a list of names of any virtual channels in the task that have a power supply fault. You must read Power Supply Fault Channels Exist before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_Sync_UnlockedChansExist 0x313F // Indicates whether the target is currently locked to the grand master. Devices may report PLL Unlock either during acquisition or after acquisition. +#define DAQmx_Write_Sync_UnlockedChans 0x3140 // Indicates the channels from devices in an unlocked target. +#define DAQmx_Write_SpaceAvail 0x1460 // Indicates in samples per channel the amount of available space in the buffer. +#define DAQmx_Write_TotalSampPerChanGenerated 0x192B // Indicates the total number of samples generated by each channel in the task. This value is identical for all channels in the task. +#define DAQmx_Write_AccessoryInsertionOrRemovalDetected 0x3053 // Indicates if any devices in the task detected the insertion or removal of an accessory since the task started. Reading this property clears the accessory change status for all channels in the task. You must read this property before you read Devices with Inserted or Removed Accessories. Otherwise, you will receive an error. +#define DAQmx_Write_DevsWithInsertedOrRemovedAccessories 0x3054 // Indicates the names of any devices that detected the insertion or removal of an accessory since the task started. You must read Accessory Insertion or Removal Detected before you read this property. Otherwise, you will receive an error. +#define DAQmx_Write_RawDataWidth 0x217D // Indicates in bytes the required size of a raw sample to write to the task. +#define DAQmx_Write_NumChans 0x217E // Indicates the number of channels that an NI-DAQmx Write function writes to the task. This value is the number of channels in the task. +#define DAQmx_Write_WaitMode 0x22B1 // Specifies how an NI-DAQmx Write function waits for space to become available in the buffer. +#define DAQmx_Write_SleepTime 0x22B2 // Specifies in seconds the amount of time to sleep after checking for available buffer space if Wait Mode is DAQmx_Val_Sleep. +#define DAQmx_Write_DigitalLines_BytesPerChan 0x217F // Indicates the number of Boolean values expected per channel in a sample for line-based writes. This property is determined by the channel in the task with the most digital lines. If a channel has fewer lines than this number, NI-DAQmx ignores the extra Boolean values. // For backwards compatibility, the DAQmx_ReadWaitMode has to be defined because this was the original spelling // that has been later on corrected. -#define -DAQmx_ReadWaitMode DAQmx_Read_WaitMode +#define DAQmx_ReadWaitMode DAQmx_Read_WaitMode /****************************************************************************** *** NI-DAQmx Values ********************************************************** @@ -2447,249 +1304,164 @@ DAQmx_ReadWaitMode DAQmx_Read_WaitMode /******************************************************/ //*** Values for the Mode parameter of DAQmxTaskControl *** -#define -DAQmx_Val_Task_Start 0 // Start -#define -DAQmx_Val_Task_Stop 1 // Stop -#define -DAQmx_Val_Task_Verify 2 // Verify -#define -DAQmx_Val_Task_Commit 3 // Commit -#define -DAQmx_Val_Task_Reserve 4 // Reserve -#define -DAQmx_Val_Task_Unreserve 5 // Unreserve -#define -DAQmx_Val_Task_Abort 6 // Abort +#define DAQmx_Val_Task_Start 0 // Start +#define DAQmx_Val_Task_Stop 1 // Stop +#define DAQmx_Val_Task_Verify 2 // Verify +#define DAQmx_Val_Task_Commit 3 // Commit +#define DAQmx_Val_Task_Reserve 4 // Reserve +#define DAQmx_Val_Task_Unreserve 5 // Unreserve +#define DAQmx_Val_Task_Abort 6 // Abort //*** Values for the Options parameter of the event registration functions -#define -DAQmx_Val_SynchronousEventCallbacks (1<<0) // Synchronous callbacks +#define DAQmx_Val_SynchronousEventCallbacks (1<<0) // Synchronous callbacks //*** Values for the everyNsamplesEventType parameter of DAQmxRegisterEveryNSamplesEvent *** -#define -DAQmx_Val_Acquired_Into_Buffer 1 // Acquired Into Buffer -#define -DAQmx_Val_Transferred_From_Buffer 2 // Transferred From Buffer +#define DAQmx_Val_Acquired_Into_Buffer 1 // Acquired Into Buffer +#define DAQmx_Val_Transferred_From_Buffer 2 // Transferred From Buffer //*** Values for the Action parameter of DAQmxControlWatchdogTask *** -#define -DAQmx_Val_ResetTimer 0 // Reset Timer -#define -DAQmx_Val_ClearExpiration 1 // Clear Expiration +#define DAQmx_Val_ResetTimer 0 // Reset Timer +#define DAQmx_Val_ClearExpiration 1 // Clear Expiration //*** Values for the Line Grouping parameter of DAQmxCreateDIChan and DAQmxCreateDOChan *** -#define -DAQmx_Val_ChanPerLine 0 // One Channel For Each Line -#define -DAQmx_Val_ChanForAllLines 1 // One Channel For All Lines +#define DAQmx_Val_ChanPerLine 0 // One Channel For Each Line +#define DAQmx_Val_ChanForAllLines 1 // One Channel For All Lines //*** Values for the Fill Mode parameter of DAQmxReadAnalogF64, DAQmxReadBinaryI16, DAQmxReadBinaryU16, DAQmxReadBinaryI32, DAQmxReadBinaryU32, // DAQmxReadDigitalU8, DAQmxReadDigitalU32, DAQmxReadDigitalLines *** //*** Values for the Data Layout parameter of DAQmxWriteAnalogF64, DAQmxWriteBinaryI16, DAQmxWriteDigitalU8, DAQmxWriteDigitalU32, DAQmxWriteDigitalLines *** -#define -DAQmx_Val_GroupByChannel 0 // Group by Channel -#define -DAQmx_Val_GroupByScanNumber 1 // Group by Scan Number +#define DAQmx_Val_GroupByChannel 0 // Group by Channel +#define DAQmx_Val_GroupByScanNumber 1 // Group by Scan Number //*** Values for the Signal Modifiers parameter of DAQmxConnectTerms ***/ -#define -DAQmx_Val_DoNotInvertPolarity 0 // Do not invert polarity -#define -DAQmx_Val_InvertPolarity 1 // Invert polarity +#define DAQmx_Val_DoNotInvertPolarity 0 // Do not invert polarity +#define DAQmx_Val_InvertPolarity 1 // Invert polarity //*** Values for the Action paramter of DAQmxCloseExtCal *** -#define -DAQmx_Val_Action_Commit 0 // Commit -#define -DAQmx_Val_Action_Cancel 1 // Cancel +#define DAQmx_Val_Action_Commit 0 // Commit +#define DAQmx_Val_Action_Cancel 1 // Cancel //*** Values for the Trigger ID parameter of DAQmxSendSoftwareTrigger *** -#define -DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger +#define DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger //*** Value set for the ActiveEdge parameter of DAQmxCfgSampClkTiming and DAQmxCfgPipelinedSampClkTiming *** -#define -DAQmx_Val_Rising 10280 // Rising -#define -DAQmx_Val_Falling 10171 // Falling +#define DAQmx_Val_Rising 10280 // Rising +#define DAQmx_Val_Falling 10171 // Falling //*** Value set SwitchPathType *** //*** Value set for the output Path Status parameter of DAQmxSwitchFindPath *** -#define -DAQmx_Val_PathStatus_Available 10431 // Path Available -#define -DAQmx_Val_PathStatus_AlreadyExists 10432 // Path Already Exists -#define -DAQmx_Val_PathStatus_Unsupported 10433 // Path Unsupported -#define -DAQmx_Val_PathStatus_ChannelInUse 10434 // Channel In Use -#define -DAQmx_Val_PathStatus_SourceChannelConflict 10435 // Channel Source Conflict -#define -DAQmx_Val_PathStatus_ChannelReservedForRouting 10436 // Channel Reserved for Routing +#define DAQmx_Val_PathStatus_Available 10431 // Path Available +#define DAQmx_Val_PathStatus_AlreadyExists 10432 // Path Already Exists +#define DAQmx_Val_PathStatus_Unsupported 10433 // Path Unsupported +#define DAQmx_Val_PathStatus_ChannelInUse 10434 // Channel In Use +#define DAQmx_Val_PathStatus_SourceChannelConflict 10435 // Channel Source Conflict +#define DAQmx_Val_PathStatus_ChannelReservedForRouting 10436 // Channel Reserved for Routing //*** Value set for the Units parameter of DAQmxCreateAIThrmcplChan, DAQmxCreateAIRTDChan, DAQmxCreateAIThrmstrChanIex, DAQmxCreateAIThrmstrChanVex and DAQmxCreateAITempBuiltInSensorChan *** -#define -DAQmx_Val_DegC 10143 // Deg C -#define -DAQmx_Val_DegF 10144 // Deg F -#define -DAQmx_Val_Kelvins 10325 // Kelvins -#define -DAQmx_Val_DegR 10145 // Deg R +#define DAQmx_Val_DegC 10143 // Deg C +#define DAQmx_Val_DegF 10144 // Deg F +#define DAQmx_Val_Kelvins 10325 // Kelvins +#define DAQmx_Val_DegR 10145 // Deg R //*** Value set for the state parameter of DAQmxSetDigitalPowerUpStates *** -#define -DAQmx_Val_High 10192 // High -#define -DAQmx_Val_Low 10214 // Low -#define -DAQmx_Val_Tristate 10310 // Tristate +#define DAQmx_Val_High 10192 // High +#define DAQmx_Val_Low 10214 // Low +#define DAQmx_Val_Tristate 10310 // Tristate //*** Value set for the state parameter of DAQmxSetDigitalPullUpPullDownStates *** -#define -DAQmx_Val_PullUp 15950 // Pull Up -#define -DAQmx_Val_PullDown 15951 // Pull Down +#define DAQmx_Val_PullUp 15950 // Pull Up +#define DAQmx_Val_PullDown 15951 // Pull Down //*** Value set for the channelType parameter of DAQmxSetAnalogPowerUpStates & DAQmxGetAnalogPowerUpStates *** -#define -DAQmx_Val_ChannelVoltage 0 // Voltage Channel -#define -DAQmx_Val_ChannelCurrent 1 // Current Channel -#define -DAQmx_Val_ChannelHighImpedance 2 // High-Impedance Channel +#define DAQmx_Val_ChannelVoltage 0 // Voltage Channel +#define DAQmx_Val_ChannelCurrent 1 // Current Channel +#define DAQmx_Val_ChannelHighImpedance 2 // High-Impedance Channel //*** Value set RelayPos *** //*** Value set for the state parameter of DAQmxSwitchGetSingleRelayPos and DAQmxSwitchGetMultiRelayPos *** -#define -DAQmx_Val_Open 10437 // Open -#define -DAQmx_Val_Closed 10438 // Closed +#define DAQmx_Val_Open 10437 // Open +#define DAQmx_Val_Closed 10438 // Closed //*** Value set for the inputCalSource parameter of DAQmxAdjust1540Cal *** -#define -DAQmx_Val_Loopback0 0 // Loopback 0 degree shift -#define -DAQmx_Val_Loopback180 1 // Loopback 180 degree shift -#define -DAQmx_Val_Ground 2 // Ground +#define DAQmx_Val_Loopback0 0 // Loopback 0 degree shift +#define DAQmx_Val_Loopback180 1 // Loopback 180 degree shift +#define DAQmx_Val_Ground 2 // Ground //*** Value set for calibration mode for 4339 Calibration functions *** -#define -DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Voltage 10322 // Voltage #define DAQmx_Val_Bridge 15908 // Bridge //*** Value set for output type for 4322 Calibration functions *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_Current 10134 // Current +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Current 10134 // Current //*** Value set for terminal configuration for 4463 calibration functions *** -#define -DAQmx_Val_Diff 10106 // Differential -#define -DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define DAQmx_Val_Diff 10106 // Differential +#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Value set for the calibration mode for the 4480 Calibration functions *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_Charge 16105 // Charge +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Charge 16105 // Charge //*** Value set for shunt resistor select for Strain and Bridge Shunt Calibration functions *** -#define -DAQmx_Val_A 12513 // A -#define -DAQmx_Val_B 12514 // B +#define DAQmx_Val_A 12513 // A +#define DAQmx_Val_B 12514 // B //*** Value set for Force IEPE functions *** -#define -DAQmx_Val_Newtons 15875 // Newtons -#define -DAQmx_Val_Pounds 15876 // Pounds -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Newtons 15875 // Newtons +#define DAQmx_Val_Pounds 15876 // Pounds +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Value set for DAQmxWaitForValidTimestamp *** -#define -DAQmx_Val_StartTrigger 12491 // Start Trigger -#define -DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger -#define -DAQmx_Val_ArmStartTrigger 14641 // Arm Start Trigger -#define -DAQmx_Val_FirstSampleTimestamp 16130 // First Sample Timestamp +#define DAQmx_Val_StartTrigger 12491 // Start Trigger +#define DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger +#define DAQmx_Val_ArmStartTrigger 14641 // Arm Start Trigger +#define DAQmx_Val_FirstSampleTimestamp 16130 // First Sample Timestamp //*** Value for the Terminal Config parameter of DAQmxCreateAIVoltageChan, DAQmxCreateAICurrentChan and DAQmxCreateAIVoltageChanWithExcit *** -#define -DAQmx_Val_Cfg_Default -1 // Default +#define DAQmx_Val_Cfg_Default -1 // Default //*** Value for the Shunt Resistor Location parameter of DAQmxCreateAICurrentChan *** -#define -DAQmx_Val_Default -1 // Default +#define DAQmx_Val_Default -1 // Default //*** Value for the Timeout parameter of DAQmxWaitUntilTaskDone -#define -DAQmx_Val_WaitInfinitely -1.0 +#define DAQmx_Val_WaitInfinitely -1.0 //*** Value for the Number of Samples per Channel parameter of DAQmxReadAnalogF64, DAQmxReadBinaryI16, DAQmxReadBinaryU16, // DAQmxReadBinaryI32, DAQmxReadBinaryU32, DAQmxReadDigitalU8, DAQmxReadDigitalU32, // DAQmxReadDigitalLines, DAQmxReadCounterF64, DAQmxReadCounterU32 and DAQmxReadRaw *** -#define -DAQmx_Val_Auto -1 +#define DAQmx_Val_Auto -1 // Value set for the Options parameter of DAQmxSaveTask, DAQmxSaveGlobalChan and DAQmxSaveScale -#define -DAQmx_Val_Save_Overwrite (1<<0) -#define -DAQmx_Val_Save_AllowInteractiveEditing (1<<1) -#define -DAQmx_Val_Save_AllowInteractiveDeletion (1<<2) +#define DAQmx_Val_Save_Overwrite (1<<0) +#define DAQmx_Val_Save_AllowInteractiveEditing (1<<1) +#define DAQmx_Val_Save_AllowInteractiveDeletion (1<<2) //*** Values for the Trigger Usage parameter - set of trigger types a device may support //*** Values for TriggerUsageTypeBits -#define -DAQmx_Val_Bit_TriggerUsageTypes_Advance (1<<0) // Device supports advance triggers -#define -DAQmx_Val_Bit_TriggerUsageTypes_Pause (1<<1) // Device supports pause triggers -#define -DAQmx_Val_Bit_TriggerUsageTypes_Reference (1<<2) // Device supports reference triggers -#define -DAQmx_Val_Bit_TriggerUsageTypes_Start (1<<3) // Device supports start triggers -#define -DAQmx_Val_Bit_TriggerUsageTypes_Handshake (1<<4) // Device supports handshake triggers -#define -DAQmx_Val_Bit_TriggerUsageTypes_ArmStart (1<<5) // Device supports arm start triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_Advance (1<<0) // Device supports advance triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_Pause (1<<1) // Device supports pause triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_Reference (1<<2) // Device supports reference triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_Start (1<<3) // Device supports start triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_Handshake (1<<4) // Device supports handshake triggers +#define DAQmx_Val_Bit_TriggerUsageTypes_ArmStart (1<<5) // Device supports arm start triggers //*** Values for the Coupling Types parameter - set of coupling types a device may support //*** Values for CouplingTypeBits -#define -DAQmx_Val_Bit_CouplingTypes_AC (1<<0) // Device supports AC coupling -#define -DAQmx_Val_Bit_CouplingTypes_DC (1<<1) // Device supports DC coupling -#define -DAQmx_Val_Bit_CouplingTypes_Ground (1<<2) // Device supports ground coupling -#define -DAQmx_Val_Bit_CouplingTypes_HFReject (1<<3) // Device supports High Frequency Reject coupling -#define -DAQmx_Val_Bit_CouplingTypes_LFReject (1<<4) // Device supports Low Frequency Reject coupling -#define -DAQmx_Val_Bit_CouplingTypes_NoiseReject (1<<5) // Device supports Noise Reject coupling +#define DAQmx_Val_Bit_CouplingTypes_AC (1<<0) // Device supports AC coupling +#define DAQmx_Val_Bit_CouplingTypes_DC (1<<1) // Device supports DC coupling +#define DAQmx_Val_Bit_CouplingTypes_Ground (1<<2) // Device supports ground coupling +#define DAQmx_Val_Bit_CouplingTypes_HFReject (1<<3) // Device supports High Frequency Reject coupling +#define DAQmx_Val_Bit_CouplingTypes_LFReject (1<<4) // Device supports Low Frequency Reject coupling +#define DAQmx_Val_Bit_CouplingTypes_NoiseReject (1<<5) // Device supports Noise Reject coupling //*** Values for DAQmx_PhysicalChan_AI_TermCfgs and DAQmx_PhysicalChan_AO_TermCfgs //*** Value set TerminalConfigurationBits *** -#define -DAQmx_Val_Bit_TermCfg_RSE (1<<0) // RSE terminal configuration -#define -DAQmx_Val_Bit_TermCfg_NRSE (1<<1) // NRSE terminal configuration -#define -DAQmx_Val_Bit_TermCfg_Diff (1<<2) // Differential terminal configuration -#define -DAQmx_Val_Bit_TermCfg_PseudoDIFF (1<<3) // Pseudodifferential terminal configuration +#define DAQmx_Val_Bit_TermCfg_RSE (1<<0) // RSE terminal configuration +#define DAQmx_Val_Bit_TermCfg_NRSE (1<<1) // NRSE terminal configuration +#define DAQmx_Val_Bit_TermCfg_Diff (1<<2) // Differential terminal configuration +#define DAQmx_Val_Bit_TermCfg_PseudoDIFF (1<<3) // Pseudodifferential terminal configuration /******************************************************/ @@ -2698,134 +1470,84 @@ DAQmx_Val_Bit_TermCfg_PseudoDIFF (1<<3) // Pseu //*** Values for DAQmx_AI_ACExcit_WireMode *** //*** Value set ACExcitWireMode *** -#define -DAQmx_Val_4Wire 4 // 4-Wire +#define DAQmx_Val_4Wire 4 // 4-Wire #define DAQmx_Val_5Wire 5 // 5-Wire -#define -DAQmx_Val_6Wire 6 // 6-Wire +#define DAQmx_Val_6Wire 6 // 6-Wire //*** Values for DAQmx_AI_ADCTimingMode *** //*** Value set ADCTimingMode *** -#define -DAQmx_Val_Automatic 16097 // Automatic -#define -DAQmx_Val_HighResolution 10195 // High Resolution -#define -DAQmx_Val_HighSpeed 14712 // High Speed -#define -DAQmx_Val_Best50HzRejection 14713 // Best 50 Hz Rejection -#define -DAQmx_Val_Best60HzRejection 14714 // Best 60 Hz Rejection -#define -DAQmx_Val_Custom 10137 // Custom +#define DAQmx_Val_Automatic 16097 // Automatic +#define DAQmx_Val_HighResolution 10195 // High Resolution +#define DAQmx_Val_HighSpeed 14712 // High Speed +#define DAQmx_Val_Best50HzRejection 14713 // Best 50 Hz Rejection +#define DAQmx_Val_Best60HzRejection 14714 // Best 60 Hz Rejection +#define DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_MeasType *** //*** Values for DAQmx_Dev_AI_SupportedMeasTypes *** //*** Values for DAQmx_PhysicalChan_AI_SupportedMeasTypes *** //*** Value set AIMeasurementType *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_VoltageRMS 10350 // Voltage RMS -#define -DAQmx_Val_Current 10134 // Current -#define -DAQmx_Val_CurrentRMS 10351 // Current RMS -#define -DAQmx_Val_Voltage_CustomWithExcitation 10323 // More:Voltage:Custom with Excitation -#define -DAQmx_Val_Bridge 15908 // More:Bridge (V/V) -#define -DAQmx_Val_Freq_Voltage 10181 // Frequency -#define -DAQmx_Val_Resistance 10278 // Resistance -#define -DAQmx_Val_Temp_TC 10303 // Temperature:Thermocouple -#define -DAQmx_Val_Temp_Thrmstr 10302 // Temperature:Thermistor -#define -DAQmx_Val_Temp_RTD 10301 // Temperature:RTD -#define -DAQmx_Val_Temp_BuiltInSensor 10311 // Temperature:Built-in Sensor -#define -DAQmx_Val_Strain_Gage 10300 // Strain Gage -#define -DAQmx_Val_Rosette_Strain_Gage 15980 // Rosette Strain Gage -#define -DAQmx_Val_Position_LVDT 10352 // Position:LVDT -#define -DAQmx_Val_Position_RVDT 10353 // Position:RVDT -#define -DAQmx_Val_Position_EddyCurrentProximityProbe 14835 // Position:Eddy Current Proximity Probe -#define -DAQmx_Val_Accelerometer 10356 // Accelerometer -#define -DAQmx_Val_Acceleration_Charge 16104 // Acceleration:Charge -#define -DAQmx_Val_Acceleration_4WireDCVoltage 16106 // Acceleration:4 Wire DC Voltage -#define -DAQmx_Val_Velocity_IEPESensor 15966 // Velocity:IEPE Sensor -#define -DAQmx_Val_Force_Bridge 15899 // Force:Bridge -#define -DAQmx_Val_Force_IEPESensor 15895 // Force:IEPE Sensor -#define -DAQmx_Val_Pressure_Bridge 15902 // Pressure:Bridge -#define -DAQmx_Val_SoundPressure_Microphone 10354 // Sound Pressure:Microphone -#define -DAQmx_Val_Torque_Bridge 15905 // Torque:Bridge -#define -DAQmx_Val_TEDS_Sensor 12531 // TEDS Sensor -#define -DAQmx_Val_Charge 16105 // Charge +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_VoltageRMS 10350 // Voltage RMS +#define DAQmx_Val_Current 10134 // Current +#define DAQmx_Val_CurrentRMS 10351 // Current RMS +#define DAQmx_Val_Voltage_CustomWithExcitation 10323 // More:Voltage:Custom with Excitation +#define DAQmx_Val_Bridge 15908 // More:Bridge (V/V) +#define DAQmx_Val_Freq_Voltage 10181 // Frequency +#define DAQmx_Val_Resistance 10278 // Resistance +#define DAQmx_Val_Temp_TC 10303 // Temperature:Thermocouple +#define DAQmx_Val_Temp_Thrmstr 10302 // Temperature:Thermistor +#define DAQmx_Val_Temp_RTD 10301 // Temperature:RTD +#define DAQmx_Val_Temp_BuiltInSensor 10311 // Temperature:Built-in Sensor +#define DAQmx_Val_Strain_Gage 10300 // Strain Gage +#define DAQmx_Val_Rosette_Strain_Gage 15980 // Rosette Strain Gage +#define DAQmx_Val_Position_LVDT 10352 // Position:LVDT +#define DAQmx_Val_Position_RVDT 10353 // Position:RVDT +#define DAQmx_Val_Position_EddyCurrentProximityProbe 14835 // Position:Eddy Current Proximity Probe +#define DAQmx_Val_Accelerometer 10356 // Accelerometer +#define DAQmx_Val_Acceleration_Charge 16104 // Acceleration:Charge +#define DAQmx_Val_Acceleration_4WireDCVoltage 16106 // Acceleration:4 Wire DC Voltage +#define DAQmx_Val_Velocity_IEPESensor 15966 // Velocity:IEPE Sensor +#define DAQmx_Val_Force_Bridge 15899 // Force:Bridge +#define DAQmx_Val_Force_IEPESensor 15895 // Force:IEPE Sensor +#define DAQmx_Val_Pressure_Bridge 15902 // Pressure:Bridge +#define DAQmx_Val_SoundPressure_Microphone 10354 // Sound Pressure:Microphone +#define DAQmx_Val_Torque_Bridge 15905 // Torque:Bridge +#define DAQmx_Val_TEDS_Sensor 12531 // TEDS Sensor +#define DAQmx_Val_Charge 16105 // Charge //*** Values for DAQmx_AO_IdleOutputBehavior *** //*** Value set AOIdleOutputBehavior *** -#define -DAQmx_Val_ZeroVolts 12526 // Zero Volts -#define -DAQmx_Val_HighImpedance 12527 // High-Impedance -#define -DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value +#define DAQmx_Val_ZeroVolts 12526 // Zero Volts +#define DAQmx_Val_HighImpedance 12527 // High-Impedance +#define DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value //*** Values for DAQmx_AO_OutputType *** //*** Values for DAQmx_Dev_AO_SupportedOutputTypes *** //*** Values for DAQmx_PhysicalChan_AO_SupportedOutputTypes *** //*** Value set AOOutputChannelType *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_Current 10134 // Current -#define -DAQmx_Val_FuncGen 14750 // Function Generation +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Current 10134 // Current +#define DAQmx_Val_FuncGen 14750 // Function Generation //*** Values for DAQmx_AI_Accel_Charge_SensitivityUnits *** //*** Value set AccelChargeSensitivityUnits *** -#define -DAQmx_Val_PicoCoulombsPerG 16099 // PicoCoulombs per g -#define -DAQmx_Val_PicoCoulombsPerMetersPerSecondSquared 16100 // PicoCoulombs per m/s^2 -#define -DAQmx_Val_PicoCoulombsPerInchesPerSecondSquared 16101 // PicoCoulombs per in/s^2 +#define DAQmx_Val_PicoCoulombsPerG 16099 // PicoCoulombs per g +#define DAQmx_Val_PicoCoulombsPerMetersPerSecondSquared 16100 // PicoCoulombs per m/s^2 +#define DAQmx_Val_PicoCoulombsPerInchesPerSecondSquared 16101 // PicoCoulombs per in/s^2 //*** Values for DAQmx_AI_Accel_4WireDCVoltage_SensitivityUnits *** //*** Values for DAQmx_AI_Accel_SensitivityUnits *** //*** Value set AccelSensitivityUnits1 *** -#define -DAQmx_Val_mVoltsPerG 12509 // mVolts/g -#define -DAQmx_Val_VoltsPerG 12510 // Volts/g +#define DAQmx_Val_mVoltsPerG 12509 // mVolts/g +#define DAQmx_Val_VoltsPerG 12510 // Volts/g //*** Values for DAQmx_AI_Accel_Units *** //*** Value set AccelUnits2 *** -#define -DAQmx_Val_AccelUnit_g 10186 // g -#define -DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 -#define -DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 +#define DAQmx_Val_AccelUnit_g 10186 // g +#define DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 +#define DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 #define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Dev_AI_SampModes *** @@ -2836,257 +1558,163 @@ DAQmx_Val_InchesPerSecondSquared 12471 // in/s^ //*** Values for DAQmx_PhysicalChan_DO_SampModes *** //*** Values for DAQmx_SampQuant_SampMode *** //*** Value set AcquisitionType *** -#define -DAQmx_Val_FiniteSamps 10178 // Finite Samples -#define -DAQmx_Val_ContSamps 10123 // Continuous Samples -#define -DAQmx_Val_HWTimedSinglePoint 12522 // Hardware Timed Single Point +#define DAQmx_Val_FiniteSamps 10178 // Finite Samples +#define DAQmx_Val_ContSamps 10123 // Continuous Samples +#define DAQmx_Val_HWTimedSinglePoint 12522 // Hardware Timed Single Point //*** Values for DAQmx_AnlgLvl_PauseTrig_When *** //*** Value set ActiveLevel *** -#define -DAQmx_Val_AboveLvl 10093 // Above Level -#define -DAQmx_Val_BelowLvl 10107 // Below Level +#define DAQmx_Val_AboveLvl 10093 // Above Level +#define DAQmx_Val_BelowLvl 10107 // Below Level //*** Values for DAQmx_AI_RVDT_Units *** //*** Value set AngleUnits1 *** -#define -DAQmx_Val_Degrees 10146 // Degrees -#define -DAQmx_Val_Radians 10273 // Radians -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Degrees 10146 // Degrees +#define DAQmx_Val_Radians 10273 // Radians +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_AngEncoder_Units *** //*** Value set AngleUnits2 *** -#define -DAQmx_Val_Degrees 10146 // Degrees -#define -DAQmx_Val_Radians 10273 // Radians -#define -DAQmx_Val_Ticks 10304 // Ticks -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Degrees 10146 // Degrees +#define DAQmx_Val_Radians 10273 // Radians +#define DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Velocity_AngEncoder_Units *** //*** Value set AngularVelocityUnits *** -#define -DAQmx_Val_RPM 16080 // RPM -#define -DAQmx_Val_RadiansPerSecond 16081 // Radians/s -#define -DAQmx_Val_DegreesPerSecond 16082 // Degrees/s -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_RPM 16080 // RPM +#define DAQmx_Val_RadiansPerSecond 16081 // Radians/s +#define DAQmx_Val_DegreesPerSecond 16082 // Degrees/s +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_AutoZeroMode *** //*** Value set AutoZeroType1 *** -#define -DAQmx_Val_None 10230 // None -#define -DAQmx_Val_Once 10244 // Once -#define -DAQmx_Val_EverySample 10164 // Every Sample +#define DAQmx_Val_None 10230 // None +#define DAQmx_Val_Once 10244 // Once +#define DAQmx_Val_EverySample 10164 // Every Sample //*** Values for DAQmx_SwitchScan_BreakMode *** //*** Value set BreakMode *** -#define -DAQmx_Val_NoAction 10227 // No Action -#define -DAQmx_Val_BreakBeforeMake 10110 // Break Before Make +#define DAQmx_Val_NoAction 10227 // No Action +#define DAQmx_Val_BreakBeforeMake 10110 // Break Before Make //*** Values for DAQmx_AI_Bridge_Cfg *** //*** Value set BridgeConfiguration1 *** -#define -DAQmx_Val_FullBridge 10182 // Full Bridge -#define -DAQmx_Val_HalfBridge 10187 // Half Bridge -#define -DAQmx_Val_QuarterBridge 10270 // Quarter Bridge -#define -DAQmx_Val_NoBridge 10228 // No Bridge +#define DAQmx_Val_FullBridge 10182 // Full Bridge +#define DAQmx_Val_HalfBridge 10187 // Half Bridge +#define DAQmx_Val_QuarterBridge 10270 // Quarter Bridge +#define DAQmx_Val_NoBridge 10228 // No Bridge //*** Values for DAQmx_AI_Bridge_ElectricalUnits *** //*** Value set BridgeElectricalUnits *** -#define -DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define -DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt //*** Values for DAQmx_AI_Bridge_PhysicalUnits *** //*** Value set BridgePhysicalUnits *** -#define -DAQmx_Val_Newtons 15875 // Newtons -#define -DAQmx_Val_Pounds 15876 // Pounds -#define -DAQmx_Val_KilogramForce 15877 // kgf -#define -DAQmx_Val_Pascals 10081 // Pascals -#define -DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define -DAQmx_Val_Bar 15880 // bar -#define -DAQmx_Val_NewtonMeters 15881 // Nm -#define -DAQmx_Val_InchOunces 15882 // oz-in -#define -DAQmx_Val_InchPounds 15883 // lb-in -#define -DAQmx_Val_FootPounds 15884 // lb-ft +#define DAQmx_Val_Newtons 15875 // Newtons +#define DAQmx_Val_Pounds 15876 // Pounds +#define DAQmx_Val_KilogramForce 15877 // kgf +#define DAQmx_Val_Pascals 10081 // Pascals +#define DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define DAQmx_Val_Bar 15880 // bar +#define DAQmx_Val_NewtonMeters 15881 // Nm +#define DAQmx_Val_InchOunces 15882 // oz-in +#define DAQmx_Val_InchPounds 15883 // lb-in +#define DAQmx_Val_FootPounds 15884 // lb-ft //*** Values for DAQmx_AI_Bridge_Units *** //*** Value set BridgeUnits *** -#define -DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define -DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_Dev_BusType *** //*** Value set BusType *** -#define -DAQmx_Val_PCI 12582 // PCI -#define -DAQmx_Val_PCIe 13612 // PCIe -#define -DAQmx_Val_PXI 12583 // PXI -#define -DAQmx_Val_PXIe 14706 // PXIe -#define -DAQmx_Val_SCXI 12584 // SCXI -#define -DAQmx_Val_SCC 14707 // SCC -#define -DAQmx_Val_PCCard 12585 // PCCard -#define -DAQmx_Val_USB 12586 // USB +#define DAQmx_Val_PCI 12582 // PCI +#define DAQmx_Val_PCIe 13612 // PCIe +#define DAQmx_Val_PXI 12583 // PXI +#define DAQmx_Val_PXIe 14706 // PXIe +#define DAQmx_Val_SCXI 12584 // SCXI +#define DAQmx_Val_SCC 14707 // SCC +#define DAQmx_Val_PCCard 12585 // PCCard +#define DAQmx_Val_USB 12586 // USB #define DAQmx_Val_CompactDAQ 14637 // CompactDAQ -#define -DAQmx_Val_CompactRIO 16143 // CompactRIO -#define -DAQmx_Val_TCPIP 14828 // TCP/IP -#define -DAQmx_Val_Unknown 12588 // Unknown -#define -DAQmx_Val_SwitchBlock 15870 // SwitchBlock +#define DAQmx_Val_CompactRIO 16143 // CompactRIO +#define DAQmx_Val_TCPIP 14828 // TCP/IP +#define DAQmx_Val_Unknown 12588 // Unknown +#define DAQmx_Val_SwitchBlock 15870 // SwitchBlock //*** Values for DAQmx_CI_MeasType *** //*** Values for DAQmx_Dev_CI_SupportedMeasTypes *** //*** Values for DAQmx_PhysicalChan_CI_SupportedMeasTypes *** //*** Value set CIMeasurementType *** -#define -DAQmx_Val_CountEdges 10125 // Count Edges -#define -DAQmx_Val_Freq 10179 // Frequency -#define -DAQmx_Val_Period 10256 // Period -#define -DAQmx_Val_PulseWidth 10359 // Pulse Width -#define -DAQmx_Val_SemiPeriod 10289 // Semi Period -#define -DAQmx_Val_PulseFrequency 15864 // Pulse Frequency -#define -DAQmx_Val_PulseTime 15865 // Pulse Time -#define -DAQmx_Val_PulseTicks 15866 // Pulse Ticks -#define -DAQmx_Val_DutyCycle 16070 // Duty Cycle -#define -DAQmx_Val_Position_AngEncoder 10360 // Position:Angular Encoder -#define -DAQmx_Val_Position_LinEncoder 10361 // Position:Linear Encoder -#define -DAQmx_Val_Velocity_AngEncoder 16078 // Velocity:Angular Encoder -#define -DAQmx_Val_Velocity_LinEncoder 16079 // Velocity:Linear Encoder -#define -DAQmx_Val_TwoEdgeSep 10267 // Two Edge Separation -#define -DAQmx_Val_GPS_Timestamp 10362 // GPS Timestamp +#define DAQmx_Val_CountEdges 10125 // Count Edges +#define DAQmx_Val_Freq 10179 // Frequency +#define DAQmx_Val_Period 10256 // Period +#define DAQmx_Val_PulseWidth 10359 // Pulse Width +#define DAQmx_Val_SemiPeriod 10289 // Semi Period +#define DAQmx_Val_PulseFrequency 15864 // Pulse Frequency +#define DAQmx_Val_PulseTime 15865 // Pulse Time +#define DAQmx_Val_PulseTicks 15866 // Pulse Ticks +#define DAQmx_Val_DutyCycle 16070 // Duty Cycle +#define DAQmx_Val_Position_AngEncoder 10360 // Position:Angular Encoder +#define DAQmx_Val_Position_LinEncoder 10361 // Position:Linear Encoder +#define DAQmx_Val_Velocity_AngEncoder 16078 // Velocity:Angular Encoder +#define DAQmx_Val_Velocity_LinEncoder 16079 // Velocity:Linear Encoder +#define DAQmx_Val_TwoEdgeSep 10267 // Two Edge Separation +#define DAQmx_Val_GPS_Timestamp 10362 // GPS Timestamp //*** Values for DAQmx_AI_Thrmcpl_CJCSrc *** //*** Value set CJCSource1 *** -#define -DAQmx_Val_BuiltIn 10200 // Built-In -#define -DAQmx_Val_ConstVal 10116 // Constant Value -#define -DAQmx_Val_Chan 10113 // Channel +#define DAQmx_Val_BuiltIn 10200 // Built-In +#define DAQmx_Val_ConstVal 10116 // Constant Value +#define DAQmx_Val_Chan 10113 // Channel //*** Values for DAQmx_CO_OutputType *** //*** Values for DAQmx_Dev_CO_SupportedOutputTypes *** //*** Values for DAQmx_PhysicalChan_CO_SupportedOutputTypes *** //*** Value set COOutputType *** -#define -DAQmx_Val_Pulse_Time 10269 // Pulse:Time -#define -DAQmx_Val_Pulse_Freq 10119 // Pulse:Frequency -#define -DAQmx_Val_Pulse_Ticks 10268 // Pulse:Ticks +#define DAQmx_Val_Pulse_Time 10269 // Pulse:Time +#define DAQmx_Val_Pulse_Freq 10119 // Pulse:Frequency +#define DAQmx_Val_Pulse_Ticks 10268 // Pulse:Ticks //*** Values for DAQmx_ChanType *** //*** Value set ChannelType *** -#define -DAQmx_Val_AI 10100 // Analog Input -#define -DAQmx_Val_AO 10102 // Analog Output -#define -DAQmx_Val_DI 10151 // Digital Input -#define -DAQmx_Val_DO 10153 // Digital Output -#define -DAQmx_Val_CI 10131 // Counter Input -#define -DAQmx_Val_CO 10132 // Counter Output +#define DAQmx_Val_AI 10100 // Analog Input +#define DAQmx_Val_AO 10102 // Analog Output +#define DAQmx_Val_DI 10151 // Digital Input +#define DAQmx_Val_DO 10153 // Digital Output +#define DAQmx_Val_CI 10131 // Counter Input +#define DAQmx_Val_CO 10132 // Counter Output //*** Values for DAQmx_CO_ConstrainedGenMode *** //*** Value set ConstrainedGenMode *** -#define -DAQmx_Val_Unconstrained 14708 // Unconstrained -#define -DAQmx_Val_FixedHighFreq 14709 // Fixed High Frequency -#define -DAQmx_Val_FixedLowFreq 14710 // Fixed Low Frequency -#define -DAQmx_Val_Fixed50PercentDutyCycle 14711 // Fixed 50 Percent Duty Cycle +#define DAQmx_Val_Unconstrained 14708 // Unconstrained +#define DAQmx_Val_FixedHighFreq 14709 // Fixed High Frequency +#define DAQmx_Val_FixedLowFreq 14710 // Fixed Low Frequency +#define DAQmx_Val_Fixed50PercentDutyCycle 14711 // Fixed 50 Percent Duty Cycle //*** Values for DAQmx_CI_CountEdges_Dir *** //*** Value set CountDirection1 *** -#define -DAQmx_Val_CountUp 10128 // Count Up -#define -DAQmx_Val_CountDown 10124 // Count Down -#define -DAQmx_Val_ExtControlled 10326 // Externally Controlled +#define DAQmx_Val_CountUp 10128 // Count Up +#define DAQmx_Val_CountDown 10124 // Count Down +#define DAQmx_Val_ExtControlled 10326 // Externally Controlled //*** Values for DAQmx_CI_Freq_MeasMeth *** //*** Values for DAQmx_CI_Period_MeasMeth *** //*** Value set CounterFrequencyMethod *** -#define -DAQmx_Val_LowFreq1Ctr 10105 // Low Frequency with 1 Counter -#define -DAQmx_Val_HighFreq2Ctr 10157 // High Frequency with 2 Counters -#define -DAQmx_Val_LargeRng2Ctr 10205 // Large Range with 2 Counters -#define -DAQmx_Val_DynAvg 16065 // Dynamic Averaging +#define DAQmx_Val_LowFreq1Ctr 10105 // Low Frequency with 1 Counter +#define DAQmx_Val_HighFreq2Ctr 10157 // High Frequency with 2 Counters +#define DAQmx_Val_LargeRng2Ctr 10205 // Large Range with 2 Counters +#define DAQmx_Val_DynAvg 16065 // Dynamic Averaging //*** Values for DAQmx_AI_Coupling *** //*** Value set Coupling1 *** -#define -DAQmx_Val_AC 10045 // AC -#define -DAQmx_Val_DC 10050 // DC -#define -DAQmx_Val_GND 10066 // GND +#define DAQmx_Val_AC 10045 // AC +#define DAQmx_Val_DC 10050 // DC +#define DAQmx_Val_GND 10066 // GND //*** Values for DAQmx_AnlgEdge_StartTrig_Coupling *** //*** Values for DAQmx_AnlgMultiEdge_StartTrig_Couplings *** @@ -3097,56 +1725,41 @@ DAQmx_Val_GND 10066 // GND //*** Values for DAQmx_AnlgLvl_PauseTrig_Coupling *** //*** Values for DAQmx_AnlgWin_PauseTrig_Coupling *** //*** Value set Coupling2 *** -#define -DAQmx_Val_AC 10045 // AC -#define -DAQmx_Val_DC 10050 // DC +#define DAQmx_Val_AC 10045 // AC +#define DAQmx_Val_DC 10050 // DC //*** Values for DAQmx_AI_CurrentShunt_Loc *** //*** Value set CurrentShuntResistorLocation1 *** -#define -DAQmx_Val_Internal 10200 // Internal -#define -DAQmx_Val_External 10167 // External +#define DAQmx_Val_Internal 10200 // Internal +#define DAQmx_Val_External 10167 // External //*** Values for DAQmx_AI_Bridge_ShuntCal_ShuntCalASrc *** //*** Value set BridgeShuntCalSource *** #define DAQmx_Val_BuiltIn 10200 // Built-In -#define -DAQmx_Val_UserProvided 10167 // User Provided +#define DAQmx_Val_UserProvided 10167 // User Provided //*** Values for DAQmx_AI_Charge_Units *** //*** Value set ChargeUnits *** -#define -DAQmx_Val_Coulombs 16102 // Coulombs -#define -DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Coulombs 16102 // Coulombs +#define DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Current_Units *** //*** Values for DAQmx_AI_Current_ACRMS_Units *** //*** Values for DAQmx_AO_Current_Units *** //*** Value set CurrentUnits1 *** -#define -DAQmx_Val_Amps 10342 // Amps -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_Amps 10342 // Amps +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Value set CurrentUnits2 *** -#define -DAQmx_Val_Amps 10342 // Amps -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Amps 10342 // Amps +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_RawSampJustification *** //*** Value set DataJustification1 *** -#define -DAQmx_Val_RightJustified 10279 // Right-Justified -#define -DAQmx_Val_LeftJustified 10209 // Left-Justified +#define DAQmx_Val_RightJustified 10279 // Right-Justified +#define DAQmx_Val_LeftJustified 10209 // Left-Justified //*** Values for DAQmx_AI_DataXferMech *** //*** Values for DAQmx_AO_DataXferMech *** @@ -3155,95 +1768,67 @@ DAQmx_Val_LeftJustified 10209 // Left- //*** Values for DAQmx_CI_DataXferMech *** //*** Values for DAQmx_CO_DataXferMech *** //*** Value set DataTransferMechanism *** -#define -DAQmx_Val_DMA 10054 // DMA -#define -DAQmx_Val_Interrupts 10204 // Interrupts -#define -DAQmx_Val_ProgrammedIO 10264 // Programmed I/O -#define -DAQmx_Val_USBbulk 12590 // USB Bulk +#define DAQmx_Val_DMA 10054 // DMA +#define DAQmx_Val_Interrupts 10204 // Interrupts +#define DAQmx_Val_ProgrammedIO 10264 // Programmed I/O +#define DAQmx_Val_USBbulk 12590 // USB Bulk //*** Values for DAQmx_Exported_RdyForXferEvent_DeassertCond *** //*** Value set DeassertCondition *** -#define -DAQmx_Val_OnbrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full -#define -DAQmx_Val_OnbrdMemFull 10236 // Onboard Memory Full -#define -DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold +#define DAQmx_Val_OnbrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full +#define DAQmx_Val_OnbrdMemFull 10236 // Onboard Memory Full +#define DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold //*** Values for DAQmx_DO_OutputDriveType *** //*** Value set DigitalDriveType *** -#define -DAQmx_Val_ActiveDrive 12573 // Active Drive -#define -DAQmx_Val_OpenCollector 12574 // Open Collector +#define DAQmx_Val_ActiveDrive 12573 // Active Drive +#define DAQmx_Val_OpenCollector 12574 // Open Collector //*** Values for DAQmx_DO_LineStates_StartState *** //*** Values for DAQmx_DO_LineStates_PausedState *** //*** Values for DAQmx_DO_LineStates_DoneState *** //*** Values for DAQmx_Watchdog_DO_ExpirState *** //*** Value set DigitalLineState *** -#define -DAQmx_Val_High 10192 // High -#define -DAQmx_Val_Low 10214 // Low -#define -DAQmx_Val_Tristate 10310 // Tristate -#define -DAQmx_Val_NoChange 10160 // No Change +#define DAQmx_Val_High 10192 // High +#define DAQmx_Val_Low 10214 // Low +#define DAQmx_Val_Tristate 10310 // Tristate +#define DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_DigPattern_StartTrig_When *** //*** Values for DAQmx_DigPattern_RefTrig_When *** //*** Values for DAQmx_DigPattern_PauseTrig_When *** //*** Value set DigitalPatternCondition1 *** -#define -DAQmx_Val_PatternMatches 10254 // Pattern Matches -#define -DAQmx_Val_PatternDoesNotMatch 10253 // Pattern Does Not Match +#define DAQmx_Val_PatternMatches 10254 // Pattern Matches +#define DAQmx_Val_PatternDoesNotMatch 10253 // Pattern Does Not Match //*** Values for DAQmx_StartTrig_DelayUnits *** //*** Value set DigitalWidthUnits1 *** -#define -DAQmx_Val_SampClkPeriods 10286 // Sample Clock Periods -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_SampClkPeriods 10286 // Sample Clock Periods +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Ticks 10304 // Ticks //*** Values for DAQmx_DelayFromSampClk_DelayUnits *** //*** Value set DigitalWidthUnits2 *** -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Ticks 10304 // Ticks //*** Values for DAQmx_Exported_AdvTrig_Pulse_WidthUnits *** //*** Value set DigitalWidthUnits3 *** -#define -DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Seconds 10364 // Seconds //*** Values for DAQmx_AI_FilterDelayUnits *** //*** Values for DAQmx_AO_FilterDelayUnits *** //*** Value set DigitalWidthUnits4 *** -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_SampleClkPeriods 10286 // Sample Clock Periods +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_SampleClkPeriods 10286 // Sample Clock Periods //*** Values for DAQmx_AI_EddyCurrentProxProbe_SensitivityUnits *** //*** Value set EddyCurrentProxProbeSensitivityUnits *** -#define -DAQmx_Val_mVoltsPerMil 14836 // mVolts/mil -#define -DAQmx_Val_VoltsPerMil 14837 // Volts/mil -#define -DAQmx_Val_mVoltsPerMillimeter 14838 // mVolts/mMeter -#define -DAQmx_Val_VoltsPerMillimeter 14839 // Volts/mMeter -#define -DAQmx_Val_mVoltsPerMicron 14840 // mVolts/micron +#define DAQmx_Val_mVoltsPerMil 14836 // mVolts/mil +#define DAQmx_Val_VoltsPerMil 14837 // Volts/mil +#define DAQmx_Val_mVoltsPerMillimeter 14838 // mVolts/mMeter +#define DAQmx_Val_VoltsPerMillimeter 14839 // Volts/mMeter +#define DAQmx_Val_mVoltsPerMicron 14840 // mVolts/micron //*** Values for DAQmx_CI_Freq_StartingEdge *** //*** Values for DAQmx_CI_Period_StartingEdge *** @@ -3268,205 +1853,141 @@ DAQmx_Val_mVoltsPerMicron 14840 // mVolt //*** Values for DAQmx_DigEdge_ArmStartTrig_Edge *** //*** Values for DAQmx_DigEdge_WatchdogExpirTrig_Edge *** //*** Value set Edge1 *** -#define -DAQmx_Val_Rising 10280 // Rising -#define -DAQmx_Val_Falling 10171 // Falling +#define DAQmx_Val_Rising 10280 // Rising +#define DAQmx_Val_Falling 10171 // Falling //*** Values for DAQmx_CI_Encoder_DecodingType *** //*** Values for DAQmx_CI_Velocity_Encoder_DecodingType *** //*** Value set EncoderType2 *** -#define -DAQmx_Val_X1 10090 // X1 -#define -DAQmx_Val_X2 10091 // X2 -#define -DAQmx_Val_X4 10092 // X4 -#define -DAQmx_Val_TwoPulseCounting 10313 // Two Pulse Counting +#define DAQmx_Val_X1 10090 // X1 +#define DAQmx_Val_X2 10091 // X2 +#define DAQmx_Val_X4 10092 // X4 +#define DAQmx_Val_TwoPulseCounting 10313 // Two Pulse Counting //*** Values for DAQmx_CI_Encoder_ZIndexPhase *** //*** Value set EncoderZIndexPhase1 *** -#define -DAQmx_Val_AHighBHigh 10040 // A High B High -#define -DAQmx_Val_AHighBLow 10041 // A High B Low -#define -DAQmx_Val_ALowBHigh 10042 // A Low B High -#define -DAQmx_Val_ALowBLow 10043 // A Low B Low +#define DAQmx_Val_AHighBHigh 10040 // A High B High +#define DAQmx_Val_AHighBLow 10041 // A High B Low +#define DAQmx_Val_ALowBHigh 10042 // A Low B High +#define DAQmx_Val_ALowBLow 10043 // A Low B Low //*** Values for DAQmx_AI_Excit_DCorAC *** //*** Value set ExcitationDCorAC *** #define DAQmx_Val_DC 10050 // DC -#define -DAQmx_Val_AC 10045 // AC +#define DAQmx_Val_AC 10045 // AC //*** Values for DAQmx_AI_Excit_Src *** //*** Value set ExcitationSource *** -#define -DAQmx_Val_Internal 10200 // Internal -#define -DAQmx_Val_External 10167 // External -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_Internal 10200 // Internal +#define DAQmx_Val_External 10167 // External +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Excit_VoltageOrCurrent *** //*** Value set ExcitationVoltageOrCurrent *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_Current 10134 // Current +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Current 10134 // Current //*** Values for DAQmx_Exported_CtrOutEvent_OutputBehavior *** //*** Value set ExportActions2 *** -#define -DAQmx_Val_Pulse 10265 // Pulse -#define -DAQmx_Val_Toggle 10307 // Toggle +#define DAQmx_Val_Pulse 10265 // Pulse +#define DAQmx_Val_Toggle 10307 // Toggle //*** Values for DAQmx_Exported_SampClk_OutputBehavior *** //*** Value set ExportActions3 *** -#define -DAQmx_Val_Pulse 10265 // Pulse -#define -DAQmx_Val_Lvl 10210 // Level +#define DAQmx_Val_Pulse 10265 // Pulse +#define DAQmx_Val_Lvl 10210 // Level //*** Values for DAQmx_Exported_HshkEvent_OutputBehavior *** //*** Value set ExportActions5 *** -#define -DAQmx_Val_Interlocked 12549 // Interlocked -#define -DAQmx_Val_Pulse 10265 // Pulse +#define DAQmx_Val_Interlocked 12549 // Interlocked +#define DAQmx_Val_Pulse 10265 // Pulse //*** Values for DAQmx_AI_DigFltr_Type *** //*** Values for DAQmx_AI_DigFltr_Types *** //*** Value set FilterType2 *** -#define -DAQmx_Val_Lowpass 16071 // Lowpass -#define -DAQmx_Val_Highpass 16072 // Highpass -#define -DAQmx_Val_Bandpass 16073 // Bandpass -#define -DAQmx_Val_Notch 16074 // Notch -#define -DAQmx_Val_Custom 10137 // Custom +#define DAQmx_Val_Lowpass 16071 // Lowpass +#define DAQmx_Val_Highpass 16072 // Highpass +#define DAQmx_Val_Bandpass 16073 // Bandpass +#define DAQmx_Val_Notch 16074 // Notch +#define DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_DigFltr_Response *** //*** Value set FilterResponse *** -#define -DAQmx_Val_ConstantGroupDelay 16075 // Constant Group Delay -#define -DAQmx_Val_Butterworth 16076 // Butterworth -#define -DAQmx_Val_Elliptical 16077 // Elliptical -#define -DAQmx_Val_HardwareDefined 10191 // Hardware Defined +#define DAQmx_Val_ConstantGroupDelay 16075 // Constant Group Delay +#define DAQmx_Val_Butterworth 16076 // Butterworth +#define DAQmx_Val_Elliptical 16077 // Elliptical +#define DAQmx_Val_HardwareDefined 10191 // Hardware Defined //*** Values for DAQmx_AI_Filter_Response *** //*** Value set FilterResponse1 *** -#define -DAQmx_Val_Comb 16152 // Comb -#define -DAQmx_Val_Bessel 16153 // Bessel -#define -DAQmx_Val_Brickwall 16155 // Brickwall -#define -DAQmx_Val_Butterworth 16076 // Butterworth +#define DAQmx_Val_Comb 16152 // Comb +#define DAQmx_Val_Bessel 16153 // Bessel +#define DAQmx_Val_Brickwall 16155 // Brickwall +#define DAQmx_Val_Butterworth 16076 // Butterworth //*** Values for DAQmx_AI_Force_IEPESensor_SensitivityUnits *** //*** Value set ForceIEPESensorSensitivityUnits *** -#define -DAQmx_Val_mVoltsPerNewton 15891 // mVolts/N -#define -DAQmx_Val_mVoltsPerPound 15892 // mVolts/lb +#define DAQmx_Val_mVoltsPerNewton 15891 // mVolts/N +#define DAQmx_Val_mVoltsPerPound 15892 // mVolts/lb //*** Values for DAQmx_AI_Force_Units *** //*** Value set ForceUnits *** -#define -DAQmx_Val_Newtons 15875 // Newtons -#define -DAQmx_Val_Pounds 15876 // Pounds -#define -DAQmx_Val_KilogramForce 15877 // kgf -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Newtons 15875 // Newtons +#define DAQmx_Val_Pounds 15876 // Pounds +#define DAQmx_Val_KilogramForce 15877 // kgf +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Freq_Units *** //*** Value set FrequencyUnits *** -#define -DAQmx_Val_Hz 10373 // Hz -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Hz 10373 // Hz +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Pulse_Freq_Units *** //*** Values for DAQmx_CO_Pulse_Freq_Units *** //*** Value set FrequencyUnits2 *** -#define -DAQmx_Val_Hz 10373 // Hz +#define DAQmx_Val_Hz 10373 // Hz //*** Values for DAQmx_CI_Freq_Units *** //*** Value set FrequencyUnits3 *** -#define -DAQmx_Val_Hz 10373 // Hz -#define -DAQmx_Val_Ticks 10304 // Ticks -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Hz 10373 // Hz +#define DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AO_FuncGen_Type *** //*** Value set FuncGenType *** -#define -DAQmx_Val_Sine 14751 // Sine -#define -DAQmx_Val_Triangle 14752 // Triangle -#define -DAQmx_Val_Square 14753 // Square -#define -DAQmx_Val_Sawtooth 14754 // Sawtooth +#define DAQmx_Val_Sine 14751 // Sine +#define DAQmx_Val_Triangle 14752 // Triangle +#define DAQmx_Val_Square 14753 // Square +#define DAQmx_Val_Sawtooth 14754 // Sawtooth //*** Values for DAQmx_CI_GPS_SyncMethod *** //*** Value set GpsSignalType1 *** -#define -DAQmx_Val_IRIGB 10070 // IRIG-B -#define -DAQmx_Val_PPS 10080 // PPS -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_IRIGB 10070 // IRIG-B +#define DAQmx_Val_PPS 10080 // PPS +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_Hshk_StartCond *** //*** Value set HandshakeStartCondition *** -#define -DAQmx_Val_Immediate 10198 // Immediate -#define -DAQmx_Val_WaitForHandshakeTriggerAssert 12550 // Wait For Handshake Trigger Assert -#define -DAQmx_Val_WaitForHandshakeTriggerDeassert 12551 // Wait For Handshake Trigger Deassert +#define DAQmx_Val_Immediate 10198 // Immediate +#define DAQmx_Val_WaitForHandshakeTriggerAssert 12550 // Wait For Handshake Trigger Assert +#define DAQmx_Val_WaitForHandshakeTriggerDeassert 12551 // Wait For Handshake Trigger Deassert //*** Values for DAQmx_AI_DataXferReqCond *** //*** Values for DAQmx_DI_DataXferReqCond *** //*** Values for DAQmx_CI_DataXferReqCond *** //*** Value set InputDataTransferCondition *** -#define -DAQmx_Val_OnBrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full -#define -DAQmx_Val_OnBrdMemNotEmpty 10241 // Onboard Memory Not Empty +#define DAQmx_Val_OnBrdMemMoreThanHalfFull 10237 // Onboard Memory More than Half Full +#define DAQmx_Val_OnBrdMemNotEmpty 10241 // Onboard Memory Not Empty #define DAQmx_Val_OnbrdMemCustomThreshold 12577 // Onboard Memory Custom Threshold -#define -DAQmx_Val_WhenAcqComplete 12546 // When Acquisition Complete +#define DAQmx_Val_WhenAcqComplete 12546 // When Acquisition Complete //*** Values for DAQmx_AI_TermCfg *** //*** Value set InputTermCfg *** -#define -DAQmx_Val_RSE 10083 // RSE -#define -DAQmx_Val_NRSE 10078 // NRSE -#define -DAQmx_Val_Diff 10106 // Differential -#define -DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define DAQmx_Val_RSE 10083 // RSE +#define DAQmx_Val_NRSE 10078 // NRSE +#define DAQmx_Val_Diff 10106 // Differential +#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Values for DAQmx_CI_Freq_TermCfg *** //*** Values for DAQmx_CI_Period_TermCfg *** @@ -3488,38 +2009,27 @@ DAQmx_Val_PseudoDiff 12529 // Pseud //*** Values for DAQmx_CI_Pulse_Time_TermCfg *** //*** Values for DAQmx_CI_Pulse_Ticks_TermCfg *** //*** Value set InputTermCfg2 *** -#define -DAQmx_Val_Diff 10106 // Differential -#define -DAQmx_Val_RSE 10083 // RSE +#define DAQmx_Val_Diff 10106 // Differential +#define DAQmx_Val_RSE 10083 // RSE //*** Values for DAQmx_AI_LVDT_SensitivityUnits *** //*** Value set LVDTSensitivityUnits1 *** -#define -DAQmx_Val_mVoltsPerVoltPerMillimeter 12506 // mVolts/Volt/mMeter -#define -DAQmx_Val_mVoltsPerVoltPerMilliInch 12505 // mVolts/Volt/0.001 Inch +#define DAQmx_Val_mVoltsPerVoltPerMillimeter 12506 // mVolts/Volt/mMeter +#define DAQmx_Val_mVoltsPerVoltPerMilliInch 12505 // mVolts/Volt/0.001 Inch //*** Values for DAQmx_AI_LVDT_Units *** //*** Values for DAQmx_AI_EddyCurrentProxProbe_Units *** //*** Value set LengthUnits2 *** -#define -DAQmx_Val_Meters 10219 // Meters -#define -DAQmx_Val_Inches 10379 // Inches -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Meters 10219 // Meters +#define DAQmx_Val_Inches 10379 // Inches +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_LinEncoder_Units *** //*** Value set LengthUnits3 *** -#define -DAQmx_Val_Meters 10219 // Meters -#define -DAQmx_Val_Inches 10379 // Inches -#define -DAQmx_Val_Ticks 10304 // Ticks -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Meters 10219 // Meters +#define DAQmx_Val_Inches 10379 // Inches +#define DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_CountEdges_GateWhen *** //*** Values for DAQmx_CI_OutputState *** @@ -3530,98 +2040,67 @@ DAQmx_Val_FromCustomScale 10065 // From //*** Values for DAQmx_Interlocked_HshkTrig_AssertedLvl *** //*** Values for DAQmx_DigLvl_PauseTrig_When *** //*** Value set Level1 *** -#define -DAQmx_Val_High 10192 // High -#define -DAQmx_Val_Low 10214 // Low +#define DAQmx_Val_High 10192 // High +#define DAQmx_Val_Low 10214 // Low //*** Values for DAQmx_Logging_Mode *** //*** Value set LoggingMode *** -#define -DAQmx_Val_Off 10231 // Off -#define -DAQmx_Val_Log 15844 // Log -#define -DAQmx_Val_LogAndRead 15842 // Log and Read +#define DAQmx_Val_Off 10231 // Off +#define DAQmx_Val_Log 15844 // Log +#define DAQmx_Val_LogAndRead 15842 // Log and Read //*** Values for DAQmx_Logging_TDMS_Operation *** //*** Value set LoggingOperation *** -#define -DAQmx_Val_Open 10437 // Open -#define -DAQmx_Val_OpenOrCreate 15846 // Open or Create -#define -DAQmx_Val_CreateOrReplace 15847 // Create or Replace -#define -DAQmx_Val_Create 15848 // Create +#define DAQmx_Val_Open 10437 // Open +#define DAQmx_Val_OpenOrCreate 15846 // Open or Create +#define DAQmx_Val_CreateOrReplace 15847 // Create or Replace +#define DAQmx_Val_Create 15848 // Create //*** Values for DAQmx_DI_LogicFamily *** //*** Values for DAQmx_DO_LogicFamily *** //*** Value set LogicFamily *** -#define -DAQmx_Val_2point5V 14620 // 2.5 V -#define -DAQmx_Val_3point3V 14621 // 3.3 V -#define -DAQmx_Val_5V 14619 // 5.0 V +#define DAQmx_Val_2point5V 14620 // 2.5 V +#define DAQmx_Val_3point3V 14621 // 3.3 V +#define DAQmx_Val_5V 14619 // 5.0 V //*** Values for DAQmx_AIConv_Timebase_Src *** //*** Value set MIOAIConvertTbSrc *** -#define -DAQmx_Val_SameAsSampTimebase 10284 // Same as Sample Timebase -#define -DAQmx_Val_SameAsMasterTimebase 10282 // Same as Master Timebase -#define -DAQmx_Val_100MHzTimebase 15857 // 100 MHz Timebase -#define -DAQmx_Val_80MHzTimebase 14636 // 80 MHz Timebase -#define -DAQmx_Val_20MHzTimebase 12537 // 20 MHz Timebase -#define -DAQmx_Val_8MHzTimebase 16023 // 8 MHz Timebase +#define DAQmx_Val_SameAsSampTimebase 10284 // Same as Sample Timebase +#define DAQmx_Val_SameAsMasterTimebase 10282 // Same as Master Timebase +#define DAQmx_Val_100MHzTimebase 15857 // 100 MHz Timebase +#define DAQmx_Val_80MHzTimebase 14636 // 80 MHz Timebase +#define DAQmx_Val_20MHzTimebase 12537 // 20 MHz Timebase +#define DAQmx_Val_8MHzTimebase 16023 // 8 MHz Timebase //*** Values for DAQmx_AO_FuncGen_ModulationType *** //*** Value set ModulationType *** -#define -DAQmx_Val_AM 14756 // AM -#define -DAQmx_Val_FM 14757 // FM -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_AM 14756 // AM +#define DAQmx_Val_FM 14757 // FM +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_AO_DataXferReqCond *** //*** Values for DAQmx_DO_DataXferReqCond *** //*** Values for DAQmx_CO_DataXferReqCond *** //*** Value set OutputDataTransferCondition *** -#define -DAQmx_Val_OnBrdMemEmpty 10235 // Onboard Memory Empty -#define -DAQmx_Val_OnBrdMemHalfFullOrLess 10239 // Onboard Memory Half Full or Less -#define -DAQmx_Val_OnBrdMemNotFull 10242 // Onboard Memory Less than Full +#define DAQmx_Val_OnBrdMemEmpty 10235 // Onboard Memory Empty +#define DAQmx_Val_OnBrdMemHalfFullOrLess 10239 // Onboard Memory Half Full or Less +#define DAQmx_Val_OnBrdMemNotFull 10242 // Onboard Memory Less than Full //*** Values for DAQmx_AO_TermCfg *** //*** Value set OutputTermCfg *** -#define -DAQmx_Val_RSE 10083 // RSE -#define -DAQmx_Val_Diff 10106 // Differential -#define -DAQmx_Val_PseudoDiff 12529 // Pseudodifferential +#define DAQmx_Val_RSE 10083 // RSE +#define DAQmx_Val_Diff 10106 // Differential +#define DAQmx_Val_PseudoDiff 12529 // Pseudodifferential //*** Values for DAQmx_SampClk_OverrunBehavior *** //*** Value set OverflowBehavior *** -#define -DAQmx_Val_StopTaskAndError 15862 // Stop Task And Error -#define -DAQmx_Val_IgnoreOverruns 15863 // Ignore Overruns +#define DAQmx_Val_StopTaskAndError 15862 // Stop Task And Error +#define DAQmx_Val_IgnoreOverruns 15863 // Ignore Overruns //*** Values for DAQmx_Read_OverWrite *** //*** Value set OverwriteMode1 *** -#define -DAQmx_Val_OverwriteUnreadSamps 10252 // Overwrite Unread Samples -#define -DAQmx_Val_DoNotOverwriteUnreadSamps 10159 // Do Not Overwrite Unread Samples +#define DAQmx_Val_OverwriteUnreadSamps 10252 // Overwrite Unread Samples +#define DAQmx_Val_DoNotOverwriteUnreadSamps 10159 // Do Not Overwrite Unread Samples //*** Values for DAQmx_Exported_AIConvClk_Pulse_Polarity *** //*** Values for DAQmx_Exported_SampClk_Pulse_Polarity *** @@ -3638,469 +2117,301 @@ DAQmx_Val_DoNotOverwriteUnreadSamps 10159 // Do No //*** Values for DAQmx_Exported_DataActiveEvent_Lvl_ActiveLvl *** //*** Values for DAQmx_Exported_RdyForStartEvent_Lvl_ActiveLvl *** //*** Value set Polarity2 *** -#define -DAQmx_Val_ActiveHigh 10095 // Active High -#define -DAQmx_Val_ActiveLow 10096 // Active Low +#define DAQmx_Val_ActiveHigh 10095 // Active High +#define DAQmx_Val_ActiveLow 10096 // Active Low //*** Values for DAQmx_AI_Pressure_Units *** //*** Value set PressureUnits *** #define DAQmx_Val_Pascals 10081 // Pascals -#define -DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define -DAQmx_Val_Bar 15880 // bar -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define DAQmx_Val_Bar 15880 // bar +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Dev_ProductCategory *** //*** Value set ProductCategory *** -#define -DAQmx_Val_MSeriesDAQ 14643 // M Series DAQ -#define -DAQmx_Val_XSeriesDAQ 15858 // X Series DAQ -#define -DAQmx_Val_ESeriesDAQ 14642 // E Series DAQ -#define -DAQmx_Val_SSeriesDAQ 14644 // S Series DAQ -#define -DAQmx_Val_BSeriesDAQ 14662 // B Series DAQ -#define -DAQmx_Val_SCSeriesDAQ 14645 // SC Series DAQ -#define -DAQmx_Val_USBDAQ 14646 // USB DAQ -#define -DAQmx_Val_AOSeries 14647 // AO Series -#define -DAQmx_Val_DigitalIO 14648 // Digital I/O -#define -DAQmx_Val_TIOSeries 14661 // TIO Series -#define -DAQmx_Val_DynamicSignalAcquisition 14649 // Dynamic Signal Acquisition -#define -DAQmx_Val_Switches 14650 // Switches -#define -DAQmx_Val_CompactDAQChassis 14658 // CompactDAQ Chassis -#define -DAQmx_Val_CompactRIOChassis 16144 // CompactRIO Chassis -#define -DAQmx_Val_CSeriesModule 14659 // C Series Module -#define -DAQmx_Val_SCXIModule 14660 // SCXI Module -#define -DAQmx_Val_SCCConnectorBlock 14704 // SCC Connector Block -#define -DAQmx_Val_SCCModule 14705 // SCC Module -#define -DAQmx_Val_NIELVIS 14755 // NI ELVIS -#define -DAQmx_Val_NetworkDAQ 14829 // Network DAQ -#define -DAQmx_Val_SCExpress 15886 // SC Express -#define -DAQmx_Val_FieldDAQ 16151 // FieldDAQ -#define -DAQmx_Val_Unknown 12588 // Unknown +#define DAQmx_Val_MSeriesDAQ 14643 // M Series DAQ +#define DAQmx_Val_XSeriesDAQ 15858 // X Series DAQ +#define DAQmx_Val_ESeriesDAQ 14642 // E Series DAQ +#define DAQmx_Val_SSeriesDAQ 14644 // S Series DAQ +#define DAQmx_Val_BSeriesDAQ 14662 // B Series DAQ +#define DAQmx_Val_SCSeriesDAQ 14645 // SC Series DAQ +#define DAQmx_Val_USBDAQ 14646 // USB DAQ +#define DAQmx_Val_AOSeries 14647 // AO Series +#define DAQmx_Val_DigitalIO 14648 // Digital I/O +#define DAQmx_Val_TIOSeries 14661 // TIO Series +#define DAQmx_Val_DynamicSignalAcquisition 14649 // Dynamic Signal Acquisition +#define DAQmx_Val_Switches 14650 // Switches +#define DAQmx_Val_CompactDAQChassis 14658 // CompactDAQ Chassis +#define DAQmx_Val_CompactRIOChassis 16144 // CompactRIO Chassis +#define DAQmx_Val_CSeriesModule 14659 // C Series Module +#define DAQmx_Val_SCXIModule 14660 // SCXI Module +#define DAQmx_Val_SCCConnectorBlock 14704 // SCC Connector Block +#define DAQmx_Val_SCCModule 14705 // SCC Module +#define DAQmx_Val_NIELVIS 14755 // NI ELVIS +#define DAQmx_Val_NetworkDAQ 14829 // Network DAQ +#define DAQmx_Val_SCExpress 15886 // SC Express +#define DAQmx_Val_FieldDAQ 16151 // FieldDAQ +#define DAQmx_Val_Unknown 12588 // Unknown //*** Values for DAQmx_AI_RTD_Type *** //*** Value set RTDType1 *** -#define -DAQmx_Val_Pt3750 12481 // Pt3750 -#define -DAQmx_Val_Pt3851 10071 // Pt3851 -#define -DAQmx_Val_Pt3911 12482 // Pt3911 -#define -DAQmx_Val_Pt3916 10069 // Pt3916 -#define -DAQmx_Val_Pt3920 10053 // Pt3920 -#define -DAQmx_Val_Pt3928 12483 // Pt3928 -#define -DAQmx_Val_Custom 10137 // Custom +#define DAQmx_Val_Pt3750 12481 // Pt3750 +#define DAQmx_Val_Pt3851 10071 // Pt3851 +#define DAQmx_Val_Pt3911 12482 // Pt3911 +#define DAQmx_Val_Pt3916 10069 // Pt3916 +#define DAQmx_Val_Pt3920 10053 // Pt3920 +#define DAQmx_Val_Pt3928 12483 // Pt3928 +#define DAQmx_Val_Custom 10137 // Custom //*** Values for DAQmx_AI_RVDT_SensitivityUnits *** //*** Value set RVDTSensitivityUnits1 *** -#define -DAQmx_Val_mVoltsPerVoltPerDegree 12507 // mVolts/Volt/Degree -#define -DAQmx_Val_mVoltsPerVoltPerRadian 12508 // mVolts/Volt/Radian +#define DAQmx_Val_mVoltsPerVoltPerDegree 12507 // mVolts/Volt/Degree +#define DAQmx_Val_mVoltsPerVoltPerRadian 12508 // mVolts/Volt/Radian //*** Values for DAQmx_AI_RawDataCompressionType *** //*** Value set RawDataCompressionType *** -#define -DAQmx_Val_None 10230 // None -#define -DAQmx_Val_LosslessPacking 12555 // Lossless Packing -#define -DAQmx_Val_LossyLSBRemoval 12556 // Lossy LSB Removal +#define DAQmx_Val_None 10230 // None +#define DAQmx_Val_LosslessPacking 12555 // Lossless Packing +#define DAQmx_Val_LossyLSBRemoval 12556 // Lossy LSB Removal //*** Values for DAQmx_Read_RelativeTo *** //*** Value set ReadRelativeTo *** -#define -DAQmx_Val_FirstSample 10424 // First Sample -#define -DAQmx_Val_CurrReadPos 10425 // Current Read Position -#define -DAQmx_Val_RefTrig 10426 // Reference Trigger -#define -DAQmx_Val_FirstPretrigSamp 10427 // First Pretrigger Sample -#define -DAQmx_Val_MostRecentSamp 10428 // Most Recent Sample +#define DAQmx_Val_FirstSample 10424 // First Sample +#define DAQmx_Val_CurrReadPos 10425 // Current Read Position +#define DAQmx_Val_RefTrig 10426 // Reference Trigger +#define DAQmx_Val_FirstPretrigSamp 10427 // First Pretrigger Sample +#define DAQmx_Val_MostRecentSamp 10428 // Most Recent Sample //*** Values for DAQmx_Write_RegenMode *** //*** Value set RegenerationMode1 *** -#define -DAQmx_Val_AllowRegen 10097 // Allow Regeneration -#define -DAQmx_Val_DoNotAllowRegen 10158 // Do Not Allow Regeneration +#define DAQmx_Val_AllowRegen 10097 // Allow Regeneration +#define DAQmx_Val_DoNotAllowRegen 10158 // Do Not Allow Regeneration //*** Values for DAQmx_AI_ResistanceCfg *** //*** Value set ResistanceConfiguration *** -#define -DAQmx_Val_2Wire 2 // 2-Wire -#define -DAQmx_Val_3Wire 3 // 3-Wire -#define -DAQmx_Val_4Wire 4 // 4-Wire +#define DAQmx_Val_2Wire 2 // 2-Wire +#define DAQmx_Val_3Wire 3 // 3-Wire +#define DAQmx_Val_4Wire 4 // 4-Wire //*** Values for DAQmx_AI_Resistance_Units *** //*** Value set ResistanceUnits1 *** -#define -DAQmx_Val_Ohms 10384 // Ohms +#define DAQmx_Val_Ohms 10384 // Ohms #define DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Value set ResistanceUnits2 *** -#define -DAQmx_Val_Ohms 10384 // Ohms -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Ohms 10384 // Ohms +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_ResolutionUnits *** //*** Values for DAQmx_AO_ResolutionUnits *** //*** Value set ResolutionType1 *** -#define -DAQmx_Val_Bits 10109 // Bits +#define DAQmx_Val_Bits 10109 // Bits //*** Value set SCXI1124Range *** -#define -DAQmx_Val_SCXI1124Range0to1V 14629 // 0V to 1V -#define -DAQmx_Val_SCXI1124Range0to5V 14630 // 0V to 5V -#define -DAQmx_Val_SCXI1124Range0to10V 14631 // 0V to 10V -#define -DAQmx_Val_SCXI1124RangeNeg1to1V 14632 // -1V to 1V -#define -DAQmx_Val_SCXI1124RangeNeg5to5V 14633 // -5V to 5V -#define -DAQmx_Val_SCXI1124RangeNeg10to10V 14634 // -10V to 10V -#define -DAQmx_Val_SCXI1124Range0to20mA 14635 // 0mA to 20mA +#define DAQmx_Val_SCXI1124Range0to1V 14629 // 0V to 1V +#define DAQmx_Val_SCXI1124Range0to5V 14630 // 0V to 5V +#define DAQmx_Val_SCXI1124Range0to10V 14631 // 0V to 10V +#define DAQmx_Val_SCXI1124RangeNeg1to1V 14632 // -1V to 1V +#define DAQmx_Val_SCXI1124RangeNeg5to5V 14633 // -5V to 5V +#define DAQmx_Val_SCXI1124RangeNeg10to10V 14634 // -10V to 10V +#define DAQmx_Val_SCXI1124Range0to20mA 14635 // 0mA to 20mA //*** Values for DAQmx_DI_AcquireOn *** //*** Values for DAQmx_DO_GenerateOn *** //*** Value set SampleClockActiveOrInactiveEdgeSelection *** -#define -DAQmx_Val_SampClkActiveEdge 14617 // Sample Clock Active Edge -#define -DAQmx_Val_SampClkInactiveEdge 14618 // Sample Clock Inactive Edge +#define DAQmx_Val_SampClkActiveEdge 14617 // Sample Clock Active Edge +#define DAQmx_Val_SampClkInactiveEdge 14618 // Sample Clock Inactive Edge //*** Values for DAQmx_Hshk_SampleInputDataWhen *** //*** Value set SampleInputDataWhen *** -#define -DAQmx_Val_HandshakeTriggerAsserts 12552 // Handshake Trigger Asserts -#define -DAQmx_Val_HandshakeTriggerDeasserts 12553 // Handshake Trigger Deasserts +#define DAQmx_Val_HandshakeTriggerAsserts 12552 // Handshake Trigger Asserts +#define DAQmx_Val_HandshakeTriggerDeasserts 12553 // Handshake Trigger Deasserts //*** Values for DAQmx_SampTimingType *** //*** Value set SampleTimingType *** -#define -DAQmx_Val_SampClk 10388 // Sample Clock -#define -DAQmx_Val_BurstHandshake 12548 // Burst Handshake -#define -DAQmx_Val_Handshake 10389 // Handshake -#define -DAQmx_Val_Implicit 10451 // Implicit -#define -DAQmx_Val_OnDemand 10390 // On Demand -#define -DAQmx_Val_ChangeDetection 12504 // Change Detection -#define -DAQmx_Val_PipelinedSampClk 14668 // Pipelined Sample Clock +#define DAQmx_Val_SampClk 10388 // Sample Clock +#define DAQmx_Val_BurstHandshake 12548 // Burst Handshake +#define DAQmx_Val_Handshake 10389 // Handshake +#define DAQmx_Val_Implicit 10451 // Implicit +#define DAQmx_Val_OnDemand 10390 // On Demand +#define DAQmx_Val_ChangeDetection 12504 // Change Detection +#define DAQmx_Val_PipelinedSampClk 14668 // Pipelined Sample Clock //*** Values for DAQmx_Scale_Type *** //*** Value set ScaleType *** -#define -DAQmx_Val_Linear 10447 // Linear -#define -DAQmx_Val_MapRanges 10448 // Map Ranges -#define -DAQmx_Val_Polynomial 10449 // Polynomial -#define -DAQmx_Val_Table 10450 // Table +#define DAQmx_Val_Linear 10447 // Linear +#define DAQmx_Val_MapRanges 10448 // Map Ranges +#define DAQmx_Val_Polynomial 10449 // Polynomial +#define DAQmx_Val_Table 10450 // Table //*** Values for DAQmx_AI_Thrmcpl_ScaleType *** //*** Value set ScaleType2 *** -#define -DAQmx_Val_Polynomial 10449 // Polynomial -#define -DAQmx_Val_Table 10450 // Table +#define DAQmx_Val_Polynomial 10449 // Polynomial +#define DAQmx_Val_Table 10450 // Table //*** Values for DAQmx_AI_ChanCal_ScaleType *** //*** Value set ScaleType3 *** -#define -DAQmx_Val_Polynomial 10449 // Polynomial -#define -DAQmx_Val_Table 10450 // Table -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_Polynomial 10449 // Polynomial +#define DAQmx_Val_Table 10450 // Table +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Bridge_ScaleType *** //*** Value set ScaleType4 *** -#define -DAQmx_Val_None 10230 // None -#define -DAQmx_Val_TwoPointLinear 15898 // Two-Point Linear -#define -DAQmx_Val_Table 10450 // Table -#define -DAQmx_Val_Polynomial 10449 // Polynomial +#define DAQmx_Val_None 10230 // None +#define DAQmx_Val_TwoPointLinear 15898 // Two-Point Linear +#define DAQmx_Val_Table 10450 // Table +#define DAQmx_Val_Polynomial 10449 // Polynomial //*** Values for DAQmx_AI_SensorPower_Cfg *** //*** Value set SensorPowerCfg *** -#define -DAQmx_Val_NoChange 10160 // No Change -#define -DAQmx_Val_Enabled 16145 // Enabled -#define -DAQmx_Val_Disabled 16146 // Disabled +#define DAQmx_Val_NoChange 10160 // No Change +#define DAQmx_Val_Enabled 16145 // Enabled +#define DAQmx_Val_Disabled 16146 // Disabled //*** Values for DAQmx_AI_SensorPower_Type *** //*** Values for DAQmx_PhysicalChan_AI_SensorPower_Types *** //*** Values for DAQmx_PhysicalChan_AI_PowerControl_Type *** //*** Value set SensorPowerType *** -#define -DAQmx_Val_DC 10050 // DC -#define -DAQmx_Val_AC 10045 // AC -#define -DAQmx_Val_BipolarDC 16147 // BipolarDC +#define DAQmx_Val_DC 10050 // DC +#define DAQmx_Val_AC 10045 // AC +#define DAQmx_Val_BipolarDC 16147 // BipolarDC //*** Values for DAQmx_AI_Bridge_ShuntCal_Select *** //*** Value set ShuntCalSelect *** -#define -DAQmx_Val_A 12513 // A -#define -DAQmx_Val_B 12514 // B -#define -DAQmx_Val_AandB 12515 // A and B +#define DAQmx_Val_A 12513 // A +#define DAQmx_Val_B 12514 // B +#define DAQmx_Val_AandB 12515 // A and B //*** Value set ShuntElementLocation *** -#define -DAQmx_Val_R1 12465 // R1 -#define -DAQmx_Val_R2 12466 // R2 -#define -DAQmx_Val_R3 12467 // R3 -#define -DAQmx_Val_R4 14813 // R4 -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_R1 12465 // R1 +#define DAQmx_Val_R2 12466 // R2 +#define DAQmx_Val_R3 12467 // R3 +#define DAQmx_Val_R4 14813 // R4 +#define DAQmx_Val_None 10230 // None //*** Value set Signal *** #define DAQmx_Val_AIConvertClock 12484 // AI Convert Clock -#define -DAQmx_Val_10MHzRefClock 12536 // 10MHz Reference Clock -#define -DAQmx_Val_20MHzTimebaseClock 12486 // 20MHz Timebase Clock -#define -DAQmx_Val_SampleClock 12487 // Sample Clock -#define -DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger -#define -DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger -#define -DAQmx_Val_StartTrigger 12491 // Start Trigger -#define -DAQmx_Val_AdvCmpltEvent 12492 // Advance Complete Event -#define -DAQmx_Val_AIHoldCmpltEvent 12493 // AI Hold Complete Event -#define -DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event -#define -DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event -#define -DAQmx_Val_WDTExpiredEvent 12512 // Watchdog Timer Expired Event +#define DAQmx_Val_10MHzRefClock 12536 // 10MHz Reference Clock +#define DAQmx_Val_20MHzTimebaseClock 12486 // 20MHz Timebase Clock +#define DAQmx_Val_SampleClock 12487 // Sample Clock +#define DAQmx_Val_AdvanceTrigger 12488 // Advance Trigger +#define DAQmx_Val_ReferenceTrigger 12490 // Reference Trigger +#define DAQmx_Val_StartTrigger 12491 // Start Trigger +#define DAQmx_Val_AdvCmpltEvent 12492 // Advance Complete Event +#define DAQmx_Val_AIHoldCmpltEvent 12493 // AI Hold Complete Event +#define DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event +#define DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event +#define DAQmx_Val_WDTExpiredEvent 12512 // Watchdog Timer Expired Event //*** Value set Signal2 *** -#define -DAQmx_Val_SampleCompleteEvent 12530 // Sample Complete Event -#define -DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event -#define -DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event -#define -DAQmx_Val_SampleClock 12487 // Sample Clock +#define DAQmx_Val_SampleCompleteEvent 12530 // Sample Complete Event +#define DAQmx_Val_CounterOutputEvent 12494 // Counter Output Event +#define DAQmx_Val_ChangeDetectionEvent 12511 // Change Detection Event +#define DAQmx_Val_SampleClock 12487 // Sample Clock //*** Values for DAQmx_AnlgEdge_StartTrig_Slope *** //*** Values for DAQmx_AnlgMultiEdge_StartTrig_Slopes *** //*** Values for DAQmx_AnlgEdge_RefTrig_Slope *** //*** Values for DAQmx_AnlgMultiEdge_RefTrig_Slopes *** //*** Value set Slope1 *** -#define -DAQmx_Val_RisingSlope 10280 // Rising -#define -DAQmx_Val_FallingSlope 10171 // Falling +#define DAQmx_Val_RisingSlope 10280 // Rising +#define DAQmx_Val_FallingSlope 10171 // Falling //*** Values for DAQmx_AI_SoundPressure_Units *** //*** Value set SoundPressureUnits1 *** -#define -DAQmx_Val_Pascals 10081 // Pascals -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Pascals 10081 // Pascals +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Lowpass_SwitchCap_ClkSrc *** //*** Values for DAQmx_AO_DAC_Ref_Src *** //*** Values for DAQmx_AO_DAC_Offset_Src *** //*** Value set SourceSelection *** -#define -DAQmx_Val_Internal 10200 // Internal -#define -DAQmx_Val_External 10167 // External +#define DAQmx_Val_Internal 10200 // Internal +#define DAQmx_Val_External 10167 // External //*** Values for DAQmx_AI_StrainGage_Cfg *** //*** Value set StrainGageBridgeType1 *** -#define -DAQmx_Val_FullBridgeI 10183 // Full Bridge I -#define -DAQmx_Val_FullBridgeII 10184 // Full Bridge II -#define -DAQmx_Val_FullBridgeIII 10185 // Full Bridge III -#define -DAQmx_Val_HalfBridgeI 10188 // Half Bridge I -#define -DAQmx_Val_HalfBridgeII 10189 // Half Bridge II -#define -DAQmx_Val_QuarterBridgeI 10271 // Quarter Bridge I -#define -DAQmx_Val_QuarterBridgeII 10272 // Quarter Bridge II +#define DAQmx_Val_FullBridgeI 10183 // Full Bridge I +#define DAQmx_Val_FullBridgeII 10184 // Full Bridge II +#define DAQmx_Val_FullBridgeIII 10185 // Full Bridge III +#define DAQmx_Val_HalfBridgeI 10188 // Half Bridge I +#define DAQmx_Val_HalfBridgeII 10189 // Half Bridge II +#define DAQmx_Val_QuarterBridgeI 10271 // Quarter Bridge I +#define DAQmx_Val_QuarterBridgeII 10272 // Quarter Bridge II //*** Values for DAQmx_AI_RosetteStrainGage_RosetteType *** //*** Value set StrainGageRosetteType *** -#define -DAQmx_Val_RectangularRosette 15968 // Rectangular Rosette -#define -DAQmx_Val_DeltaRosette 15969 // Delta Rosette -#define -DAQmx_Val_TeeRosette 15970 // Tee Rosette +#define DAQmx_Val_RectangularRosette 15968 // Rectangular Rosette +#define DAQmx_Val_DeltaRosette 15969 // Delta Rosette +#define DAQmx_Val_TeeRosette 15970 // Tee Rosette //*** Values for DAQmx_AI_RosetteStrainGage_RosetteMeasType *** //*** Value set StrainGageRosetteMeasurementType *** -#define -DAQmx_Val_PrincipalStrain1 15971 // Principal Strain 1 -#define -DAQmx_Val_PrincipalStrain2 15972 // Principal Strain 2 -#define -DAQmx_Val_PrincipalStrainAngle 15973 // Principal Strain Angle -#define -DAQmx_Val_CartesianStrainX 15974 // Cartesian Strain X -#define -DAQmx_Val_CartesianStrainY 15975 // Cartesian Strain Y -#define -DAQmx_Val_CartesianShearStrainXY 15976 // Cartesian Shear Strain XY -#define -DAQmx_Val_MaxShearStrain 15977 // Maximum Shear Strain -#define -DAQmx_Val_MaxShearStrainAngle 15978 // Maximum Shear Strain Angle +#define DAQmx_Val_PrincipalStrain1 15971 // Principal Strain 1 +#define DAQmx_Val_PrincipalStrain2 15972 // Principal Strain 2 +#define DAQmx_Val_PrincipalStrainAngle 15973 // Principal Strain Angle +#define DAQmx_Val_CartesianStrainX 15974 // Cartesian Strain X +#define DAQmx_Val_CartesianStrainY 15975 // Cartesian Strain Y +#define DAQmx_Val_CartesianShearStrainXY 15976 // Cartesian Shear Strain XY +#define DAQmx_Val_MaxShearStrain 15977 // Maximum Shear Strain +#define DAQmx_Val_MaxShearStrainAngle 15978 // Maximum Shear Strain Angle //*** Values for DAQmx_AI_Strain_Units *** //*** Value set StrainUnits1 *** -#define -DAQmx_Val_Strain 10299 // Strain -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Strain 10299 // Strain +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_SwitchScan_RepeatMode *** //*** Value set SwitchScanRepeatMode *** -#define -DAQmx_Val_Finite 10172 // Finite -#define -DAQmx_Val_Cont 10117 // Continuous +#define DAQmx_Val_Finite 10172 // Finite +#define DAQmx_Val_Cont 10117 // Continuous //*** Values for DAQmx_SwitchChan_Usage *** //*** Value set SwitchUsageTypes *** -#define -DAQmx_Val_Source 10439 // Source -#define -DAQmx_Val_Load 10440 // Load -#define -DAQmx_Val_ReservedForRouting 10441 // Reserved for Routing +#define DAQmx_Val_Source 10439 // Source +#define DAQmx_Val_Load 10440 // Load +#define DAQmx_Val_ReservedForRouting 10441 // Reserved for Routing //*** Values for DAQmx_SyncPulse_Type *** //*** Value set SyncPulseType *** -#define -DAQmx_Val_Onboard 16128 // Onboard -#define -DAQmx_Val_DigEdge 10150 // Digital Edge -#define -DAQmx_Val_Time 15996 // Time +#define DAQmx_Val_Onboard 16128 // Onboard +#define DAQmx_Val_DigEdge 10150 // Digital Edge +#define DAQmx_Val_Time 15996 // Time //*** Values for DAQmx_Trigger_SyncType *** //*** Value set SyncType *** #define DAQmx_Val_None 10230 // None -#define -DAQmx_Val_Master 15888 // Master -#define -DAQmx_Val_Slave 15889 // Slave +#define DAQmx_Val_Master 15888 // Master +#define DAQmx_Val_Slave 15889 // Slave //*** Values for DAQmx_Chan_SyncUnlockBehavior *** //*** Value set SyncUnlockBehavior *** -#define -DAQmx_Val_StopTaskAndError 15862 // Stop Task and Error -#define -DAQmx_Val_IgnoreLostSyncLock 16129 // Ignore Lost Sync Lock +#define DAQmx_Val_StopTaskAndError 15862 // Stop Task and Error +#define DAQmx_Val_IgnoreLostSyncLock 16129 // Ignore Lost Sync Lock //*** Value set TEDSUnits *** -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AI_Temp_Units *** //*** Value set TemperatureUnits1 *** -#define -DAQmx_Val_DegC 10143 // Deg C -#define -DAQmx_Val_DegF 10144 // Deg F -#define -DAQmx_Val_Kelvins 10325 // Kelvins -#define -DAQmx_Val_DegR 10145 // Deg R -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_DegC 10143 // Deg C +#define DAQmx_Val_DegF 10144 // Deg F +#define DAQmx_Val_Kelvins 10325 // Kelvins +#define DAQmx_Val_DegR 10145 // Deg R +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Thrmcpl_Type *** //*** Value set ThermocoupleType1 *** -#define -DAQmx_Val_J_Type_TC 10072 // J -#define -DAQmx_Val_K_Type_TC 10073 // K -#define -DAQmx_Val_N_Type_TC 10077 // N -#define -DAQmx_Val_R_Type_TC 10082 // R -#define -DAQmx_Val_S_Type_TC 10085 // S -#define -DAQmx_Val_T_Type_TC 10086 // T -#define -DAQmx_Val_B_Type_TC 10047 // B -#define -DAQmx_Val_E_Type_TC 10055 // E +#define DAQmx_Val_J_Type_TC 10072 // J +#define DAQmx_Val_K_Type_TC 10073 // K +#define DAQmx_Val_N_Type_TC 10077 // N +#define DAQmx_Val_R_Type_TC 10082 // R +#define DAQmx_Val_S_Type_TC 10085 // S +#define DAQmx_Val_T_Type_TC 10086 // T +#define DAQmx_Val_B_Type_TC 10047 // B +#define DAQmx_Val_E_Type_TC 10055 // E //*** Values for DAQmx_SyncPulse_Time_Timescale *** //*** Values for DAQmx_FirstSampTimestamp_Timescale *** @@ -4111,342 +2422,222 @@ DAQmx_Val_E_Type_TC 10055 // E //*** Values for DAQmx_ArmStartTrig_Timescale *** //*** Values for DAQmx_ArmStartTrig_TimestampTimescale *** //*** Value set Timescale2 *** -#define -DAQmx_Val_HostTime 16126 // Host Time -#define -DAQmx_Val_IODeviceTime 16127 // I/O Device Time +#define DAQmx_Val_HostTime 16126 // Host Time +#define DAQmx_Val_IODeviceTime 16127 // I/O Device Time //*** Values for DAQmx_CI_Timestamp_Units *** //*** Value set TimeUnits *** -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_CI_Pulse_Time_Units *** //*** Values for DAQmx_CO_Pulse_Time_Units *** //*** Value set TimeUnits2 *** -#define -DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Seconds 10364 // Seconds //*** Values for DAQmx_CI_Period_Units *** //*** Values for DAQmx_CI_PulseWidth_Units *** //*** Values for DAQmx_CI_TwoEdgeSep_Units *** //*** Values for DAQmx_CI_SemiPeriod_Units *** //*** Value set TimeUnits3 *** -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_Ticks 10304 // Ticks -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Value set TimingResponseMode *** -#define -DAQmx_Val_SingleCycle 14613 // Single-cycle -#define -DAQmx_Val_Multicycle 14614 // Multicycle +#define DAQmx_Val_SingleCycle 14613 // Single-cycle +#define DAQmx_Val_Multicycle 14614 // Multicycle //*** Values for DAQmx_AI_Torque_Units *** //*** Value set TorqueUnits *** -#define -DAQmx_Val_NewtonMeters 15881 // Nm -#define -DAQmx_Val_InchOunces 15882 // oz-in -#define -DAQmx_Val_InchPounds 15883 // lb-in -#define -DAQmx_Val_FootPounds 15884 // lb-ft -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_NewtonMeters 15881 // Nm +#define DAQmx_Val_InchOunces 15882 // oz-in +#define DAQmx_Val_InchPounds 15883 // lb-in +#define DAQmx_Val_FootPounds 15884 // lb-ft +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_ArmStartTrig_Type *** //*** Values for DAQmx_WatchdogExpirTrig_Type *** //*** Value set TriggerType4 *** -#define -DAQmx_Val_DigEdge 10150 // Digital Edge -#define -DAQmx_Val_Time 15996 // Time -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_DigEdge 10150 // Digital Edge +#define DAQmx_Val_Time 15996 // Time +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_AdvTrig_Type *** //*** Value set TriggerType5 *** -#define -DAQmx_Val_DigEdge 10150 // Digital Edge -#define -DAQmx_Val_Software 10292 // Software -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_DigEdge 10150 // Digital Edge +#define DAQmx_Val_Software 10292 // Software +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_PauseTrig_Type *** //*** Value set TriggerType6 *** -#define -DAQmx_Val_AnlgLvl 10101 // Analog Level -#define -DAQmx_Val_AnlgWin 10103 // Analog Window -#define -DAQmx_Val_DigLvl 10152 // Digital Level -#define -DAQmx_Val_DigPattern 10398 // Digital Pattern -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_AnlgLvl 10101 // Analog Level +#define DAQmx_Val_AnlgWin 10103 // Analog Window +#define DAQmx_Val_DigLvl 10152 // Digital Level +#define DAQmx_Val_DigPattern 10398 // Digital Pattern +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_RefTrig_Type *** //*** Value set TriggerType8 *** -#define -DAQmx_Val_AnlgEdge 10099 // Analog Edge -#define -DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge -#define -DAQmx_Val_DigEdge 10150 // Digital Edge -#define -DAQmx_Val_DigPattern 10398 // Digital Pattern +#define DAQmx_Val_AnlgEdge 10099 // Analog Edge +#define DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge +#define DAQmx_Val_DigEdge 10150 // Digital Edge +#define DAQmx_Val_DigPattern 10398 // Digital Pattern #define DAQmx_Val_AnlgWin 10103 // Analog Window -#define -DAQmx_Val_Time 15996 // Time -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_Time 15996 // Time +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_HshkTrig_Type *** //*** Value set TriggerType9 *** -#define -DAQmx_Val_Interlocked 12549 // Interlocked -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_Interlocked 12549 // Interlocked +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_StartTrig_Type *** //*** Value set TriggerType10 *** -#define -DAQmx_Val_AnlgEdge 10099 // Analog Edge -#define -DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge -#define -DAQmx_Val_DigEdge 10150 // Digital Edge -#define -DAQmx_Val_DigPattern 10398 // Digital Pattern -#define -DAQmx_Val_AnlgWin 10103 // Analog Window -#define -DAQmx_Val_Time 15996 // Time -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_AnlgEdge 10099 // Analog Edge +#define DAQmx_Val_AnlgMultiEdge 16108 // Analog Multi Edge +#define DAQmx_Val_DigEdge 10150 // Digital Edge +#define DAQmx_Val_DigPattern 10398 // Digital Pattern +#define DAQmx_Val_AnlgWin 10103 // Analog Window +#define DAQmx_Val_Time 15996 // Time +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_SampClk_UnderflowBehavior *** //*** Values for DAQmx_Implicit_UnderflowBehavior *** //*** Value set UnderflowBehavior *** -#define -DAQmx_Val_HaltOutputAndError 14615 // Halt Output and Error -#define -DAQmx_Val_PauseUntilDataAvailable 14616 // Pause until Data Available +#define DAQmx_Val_HaltOutputAndError 14615 // Halt Output and Error +#define DAQmx_Val_PauseUntilDataAvailable 14616 // Pause until Data Available //*** Values for DAQmx_Scale_PreScaledUnits *** //*** Value set UnitsPreScaled *** -#define -DAQmx_Val_Volts 10348 // Volts -#define -DAQmx_Val_Amps 10342 // Amps -#define -DAQmx_Val_DegF 10144 // Deg F -#define -DAQmx_Val_DegC 10143 // Deg C -#define -DAQmx_Val_DegR 10145 // Deg R -#define -DAQmx_Val_Kelvins 10325 // Kelvins -#define -DAQmx_Val_Strain 10299 // Strain -#define -DAQmx_Val_Ohms 10384 // Ohms -#define -DAQmx_Val_Hz 10373 // Hz -#define -DAQmx_Val_Seconds 10364 // Seconds -#define -DAQmx_Val_Meters 10219 // Meters -#define -DAQmx_Val_Inches 10379 // Inches -#define -DAQmx_Val_Degrees 10146 // Degrees -#define -DAQmx_Val_Radians 10273 // Radians -#define -DAQmx_Val_Ticks 10304 // Ticks -#define -DAQmx_Val_RPM 16080 // RPM -#define -DAQmx_Val_RadiansPerSecond 16081 // Radians/s -#define -DAQmx_Val_DegreesPerSecond 16082 // Degrees/s -#define -DAQmx_Val_g 10186 // g -#define -DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 -#define -DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 -#define -DAQmx_Val_MetersPerSecond 15959 // m/s -#define -DAQmx_Val_InchesPerSecond 15960 // in/s -#define -DAQmx_Val_Pascals 10081 // Pascals -#define -DAQmx_Val_Newtons 15875 // Newtons -#define -DAQmx_Val_Pounds 15876 // Pounds -#define -DAQmx_Val_KilogramForce 15877 // kgf -#define -DAQmx_Val_PoundsPerSquareInch 15879 // psi -#define -DAQmx_Val_Bar 15880 // bar -#define -DAQmx_Val_NewtonMeters 15881 // Nm -#define -DAQmx_Val_InchOunces 15882 // oz-in -#define -DAQmx_Val_InchPounds 15883 // lb-in -#define -DAQmx_Val_FootPounds 15884 // lb-ft -#define -DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt -#define -DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt -#define -DAQmx_Val_Coulombs 16102 // Coulombs +#define DAQmx_Val_Volts 10348 // Volts +#define DAQmx_Val_Amps 10342 // Amps +#define DAQmx_Val_DegF 10144 // Deg F +#define DAQmx_Val_DegC 10143 // Deg C +#define DAQmx_Val_DegR 10145 // Deg R +#define DAQmx_Val_Kelvins 10325 // Kelvins +#define DAQmx_Val_Strain 10299 // Strain +#define DAQmx_Val_Ohms 10384 // Ohms +#define DAQmx_Val_Hz 10373 // Hz +#define DAQmx_Val_Seconds 10364 // Seconds +#define DAQmx_Val_Meters 10219 // Meters +#define DAQmx_Val_Inches 10379 // Inches +#define DAQmx_Val_Degrees 10146 // Degrees +#define DAQmx_Val_Radians 10273 // Radians +#define DAQmx_Val_Ticks 10304 // Ticks +#define DAQmx_Val_RPM 16080 // RPM +#define DAQmx_Val_RadiansPerSecond 16081 // Radians/s +#define DAQmx_Val_DegreesPerSecond 16082 // Degrees/s +#define DAQmx_Val_g 10186 // g +#define DAQmx_Val_MetersPerSecondSquared 12470 // m/s^2 +#define DAQmx_Val_InchesPerSecondSquared 12471 // in/s^2 +#define DAQmx_Val_MetersPerSecond 15959 // m/s +#define DAQmx_Val_InchesPerSecond 15960 // in/s +#define DAQmx_Val_Pascals 10081 // Pascals +#define DAQmx_Val_Newtons 15875 // Newtons +#define DAQmx_Val_Pounds 15876 // Pounds +#define DAQmx_Val_KilogramForce 15877 // kgf +#define DAQmx_Val_PoundsPerSquareInch 15879 // psi +#define DAQmx_Val_Bar 15880 // bar +#define DAQmx_Val_NewtonMeters 15881 // Nm +#define DAQmx_Val_InchOunces 15882 // oz-in +#define DAQmx_Val_InchPounds 15883 // lb-in +#define DAQmx_Val_FootPounds 15884 // lb-ft +#define DAQmx_Val_VoltsPerVolt 15896 // Volts/Volt +#define DAQmx_Val_mVoltsPerVolt 15897 // mVolts/Volt +#define DAQmx_Val_Coulombs 16102 // Coulombs #define DAQmx_Val_PicoCoulombs 16103 // PicoCoulombs -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AI_Velocity_IEPESensor_SensitivityUnits *** //*** Value set VelocityIEPESensorSensitivityUnits *** -#define -DAQmx_Val_MillivoltsPerMillimeterPerSecond 15963 // mVolts/mm/s -#define -DAQmx_Val_MilliVoltsPerInchPerSecond 15964 // mVolts/in/s +#define DAQmx_Val_MillivoltsPerMillimeterPerSecond 15963 // mVolts/mm/s +#define DAQmx_Val_MilliVoltsPerInchPerSecond 15964 // mVolts/in/s //*** Values for DAQmx_AI_Velocity_Units *** //*** Values for DAQmx_CI_Velocity_LinEncoder_Units *** //*** Value set VelocityUnits *** -#define -DAQmx_Val_MetersPerSecond 15959 // m/s -#define -DAQmx_Val_InchesPerSecond 15960 // in/s -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_MetersPerSecond 15959 // m/s +#define DAQmx_Val_InchesPerSecond 15960 // in/s +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_AI_Voltage_Units *** //*** Values for DAQmx_AI_Voltage_ACRMS_Units *** //*** Value set VoltageUnits1 *** -#define -DAQmx_Val_Volts 10348 // Volts -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale -#define -DAQmx_Val_FromTEDS 12516 // From TEDS +#define DAQmx_Val_Volts 10348 // Volts +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_FromTEDS 12516 // From TEDS //*** Values for DAQmx_AO_Voltage_Units *** //*** Value set VoltageUnits2 *** -#define -DAQmx_Val_Volts 10348 // Volts -#define -DAQmx_Val_FromCustomScale 10065 // From Custom Scale +#define DAQmx_Val_Volts 10348 // Volts +#define DAQmx_Val_FromCustomScale 10065 // From Custom Scale //*** Values for DAQmx_Read_WaitMode *** //*** Value set WaitMode *** -#define -DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define -DAQmx_Val_Poll 12524 // Poll -#define -DAQmx_Val_Yield 12525 // Yield -#define -DAQmx_Val_Sleep 12547 // Sleep +#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define DAQmx_Val_Poll 12524 // Poll +#define DAQmx_Val_Yield 12525 // Yield +#define DAQmx_Val_Sleep 12547 // Sleep //*** Values for DAQmx_Write_WaitMode *** //*** Value set WaitMode2 *** -#define -DAQmx_Val_Poll 12524 // Poll -#define -DAQmx_Val_Yield 12525 // Yield -#define -DAQmx_Val_Sleep 12547 // Sleep +#define DAQmx_Val_Poll 12524 // Poll +#define DAQmx_Val_Yield 12525 // Yield +#define DAQmx_Val_Sleep 12547 // Sleep //*** Values for DAQmx_RealTime_WaitForNextSampClkWaitMode *** //*** Value set WaitMode3 *** -#define -DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define -DAQmx_Val_Poll 12524 // Poll +#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define DAQmx_Val_Poll 12524 // Poll //*** Values for DAQmx_RealTime_WriteRecoveryMode *** //*** Value set WaitMode4 *** -#define -DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt -#define -DAQmx_Val_Poll 12524 // Poll +#define DAQmx_Val_WaitForInterrupt 12523 // Wait For Interrupt +#define DAQmx_Val_Poll 12524 // Poll //*** Values for DAQmx_Watchdog_AO_OutputType *** //*** Value set WatchdogAOExpirState *** -#define -DAQmx_Val_Voltage 10322 // Voltage -#define -DAQmx_Val_Current 10134 // Current -#define -DAQmx_Val_NoChange 10160 // No Change +#define DAQmx_Val_Voltage 10322 // Voltage +#define DAQmx_Val_Current 10134 // Current +#define DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_Watchdog_CO_ExpirState *** //*** Value set WatchdogCOExpirState *** -#define -DAQmx_Val_Low 10214 // Low -#define -DAQmx_Val_High 10192 // High -#define -DAQmx_Val_NoChange 10160 // No Change +#define DAQmx_Val_Low 10214 // Low +#define DAQmx_Val_High 10192 // High +#define DAQmx_Val_NoChange 10160 // No Change //*** Values for DAQmx_AnlgWin_StartTrig_When *** //*** Values for DAQmx_AnlgWin_RefTrig_When *** //*** Value set WindowTriggerCondition1 *** -#define -DAQmx_Val_EnteringWin 10163 // Entering Window -#define -DAQmx_Val_LeavingWin 10208 // Leaving Window +#define DAQmx_Val_EnteringWin 10163 // Entering Window +#define DAQmx_Val_LeavingWin 10208 // Leaving Window //*** Values for DAQmx_AnlgWin_PauseTrig_When *** //*** Value set WindowTriggerCondition2 *** -#define -DAQmx_Val_InsideWin 10199 // Inside Window -#define -DAQmx_Val_OutsideWin 10251 // Outside Window +#define DAQmx_Val_InsideWin 10199 // Inside Window +#define DAQmx_Val_OutsideWin 10251 // Outside Window //*** Value set WriteBasicTEDSOptions *** -#define -DAQmx_Val_WriteToEEPROM 12538 // Write To EEPROM -#define -DAQmx_Val_WriteToPROM 12539 // Write To PROM Once -#define -DAQmx_Val_DoNotWrite 12540 // Do Not Write +#define DAQmx_Val_WriteToEEPROM 12538 // Write To EEPROM +#define DAQmx_Val_WriteToPROM 12539 // Write To PROM Once +#define DAQmx_Val_DoNotWrite 12540 // Do Not Write //*** Values for DAQmx_Write_RelativeTo *** //*** Value set WriteRelativeTo *** -#define -DAQmx_Val_FirstSample 10424 // First Sample -#define -DAQmx_Val_CurrWritePos 10430 // Current Write Position +#define DAQmx_Val_FirstSample 10424 // First Sample +#define DAQmx_Val_CurrWritePos 10430 // Current Write Position //*** Values for DAQmx_AI_Excit_IdleOutputBehavior *** //*** Value set ExcitationIdleOutputBehavior *** -#define -DAQmx_Val_ZeroVoltsOrAmps 12526 // Zero Volts or Amps -#define -DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value +#define DAQmx_Val_ZeroVoltsOrAmps 12526 // Zero Volts or Amps +#define DAQmx_Val_MaintainExistingValue 12528 // Maintain Existing Value //*** Values for DAQmx_CI_SampClkOverrunBehavior *** //*** Value set SampClkOverrunBehavior *** -#define -DAQmx_Val_RepeatedData 16062 // Repeated Data -#define -DAQmx_Val_SentinelValue 16063 // Sentinel Value +#define DAQmx_Val_RepeatedData 16062 // Repeated Data +#define DAQmx_Val_SentinelValue 16063 // Sentinel Value //*** Values for DAQmx_CI_Freq_LogicLvlBehavior *** //*** Values for DAQmx_CI_Period_LogicLvlBehavior *** @@ -4468,17 +2659,13 @@ DAQmx_Val_SentinelValue 16063 // Senti //*** Values for DAQmx_CI_Pulse_Time_LogicLvlBehavior *** //*** Values for DAQmx_CI_Pulse_Ticks_LogicLvlBehavior *** //*** Value set LogicLvlBehavior *** -#define -DAQmx_Val_LogicLevelPullUp 16064 // Logic Level Pull-up -#define -DAQmx_Val_None 10230 // None +#define DAQmx_Val_LogicLevelPullUp 16064 // Logic Level Pull-up +#define DAQmx_Val_None 10230 // None //*** Values for DAQmx_AI_Excit_Sense *** //*** Value set Sense *** -#define -DAQmx_Val_Local 16095 // Local -#define -DAQmx_Val_Remote 16096 // Remote +#define DAQmx_Val_Local 16095 // Local +#define DAQmx_Val_Remote 16096 // Remote /****************************************************************************** @@ -4536,25 +2723,25 @@ int32 __CFUNC DAQmxCreateAIThrmstrChanVex (TaskHandle taskHandle, const c int32 __CFUNC DAQmxCreateAIFreqVoltageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, float64 thresholdLevel, float64 hysteresis, const char customScaleName[]); int32 __CFUNC DAQmxCreateAIResistanceChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateAIStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 initialBridgeVoltage, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIRosetteStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 gageFactor, float64 nominalGageResistance, float64 poissonRatio, float64 leadWireResistance); -int32 __CFUNC DAQmxCreateAIForceBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIRosetteStrainGageChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 rosetteType, float64 gageOrientation, const int32 rosetteMeasTypes[], uInt32 numRosetteMeasTypes, int32 strainConfig, int32 voltageExcitSource, float64 voltageExcitVal,float64 gageFactor, float64 nominalGageResistance,float64 poissonRatio,float64 leadWireResistance); +int32 __CFUNC DAQmxCreateAIForceBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIForceBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIForceBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIForceBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIForceBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgeTwoPointLinChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIPressureBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIPressureBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgeTwoPointLinChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, float64 firstElectricalVal, float64 secondElectricalVal, int32 electricalUnits, float64 firstPhysicalVal, float64 secondPhysicalVal, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgeTwoPointLinChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,float64 firstElectricalVal,float64 secondElectricalVal,int32 electricalUnits,float64 firstPhysicalVal,float64 secondPhysicalVal,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgeTableChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 electricalVals[], uInt32 numElectricalVals, int32 electricalUnits, const float64 physicalVals[], uInt32 numPhysicalVals, int32 physicalUnits, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgeTableChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 electricalVals[],uInt32 numElectricalVals,int32 electricalUnits,const float64 physicalVals[],uInt32 numPhysicalVals,int32 physicalUnits,const char customScaleName[]); -int32 __CFUNC DAQmxCreateAITorqueBridgePolynomialChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const float64 forwardCoeffs[], uInt32 numForwardCoeffs, const float64 reverseCoeffs[], uInt32 numReverseCoeffs, int32 electricalUnits, int32 physicalUnits, const char customScaleName[]); -int32 __CFUNC DAQmxCreateAIBridgeChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 nominalBridgeResistance, const char customScaleName[]); +int32 __CFUNC DAQmxCreateAITorqueBridgePolynomialChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const float64 forwardCoeffs[],uInt32 numForwardCoeffs,const float64 reverseCoeffs[],uInt32 numReverseCoeffs,int32 electricalUnits,int32 physicalUnits,const char customScaleName[]); +int32 __CFUNC DAQmxCreateAIBridgeChan (TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 bridgeConfig,int32 voltageExcitSource,float64 voltageExcitVal,float64 nominalBridgeResistance,const char customScaleName[]); int32 __CFUNC DAQmxCreateAIVoltageChanWithExcit(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 bridgeConfig, int32 voltageExcitSource, float64 voltageExcitVal, bool32 useExcitForScaling, const char customScaleName[]); int32 __CFUNC DAQmxCreateAITempBuiltInSensorChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 units); int32 __CFUNC DAQmxCreateAIAccelChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, float64 sensitivity, int32 sensitivityUnits, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); @@ -4578,10 +2765,10 @@ int32 __CFUNC DAQmxCreateTEDSAIThrmstrChanIex(TaskHandle taskHandle, const c int32 __CFUNC DAQmxCreateTEDSAIThrmstrChanVex(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 voltageExcitSource, float64 voltageExcitVal, float64 r1); int32 __CFUNC DAQmxCreateTEDSAIResistanceChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 resistanceConfig, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIStrainGageChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, float64 initialBridgeVoltage, float64 leadWireResistance, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIForceBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIPressureBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAITorqueBridgeChan(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); -int32 __CFUNC DAQmxCreateTEDSAIBridgeChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIForceBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIPressureBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal, const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAITorqueBridgeChan(TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); +int32 __CFUNC DAQmxCreateTEDSAIBridgeChan (TaskHandle taskHandle,const char physicalChannel[],const char nameToAssignToChannel[],float64 minVal,float64 maxVal,int32 units,int32 voltageExcitSource,float64 voltageExcitVal,const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIVoltageChanWithExcit(TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 voltageExcitSource, float64 voltageExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIAccelChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); int32 __CFUNC DAQmxCreateTEDSAIForceIEPEChan (TaskHandle taskHandle, const char physicalChannel[], const char nameToAssignToChannel[], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, int32 currentExcitSource, float64 currentExcitVal, const char customScaleName[]); @@ -4826,372 +3013,191 @@ int32 __CFUNC DAQmxSwitchDisconnectMulti (const char connectionList[], b int32 __CFUNC DAQmxSwitchDisconnectAll (const char deviceName[], bool32 waitForSettling); // Switch Topologies -#define -DAQmx_Val_Switch_Topology_Configured_Topology "Configured Topology" // Configured Topology -#define -DAQmx_Val_Switch_Topology_1127_1_Wire_64x1_Mux "1127/1-Wire 64x1 Mux" // 1127/1-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_1127_2_Wire_32x1_Mux "1127/2-Wire 32x1 Mux" // 1127/2-Wire 32x1 Mux -#define -DAQmx_Val_Switch_Topology_1127_2_Wire_4x8_Matrix "1127/2-Wire 4x8 Matrix" // 1127/2-Wire 4x8 Matrix -#define -DAQmx_Val_Switch_Topology_1127_4_Wire_16x1_Mux "1127/4-Wire 16x1 Mux" // 1127/4-Wire 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1127_Independent "1127/Independent" // 1127/Independent -#define -DAQmx_Val_Switch_Topology_1128_1_Wire_64x1_Mux "1128/1-Wire 64x1 Mux" // 1128/1-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_1128_2_Wire_32x1_Mux "1128/2-Wire 32x1 Mux" // 1128/2-Wire 32x1 Mux -#define -DAQmx_Val_Switch_Topology_1128_2_Wire_4x8_Matrix "1128/2-Wire 4x8 Matrix" // 1128/2-Wire 4x8 Matrix -#define -DAQmx_Val_Switch_Topology_1128_4_Wire_16x1_Mux "1128/4-Wire 16x1 Mux" // 1128/4-Wire 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1128_Independent "1128/Independent" // 1128/Independent -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_16x16_Matrix "1129/2-Wire 16x16 Matrix" // 1129/2-Wire 16x16 Matrix -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_8x32_Matrix "1129/2-Wire 8x32 Matrix" // 1129/2-Wire 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_4x64_Matrix "1129/2-Wire 4x64 Matrix" // 1129/2-Wire 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_8x16_Matrix "1129/2-Wire Dual 8x16 Matrix" // 1129/2-Wire Dual 8x16 Matrix -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_4x32_Matrix "1129/2-Wire Dual 4x32 Matrix" // 1129/2-Wire Dual 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_1129_2_Wire_Quad_4x16_Matrix "1129/2-Wire Quad 4x16 Matrix" // 1129/2-Wire Quad 4x16 Matrix -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_256x1_Mux "1130/1-Wire 256x1 Mux" // 1130/1-Wire 256x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_Dual_128x1_Mux "1130/1-Wire Dual 128x1 Mux" // 1130/1-Wire Dual 128x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_2_Wire_128x1_Mux "1130/2-Wire 128x1 Mux" // 1130/2-Wire 128x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_4_Wire_64x1_Mux "1130/4-Wire 64x1 Mux" // 1130/4-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_4x64_Matrix "1130/1-Wire 4x64 Matrix" // 1130/1-Wire 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_8x32_Matrix "1130/1-Wire 8x32 Matrix" // 1130/1-Wire 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_Octal_32x1_Mux "1130/1-Wire Octal 32x1 Mux" // 1130/1-Wire Octal 32x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_Quad_64x1_Mux "1130/1-Wire Quad 64x1 Mux" // 1130/1-Wire Quad 64x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_1_Wire_Sixteen_16x1_Mux "1130/1-Wire Sixteen 16x1 Mux" // 1130/1-Wire Sixteen 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_2_Wire_4x32_Matrix "1130/2-Wire 4x32 Matrix" // 1130/2-Wire 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_1130_2_Wire_Octal_16x1_Mux "1130/2-Wire Octal 16x1 Mux" // 1130/2-Wire Octal 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_2_Wire_Quad_32x1_Mux "1130/2-Wire Quad 32x1 Mux" // 1130/2-Wire Quad 32x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_4_Wire_Quad_16x1_Mux "1130/4-Wire Quad 16x1 Mux" // 1130/4-Wire Quad 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1130_Independent "1130/Independent" // 1130/Independent -#define -DAQmx_Val_Switch_Topology_1160_16_SPDT "1160/16-SPDT" // 1160/16-SPDT -#define -DAQmx_Val_Switch_Topology_1161_8_SPDT "1161/8-SPDT" // 1161/8-SPDT +#define DAQmx_Val_Switch_Topology_Configured_Topology "Configured Topology" // Configured Topology +#define DAQmx_Val_Switch_Topology_1127_1_Wire_64x1_Mux "1127/1-Wire 64x1 Mux" // 1127/1-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_1127_2_Wire_32x1_Mux "1127/2-Wire 32x1 Mux" // 1127/2-Wire 32x1 Mux +#define DAQmx_Val_Switch_Topology_1127_2_Wire_4x8_Matrix "1127/2-Wire 4x8 Matrix" // 1127/2-Wire 4x8 Matrix +#define DAQmx_Val_Switch_Topology_1127_4_Wire_16x1_Mux "1127/4-Wire 16x1 Mux" // 1127/4-Wire 16x1 Mux +#define DAQmx_Val_Switch_Topology_1127_Independent "1127/Independent" // 1127/Independent +#define DAQmx_Val_Switch_Topology_1128_1_Wire_64x1_Mux "1128/1-Wire 64x1 Mux" // 1128/1-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_1128_2_Wire_32x1_Mux "1128/2-Wire 32x1 Mux" // 1128/2-Wire 32x1 Mux +#define DAQmx_Val_Switch_Topology_1128_2_Wire_4x8_Matrix "1128/2-Wire 4x8 Matrix" // 1128/2-Wire 4x8 Matrix +#define DAQmx_Val_Switch_Topology_1128_4_Wire_16x1_Mux "1128/4-Wire 16x1 Mux" // 1128/4-Wire 16x1 Mux +#define DAQmx_Val_Switch_Topology_1128_Independent "1128/Independent" // 1128/Independent +#define DAQmx_Val_Switch_Topology_1129_2_Wire_16x16_Matrix "1129/2-Wire 16x16 Matrix" // 1129/2-Wire 16x16 Matrix +#define DAQmx_Val_Switch_Topology_1129_2_Wire_8x32_Matrix "1129/2-Wire 8x32 Matrix" // 1129/2-Wire 8x32 Matrix +#define DAQmx_Val_Switch_Topology_1129_2_Wire_4x64_Matrix "1129/2-Wire 4x64 Matrix" // 1129/2-Wire 4x64 Matrix +#define DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_8x16_Matrix "1129/2-Wire Dual 8x16 Matrix" // 1129/2-Wire Dual 8x16 Matrix +#define DAQmx_Val_Switch_Topology_1129_2_Wire_Dual_4x32_Matrix "1129/2-Wire Dual 4x32 Matrix" // 1129/2-Wire Dual 4x32 Matrix +#define DAQmx_Val_Switch_Topology_1129_2_Wire_Quad_4x16_Matrix "1129/2-Wire Quad 4x16 Matrix" // 1129/2-Wire Quad 4x16 Matrix +#define DAQmx_Val_Switch_Topology_1130_1_Wire_256x1_Mux "1130/1-Wire 256x1 Mux" // 1130/1-Wire 256x1 Mux +#define DAQmx_Val_Switch_Topology_1130_1_Wire_Dual_128x1_Mux "1130/1-Wire Dual 128x1 Mux" // 1130/1-Wire Dual 128x1 Mux +#define DAQmx_Val_Switch_Topology_1130_2_Wire_128x1_Mux "1130/2-Wire 128x1 Mux" // 1130/2-Wire 128x1 Mux +#define DAQmx_Val_Switch_Topology_1130_4_Wire_64x1_Mux "1130/4-Wire 64x1 Mux" // 1130/4-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_1130_1_Wire_4x64_Matrix "1130/1-Wire 4x64 Matrix" // 1130/1-Wire 4x64 Matrix +#define DAQmx_Val_Switch_Topology_1130_1_Wire_8x32_Matrix "1130/1-Wire 8x32 Matrix" // 1130/1-Wire 8x32 Matrix +#define DAQmx_Val_Switch_Topology_1130_1_Wire_Octal_32x1_Mux "1130/1-Wire Octal 32x1 Mux" // 1130/1-Wire Octal 32x1 Mux +#define DAQmx_Val_Switch_Topology_1130_1_Wire_Quad_64x1_Mux "1130/1-Wire Quad 64x1 Mux" // 1130/1-Wire Quad 64x1 Mux +#define DAQmx_Val_Switch_Topology_1130_1_Wire_Sixteen_16x1_Mux "1130/1-Wire Sixteen 16x1 Mux" // 1130/1-Wire Sixteen 16x1 Mux +#define DAQmx_Val_Switch_Topology_1130_2_Wire_4x32_Matrix "1130/2-Wire 4x32 Matrix" // 1130/2-Wire 4x32 Matrix +#define DAQmx_Val_Switch_Topology_1130_2_Wire_Octal_16x1_Mux "1130/2-Wire Octal 16x1 Mux" // 1130/2-Wire Octal 16x1 Mux +#define DAQmx_Val_Switch_Topology_1130_2_Wire_Quad_32x1_Mux "1130/2-Wire Quad 32x1 Mux" // 1130/2-Wire Quad 32x1 Mux +#define DAQmx_Val_Switch_Topology_1130_4_Wire_Quad_16x1_Mux "1130/4-Wire Quad 16x1 Mux" // 1130/4-Wire Quad 16x1 Mux +#define DAQmx_Val_Switch_Topology_1130_Independent "1130/Independent" // 1130/Independent +#define DAQmx_Val_Switch_Topology_1160_16_SPDT "1160/16-SPDT" // 1160/16-SPDT +#define DAQmx_Val_Switch_Topology_1161_8_SPDT "1161/8-SPDT" // 1161/8-SPDT #define DAQmx_Val_Switch_Topology_1163R_Octal_4x1_Mux "1163R/Octal 4x1 Mux" // 1163R/Octal 4x1 Mux -#define -DAQmx_Val_Switch_Topology_1166_32_SPDT "1166/32-SPDT" // 1166/32-SPDT -#define -DAQmx_Val_Switch_Topology_1166_16_DPDT "1166/16-DPDT" // 1166/16-DPDT -#define -DAQmx_Val_Switch_Topology_1167_Independent "1167/Independent" // 1167/Independent -#define -DAQmx_Val_Switch_Topology_1169_100_SPST "1169/100-SPST" // 1169/100-SPST -#define -DAQmx_Val_Switch_Topology_1169_50_DPST "1169/50-DPST" // 1169/50-DPST -#define -DAQmx_Val_Switch_Topology_1175_1_Wire_196x1_Mux "1175/1-Wire 196x1 Mux" // 1175/1-Wire 196x1 Mux -#define -DAQmx_Val_Switch_Topology_1175_2_Wire_98x1_Mux "1175/2-Wire 98x1 Mux" // 1175/2-Wire 98x1 Mux -#define -DAQmx_Val_Switch_Topology_1175_2_Wire_95x1_Mux "1175/2-Wire 95x1 Mux" // 1175/2-Wire 95x1 Mux -#define -DAQmx_Val_Switch_Topology_1190_Quad_4x1_Mux "1190/Quad 4x1 Mux" // 1190/Quad 4x1 Mux -#define -DAQmx_Val_Switch_Topology_1191_Quad_4x1_Mux "1191/Quad 4x1 Mux" // 1191/Quad 4x1 Mux -#define -DAQmx_Val_Switch_Topology_1192_8_SPDT "1192/8-SPDT" // 1192/8-SPDT -#define -DAQmx_Val_Switch_Topology_1193_32x1_Mux "1193/32x1 Mux" // 1193/32x1 Mux -#define -DAQmx_Val_Switch_Topology_1193_Dual_16x1_Mux "1193/Dual 16x1 Mux" // 1193/Dual 16x1 Mux -#define -DAQmx_Val_Switch_Topology_1193_Quad_8x1_Mux "1193/Quad 8x1 Mux" // 1193/Quad 8x1 Mux -#define -DAQmx_Val_Switch_Topology_1193_16x1_Terminated_Mux "1193/16x1 Terminated Mux" // 1193/16x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_1193_Dual_8x1_Terminated_Mux "1193/Dual 8x1 Terminated Mux" // 1193/Dual 8x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_1193_Quad_4x1_Terminated_Mux "1193/Quad 4x1 Terminated Mux" // 1193/Quad 4x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_1193_Independent "1193/Independent" // 1193/Independent -#define -DAQmx_Val_Switch_Topology_1194_Quad_4x1_Mux "1194/Quad 4x1 Mux" // 1194/Quad 4x1 Mux -#define -DAQmx_Val_Switch_Topology_1195_Quad_4x1_Mux "1195/Quad 4x1 Mux" // 1195/Quad 4x1 Mux -#define -DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Mux "2501/1-Wire 48x1 Mux" // 2501/1-Wire 48x1 Mux -#define -DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Amplified_Mux "2501/1-Wire 48x1 Amplified Mux" // 2501/1-Wire 48x1 Amplified Mux -#define -DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Mux "2501/2-Wire 24x1 Mux" // 2501/2-Wire 24x1 Mux -#define -DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Amplified_Mux "2501/2-Wire 24x1 Amplified Mux" // 2501/2-Wire 24x1 Amplified Mux -#define -DAQmx_Val_Switch_Topology_2501_2_Wire_Dual_12x1_Mux "2501/2-Wire Dual 12x1 Mux" // 2501/2-Wire Dual 12x1 Mux -#define -DAQmx_Val_Switch_Topology_2501_2_Wire_Quad_6x1_Mux "2501/2-Wire Quad 6x1 Mux" // 2501/2-Wire Quad 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2501_2_Wire_4x6_Matrix "2501/2-Wire 4x6 Matrix" // 2501/2-Wire 4x6 Matrix -#define -DAQmx_Val_Switch_Topology_2501_4_Wire_12x1_Mux "2501/4-Wire 12x1 Mux" // 2501/4-Wire 12x1 Mux -#define -DAQmx_Val_Switch_Topology_2503_1_Wire_48x1_Mux "2503/1-Wire 48x1 Mux" // 2503/1-Wire 48x1 Mux -#define -DAQmx_Val_Switch_Topology_2503_2_Wire_24x1_Mux "2503/2-Wire 24x1 Mux" // 2503/2-Wire 24x1 Mux -#define -DAQmx_Val_Switch_Topology_2503_2_Wire_Dual_12x1_Mux "2503/2-Wire Dual 12x1 Mux" // 2503/2-Wire Dual 12x1 Mux -#define -DAQmx_Val_Switch_Topology_2503_2_Wire_Quad_6x1_Mux "2503/2-Wire Quad 6x1 Mux" // 2503/2-Wire Quad 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2503_2_Wire_4x6_Matrix "2503/2-Wire 4x6 Matrix" // 2503/2-Wire 4x6 Matrix -#define -DAQmx_Val_Switch_Topology_2503_4_Wire_12x1_Mux "2503/4-Wire 12x1 Mux" // 2503/4-Wire 12x1 Mux -#define -DAQmx_Val_Switch_Topology_2510_Independent "2510/Independent" // 2510/Independent -#define -DAQmx_Val_Switch_Topology_2512_Independent "2512/Independent" // 2512/Independent -#define -DAQmx_Val_Switch_Topology_2514_Independent "2514/Independent" // 2514/Independent -#define -DAQmx_Val_Switch_Topology_2515_Independent "2515/Independent" // 2515/Independent -#define -DAQmx_Val_Switch_Topology_2520_80_SPST "2520/80-SPST" // 2520/80-SPST -#define -DAQmx_Val_Switch_Topology_2521_40_DPST "2521/40-DPST" // 2521/40-DPST -#define -DAQmx_Val_Switch_Topology_2522_53_SPDT "2522/53-SPDT" // 2522/53-SPDT -#define -DAQmx_Val_Switch_Topology_2523_26_DPDT "2523/26-DPDT" // 2523/26-DPDT -#define -DAQmx_Val_Switch_Topology_2527_1_Wire_64x1_Mux "2527/1-Wire 64x1 Mux" // 2527/1-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_2527_1_Wire_Dual_32x1_Mux "2527/1-Wire Dual 32x1 Mux" // 2527/1-Wire Dual 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2527_2_Wire_32x1_Mux "2527/2-Wire 32x1 Mux" // 2527/2-Wire 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2527_2_Wire_Dual_16x1_Mux "2527/2-Wire Dual 16x1 Mux" // 2527/2-Wire Dual 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2527_4_Wire_16x1_Mux "2527/4-Wire 16x1 Mux" // 2527/4-Wire 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2527_Independent "2527/Independent" // 2527/Independent -#define -DAQmx_Val_Switch_Topology_2529_2_Wire_8x16_Matrix "2529/2-Wire 8x16 Matrix" // 2529/2-Wire 8x16 Matrix +#define DAQmx_Val_Switch_Topology_1166_32_SPDT "1166/32-SPDT" // 1166/32-SPDT +#define DAQmx_Val_Switch_Topology_1166_16_DPDT "1166/16-DPDT" // 1166/16-DPDT +#define DAQmx_Val_Switch_Topology_1167_Independent "1167/Independent" // 1167/Independent +#define DAQmx_Val_Switch_Topology_1169_100_SPST "1169/100-SPST" // 1169/100-SPST +#define DAQmx_Val_Switch_Topology_1169_50_DPST "1169/50-DPST" // 1169/50-DPST +#define DAQmx_Val_Switch_Topology_1175_1_Wire_196x1_Mux "1175/1-Wire 196x1 Mux" // 1175/1-Wire 196x1 Mux +#define DAQmx_Val_Switch_Topology_1175_2_Wire_98x1_Mux "1175/2-Wire 98x1 Mux" // 1175/2-Wire 98x1 Mux +#define DAQmx_Val_Switch_Topology_1175_2_Wire_95x1_Mux "1175/2-Wire 95x1 Mux" // 1175/2-Wire 95x1 Mux +#define DAQmx_Val_Switch_Topology_1190_Quad_4x1_Mux "1190/Quad 4x1 Mux" // 1190/Quad 4x1 Mux +#define DAQmx_Val_Switch_Topology_1191_Quad_4x1_Mux "1191/Quad 4x1 Mux" // 1191/Quad 4x1 Mux +#define DAQmx_Val_Switch_Topology_1192_8_SPDT "1192/8-SPDT" // 1192/8-SPDT +#define DAQmx_Val_Switch_Topology_1193_32x1_Mux "1193/32x1 Mux" // 1193/32x1 Mux +#define DAQmx_Val_Switch_Topology_1193_Dual_16x1_Mux "1193/Dual 16x1 Mux" // 1193/Dual 16x1 Mux +#define DAQmx_Val_Switch_Topology_1193_Quad_8x1_Mux "1193/Quad 8x1 Mux" // 1193/Quad 8x1 Mux +#define DAQmx_Val_Switch_Topology_1193_16x1_Terminated_Mux "1193/16x1 Terminated Mux" // 1193/16x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_1193_Dual_8x1_Terminated_Mux "1193/Dual 8x1 Terminated Mux" // 1193/Dual 8x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_1193_Quad_4x1_Terminated_Mux "1193/Quad 4x1 Terminated Mux" // 1193/Quad 4x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_1193_Independent "1193/Independent" // 1193/Independent +#define DAQmx_Val_Switch_Topology_1194_Quad_4x1_Mux "1194/Quad 4x1 Mux" // 1194/Quad 4x1 Mux +#define DAQmx_Val_Switch_Topology_1195_Quad_4x1_Mux "1195/Quad 4x1 Mux" // 1195/Quad 4x1 Mux +#define DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Mux "2501/1-Wire 48x1 Mux" // 2501/1-Wire 48x1 Mux +#define DAQmx_Val_Switch_Topology_2501_1_Wire_48x1_Amplified_Mux "2501/1-Wire 48x1 Amplified Mux" // 2501/1-Wire 48x1 Amplified Mux +#define DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Mux "2501/2-Wire 24x1 Mux" // 2501/2-Wire 24x1 Mux +#define DAQmx_Val_Switch_Topology_2501_2_Wire_24x1_Amplified_Mux "2501/2-Wire 24x1 Amplified Mux" // 2501/2-Wire 24x1 Amplified Mux +#define DAQmx_Val_Switch_Topology_2501_2_Wire_Dual_12x1_Mux "2501/2-Wire Dual 12x1 Mux" // 2501/2-Wire Dual 12x1 Mux +#define DAQmx_Val_Switch_Topology_2501_2_Wire_Quad_6x1_Mux "2501/2-Wire Quad 6x1 Mux" // 2501/2-Wire Quad 6x1 Mux +#define DAQmx_Val_Switch_Topology_2501_2_Wire_4x6_Matrix "2501/2-Wire 4x6 Matrix" // 2501/2-Wire 4x6 Matrix +#define DAQmx_Val_Switch_Topology_2501_4_Wire_12x1_Mux "2501/4-Wire 12x1 Mux" // 2501/4-Wire 12x1 Mux +#define DAQmx_Val_Switch_Topology_2503_1_Wire_48x1_Mux "2503/1-Wire 48x1 Mux" // 2503/1-Wire 48x1 Mux +#define DAQmx_Val_Switch_Topology_2503_2_Wire_24x1_Mux "2503/2-Wire 24x1 Mux" // 2503/2-Wire 24x1 Mux +#define DAQmx_Val_Switch_Topology_2503_2_Wire_Dual_12x1_Mux "2503/2-Wire Dual 12x1 Mux" // 2503/2-Wire Dual 12x1 Mux +#define DAQmx_Val_Switch_Topology_2503_2_Wire_Quad_6x1_Mux "2503/2-Wire Quad 6x1 Mux" // 2503/2-Wire Quad 6x1 Mux +#define DAQmx_Val_Switch_Topology_2503_2_Wire_4x6_Matrix "2503/2-Wire 4x6 Matrix" // 2503/2-Wire 4x6 Matrix +#define DAQmx_Val_Switch_Topology_2503_4_Wire_12x1_Mux "2503/4-Wire 12x1 Mux" // 2503/4-Wire 12x1 Mux +#define DAQmx_Val_Switch_Topology_2510_Independent "2510/Independent" // 2510/Independent +#define DAQmx_Val_Switch_Topology_2512_Independent "2512/Independent" // 2512/Independent +#define DAQmx_Val_Switch_Topology_2514_Independent "2514/Independent" // 2514/Independent +#define DAQmx_Val_Switch_Topology_2515_Independent "2515/Independent" // 2515/Independent +#define DAQmx_Val_Switch_Topology_2520_80_SPST "2520/80-SPST" // 2520/80-SPST +#define DAQmx_Val_Switch_Topology_2521_40_DPST "2521/40-DPST" // 2521/40-DPST +#define DAQmx_Val_Switch_Topology_2522_53_SPDT "2522/53-SPDT" // 2522/53-SPDT +#define DAQmx_Val_Switch_Topology_2523_26_DPDT "2523/26-DPDT" // 2523/26-DPDT +#define DAQmx_Val_Switch_Topology_2527_1_Wire_64x1_Mux "2527/1-Wire 64x1 Mux" // 2527/1-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_2527_1_Wire_Dual_32x1_Mux "2527/1-Wire Dual 32x1 Mux" // 2527/1-Wire Dual 32x1 Mux +#define DAQmx_Val_Switch_Topology_2527_2_Wire_32x1_Mux "2527/2-Wire 32x1 Mux" // 2527/2-Wire 32x1 Mux +#define DAQmx_Val_Switch_Topology_2527_2_Wire_Dual_16x1_Mux "2527/2-Wire Dual 16x1 Mux" // 2527/2-Wire Dual 16x1 Mux +#define DAQmx_Val_Switch_Topology_2527_4_Wire_16x1_Mux "2527/4-Wire 16x1 Mux" // 2527/4-Wire 16x1 Mux +#define DAQmx_Val_Switch_Topology_2527_Independent "2527/Independent" // 2527/Independent +#define DAQmx_Val_Switch_Topology_2529_2_Wire_8x16_Matrix "2529/2-Wire 8x16 Matrix" // 2529/2-Wire 8x16 Matrix #define DAQmx_Val_Switch_Topology_2529_2_Wire_4x32_Matrix "2529/2-Wire 4x32 Matrix" // 2529/2-Wire 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_2529_2_Wire_Dual_4x16_Matrix "2529/2-Wire Dual 4x16 Matrix" // 2529/2-Wire Dual 4x16 Matrix -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_128x1_Mux "2530/1-Wire 128x1 Mux" // 2530/1-Wire 128x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_Dual_64x1_Mux "2530/1-Wire Dual 64x1 Mux" // 2530/1-Wire Dual 64x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_2_Wire_64x1_Mux "2530/2-Wire 64x1 Mux" // 2530/2-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_4_Wire_32x1_Mux "2530/4-Wire 32x1 Mux" // 2530/4-Wire 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_4x32_Matrix "2530/1-Wire 4x32 Matrix" // 2530/1-Wire 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_8x16_Matrix "2530/1-Wire 8x16 Matrix" // 2530/1-Wire 8x16 Matrix -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_Octal_16x1_Mux "2530/1-Wire Octal 16x1 Mux" // 2530/1-Wire Octal 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_1_Wire_Quad_32x1_Mux "2530/1-Wire Quad 32x1 Mux" // 2530/1-Wire Quad 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_2_Wire_4x16_Matrix "2530/2-Wire 4x16 Matrix" // 2530/2-Wire 4x16 Matrix -#define -DAQmx_Val_Switch_Topology_2530_2_Wire_Dual_32x1_Mux "2530/2-Wire Dual 32x1 Mux" // 2530/2-Wire Dual 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_2_Wire_Quad_16x1_Mux "2530/2-Wire Quad 16x1 Mux" // 2530/2-Wire Quad 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_4_Wire_Dual_16x1_Mux "2530/4-Wire Dual 16x1 Mux" // 2530/4-Wire Dual 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2530_Independent "2530/Independent" // 2530/Independent -#define -DAQmx_Val_Switch_Topology_2531_1_Wire_4x128_Matrix "2531/1-Wire 4x128 Matrix" // 2531/1-Wire 4x128 Matrix -#define -DAQmx_Val_Switch_Topology_2531_1_Wire_8x64_Matrix "2531/1-Wire 8x64 Matrix" // 2531/1-Wire 8x64 Matrix -#define -DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_4x64_Matrix "2531/1-Wire Dual 4x64 Matrix" // 2531/1-Wire Dual 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_8x32_Matrix "2531/1-Wire Dual 8x32 Matrix" // 2531/1-Wire Dual 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_16x32_Matrix "2532/1-Wire 16x32 Matrix" // 2532/1-Wire 16x32 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_4x128_Matrix "2532/1-Wire 4x128 Matrix" // 2532/1-Wire 4x128 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_8x64_Matrix "2532/1-Wire 8x64 Matrix" // 2532/1-Wire 8x64 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_16x16_Matrix "2532/1-Wire Dual 16x16 Matrix" // 2532/1-Wire Dual 16x16 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_4x64_Matrix "2532/1-Wire Dual 4x64 Matrix" // 2532/1-Wire Dual 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_8x32_Matrix "2532/1-Wire Dual 8x32 Matrix" // 2532/1-Wire Dual 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_Quad_4x32_Matrix "2532/1-Wire Quad 4x32 Matrix" // 2532/1-Wire Quad 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_2532_1_Wire_Sixteen_2x16_Matrix "2532/1-Wire Sixteen 2x16 Matrix" // 2532/1-Wire Sixteen 2x16 Matrix -#define -DAQmx_Val_Switch_Topology_2532_2_Wire_16x16_Matrix "2532/2-Wire 16x16 Matrix" // 2532/2-Wire 16x16 Matrix -#define -DAQmx_Val_Switch_Topology_2532_2_Wire_4x64_Matrix "2532/2-Wire 4x64 Matrix" // 2532/2-Wire 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_2532_2_Wire_8x32_Matrix "2532/2-Wire 8x32 Matrix" // 2532/2-Wire 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_2532_2_Wire_Dual_4x32_Matrix "2532/2-Wire Dual 4x32 Matrix" // 2532/2-Wire Dual 4x32 Matrix -#define -DAQmx_Val_Switch_Topology_2533_1_Wire_4x64_Matrix "2533/1-Wire 4x64 Matrix" // 2533/1-Wire 4x64 Matrix -#define -DAQmx_Val_Switch_Topology_2534_1_Wire_8x32_Matrix "2534/1-Wire 8x32 Matrix" // 2534/1-Wire 8x32 Matrix -#define -DAQmx_Val_Switch_Topology_2535_1_Wire_4x136_Matrix "2535/1-Wire 4x136 Matrix" // 2535/1-Wire 4x136 Matrix -#define -DAQmx_Val_Switch_Topology_2536_1_Wire_8x68_Matrix "2536/1-Wire 8x68 Matrix" // 2536/1-Wire 8x68 Matrix -#define -DAQmx_Val_Switch_Topology_2540_1_Wire_8x9_Matrix "2540/1-Wire 8x9 Matrix" // 2540/1-Wire 8x9 Matrix -#define -DAQmx_Val_Switch_Topology_2541_1_Wire_8x12_Matrix "2541/1-Wire 8x12 Matrix" // 2541/1-Wire 8x12 Matrix -#define -DAQmx_Val_Switch_Topology_2542_Quad_2x1_Terminated_Mux "2542/Quad 2x1 Terminated Mux" // 2542/Quad 2x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2543_Dual_4x1_Terminated_Mux "2543/Dual 4x1 Terminated Mux" // 2543/Dual 4x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2544_8x1_Terminated_Mux "2544/8x1 Terminated Mux" // 2544/8x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2545_4x1_Terminated_Mux "2545/4x1 Terminated Mux" // 2545/4x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2546_Dual_4x1_Mux "2546/Dual 4x1 Mux" // 2546/Dual 4x1 Mux -#define -DAQmx_Val_Switch_Topology_2547_8x1_Mux "2547/8x1 Mux" // 2547/8x1 Mux -#define -DAQmx_Val_Switch_Topology_2548_4_SPDT "2548/4-SPDT" // 2548/4-SPDT -#define -DAQmx_Val_Switch_Topology_2549_Terminated_2_SPDT "2549/Terminated 2-SPDT" // 2549/Terminated 2-SPDT -#define -DAQmx_Val_Switch_Topology_2554_4x1_Mux "2554/4x1 Mux" // 2554/4x1 Mux -#define -DAQmx_Val_Switch_Topology_2555_4x1_Terminated_Mux "2555/4x1 Terminated Mux" // 2555/4x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2556_Dual_4x1_Mux "2556/Dual 4x1 Mux" // 2556/Dual 4x1 Mux -#define -DAQmx_Val_Switch_Topology_2557_8x1_Mux "2557/8x1 Mux" // 2557/8x1 Mux -#define -DAQmx_Val_Switch_Topology_2558_4_SPDT "2558/4-SPDT" // 2558/4-SPDT +#define DAQmx_Val_Switch_Topology_2529_2_Wire_Dual_4x16_Matrix "2529/2-Wire Dual 4x16 Matrix" // 2529/2-Wire Dual 4x16 Matrix +#define DAQmx_Val_Switch_Topology_2530_1_Wire_128x1_Mux "2530/1-Wire 128x1 Mux" // 2530/1-Wire 128x1 Mux +#define DAQmx_Val_Switch_Topology_2530_1_Wire_Dual_64x1_Mux "2530/1-Wire Dual 64x1 Mux" // 2530/1-Wire Dual 64x1 Mux +#define DAQmx_Val_Switch_Topology_2530_2_Wire_64x1_Mux "2530/2-Wire 64x1 Mux" // 2530/2-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_2530_4_Wire_32x1_Mux "2530/4-Wire 32x1 Mux" // 2530/4-Wire 32x1 Mux +#define DAQmx_Val_Switch_Topology_2530_1_Wire_4x32_Matrix "2530/1-Wire 4x32 Matrix" // 2530/1-Wire 4x32 Matrix +#define DAQmx_Val_Switch_Topology_2530_1_Wire_8x16_Matrix "2530/1-Wire 8x16 Matrix" // 2530/1-Wire 8x16 Matrix +#define DAQmx_Val_Switch_Topology_2530_1_Wire_Octal_16x1_Mux "2530/1-Wire Octal 16x1 Mux" // 2530/1-Wire Octal 16x1 Mux +#define DAQmx_Val_Switch_Topology_2530_1_Wire_Quad_32x1_Mux "2530/1-Wire Quad 32x1 Mux" // 2530/1-Wire Quad 32x1 Mux +#define DAQmx_Val_Switch_Topology_2530_2_Wire_4x16_Matrix "2530/2-Wire 4x16 Matrix" // 2530/2-Wire 4x16 Matrix +#define DAQmx_Val_Switch_Topology_2530_2_Wire_Dual_32x1_Mux "2530/2-Wire Dual 32x1 Mux" // 2530/2-Wire Dual 32x1 Mux +#define DAQmx_Val_Switch_Topology_2530_2_Wire_Quad_16x1_Mux "2530/2-Wire Quad 16x1 Mux" // 2530/2-Wire Quad 16x1 Mux +#define DAQmx_Val_Switch_Topology_2530_4_Wire_Dual_16x1_Mux "2530/4-Wire Dual 16x1 Mux" // 2530/4-Wire Dual 16x1 Mux +#define DAQmx_Val_Switch_Topology_2530_Independent "2530/Independent" // 2530/Independent +#define DAQmx_Val_Switch_Topology_2531_1_Wire_4x128_Matrix "2531/1-Wire 4x128 Matrix" // 2531/1-Wire 4x128 Matrix +#define DAQmx_Val_Switch_Topology_2531_1_Wire_8x64_Matrix "2531/1-Wire 8x64 Matrix" // 2531/1-Wire 8x64 Matrix +#define DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_4x64_Matrix "2531/1-Wire Dual 4x64 Matrix" // 2531/1-Wire Dual 4x64 Matrix +#define DAQmx_Val_Switch_Topology_2531_1_Wire_Dual_8x32_Matrix "2531/1-Wire Dual 8x32 Matrix" // 2531/1-Wire Dual 8x32 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_16x32_Matrix "2532/1-Wire 16x32 Matrix" // 2532/1-Wire 16x32 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_4x128_Matrix "2532/1-Wire 4x128 Matrix" // 2532/1-Wire 4x128 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_8x64_Matrix "2532/1-Wire 8x64 Matrix" // 2532/1-Wire 8x64 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_16x16_Matrix "2532/1-Wire Dual 16x16 Matrix" // 2532/1-Wire Dual 16x16 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_4x64_Matrix "2532/1-Wire Dual 4x64 Matrix" // 2532/1-Wire Dual 4x64 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_Dual_8x32_Matrix "2532/1-Wire Dual 8x32 Matrix" // 2532/1-Wire Dual 8x32 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_Quad_4x32_Matrix "2532/1-Wire Quad 4x32 Matrix" // 2532/1-Wire Quad 4x32 Matrix +#define DAQmx_Val_Switch_Topology_2532_1_Wire_Sixteen_2x16_Matrix "2532/1-Wire Sixteen 2x16 Matrix" // 2532/1-Wire Sixteen 2x16 Matrix +#define DAQmx_Val_Switch_Topology_2532_2_Wire_16x16_Matrix "2532/2-Wire 16x16 Matrix" // 2532/2-Wire 16x16 Matrix +#define DAQmx_Val_Switch_Topology_2532_2_Wire_4x64_Matrix "2532/2-Wire 4x64 Matrix" // 2532/2-Wire 4x64 Matrix +#define DAQmx_Val_Switch_Topology_2532_2_Wire_8x32_Matrix "2532/2-Wire 8x32 Matrix" // 2532/2-Wire 8x32 Matrix +#define DAQmx_Val_Switch_Topology_2532_2_Wire_Dual_4x32_Matrix "2532/2-Wire Dual 4x32 Matrix" // 2532/2-Wire Dual 4x32 Matrix +#define DAQmx_Val_Switch_Topology_2533_1_Wire_4x64_Matrix "2533/1-Wire 4x64 Matrix" // 2533/1-Wire 4x64 Matrix +#define DAQmx_Val_Switch_Topology_2534_1_Wire_8x32_Matrix "2534/1-Wire 8x32 Matrix" // 2534/1-Wire 8x32 Matrix +#define DAQmx_Val_Switch_Topology_2535_1_Wire_4x136_Matrix "2535/1-Wire 4x136 Matrix" // 2535/1-Wire 4x136 Matrix +#define DAQmx_Val_Switch_Topology_2536_1_Wire_8x68_Matrix "2536/1-Wire 8x68 Matrix" // 2536/1-Wire 8x68 Matrix +#define DAQmx_Val_Switch_Topology_2540_1_Wire_8x9_Matrix "2540/1-Wire 8x9 Matrix" // 2540/1-Wire 8x9 Matrix +#define DAQmx_Val_Switch_Topology_2541_1_Wire_8x12_Matrix "2541/1-Wire 8x12 Matrix" // 2541/1-Wire 8x12 Matrix +#define DAQmx_Val_Switch_Topology_2542_Quad_2x1_Terminated_Mux "2542/Quad 2x1 Terminated Mux" // 2542/Quad 2x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2543_Dual_4x1_Terminated_Mux "2543/Dual 4x1 Terminated Mux" // 2543/Dual 4x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2544_8x1_Terminated_Mux "2544/8x1 Terminated Mux" // 2544/8x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2545_4x1_Terminated_Mux "2545/4x1 Terminated Mux" // 2545/4x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2546_Dual_4x1_Mux "2546/Dual 4x1 Mux" // 2546/Dual 4x1 Mux +#define DAQmx_Val_Switch_Topology_2547_8x1_Mux "2547/8x1 Mux" // 2547/8x1 Mux +#define DAQmx_Val_Switch_Topology_2548_4_SPDT "2548/4-SPDT" // 2548/4-SPDT +#define DAQmx_Val_Switch_Topology_2549_Terminated_2_SPDT "2549/Terminated 2-SPDT" // 2549/Terminated 2-SPDT +#define DAQmx_Val_Switch_Topology_2554_4x1_Mux "2554/4x1 Mux" // 2554/4x1 Mux +#define DAQmx_Val_Switch_Topology_2555_4x1_Terminated_Mux "2555/4x1 Terminated Mux" // 2555/4x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2556_Dual_4x1_Mux "2556/Dual 4x1 Mux" // 2556/Dual 4x1 Mux +#define DAQmx_Val_Switch_Topology_2557_8x1_Mux "2557/8x1 Mux" // 2557/8x1 Mux +#define DAQmx_Val_Switch_Topology_2558_4_SPDT "2558/4-SPDT" // 2558/4-SPDT #define DAQmx_Val_Switch_Topology_2559_Terminated_2_SPDT "2559/Terminated 2-SPDT" // 2559/Terminated 2-SPDT -#define -DAQmx_Val_Switch_Topology_2564_16_SPST "2564/16-SPST" // 2564/16-SPST -#define -DAQmx_Val_Switch_Topology_2564_8_DPST "2564/8-DPST" // 2564/8-DPST -#define -DAQmx_Val_Switch_Topology_2565_16_SPST "2565/16-SPST" // 2565/16-SPST -#define -DAQmx_Val_Switch_Topology_2566_16_SPDT "2566/16-SPDT" // 2566/16-SPDT -#define -DAQmx_Val_Switch_Topology_2566_8_DPDT "2566/8-DPDT" // 2566/8-DPDT -#define -DAQmx_Val_Switch_Topology_2567_Independent "2567/Independent" // 2567/Independent -#define -DAQmx_Val_Switch_Topology_2568_31_SPST "2568/31-SPST" // 2568/31-SPST -#define -DAQmx_Val_Switch_Topology_2568_15_DPST "2568/15-DPST" // 2568/15-DPST -#define -DAQmx_Val_Switch_Topology_2569_100_SPST "2569/100-SPST" // 2569/100-SPST -#define -DAQmx_Val_Switch_Topology_2569_50_DPST "2569/50-DPST" // 2569/50-DPST -#define -DAQmx_Val_Switch_Topology_2570_40_SPDT "2570/40-SPDT" // 2570/40-SPDT -#define -DAQmx_Val_Switch_Topology_2570_20_DPDT "2570/20-DPDT" // 2570/20-DPDT -#define -DAQmx_Val_Switch_Topology_2571_66_SPDT "2571/66-SPDT" // 2571/66-SPDT -#define -DAQmx_Val_Switch_Topology_2575_1_Wire_196x1_Mux "2575/1-Wire 196x1 Mux" // 2575/1-Wire 196x1 Mux -#define -DAQmx_Val_Switch_Topology_2575_2_Wire_98x1_Mux "2575/2-Wire 98x1 Mux" // 2575/2-Wire 98x1 Mux -#define -DAQmx_Val_Switch_Topology_2575_2_Wire_95x1_Mux "2575/2-Wire 95x1 Mux" // 2575/2-Wire 95x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_2_Wire_64x1_Mux "2576/2-Wire 64x1 Mux" // 2576/2-Wire 64x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_2_Wire_Dual_32x1_Mux "2576/2-Wire Dual 32x1 Mux" // 2576/2-Wire Dual 32x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_2_Wire_Octal_8x1_Mux "2576/2-Wire Octal 8x1 Mux" // 2576/2-Wire Octal 8x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_2_Wire_Quad_16x1_Mux "2576/2-Wire Quad 16x1 Mux" // 2576/2-Wire Quad 16x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_2_Wire_Sixteen_4x1_Mux "2576/2-Wire Sixteen 4x1 Mux" // 2576/2-Wire Sixteen 4x1 Mux -#define -DAQmx_Val_Switch_Topology_2576_Independent "2576/Independent" // 2576/Independent -#define -DAQmx_Val_Switch_Topology_2584_1_Wire_12x1_Mux "2584/1-Wire 12x1 Mux" // 2584/1-Wire 12x1 Mux -#define -DAQmx_Val_Switch_Topology_2584_1_Wire_Dual_6x1_Mux "2584/1-Wire Dual 6x1 Mux" // 2584/1-Wire Dual 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2584_2_Wire_6x1_Mux "2584/2-Wire 6x1 Mux" // 2584/2-Wire 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2584_Independent "2584/Independent" // 2584/Independent -#define -DAQmx_Val_Switch_Topology_2585_1_Wire_10x1_Mux "2585/1-Wire 10x1 Mux" // 2585/1-Wire 10x1 Mux -#define -DAQmx_Val_Switch_Topology_2586_10_SPST "2586/10-SPST" // 2586/10-SPST -#define -DAQmx_Val_Switch_Topology_2586_5_DPST "2586/5-DPST" // 2586/5-DPST -#define -DAQmx_Val_Switch_Topology_2590_4x1_Mux "2590/4x1 Mux" // 2590/4x1 Mux -#define -DAQmx_Val_Switch_Topology_2591_4x1_Mux "2591/4x1 Mux" // 2591/4x1 Mux -#define -DAQmx_Val_Switch_Topology_2593_16x1_Mux "2593/16x1 Mux" // 2593/16x1 Mux -#define -DAQmx_Val_Switch_Topology_2593_Dual_8x1_Mux "2593/Dual 8x1 Mux" // 2593/Dual 8x1 Mux -#define -DAQmx_Val_Switch_Topology_2593_8x1_Terminated_Mux "2593/8x1 Terminated Mux" // 2593/8x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2593_Dual_4x1_Terminated_Mux "2593/Dual 4x1 Terminated Mux" // 2593/Dual 4x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2593_Independent "2593/Independent" // 2593/Independent -#define -DAQmx_Val_Switch_Topology_2594_4x1_Mux "2594/4x1 Mux" // 2594/4x1 Mux -#define -DAQmx_Val_Switch_Topology_2595_4x1_Mux "2595/4x1 Mux" // 2595/4x1 Mux -#define -DAQmx_Val_Switch_Topology_2596_Dual_6x1_Mux "2596/Dual 6x1 Mux" // 2596/Dual 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2597_6x1_Terminated_Mux "2597/6x1 Terminated Mux" // 2597/6x1 Terminated Mux -#define -DAQmx_Val_Switch_Topology_2598_Dual_Transfer "2598/Dual Transfer" // 2598/Dual Transfer -#define -DAQmx_Val_Switch_Topology_2599_2_SPDT "2599/2-SPDT" // 2599/2-SPDT -#define -DAQmx_Val_Switch_Topology_2720_Independent "2720/Independent" // 2720/Independent -#define -DAQmx_Val_Switch_Topology_2722_Independent "2722/Independent" // 2722/Independent -#define -DAQmx_Val_Switch_Topology_2725_Independent "2725/Independent" // 2725/Independent -#define -DAQmx_Val_Switch_Topology_2727_Independent "2727/Independent" // 2727/Independent -#define -DAQmx_Val_Switch_Topology_2790_Independent "2790/Independent" // 2790/Independent -#define -DAQmx_Val_Switch_Topology_2796_Dual_6x1_Mux "2796/Dual 6x1 Mux" // 2796/Dual 6x1 Mux -#define -DAQmx_Val_Switch_Topology_2797_6x1_Terminated_Mux "2797/6x1 Terminated Mux" // 2797/6x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2564_16_SPST "2564/16-SPST" // 2564/16-SPST +#define DAQmx_Val_Switch_Topology_2564_8_DPST "2564/8-DPST" // 2564/8-DPST +#define DAQmx_Val_Switch_Topology_2565_16_SPST "2565/16-SPST" // 2565/16-SPST +#define DAQmx_Val_Switch_Topology_2566_16_SPDT "2566/16-SPDT" // 2566/16-SPDT +#define DAQmx_Val_Switch_Topology_2566_8_DPDT "2566/8-DPDT" // 2566/8-DPDT +#define DAQmx_Val_Switch_Topology_2567_Independent "2567/Independent" // 2567/Independent +#define DAQmx_Val_Switch_Topology_2568_31_SPST "2568/31-SPST" // 2568/31-SPST +#define DAQmx_Val_Switch_Topology_2568_15_DPST "2568/15-DPST" // 2568/15-DPST +#define DAQmx_Val_Switch_Topology_2569_100_SPST "2569/100-SPST" // 2569/100-SPST +#define DAQmx_Val_Switch_Topology_2569_50_DPST "2569/50-DPST" // 2569/50-DPST +#define DAQmx_Val_Switch_Topology_2570_40_SPDT "2570/40-SPDT" // 2570/40-SPDT +#define DAQmx_Val_Switch_Topology_2570_20_DPDT "2570/20-DPDT" // 2570/20-DPDT +#define DAQmx_Val_Switch_Topology_2571_66_SPDT "2571/66-SPDT" // 2571/66-SPDT +#define DAQmx_Val_Switch_Topology_2575_1_Wire_196x1_Mux "2575/1-Wire 196x1 Mux" // 2575/1-Wire 196x1 Mux +#define DAQmx_Val_Switch_Topology_2575_2_Wire_98x1_Mux "2575/2-Wire 98x1 Mux" // 2575/2-Wire 98x1 Mux +#define DAQmx_Val_Switch_Topology_2575_2_Wire_95x1_Mux "2575/2-Wire 95x1 Mux" // 2575/2-Wire 95x1 Mux +#define DAQmx_Val_Switch_Topology_2576_2_Wire_64x1_Mux "2576/2-Wire 64x1 Mux" // 2576/2-Wire 64x1 Mux +#define DAQmx_Val_Switch_Topology_2576_2_Wire_Dual_32x1_Mux "2576/2-Wire Dual 32x1 Mux" // 2576/2-Wire Dual 32x1 Mux +#define DAQmx_Val_Switch_Topology_2576_2_Wire_Octal_8x1_Mux "2576/2-Wire Octal 8x1 Mux" // 2576/2-Wire Octal 8x1 Mux +#define DAQmx_Val_Switch_Topology_2576_2_Wire_Quad_16x1_Mux "2576/2-Wire Quad 16x1 Mux" // 2576/2-Wire Quad 16x1 Mux +#define DAQmx_Val_Switch_Topology_2576_2_Wire_Sixteen_4x1_Mux "2576/2-Wire Sixteen 4x1 Mux" // 2576/2-Wire Sixteen 4x1 Mux +#define DAQmx_Val_Switch_Topology_2576_Independent "2576/Independent" // 2576/Independent +#define DAQmx_Val_Switch_Topology_2584_1_Wire_12x1_Mux "2584/1-Wire 12x1 Mux" // 2584/1-Wire 12x1 Mux +#define DAQmx_Val_Switch_Topology_2584_1_Wire_Dual_6x1_Mux "2584/1-Wire Dual 6x1 Mux" // 2584/1-Wire Dual 6x1 Mux +#define DAQmx_Val_Switch_Topology_2584_2_Wire_6x1_Mux "2584/2-Wire 6x1 Mux" // 2584/2-Wire 6x1 Mux +#define DAQmx_Val_Switch_Topology_2584_Independent "2584/Independent" // 2584/Independent +#define DAQmx_Val_Switch_Topology_2585_1_Wire_10x1_Mux "2585/1-Wire 10x1 Mux" // 2585/1-Wire 10x1 Mux +#define DAQmx_Val_Switch_Topology_2586_10_SPST "2586/10-SPST" // 2586/10-SPST +#define DAQmx_Val_Switch_Topology_2586_5_DPST "2586/5-DPST" // 2586/5-DPST +#define DAQmx_Val_Switch_Topology_2590_4x1_Mux "2590/4x1 Mux" // 2590/4x1 Mux +#define DAQmx_Val_Switch_Topology_2591_4x1_Mux "2591/4x1 Mux" // 2591/4x1 Mux +#define DAQmx_Val_Switch_Topology_2593_16x1_Mux "2593/16x1 Mux" // 2593/16x1 Mux +#define DAQmx_Val_Switch_Topology_2593_Dual_8x1_Mux "2593/Dual 8x1 Mux" // 2593/Dual 8x1 Mux +#define DAQmx_Val_Switch_Topology_2593_8x1_Terminated_Mux "2593/8x1 Terminated Mux" // 2593/8x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2593_Dual_4x1_Terminated_Mux "2593/Dual 4x1 Terminated Mux" // 2593/Dual 4x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2593_Independent "2593/Independent" // 2593/Independent +#define DAQmx_Val_Switch_Topology_2594_4x1_Mux "2594/4x1 Mux" // 2594/4x1 Mux +#define DAQmx_Val_Switch_Topology_2595_4x1_Mux "2595/4x1 Mux" // 2595/4x1 Mux +#define DAQmx_Val_Switch_Topology_2596_Dual_6x1_Mux "2596/Dual 6x1 Mux" // 2596/Dual 6x1 Mux +#define DAQmx_Val_Switch_Topology_2597_6x1_Terminated_Mux "2597/6x1 Terminated Mux" // 2597/6x1 Terminated Mux +#define DAQmx_Val_Switch_Topology_2598_Dual_Transfer "2598/Dual Transfer" // 2598/Dual Transfer +#define DAQmx_Val_Switch_Topology_2599_2_SPDT "2599/2-SPDT" // 2599/2-SPDT +#define DAQmx_Val_Switch_Topology_2720_Independent "2720/Independent" // 2720/Independent +#define DAQmx_Val_Switch_Topology_2722_Independent "2722/Independent" // 2722/Independent +#define DAQmx_Val_Switch_Topology_2725_Independent "2725/Independent" // 2725/Independent +#define DAQmx_Val_Switch_Topology_2727_Independent "2727/Independent" // 2727/Independent +#define DAQmx_Val_Switch_Topology_2790_Independent "2790/Independent" // 2790/Independent +#define DAQmx_Val_Switch_Topology_2796_Dual_6x1_Mux "2796/Dual 6x1 Mux" // 2796/Dual 6x1 Mux +#define DAQmx_Val_Switch_Topology_2797_6x1_Terminated_Mux "2797/6x1 Terminated Mux" // 2797/6x1 Terminated Mux #define DAQmx_Val_Switch_Topology_2798_Dual_Transfer "2798/Dual Transfer" // 2798/Dual Transfer -#define -DAQmx_Val_Switch_Topology_2799_2_SPDT "2799/2-SPDT" // 2799/2-SPDT +#define DAQmx_Val_Switch_Topology_2799_2_SPDT "2799/2-SPDT" // 2799/2-SPDT int32 __CFUNC DAQmxSwitchSetTopologyAndReset (const char deviceName[], const char newTopology[]); @@ -5486,7 +3492,7 @@ int32 __CFUNC DAQmxGet9269CalAdjustPoints(CalHandle calHandle, int32* adjust int32 __CFUNC DAQmxSetup9269Cal(CalHandle calHandle, const char channelNames[], int32 value); int32 __CFUNC DAQmxAdjust9269Cal(CalHandle calHandle, const char channelNames[], float64 value); int32 __CFUNC DAQmxGet9775CalAdjustPoints(CalHandle calHandle, uInt32 coupling, float64* adjustmentPoints, uInt32 bufferSize); -int32 __CFUNC DAQmxAdjust9775Cal(CalHandle calHandle, const char channelNames[], float64 value, uInt32 coupling); +int32 __CFUNC DAQmxAdjust9775Cal(CalHandle calHandle, const char channelNames[], float64 value, uInt32 coupling); int32 __CFUNC DAQmxSetup1102Cal (CalHandle calHandle, const char channelName[], float64 gain); int32 __CFUNC DAQmxAdjust1102Cal (CalHandle calHandle, float64 refVoltage, float64 measOutput); @@ -5592,7 +3598,7 @@ int32 __CFUNC_C DAQmxGetAnalogPowerUpStates (const char deviceName[], const int32 __CFUNC_C DAQmxGetAnalogPowerUpStatesWithOutputType(const char channelNames[], float64 stateArray[], int32 channelTypeArray[], uInt32 *arraySizePtr); int32 __CFUNC DAQmxSetDigitalLogicFamilyPowerUpState(const char deviceName[], int32 logicFamily); int32 __CFUNC DAQmxGetDigitalLogicFamilyPowerUpState(const char deviceName[], int32* logicFamily); -int32 __CFUNC DAQmxAddNetworkDevice(const char IPAddress[], const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize); +int32 __CFUNC DAQmxAddNetworkDevice(const char IPAddress[],const char deviceName[], bool32 attemptReservation, float64 timeout, char deviceNameOut[], uInt32 deviceNameOutBufferSize); int32 __CFUNC DAQmxDeleteNetworkDevice(const char deviceName[]); int32 __CFUNC DAQmxReserveNetworkDevice(const char deviceName[], bool32 overrideReservation); int32 __CFUNC DAQmxUnreserveNetworkDevice(const char deviceName[]); @@ -9858,3672 +7864,1877 @@ int32 __CFUNC DAQmxResetSampClkTimingResponseMode(TaskHandle taskHandle); *** NI-DAQmx Error Codes ***************************************************** ******************************************************************************/ -#define -DAQmxSuccess (0) +#define DAQmxSuccess (0) -#define -DAQmxFailed(error) ((error)<0) +#define DAQmxFailed(error) ((error)<0) // Error and Warning Codes -#define -DAQmxErrorDebugSessionNotAllowedTimingSourceRegistered (-209880) -#define -DAQmxErrorDebugSessionNotAllowedWhenLogging (-209879) -#define -DAQmxErrorDebugSessionNotAllowedEventRegistered (-209878) -#define -DAQmxErrorInvalidTargetTaskForDebugSession (-209877) -#define -DAQmxErrorFunctionNotSupportedForDevice (-209876) -#define -DAQmxErrorMultipleTargetTasksFoundForDebugSession (-209875) -#define -DAQmxErrorTargetTaskNotFoundForDebugSession (-209874) -#define -DAQmxErrorOperationNotSupportedInDebugSession (-209873) -#define -DAQmxErrorOperationNotPermittedInMonitorModeForDebugSession (-209872) -#define -DAQmxErrorGetActiveDevPrptyFailedDueToDifftVals (-209871) -#define -DAQmxErrorTaskAlreadyRegisteredATimingSource (-209870) -#define -DAQmxErrorFilterNotSupportedOnHWRev (-209869) -#define -DAQmxErrorSensorPowerSupplyVoltageLevel (-209868) -#define -DAQmxErrorSensorPowerSupply (-209867) -#define -DAQmxErrorInvalidScanlist (-209866) -#define -DAQmxErrorTimeResourceCannotBeRouted (-209865) -#define -DAQmxErrorInvalidResetDelayRequested (-209864) -#define -DAQmxErrorExceededTotalTimetriggersAvailable (-209863) -#define -DAQmxErrorExceededTotalTimestampsAvailable (-209862) -#define -DAQmxErrorNoSynchronizationProtocolRunning (-209861) -#define -DAQmxErrorConflictingCoherencyRequirements (-209860) -#define -DAQmxErrorNoSharedTimescale (-209859) +#define DAQmxErrorDebugSessionNotAllowedTimingSourceRegistered (-209880) +#define DAQmxErrorDebugSessionNotAllowedWhenLogging (-209879) +#define DAQmxErrorDebugSessionNotAllowedEventRegistered (-209878) +#define DAQmxErrorInvalidTargetTaskForDebugSession (-209877) +#define DAQmxErrorFunctionNotSupportedForDevice (-209876) +#define DAQmxErrorMultipleTargetTasksFoundForDebugSession (-209875) +#define DAQmxErrorTargetTaskNotFoundForDebugSession (-209874) +#define DAQmxErrorOperationNotSupportedInDebugSession (-209873) +#define DAQmxErrorOperationNotPermittedInMonitorModeForDebugSession (-209872) +#define DAQmxErrorGetActiveDevPrptyFailedDueToDifftVals (-209871) +#define DAQmxErrorTaskAlreadyRegisteredATimingSource (-209870) +#define DAQmxErrorFilterNotSupportedOnHWRev (-209869) +#define DAQmxErrorSensorPowerSupplyVoltageLevel (-209868) +#define DAQmxErrorSensorPowerSupply (-209867) +#define DAQmxErrorInvalidScanlist (-209866) +#define DAQmxErrorTimeResourceCannotBeRouted (-209865) +#define DAQmxErrorInvalidResetDelayRequested (-209864) +#define DAQmxErrorExceededTotalTimetriggersAvailable (-209863) +#define DAQmxErrorExceededTotalTimestampsAvailable (-209862) +#define DAQmxErrorNoSynchronizationProtocolRunning (-209861) +#define DAQmxErrorConflictingCoherencyRequirements (-209860) +#define DAQmxErrorNoSharedTimescale (-209859) #define DAQmxErrorInvalidFieldDAQBankName (-209858) -#define -DAQmxErrorDeviceDoesNotSupportHWTSP (-209857) -#define -DAQmxErrorBankTypeDoesNotMatchBankTypeInDestination (-209856) -#define -DAQmxErrorInvalidFieldDAQBankNumberSpecd (-209855) -#define -DAQmxErrorUnsupportedSimulatedBankForSimulatedFieldDAQ (-209854) -#define -DAQmxErrorFieldDAQBankSimMustMatchFieldDAQSim (-209853) -#define -DAQmxErrorDevNoLongerSupportedWithinDAQmxAPI (-209852) -#define -DAQmxErrorTimingEngineDoesNotSupportOnBoardMemory (-209851) -#define -DAQmxErrorDuplicateTaskCrossProject (-209850) -#define -DAQmxErrorTimeStartTriggerBeforeArmStartTrigger (-209849) -#define -DAQmxErrorTimeTriggerCannotBeSet (-209848) -#define -DAQmxErrorInvalidTriggerWindowValue (-209847) -#define -DAQmxErrorCannotQueryPropertyBeforeOrDuringAcquisition (-209846) -#define -DAQmxErrorSampleClockTimebaseNotSupported (-209845) -#define -DAQmxErrorTimestampNotYetReceived (-209844) -#define -DAQmxErrorTimeTriggerNotSupported (-209843) -#define -DAQmxErrorTimestampNotEnabled (-209842) -#define -DAQmxErrorTimeTriggersInconsistent (-209841) -#define -DAQmxErrorTriggerConfiguredIsInThePast (-209840) -#define -DAQmxErrorTriggerConfiguredIsTooFarFromCurrentTime (-209839) -#define -DAQmxErrorSynchronizationLockLost (-209838) -#define -DAQmxErrorInconsistentTimescales (-209837) -#define -DAQmxErrorCannotSynchronizeDevices (-209836) -#define -DAQmxErrorAssociatedChansHaveAttributeConflictWithMultipleMaxMinRanges (-209835) -#define -DAQmxErrorSampleRateNumChansOrAttributeValues (-209834) +#define DAQmxErrorDeviceDoesNotSupportHWTSP (-209857) +#define DAQmxErrorBankTypeDoesNotMatchBankTypeInDestination (-209856) +#define DAQmxErrorInvalidFieldDAQBankNumberSpecd (-209855) +#define DAQmxErrorUnsupportedSimulatedBankForSimulatedFieldDAQ (-209854) +#define DAQmxErrorFieldDAQBankSimMustMatchFieldDAQSim (-209853) +#define DAQmxErrorDevNoLongerSupportedWithinDAQmxAPI (-209852) +#define DAQmxErrorTimingEngineDoesNotSupportOnBoardMemory (-209851) +#define DAQmxErrorDuplicateTaskCrossProject (-209850) +#define DAQmxErrorTimeStartTriggerBeforeArmStartTrigger (-209849) +#define DAQmxErrorTimeTriggerCannotBeSet (-209848) +#define DAQmxErrorInvalidTriggerWindowValue (-209847) +#define DAQmxErrorCannotQueryPropertyBeforeOrDuringAcquisition (-209846) +#define DAQmxErrorSampleClockTimebaseNotSupported (-209845) +#define DAQmxErrorTimestampNotYetReceived (-209844) +#define DAQmxErrorTimeTriggerNotSupported (-209843) +#define DAQmxErrorTimestampNotEnabled (-209842) +#define DAQmxErrorTimeTriggersInconsistent (-209841) +#define DAQmxErrorTriggerConfiguredIsInThePast (-209840) +#define DAQmxErrorTriggerConfiguredIsTooFarFromCurrentTime (-209839) +#define DAQmxErrorSynchronizationLockLost (-209838) +#define DAQmxErrorInconsistentTimescales (-209837) +#define DAQmxErrorCannotSynchronizeDevices (-209836) +#define DAQmxErrorAssociatedChansHaveAttributeConflictWithMultipleMaxMinRanges (-209835) +#define DAQmxErrorSampleRateNumChansOrAttributeValues (-209834) #define DAQmxErrorWaitForValidTimestampNotSupported (-209833) -#define -DAQmxErrorTrigWinTimeoutExpired (-209832) -#define -DAQmxErrorInvalidTriggerCfgForDevice (-209831) -#define -DAQmxErrorInvalidDataTransferMechanismForDevice (-209830) -#define -DAQmxErrorInputFIFOOverflow3 (-209829) -#define -DAQmxErrorTooManyDevicesForAnalogMultiEdgeTrigCDAQ (-209828) -#define -DAQmxErrorTooManyTriggersTypesSpecifiedInTask (-209827) -#define -DAQmxErrorMismatchedMultiTriggerConfigValues (-209826) -#define -DAQmxErrorInconsistentAODACRangeAcrossTasks (-209825) -#define -DAQmxErrorInconsistentDTToWrite (-209824) -#define -DAQmxErrorFunctionObsolete (-209823) -#define -DAQmxErrorNegativeDurationNotSupported (-209822) -#define -DAQmxErrorDurationTooSmall (-209821) -#define -DAQmxErrorDurationTooLong (-209820) -#define -DAQmxErrorDurationBasedNotSupportedForSpecifiedTimingMode (-209819) -#define -DAQmxErrorInvalidLEDState (-209818) -#define -DAQmxErrorWatchdogStatesNotUniform (-209817) -#define -DAQmxErrorSelfTestFailedPowerSupplyOutOfTolerance (-209816) -#define -DAQmxErrorHWTSPMultiSampleWrite (-209815) -#define -DAQmxErrorOnboardRegenExceedsChannelLimit (-209814) -#define -DAQmxErrorWatchdogChannelExpirationStateNotSpecified (-209813) -#define -DAQmxErrorInvalidShuntSourceForCalibration (-209812) -#define -DAQmxErrorInvalidShuntSelectForCalibration (-209811) -#define -DAQmxErrorInvalidShuntCalibrationConfiguration (-209810) -#define -DAQmxErrorBufferedOperationsNotSupportedOnChannelStandalone (-209809) +#define DAQmxErrorTrigWinTimeoutExpired (-209832) +#define DAQmxErrorInvalidTriggerCfgForDevice (-209831) +#define DAQmxErrorInvalidDataTransferMechanismForDevice (-209830) +#define DAQmxErrorInputFIFOOverflow3 (-209829) +#define DAQmxErrorTooManyDevicesForAnalogMultiEdgeTrigCDAQ (-209828) +#define DAQmxErrorTooManyTriggersTypesSpecifiedInTask (-209827) +#define DAQmxErrorMismatchedMultiTriggerConfigValues (-209826) +#define DAQmxErrorInconsistentAODACRangeAcrossTasks (-209825) +#define DAQmxErrorInconsistentDTToWrite (-209824) +#define DAQmxErrorFunctionObsolete (-209823) +#define DAQmxErrorNegativeDurationNotSupported (-209822) +#define DAQmxErrorDurationTooSmall (-209821) +#define DAQmxErrorDurationTooLong (-209820) +#define DAQmxErrorDurationBasedNotSupportedForSpecifiedTimingMode (-209819) +#define DAQmxErrorInvalidLEDState (-209818) +#define DAQmxErrorWatchdogStatesNotUniform (-209817) +#define DAQmxErrorSelfTestFailedPowerSupplyOutOfTolerance (-209816) +#define DAQmxErrorHWTSPMultiSampleWrite (-209815) +#define DAQmxErrorOnboardRegenExceedsChannelLimit (-209814) +#define DAQmxErrorWatchdogChannelExpirationStateNotSpecified (-209813) +#define DAQmxErrorInvalidShuntSourceForCalibration (-209812) +#define DAQmxErrorInvalidShuntSelectForCalibration (-209811) +#define DAQmxErrorInvalidShuntCalibrationConfiguration (-209810) +#define DAQmxErrorBufferedOperationsNotSupportedOnChannelStandalone (-209809) #define DAQmxErrorFeatureNotAvailableOnAccessory (-209808) -#define -DAQmxErrorInconsistentThreshVoltageAcrossTerminals (-209807) -#define -DAQmxErrorDAQmxIsNotInstalledOnTarget (-209806) -#define -DAQmxErrorCOCannotKeepUpInHWTimedSinglePoint (-209805) -#define -DAQmxErrorWaitForNextSampClkDetected3OrMoreSampClks (-209803) -#define -DAQmxErrorWaitForNextSampClkDetectedMissedSampClk (-209802) -#define -DAQmxErrorWriteNotCompleteBeforeSampClk (-209801) -#define -DAQmxErrorReadNotCompleteBeforeSampClk (-209800) -#define -DAQmxErrorInconsistentDigitalFilteringAcrossTerminals (-201510) -#define -DAQmxErrorInconsistentPullUpCfgAcrossTerminals (-201509) -#define -DAQmxErrorInconsistentTermCfgAcrossTerminals (-201508) -#define -DAQmxErrorVCXODCMBecameUnlocked (-201507) -#define -DAQmxErrorPLLDACUpdateFailed (-201506) -#define -DAQmxErrorNoCabledDevice (-201505) -#define -DAQmxErrorLostRefClk (-201504) -#define -DAQmxErrorCantUseAITimingEngineWithCounters (-201503) -#define -DAQmxErrorDACOffsetValNotSet (-201502) -#define -DAQmxErrorCalAdjustRefValOutOfRange (-201501) -#define -DAQmxErrorChansForCalAdjustMustPerformSetContext (-201500) -#define -DAQmxErrorGetCalDataInvalidForCalMode (-201499) -#define -DAQmxErrorNoIEPEWithACNotAllowed (-201498) -#define -DAQmxErrorSetupCalNeededBeforeGetCalDataPoints (-201497) -#define -DAQmxErrorVoltageNotCalibrated (-201496) -#define -DAQmxErrorMissingRangeForCalibration (-201495) -#define -DAQmxErrorMultipleChansNotSupportedDuringCalAdjust (-201494) +#define DAQmxErrorInconsistentThreshVoltageAcrossTerminals (-209807) +#define DAQmxErrorDAQmxIsNotInstalledOnTarget (-209806) +#define DAQmxErrorCOCannotKeepUpInHWTimedSinglePoint (-209805) +#define DAQmxErrorWaitForNextSampClkDetected3OrMoreSampClks (-209803) +#define DAQmxErrorWaitForNextSampClkDetectedMissedSampClk (-209802) +#define DAQmxErrorWriteNotCompleteBeforeSampClk (-209801) +#define DAQmxErrorReadNotCompleteBeforeSampClk (-209800) +#define DAQmxErrorInconsistentDigitalFilteringAcrossTerminals (-201510) +#define DAQmxErrorInconsistentPullUpCfgAcrossTerminals (-201509) +#define DAQmxErrorInconsistentTermCfgAcrossTerminals (-201508) +#define DAQmxErrorVCXODCMBecameUnlocked (-201507) +#define DAQmxErrorPLLDACUpdateFailed (-201506) +#define DAQmxErrorNoCabledDevice (-201505) +#define DAQmxErrorLostRefClk (-201504) +#define DAQmxErrorCantUseAITimingEngineWithCounters (-201503) +#define DAQmxErrorDACOffsetValNotSet (-201502) +#define DAQmxErrorCalAdjustRefValOutOfRange (-201501) +#define DAQmxErrorChansForCalAdjustMustPerformSetContext (-201500) +#define DAQmxErrorGetCalDataInvalidForCalMode (-201499) +#define DAQmxErrorNoIEPEWithACNotAllowed (-201498) +#define DAQmxErrorSetupCalNeededBeforeGetCalDataPoints (-201497) +#define DAQmxErrorVoltageNotCalibrated (-201496) +#define DAQmxErrorMissingRangeForCalibration (-201495) +#define DAQmxErrorMultipleChansNotSupportedDuringCalAdjust (-201494) #define DAQmxErrorShuntCalFailedOutOfRange (-201493) -#define -DAQmxErrorOperationNotSupportedOnSimulatedDevice (-201492) -#define -DAQmxErrorFirmwareVersionSameAsInstalledVersion (-201491) -#define -DAQmxErrorFirmwareVersionOlderThanInstalledVersion (-201490) -#define -DAQmxErrorFirmwareUpdateInvalidState (-201489) -#define -DAQmxErrorFirmwareUpdateInvalidID (-201488) -#define -DAQmxErrorFirmwareUpdateAutomaticManagementEnabled (-201487) -#define -DAQmxErrorSetupCalibrationNotCalled (-201486) -#define -DAQmxErrorCalMeasuredDataSizeVsActualDataSizeMismatch (-201485) -#define -DAQmxErrorCDAQMissingDSAMasterForChanExpansion (-201484) -#define -DAQmxErrorCDAQMasterNotFoundForChanExpansion (-201483) -#define -DAQmxErrorAllChansShouldBeProvidedForCalibration (-201482) -#define -DAQmxErrorMustSpecifyExpirationStateForAllLinesInRange (-201481) -#define -DAQmxErrorOpenSessionExists (-201480) -#define -DAQmxErrorCannotQueryTerminalForSWArmStart (-201479) -#define -DAQmxErrorChassisWatchdogTimerExpired (-201478) -#define -DAQmxErrorCantReserveWatchdogTaskWhileOtherTasksReserved (-201477) -#define -DAQmxErrorCantReserveTaskWhileWatchdogTaskReserving (-201476) -#define -DAQmxErrorAuxPowerSourceRequired (-201475) -#define -DAQmxErrorDeviceNotSupportedOnLocalSystem (-201474) -#define -DAQmxErrorOneTimestampChannelRequiredForCombinedNavigationRead (-201472) -#define -DAQmxErrorMultDevsMultPhysChans (-201471) -#define -DAQmxErrorInvalidCalAdjustmentPointValues (-201470) -#define -DAQmxErrorDifferentDigitizerFromCommunicator (-201469) -#define -DAQmxErrorCDAQSyncMasterClockNotPresent (-201468) +#define DAQmxErrorOperationNotSupportedOnSimulatedDevice (-201492) +#define DAQmxErrorFirmwareVersionSameAsInstalledVersion (-201491) +#define DAQmxErrorFirmwareVersionOlderThanInstalledVersion (-201490) +#define DAQmxErrorFirmwareUpdateInvalidState (-201489) +#define DAQmxErrorFirmwareUpdateInvalidID (-201488) +#define DAQmxErrorFirmwareUpdateAutomaticManagementEnabled (-201487) +#define DAQmxErrorSetupCalibrationNotCalled (-201486) +#define DAQmxErrorCalMeasuredDataSizeVsActualDataSizeMismatch (-201485) +#define DAQmxErrorCDAQMissingDSAMasterForChanExpansion (-201484) +#define DAQmxErrorCDAQMasterNotFoundForChanExpansion (-201483) +#define DAQmxErrorAllChansShouldBeProvidedForCalibration (-201482) +#define DAQmxErrorMustSpecifyExpirationStateForAllLinesInRange (-201481) +#define DAQmxErrorOpenSessionExists (-201480) +#define DAQmxErrorCannotQueryTerminalForSWArmStart (-201479) +#define DAQmxErrorChassisWatchdogTimerExpired (-201478) +#define DAQmxErrorCantReserveWatchdogTaskWhileOtherTasksReserved (-201477) +#define DAQmxErrorCantReserveTaskWhileWatchdogTaskReserving (-201476) +#define DAQmxErrorAuxPowerSourceRequired (-201475) +#define DAQmxErrorDeviceNotSupportedOnLocalSystem (-201474) +#define DAQmxErrorOneTimestampChannelRequiredForCombinedNavigationRead (-201472) +#define DAQmxErrorMultDevsMultPhysChans (-201471) +#define DAQmxErrorInvalidCalAdjustmentPointValues (-201470) +#define DAQmxErrorDifferentDigitizerFromCommunicator (-201469) +#define DAQmxErrorCDAQSyncMasterClockNotPresent (-201468) #define DAQmxErrorAssociatedChansHaveConflictingProps (-201467) -#define -DAQmxErrorAutoConfigBetweenMultipleDeviceStatesInvalid (-201466) -#define -DAQmxErrorAutoConfigOfOfflineDevicesInvalid (-201465) -#define -DAQmxErrorExternalFIFOFault (-201464) -#define -DAQmxErrorConnectionsNotReciprocal (-201463) -#define -DAQmxErrorInvalidOutputToInputCDAQSyncConnection (-201462) -#define -DAQmxErrorReferenceClockNotPresent (-201461) -#define -DAQmxErrorBlankStringExpansionFoundNoSupportedCDAQSyncConnectionDevices (-201460) -#define -DAQmxErrorNoDevicesSupportCDAQSyncConnections (-201459) -#define -DAQmxErrorInvalidCDAQSyncTimeoutValue (-201458) -#define -DAQmxErrorCDAQSyncConnectionToSamePort (-201457) -#define -DAQmxErrorDevsWithoutCommonSyncConnectionStrategy (-201456) -#define -DAQmxErrorNoCDAQSyncBetweenPhysAndSimulatedDevs (-201455) -#define -DAQmxErrorUnableToContainCards (-201454) -#define -DAQmxErrorFindDisconnectedBetweenPhysAndSimDeviceStatesInvalid (-201453) -#define -DAQmxErrorOperationAborted (-201452) -#define -DAQmxErrorTwoPortsRequired (-201451) -#define -DAQmxErrorDeviceDoesNotSupportCDAQSyncConnections (-201450) -#define -DAQmxErrorInvalidcDAQSyncPortConnectionFormat (-201449) -#define -DAQmxErrorRosetteMeasurementsNotSpecified (-201448) -#define -DAQmxErrorInvalidNumOfPhysChansForDeltaRosette (-201447) -#define -DAQmxErrorInvalidNumOfPhysChansForTeeRosette (-201446) -#define -DAQmxErrorRosetteStrainChanNamesNeeded (-201445) -#define -DAQmxErrorMultideviceWithOnDemandTiming (-201444) -#define -DAQmxErrorFREQOUTCannotProduceDesiredFrequency3 (-201443) +#define DAQmxErrorAutoConfigBetweenMultipleDeviceStatesInvalid (-201466) +#define DAQmxErrorAutoConfigOfOfflineDevicesInvalid (-201465) +#define DAQmxErrorExternalFIFOFault (-201464) +#define DAQmxErrorConnectionsNotReciprocal (-201463) +#define DAQmxErrorInvalidOutputToInputCDAQSyncConnection (-201462) +#define DAQmxErrorReferenceClockNotPresent (-201461) +#define DAQmxErrorBlankStringExpansionFoundNoSupportedCDAQSyncConnectionDevices (-201460) +#define DAQmxErrorNoDevicesSupportCDAQSyncConnections (-201459) +#define DAQmxErrorInvalidCDAQSyncTimeoutValue (-201458) +#define DAQmxErrorCDAQSyncConnectionToSamePort (-201457) +#define DAQmxErrorDevsWithoutCommonSyncConnectionStrategy (-201456) +#define DAQmxErrorNoCDAQSyncBetweenPhysAndSimulatedDevs (-201455) +#define DAQmxErrorUnableToContainCards (-201454) +#define DAQmxErrorFindDisconnectedBetweenPhysAndSimDeviceStatesInvalid (-201453) +#define DAQmxErrorOperationAborted (-201452) +#define DAQmxErrorTwoPortsRequired (-201451) +#define DAQmxErrorDeviceDoesNotSupportCDAQSyncConnections (-201450) +#define DAQmxErrorInvalidcDAQSyncPortConnectionFormat (-201449) +#define DAQmxErrorRosetteMeasurementsNotSpecified (-201448) +#define DAQmxErrorInvalidNumOfPhysChansForDeltaRosette (-201447) +#define DAQmxErrorInvalidNumOfPhysChansForTeeRosette (-201446) +#define DAQmxErrorRosetteStrainChanNamesNeeded (-201445) +#define DAQmxErrorMultideviceWithOnDemandTiming (-201444) +#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency3 (-201443) #define DAQmxErrorTwoEdgeSeparationSameTerminalSameEdge (-201442) -#define -DAQmxErrorDontMixSyncPulseAndSampClkTimebaseOn449x (-201441) -#define -DAQmxErrorNeitherRefClkNorSampClkTimebaseConfiguredForDSASync (-201440) -#define -DAQmxErrorRetriggeringFiniteCONotAllowed (-201439) -#define -DAQmxErrorDeviceRebootedFromWDTTimeout (-201438) -#define -DAQmxErrorTimeoutValueExceedsMaximum (-201437) -#define -DAQmxErrorSharingDifferentWireModes (-201436) -#define -DAQmxErrorCantPrimeWithEmptyBuffer (-201435) -#define -DAQmxErrorConfigFailedBecauseWatchdogExpired (-201434) -#define -DAQmxErrorWriteFailedBecauseWatchdogChangedLineDirection (-201433) -#define -DAQmxErrorMultipleSubsytemCalibration (-201432) -#define -DAQmxErrorIncorrectChannelForOffsetAdjustment (-201431) -#define -DAQmxErrorInvalidNumRefVoltagesToWrite (-201430) -#define -DAQmxErrorStartTrigDelayWithDSAModule (-201429) -#define -DAQmxErrorMoreThanOneSyncPulseDetected (-201428) -#define -DAQmxErrorDevNotSupportedWithinDAQmxAPI (-201427) -#define -DAQmxErrorDevsWithoutSyncStrategies (-201426) -#define -DAQmxErrorDevsWithoutCommonSyncStrategy (-201425) -#define -DAQmxErrorSyncStrategiesCannotSync (-201424) -#define -DAQmxErrorChassisCommunicationInterrupted (-201423) -#define -DAQmxErrorUnknownCardPowerProfileInCarrier (-201422) -#define -DAQmxErrorAttrNotSupportedOnAccessory (-201421) -#define -DAQmxErrorNetworkDeviceReservedByAnotherHost (-201420) -#define -DAQmxErrorIncorrectFirmwareFileUploaded (-201419) -#define -DAQmxErrorInvalidFirmwareFileUploaded (-201418) +#define DAQmxErrorDontMixSyncPulseAndSampClkTimebaseOn449x (-201441) +#define DAQmxErrorNeitherRefClkNorSampClkTimebaseConfiguredForDSASync (-201440) +#define DAQmxErrorRetriggeringFiniteCONotAllowed (-201439) +#define DAQmxErrorDeviceRebootedFromWDTTimeout (-201438) +#define DAQmxErrorTimeoutValueExceedsMaximum (-201437) +#define DAQmxErrorSharingDifferentWireModes (-201436) +#define DAQmxErrorCantPrimeWithEmptyBuffer (-201435) +#define DAQmxErrorConfigFailedBecauseWatchdogExpired (-201434) +#define DAQmxErrorWriteFailedBecauseWatchdogChangedLineDirection (-201433) +#define DAQmxErrorMultipleSubsytemCalibration (-201432) +#define DAQmxErrorIncorrectChannelForOffsetAdjustment (-201431) +#define DAQmxErrorInvalidNumRefVoltagesToWrite (-201430) +#define DAQmxErrorStartTrigDelayWithDSAModule (-201429) +#define DAQmxErrorMoreThanOneSyncPulseDetected (-201428) +#define DAQmxErrorDevNotSupportedWithinDAQmxAPI (-201427) +#define DAQmxErrorDevsWithoutSyncStrategies (-201426) +#define DAQmxErrorDevsWithoutCommonSyncStrategy (-201425) +#define DAQmxErrorSyncStrategiesCannotSync (-201424) +#define DAQmxErrorChassisCommunicationInterrupted (-201423) +#define DAQmxErrorUnknownCardPowerProfileInCarrier (-201422) +#define DAQmxErrorAttrNotSupportedOnAccessory (-201421) +#define DAQmxErrorNetworkDeviceReservedByAnotherHost (-201420) +#define DAQmxErrorIncorrectFirmwareFileUploaded (-201419) +#define DAQmxErrorInvalidFirmwareFileUploaded (-201418) #define DAQmxErrorInTimerTimeoutOnArm (-201417) -#define -DAQmxErrorCantExceedSlotRelayDriveLimit (-201416) -#define -DAQmxErrorModuleUnsupportedFor9163 (-201415) -#define -DAQmxErrorConnectionsNotSupported (-201414) -#define -DAQmxErrorAccessoryNotPresent (-201413) -#define -DAQmxErrorSpecifiedAccessoryChannelsNotPresentOnDevice (-201412) -#define -DAQmxErrorConnectionsNotSupportedOnAccessory (-201411) -#define -DAQmxErrorRateTooFastForHWTSP (-201410) -#define -DAQmxErrorDelayFromSampleClockOutOfRangeForHWTSP (-201409) -#define -DAQmxErrorAveragingWhenNotInternalHWTSP (-201408) -#define -DAQmxErrorAttributeNotSupportedUnlessHWTSP (-201407) -#define -DAQmxErrorFiveVoltDetectFailed (-201406) -#define -DAQmxErrorAnalogBusStateInconsistent (-201405) -#define -DAQmxErrorCardDetectedDoesNotMatchExpectedCard (-201404) -#define -DAQmxErrorLoggingStartNewFileNotCalled (-201403) -#define -DAQmxErrorLoggingSampsPerFileNotDivisible (-201402) -#define -DAQmxErrorRetrievingNetworkDeviceProperties (-201401) -#define -DAQmxErrorFilePreallocationFailed (-201400) -#define -DAQmxErrorModuleMismatchInSameTimedTask (-201399) -#define -DAQmxErrorInvalidAttributeValuePossiblyDueToOtherAttributeValues (-201398) -#define -DAQmxErrorChangeDetectionStoppedToPreventDeviceHang (-201397) -#define -DAQmxErrorFilterDelayRemovalNotPosssibleWithAnalogTrigger (-201396) -#define -DAQmxErrorNonbufferedOrNoChannels (-201395) -#define -DAQmxErrorTristateLogicLevelNotSpecdForEntirePort (-201394) -#define -DAQmxErrorTristateLogicLevelNotSupportedOnDigOutChan (-201393) +#define DAQmxErrorCantExceedSlotRelayDriveLimit (-201416) +#define DAQmxErrorModuleUnsupportedFor9163 (-201415) +#define DAQmxErrorConnectionsNotSupported (-201414) +#define DAQmxErrorAccessoryNotPresent (-201413) +#define DAQmxErrorSpecifiedAccessoryChannelsNotPresentOnDevice (-201412) +#define DAQmxErrorConnectionsNotSupportedOnAccessory (-201411) +#define DAQmxErrorRateTooFastForHWTSP (-201410) +#define DAQmxErrorDelayFromSampleClockOutOfRangeForHWTSP (-201409) +#define DAQmxErrorAveragingWhenNotInternalHWTSP (-201408) +#define DAQmxErrorAttributeNotSupportedUnlessHWTSP (-201407) +#define DAQmxErrorFiveVoltDetectFailed (-201406) +#define DAQmxErrorAnalogBusStateInconsistent (-201405) +#define DAQmxErrorCardDetectedDoesNotMatchExpectedCard (-201404) +#define DAQmxErrorLoggingStartNewFileNotCalled (-201403) +#define DAQmxErrorLoggingSampsPerFileNotDivisible (-201402) +#define DAQmxErrorRetrievingNetworkDeviceProperties (-201401) +#define DAQmxErrorFilePreallocationFailed (-201400) +#define DAQmxErrorModuleMismatchInSameTimedTask (-201399) +#define DAQmxErrorInvalidAttributeValuePossiblyDueToOtherAttributeValues (-201398) +#define DAQmxErrorChangeDetectionStoppedToPreventDeviceHang (-201397) +#define DAQmxErrorFilterDelayRemovalNotPosssibleWithAnalogTrigger (-201396) +#define DAQmxErrorNonbufferedOrNoChannels (-201395) +#define DAQmxErrorTristateLogicLevelNotSpecdForEntirePort (-201394) +#define DAQmxErrorTristateLogicLevelNotSupportedOnDigOutChan (-201393) #define DAQmxErrorTristateLogicLevelNotSupported (-201392) -#define -DAQmxErrorIncompleteGainAndCouplingCalAdjustment (-201391) -#define -DAQmxErrorNetworkStatusConnectionLost (-201390) -#define -DAQmxErrorModuleChangeDuringConnectionLoss (-201389) -#define -DAQmxErrorNetworkDeviceNotReservedByHost (-201388) -#define -DAQmxErrorDuplicateCalibrationAdjustmentInput (-201387) -#define -DAQmxErrorSelfCalFailedContactTechSupport (-201386) -#define -DAQmxErrorSelfCalFailedToConverge (-201385) -#define -DAQmxErrorUnsupportedSimulatedModuleForSimulatedChassis (-201384) -#define -DAQmxErrorLoggingWriteSizeTooBig (-201383) -#define -DAQmxErrorLoggingWriteSizeNotDivisible (-201382) -#define -DAQmxErrorMyDAQPowerRailFault (-201381) -#define -DAQmxErrorDeviceDoesNotSupportThisOperation (-201380) -#define -DAQmxErrorNetworkDevicesNotSupportedOnThisPlatform (-201379) -#define -DAQmxErrorUnknownFirmwareVersion (-201378) -#define -DAQmxErrorFirmwareIsUpdating (-201377) -#define -DAQmxErrorAccessoryEEPROMIsCorrupt (-201376) -#define -DAQmxErrorThrmcplLeadOffsetNullingCalNotSupported (-201375) -#define -DAQmxErrorSelfCalFailedTryExtCal (-201374) -#define -DAQmxErrorOutputP2PNotSupportedWithMultithreadedScripts (-201373) -#define -DAQmxErrorThrmcplCalibrationChannelsOpen (-201372) -#define -DAQmxErrorMDNSServiceInstanceAlreadyInUse (-201371) -#define -DAQmxErrorIPAddressAlreadyInUse (-201370) -#define -DAQmxErrorHostnameAlreadyInUse (-201369) -#define -DAQmxErrorInvalidNumberOfCalAdjustmentPoints (-201368) +#define DAQmxErrorIncompleteGainAndCouplingCalAdjustment (-201391) +#define DAQmxErrorNetworkStatusConnectionLost (-201390) +#define DAQmxErrorModuleChangeDuringConnectionLoss (-201389) +#define DAQmxErrorNetworkDeviceNotReservedByHost (-201388) +#define DAQmxErrorDuplicateCalibrationAdjustmentInput (-201387) +#define DAQmxErrorSelfCalFailedContactTechSupport (-201386) +#define DAQmxErrorSelfCalFailedToConverge (-201385) +#define DAQmxErrorUnsupportedSimulatedModuleForSimulatedChassis (-201384) +#define DAQmxErrorLoggingWriteSizeTooBig (-201383) +#define DAQmxErrorLoggingWriteSizeNotDivisible (-201382) +#define DAQmxErrorMyDAQPowerRailFault (-201381) +#define DAQmxErrorDeviceDoesNotSupportThisOperation (-201380) +#define DAQmxErrorNetworkDevicesNotSupportedOnThisPlatform (-201379) +#define DAQmxErrorUnknownFirmwareVersion (-201378) +#define DAQmxErrorFirmwareIsUpdating (-201377) +#define DAQmxErrorAccessoryEEPROMIsCorrupt (-201376) +#define DAQmxErrorThrmcplLeadOffsetNullingCalNotSupported (-201375) +#define DAQmxErrorSelfCalFailedTryExtCal (-201374) +#define DAQmxErrorOutputP2PNotSupportedWithMultithreadedScripts (-201373) +#define DAQmxErrorThrmcplCalibrationChannelsOpen (-201372) +#define DAQmxErrorMDNSServiceInstanceAlreadyInUse (-201371) +#define DAQmxErrorIPAddressAlreadyInUse (-201370) +#define DAQmxErrorHostnameAlreadyInUse (-201369) +#define DAQmxErrorInvalidNumberOfCalAdjustmentPoints (-201368) #define DAQmxErrorFilterOrDigitalSyncInternalSignal (-201367) -#define -DAQmxErrorBadDDSSource (-201366) -#define -DAQmxErrorOnboardRegenWithMoreThan16Channels (-201365) -#define -DAQmxErrorTriggerTooFast (-201364) -#define -DAQmxErrorMinMaxOutsideTableRange (-201363) -#define -DAQmxErrorChannelExpansionWithInvalidAnalogTriggerDevice (-201362) -#define -DAQmxErrorSyncPulseSrcInvalidForTask (-201361) -#define -DAQmxErrorInvalidCarrierSlotNumberSpecd (-201360) -#define -DAQmxErrorCardsMustBeInSameCarrier (-201359) -#define -DAQmxErrorCardDevCarrierSimMustMatch (-201358) -#define -DAQmxErrorDevMustHaveAtLeastOneCard (-201357) -#define -DAQmxErrorCardTopologyError (-201356) -#define -DAQmxErrorExceededCarrierPowerLimit (-201355) -#define -DAQmxErrorCardsIncompatible (-201354) -#define -DAQmxErrorAnalogBusNotValid (-201353) -#define -DAQmxErrorReservationConflict (-201352) -#define -DAQmxErrorMemMappedOnDemandNotSupported (-201351) -#define -DAQmxErrorSlaveWithNoStartTriggerConfigured (-201350) -#define -DAQmxErrorChannelExpansionWithDifferentTriggerDevices (-201349) -#define -DAQmxErrorCounterSyncAndRetriggered (-201348) -#define -DAQmxErrorNoExternalSyncPulseDetected (-201347) -#define -DAQmxErrorSlaveAndNoExternalSyncPulse (-201346) -#define -DAQmxErrorCustomTimingRequiredForAttribute (-201345) -#define -DAQmxErrorCustomTimingModeNotSet (-201344) -#define -DAQmxErrorAccessoryPowerTripped (-201343) +#define DAQmxErrorBadDDSSource (-201366) +#define DAQmxErrorOnboardRegenWithMoreThan16Channels (-201365) +#define DAQmxErrorTriggerTooFast (-201364) +#define DAQmxErrorMinMaxOutsideTableRange (-201363) +#define DAQmxErrorChannelExpansionWithInvalidAnalogTriggerDevice (-201362) +#define DAQmxErrorSyncPulseSrcInvalidForTask (-201361) +#define DAQmxErrorInvalidCarrierSlotNumberSpecd (-201360) +#define DAQmxErrorCardsMustBeInSameCarrier (-201359) +#define DAQmxErrorCardDevCarrierSimMustMatch (-201358) +#define DAQmxErrorDevMustHaveAtLeastOneCard (-201357) +#define DAQmxErrorCardTopologyError (-201356) +#define DAQmxErrorExceededCarrierPowerLimit (-201355) +#define DAQmxErrorCardsIncompatible (-201354) +#define DAQmxErrorAnalogBusNotValid (-201353) +#define DAQmxErrorReservationConflict (-201352) +#define DAQmxErrorMemMappedOnDemandNotSupported (-201351) +#define DAQmxErrorSlaveWithNoStartTriggerConfigured (-201350) +#define DAQmxErrorChannelExpansionWithDifferentTriggerDevices (-201349) +#define DAQmxErrorCounterSyncAndRetriggered (-201348) +#define DAQmxErrorNoExternalSyncPulseDetected (-201347) +#define DAQmxErrorSlaveAndNoExternalSyncPulse (-201346) +#define DAQmxErrorCustomTimingRequiredForAttribute (-201345) +#define DAQmxErrorCustomTimingModeNotSet (-201344) +#define DAQmxErrorAccessoryPowerTripped (-201343) #define DAQmxErrorUnsupportedAccessory (-201342) -#define -DAQmxErrorInvalidAccessoryChange (-201341) -#define -DAQmxErrorFirmwareRequiresUpgrade (-201340) -#define -DAQmxErrorFastExternalTimebaseNotSupportedForDevice (-201339) -#define -DAQmxErrorInvalidShuntLocationForCalibration (-201338) -#define -DAQmxErrorDeviceNameTooLong (-201337) -#define -DAQmxErrorBridgeScalesUnsupported (-201336) -#define -DAQmxErrorMismatchedElecPhysValues (-201335) -#define -DAQmxErrorLinearRequiresUniquePoints (-201334) -#define -DAQmxErrorMissingRequiredScalingParameter (-201333) -#define -DAQmxErrorLoggingNotSupportOnOutputTasks (-201332) -#define -DAQmxErrorMemoryMappedHardwareTimedNonBufferedUnsupported (-201331) -#define -DAQmxErrorCannotUpdatePulseTrainWithAutoIncrementEnabled (-201330) -#define -DAQmxErrorHWTimedSinglePointAndDataXferNotDMA (-201329) -#define -DAQmxErrorSCCSecondStageEmpty (-201328) -#define -DAQmxErrorSCCInvalidDualStageCombo (-201327) -#define -DAQmxErrorSCCInvalidSecondStage (-201326) -#define -DAQmxErrorSCCInvalidFirstStage (-201325) -#define -DAQmxErrorCounterMultipleSampleClockedChannels (-201324) -#define -DAQmxError2CounterMeasurementModeAndSampleClocked (-201323) -#define -DAQmxErrorCantHaveBothMemMappedAndNonMemMappedTasks (-201322) -#define -DAQmxErrorMemMappedDataReadByAnotherProcess (-201321) -#define -DAQmxErrorRetriggeringInvalidForGivenSettings (-201320) -#define -DAQmxErrorAIOverrun (-201319) -#define -DAQmxErrorCOOverrun (-201318) +#define DAQmxErrorInvalidAccessoryChange (-201341) +#define DAQmxErrorFirmwareRequiresUpgrade (-201340) +#define DAQmxErrorFastExternalTimebaseNotSupportedForDevice (-201339) +#define DAQmxErrorInvalidShuntLocationForCalibration (-201338) +#define DAQmxErrorDeviceNameTooLong (-201337) +#define DAQmxErrorBridgeScalesUnsupported (-201336) +#define DAQmxErrorMismatchedElecPhysValues (-201335) +#define DAQmxErrorLinearRequiresUniquePoints (-201334) +#define DAQmxErrorMissingRequiredScalingParameter (-201333) +#define DAQmxErrorLoggingNotSupportOnOutputTasks (-201332) +#define DAQmxErrorMemoryMappedHardwareTimedNonBufferedUnsupported (-201331) +#define DAQmxErrorCannotUpdatePulseTrainWithAutoIncrementEnabled (-201330) +#define DAQmxErrorHWTimedSinglePointAndDataXferNotDMA (-201329) +#define DAQmxErrorSCCSecondStageEmpty (-201328) +#define DAQmxErrorSCCInvalidDualStageCombo (-201327) +#define DAQmxErrorSCCInvalidSecondStage (-201326) +#define DAQmxErrorSCCInvalidFirstStage (-201325) +#define DAQmxErrorCounterMultipleSampleClockedChannels (-201324) +#define DAQmxError2CounterMeasurementModeAndSampleClocked (-201323) +#define DAQmxErrorCantHaveBothMemMappedAndNonMemMappedTasks (-201322) +#define DAQmxErrorMemMappedDataReadByAnotherProcess (-201321) +#define DAQmxErrorRetriggeringInvalidForGivenSettings (-201320) +#define DAQmxErrorAIOverrun (-201319) +#define DAQmxErrorCOOverrun (-201318) #define DAQmxErrorCounterMultipleBufferedChannels (-201317) -#define -DAQmxErrorInvalidTimebaseForCOHWTSP (-201316) -#define -DAQmxErrorWriteBeforeEvent (-201315) -#define -DAQmxErrorCIOverrun (-201314) -#define -DAQmxErrorCounterNonResponsiveAndReset (-201313) -#define -DAQmxErrorMeasTypeOrChannelNotSupportedForLogging (-201312) -#define -DAQmxErrorFileAlreadyOpenedForWrite (-201311) -#define -DAQmxErrorTdmsNotFound (-201310) -#define -DAQmxErrorGenericFileIO (-201309) -#define -DAQmxErrorFiniteSTCCounterNotSupportedForLogging (-201308) -#define -DAQmxErrorMeasurementTypeNotSupportedForLogging (-201307) -#define -DAQmxErrorFileAlreadyOpened (-201306) -#define -DAQmxErrorDiskFull (-201305) -#define -DAQmxErrorFilePathInvalid (-201304) -#define -DAQmxErrorFileVersionMismatch (-201303) -#define -DAQmxErrorFileWriteProtected (-201302) -#define -DAQmxErrorReadNotSupportedForLoggingMode (-201301) -#define -DAQmxErrorAttributeNotSupportedWhenLogging (-201300) -#define -DAQmxErrorLoggingModeNotSupportedNonBuffered (-201299) -#define -DAQmxErrorPropertyNotSupportedWithConflictingProperty (-201298) -#define -DAQmxErrorParallelSSHOnConnector1 (-201297) -#define -DAQmxErrorCOOnlyImplicitSampleTimingTypeSupported (-201296) -#define -DAQmxErrorCalibrationFailedAOOutOfRange (-201295) -#define -DAQmxErrorCalibrationFailedAIOutOfRange (-201294) -#define -DAQmxErrorCalPWMLinearityFailed (-201293) +#define DAQmxErrorInvalidTimebaseForCOHWTSP (-201316) +#define DAQmxErrorWriteBeforeEvent (-201315) +#define DAQmxErrorCIOverrun (-201314) +#define DAQmxErrorCounterNonResponsiveAndReset (-201313) +#define DAQmxErrorMeasTypeOrChannelNotSupportedForLogging (-201312) +#define DAQmxErrorFileAlreadyOpenedForWrite (-201311) +#define DAQmxErrorTdmsNotFound (-201310) +#define DAQmxErrorGenericFileIO (-201309) +#define DAQmxErrorFiniteSTCCounterNotSupportedForLogging (-201308) +#define DAQmxErrorMeasurementTypeNotSupportedForLogging (-201307) +#define DAQmxErrorFileAlreadyOpened (-201306) +#define DAQmxErrorDiskFull (-201305) +#define DAQmxErrorFilePathInvalid (-201304) +#define DAQmxErrorFileVersionMismatch (-201303) +#define DAQmxErrorFileWriteProtected (-201302) +#define DAQmxErrorReadNotSupportedForLoggingMode (-201301) +#define DAQmxErrorAttributeNotSupportedWhenLogging (-201300) +#define DAQmxErrorLoggingModeNotSupportedNonBuffered (-201299) +#define DAQmxErrorPropertyNotSupportedWithConflictingProperty (-201298) +#define DAQmxErrorParallelSSHOnConnector1 (-201297) +#define DAQmxErrorCOOnlyImplicitSampleTimingTypeSupported (-201296) +#define DAQmxErrorCalibrationFailedAOOutOfRange (-201295) +#define DAQmxErrorCalibrationFailedAIOutOfRange (-201294) +#define DAQmxErrorCalPWMLinearityFailed (-201293) #define DAQmxErrorOverrunUnderflowConfigurationCombo (-201292) -#define -DAQmxErrorCannotWriteToFiniteCOTask (-201291) -#define -DAQmxErrorNetworkDAQInvalidWEPKeyLength (-201290) -#define -DAQmxErrorCalInputsShortedNotSupported (-201289) -#define -DAQmxErrorCannotSetPropertyWhenTaskIsReserved (-201288) -#define -DAQmxErrorMinus12VFuseBlown (-201287) -#define -DAQmxErrorPlus12VFuseBlown (-201286) -#define -DAQmxErrorPlus5VFuseBlown (-201285) -#define -DAQmxErrorPlus3VFuseBlown (-201284) -#define -DAQmxErrorDeviceSerialPortError (-201283) -#define -DAQmxErrorPowerUpStateMachineNotDone (-201282) -#define -DAQmxErrorTooManyTriggersSpecifiedInTask (-201281) -#define -DAQmxErrorVerticalOffsetNotSupportedOnDevice (-201280) -#define -DAQmxErrorInvalidCouplingForMeasurementType (-201279) -#define -DAQmxErrorDigitalLineUpdateTooFastForDevice (-201278) -#define -DAQmxErrorCertificateIsTooBigToTransfer (-201277) -#define -DAQmxErrorOnlyPEMOrDERCertiticatesAccepted (-201276) -#define -DAQmxErrorCalCouplingNotSupported (-201275) -#define -DAQmxErrorDeviceNotSupportedIn64Bit (-201274) -#define -DAQmxErrorNetworkDeviceInUse (-201273) -#define -DAQmxErrorInvalidIPv4AddressFormat (-201272) -#define -DAQmxErrorNetworkProductTypeMismatch (-201271) -#define -DAQmxErrorOnlyPEMCertificatesAccepted (-201270) -#define -DAQmxErrorCalibrationRequiresPrototypingBoardEnabled (-201269) -#define -DAQmxErrorAllCurrentLimitingResourcesAlreadyTaken (-201268) +#define DAQmxErrorCannotWriteToFiniteCOTask (-201291) +#define DAQmxErrorNetworkDAQInvalidWEPKeyLength (-201290) +#define DAQmxErrorCalInputsShortedNotSupported (-201289) +#define DAQmxErrorCannotSetPropertyWhenTaskIsReserved (-201288) +#define DAQmxErrorMinus12VFuseBlown (-201287) +#define DAQmxErrorPlus12VFuseBlown (-201286) +#define DAQmxErrorPlus5VFuseBlown (-201285) +#define DAQmxErrorPlus3VFuseBlown (-201284) +#define DAQmxErrorDeviceSerialPortError (-201283) +#define DAQmxErrorPowerUpStateMachineNotDone (-201282) +#define DAQmxErrorTooManyTriggersSpecifiedInTask (-201281) +#define DAQmxErrorVerticalOffsetNotSupportedOnDevice (-201280) +#define DAQmxErrorInvalidCouplingForMeasurementType (-201279) +#define DAQmxErrorDigitalLineUpdateTooFastForDevice (-201278) +#define DAQmxErrorCertificateIsTooBigToTransfer (-201277) +#define DAQmxErrorOnlyPEMOrDERCertiticatesAccepted (-201276) +#define DAQmxErrorCalCouplingNotSupported (-201275) +#define DAQmxErrorDeviceNotSupportedIn64Bit (-201274) +#define DAQmxErrorNetworkDeviceInUse (-201273) +#define DAQmxErrorInvalidIPv4AddressFormat (-201272) +#define DAQmxErrorNetworkProductTypeMismatch (-201271) +#define DAQmxErrorOnlyPEMCertificatesAccepted (-201270) +#define DAQmxErrorCalibrationRequiresPrototypingBoardEnabled (-201269) +#define DAQmxErrorAllCurrentLimitingResourcesAlreadyTaken (-201268) #define DAQmxErrorUserDefInfoStringBadLength (-201267) -#define -DAQmxErrorPropertyNotFound (-201266) -#define -DAQmxErrorOverVoltageProtectionActivated (-201265) -#define -DAQmxErrorScaledIQWaveformTooLarge (-201264) -#define -DAQmxErrorFirmwareFailedToDownload (-201263) -#define -DAQmxErrorPropertyNotSupportedForBusType (-201262) -#define -DAQmxErrorChangeRateWhileRunningCouldNotBeCompleted (-201261) -#define -DAQmxErrorCannotQueryManualControlAttribute (-201260) -#define -DAQmxErrorInvalidNetworkConfiguration (-201259) -#define -DAQmxErrorInvalidWirelessConfiguration (-201258) -#define -DAQmxErrorInvalidWirelessCountryCode (-201257) -#define -DAQmxErrorInvalidWirelessChannel (-201256) -#define -DAQmxErrorNetworkEEPROMHasChanged (-201255) -#define -DAQmxErrorNetworkSerialNumberMismatch (-201254) -#define -DAQmxErrorNetworkStatusDown (-201253) -#define -DAQmxErrorNetworkTargetUnreachable (-201252) -#define -DAQmxErrorNetworkTargetNotFound (-201251) -#define -DAQmxErrorNetworkStatusTimedOut (-201250) -#define -DAQmxErrorInvalidWirelessSecuritySelection (-201249) -#define -DAQmxErrorNetworkDeviceConfigurationLocked (-201248) -#define -DAQmxErrorNetworkDAQDeviceNotSupported (-201247) -#define -DAQmxErrorNetworkDAQCannotCreateEmptySleeve (-201246) -#define -DAQmxErrorUserDefInfoStringTooLong (-201245) -#define -DAQmxErrorModuleTypeDoesNotMatchModuleTypeInDestination (-201244) -#define -DAQmxErrorInvalidTEDSInterfaceAddress (-201243) +#define DAQmxErrorPropertyNotFound (-201266) +#define DAQmxErrorOverVoltageProtectionActivated (-201265) +#define DAQmxErrorScaledIQWaveformTooLarge (-201264) +#define DAQmxErrorFirmwareFailedToDownload (-201263) +#define DAQmxErrorPropertyNotSupportedForBusType (-201262) +#define DAQmxErrorChangeRateWhileRunningCouldNotBeCompleted (-201261) +#define DAQmxErrorCannotQueryManualControlAttribute (-201260) +#define DAQmxErrorInvalidNetworkConfiguration (-201259) +#define DAQmxErrorInvalidWirelessConfiguration (-201258) +#define DAQmxErrorInvalidWirelessCountryCode (-201257) +#define DAQmxErrorInvalidWirelessChannel (-201256) +#define DAQmxErrorNetworkEEPROMHasChanged (-201255) +#define DAQmxErrorNetworkSerialNumberMismatch (-201254) +#define DAQmxErrorNetworkStatusDown (-201253) +#define DAQmxErrorNetworkTargetUnreachable (-201252) +#define DAQmxErrorNetworkTargetNotFound (-201251) +#define DAQmxErrorNetworkStatusTimedOut (-201250) +#define DAQmxErrorInvalidWirelessSecuritySelection (-201249) +#define DAQmxErrorNetworkDeviceConfigurationLocked (-201248) +#define DAQmxErrorNetworkDAQDeviceNotSupported (-201247) +#define DAQmxErrorNetworkDAQCannotCreateEmptySleeve (-201246) +#define DAQmxErrorUserDefInfoStringTooLong (-201245) +#define DAQmxErrorModuleTypeDoesNotMatchModuleTypeInDestination (-201244) +#define DAQmxErrorInvalidTEDSInterfaceAddress (-201243) #define DAQmxErrorDevDoesNotSupportSCXIComm (-201242) -#define -DAQmxErrorSCXICommDevConnector0MustBeCabledToModule (-201241) -#define -DAQmxErrorSCXIModuleDoesNotSupportDigitizationMode (-201240) -#define -DAQmxErrorDevDoesNotSupportMultiplexedSCXIDigitizationMode (-201239) -#define -DAQmxErrorDevOrDevPhysChanDoesNotSupportSCXIDigitization (-201238) -#define -DAQmxErrorInvalidPhysChanName (-201237) -#define -DAQmxErrorSCXIChassisCommModeInvalid (-201236) -#define -DAQmxErrorRequiredDependencyNotFound (-201235) -#define -DAQmxErrorInvalidStorage (-201234) -#define -DAQmxErrorInvalidObject (-201233) -#define -DAQmxErrorStorageAlteredPriorToSave (-201232) -#define -DAQmxErrorTaskDoesNotReferenceLocalChannel (-201231) -#define -DAQmxErrorReferencedDevSimMustMatchTarget (-201230) -#define -DAQmxErrorProgrammedIOFailsBecauseOfWatchdogTimer (-201229) -#define -DAQmxErrorWatchdogTimerFailsBecauseOfProgrammedIO (-201228) -#define -DAQmxErrorCantUseThisTimingEngineWithAPort (-201227) -#define -DAQmxErrorProgrammedIOConflict (-201226) -#define -DAQmxErrorChangeDetectionIncompatibleWithProgrammedIO (-201225) -#define -DAQmxErrorTristateNotEnoughLines (-201224) -#define -DAQmxErrorTristateConflict (-201223) -#define -DAQmxErrorGenerateOrFiniteWaitExpectedBeforeBreakBlock (-201222) -#define -DAQmxErrorBreakBlockNotAllowedInLoop (-201221) -#define -DAQmxErrorClearTriggerNotAllowedInBreakBlock (-201220) -#define -DAQmxErrorNestingNotAllowedInBreakBlock (-201219) -#define -DAQmxErrorIfElseBlockNotAllowedInBreakBlock (-201218) +#define DAQmxErrorSCXICommDevConnector0MustBeCabledToModule (-201241) +#define DAQmxErrorSCXIModuleDoesNotSupportDigitizationMode (-201240) +#define DAQmxErrorDevDoesNotSupportMultiplexedSCXIDigitizationMode (-201239) +#define DAQmxErrorDevOrDevPhysChanDoesNotSupportSCXIDigitization (-201238) +#define DAQmxErrorInvalidPhysChanName (-201237) +#define DAQmxErrorSCXIChassisCommModeInvalid (-201236) +#define DAQmxErrorRequiredDependencyNotFound (-201235) +#define DAQmxErrorInvalidStorage (-201234) +#define DAQmxErrorInvalidObject (-201233) +#define DAQmxErrorStorageAlteredPriorToSave (-201232) +#define DAQmxErrorTaskDoesNotReferenceLocalChannel (-201231) +#define DAQmxErrorReferencedDevSimMustMatchTarget (-201230) +#define DAQmxErrorProgrammedIOFailsBecauseOfWatchdogTimer (-201229) +#define DAQmxErrorWatchdogTimerFailsBecauseOfProgrammedIO (-201228) +#define DAQmxErrorCantUseThisTimingEngineWithAPort (-201227) +#define DAQmxErrorProgrammedIOConflict (-201226) +#define DAQmxErrorChangeDetectionIncompatibleWithProgrammedIO (-201225) +#define DAQmxErrorTristateNotEnoughLines (-201224) +#define DAQmxErrorTristateConflict (-201223) +#define DAQmxErrorGenerateOrFiniteWaitExpectedBeforeBreakBlock (-201222) +#define DAQmxErrorBreakBlockNotAllowedInLoop (-201221) +#define DAQmxErrorClearTriggerNotAllowedInBreakBlock (-201220) +#define DAQmxErrorNestingNotAllowedInBreakBlock (-201219) +#define DAQmxErrorIfElseBlockNotAllowedInBreakBlock (-201218) #define DAQmxErrorRepeatUntilTriggerLoopNotAllowedInBreakBlock (-201217) -#define -DAQmxErrorWaitUntilTriggerNotAllowedInBreakBlock (-201216) -#define -DAQmxErrorMarkerPosInvalidInBreakBlock (-201215) -#define -DAQmxErrorInvalidWaitDurationInBreakBlock (-201214) -#define -DAQmxErrorInvalidSubsetLengthInBreakBlock (-201213) -#define -DAQmxErrorInvalidWaveformLengthInBreakBlock (-201212) -#define -DAQmxErrorInvalidWaitDurationBeforeBreakBlock (-201211) -#define -DAQmxErrorInvalidSubsetLengthBeforeBreakBlock (-201210) -#define -DAQmxErrorInvalidWaveformLengthBeforeBreakBlock (-201209) -#define -DAQmxErrorSampleRateTooHighForADCTimingMode (-201208) -#define -DAQmxErrorActiveDevNotSupportedWithMultiDevTask (-201207) -#define -DAQmxErrorRealDevAndSimDevNotSupportedInSameTask (-201206) -#define -DAQmxErrorRTSISimMustMatchDevSim (-201205) -#define -DAQmxErrorBridgeShuntCaNotSupported (-201204) -#define -DAQmxErrorStrainShuntCaNotSupported (-201203) -#define -DAQmxErrorGainTooLargeForGainCalConst (-201202) -#define -DAQmxErrorOffsetTooLargeForOffsetCalConst (-201201) -#define -DAQmxErrorElvisPrototypingBoardRemoved (-201200) -#define -DAQmxErrorElvis2PowerRailFault (-201199) -#define -DAQmxErrorElvis2PhysicalChansFault (-201198) -#define -DAQmxErrorElvis2PhysicalChansThermalEvent (-201197) -#define -DAQmxErrorRXBitErrorRateLimitExceeded (-201196) -#define -DAQmxErrorPHYBitErrorRateLimitExceeded (-201195) -#define -DAQmxErrorTwoPartAttributeCalledOutOfOrder (-201194) -#define -DAQmxErrorInvalidSCXIChassisAddress (-201193) +#define DAQmxErrorWaitUntilTriggerNotAllowedInBreakBlock (-201216) +#define DAQmxErrorMarkerPosInvalidInBreakBlock (-201215) +#define DAQmxErrorInvalidWaitDurationInBreakBlock (-201214) +#define DAQmxErrorInvalidSubsetLengthInBreakBlock (-201213) +#define DAQmxErrorInvalidWaveformLengthInBreakBlock (-201212) +#define DAQmxErrorInvalidWaitDurationBeforeBreakBlock (-201211) +#define DAQmxErrorInvalidSubsetLengthBeforeBreakBlock (-201210) +#define DAQmxErrorInvalidWaveformLengthBeforeBreakBlock (-201209) +#define DAQmxErrorSampleRateTooHighForADCTimingMode (-201208) +#define DAQmxErrorActiveDevNotSupportedWithMultiDevTask (-201207) +#define DAQmxErrorRealDevAndSimDevNotSupportedInSameTask (-201206) +#define DAQmxErrorRTSISimMustMatchDevSim (-201205) +#define DAQmxErrorBridgeShuntCaNotSupported (-201204) +#define DAQmxErrorStrainShuntCaNotSupported (-201203) +#define DAQmxErrorGainTooLargeForGainCalConst (-201202) +#define DAQmxErrorOffsetTooLargeForOffsetCalConst (-201201) +#define DAQmxErrorElvisPrototypingBoardRemoved (-201200) +#define DAQmxErrorElvis2PowerRailFault (-201199) +#define DAQmxErrorElvis2PhysicalChansFault (-201198) +#define DAQmxErrorElvis2PhysicalChansThermalEvent (-201197) +#define DAQmxErrorRXBitErrorRateLimitExceeded (-201196) +#define DAQmxErrorPHYBitErrorRateLimitExceeded (-201195) +#define DAQmxErrorTwoPartAttributeCalledOutOfOrder (-201194) +#define DAQmxErrorInvalidSCXIChassisAddress (-201193) #define DAQmxErrorCouldNotConnectToRemoteMXS (-201192) -#define -DAQmxErrorExcitationStateRequiredForAttributes (-201191) -#define -DAQmxErrorDeviceNotUsableUntilUSBReplug (-201190) -#define -DAQmxErrorInputFIFOOverflowDuringCalibrationOnFullSpeedUSB (-201189) -#define -DAQmxErrorInputFIFOOverflowDuringCalibration (-201188) -#define -DAQmxErrorCJCChanConflictsWithNonThermocoupleChan (-201187) -#define -DAQmxErrorCommDeviceForPXIBackplaneNotInRightmostSlot (-201186) -#define -DAQmxErrorCommDeviceForPXIBackplaneNotInSameChassis (-201185) -#define -DAQmxErrorCommDeviceForPXIBackplaneNotPXI (-201184) -#define -DAQmxErrorInvalidCalExcitFrequency (-201183) -#define -DAQmxErrorInvalidCalExcitVoltage (-201182) -#define -DAQmxErrorInvalidAIInputSrc (-201181) -#define -DAQmxErrorInvalidCalInputRef (-201180) -#define -DAQmxErrordBReferenceValueNotGreaterThanZero (-201179) -#define -DAQmxErrorSampleClockRateIsTooFastForSampleClockTiming (-201178) -#define -DAQmxErrorDeviceNotUsableUntilColdStart (-201177) -#define -DAQmxErrorSampleClockRateIsTooFastForBurstTiming (-201176) -#define -DAQmxErrorDevImportFailedAssociatedResourceIDsNotSupported (-201175) -#define -DAQmxErrorSCXI1600ImportNotSupported (-201174) -#define -DAQmxErrorPowerSupplyConfigurationFailed (-201173) -#define -DAQmxErrorIEPEWithDCNotAllowed (-201172) -#define -DAQmxErrorMinTempForThermocoupleTypeOutsideAccuracyForPolyScaling (-201171) -#define -DAQmxErrorDevImportFailedNoDeviceToOverwriteAndSimulationNotSupported (-201170) -#define -DAQmxErrorDevImportFailedDeviceNotSupportedOnDestination (-201169) -#define -DAQmxErrorFirmwareIsTooOld (-201168) +#define DAQmxErrorExcitationStateRequiredForAttributes (-201191) +#define DAQmxErrorDeviceNotUsableUntilUSBReplug (-201190) +#define DAQmxErrorInputFIFOOverflowDuringCalibrationOnFullSpeedUSB (-201189) +#define DAQmxErrorInputFIFOOverflowDuringCalibration (-201188) +#define DAQmxErrorCJCChanConflictsWithNonThermocoupleChan (-201187) +#define DAQmxErrorCommDeviceForPXIBackplaneNotInRightmostSlot (-201186) +#define DAQmxErrorCommDeviceForPXIBackplaneNotInSameChassis (-201185) +#define DAQmxErrorCommDeviceForPXIBackplaneNotPXI (-201184) +#define DAQmxErrorInvalidCalExcitFrequency (-201183) +#define DAQmxErrorInvalidCalExcitVoltage (-201182) +#define DAQmxErrorInvalidAIInputSrc (-201181) +#define DAQmxErrorInvalidCalInputRef (-201180) +#define DAQmxErrordBReferenceValueNotGreaterThanZero (-201179) +#define DAQmxErrorSampleClockRateIsTooFastForSampleClockTiming (-201178) +#define DAQmxErrorDeviceNotUsableUntilColdStart (-201177) +#define DAQmxErrorSampleClockRateIsTooFastForBurstTiming (-201176) +#define DAQmxErrorDevImportFailedAssociatedResourceIDsNotSupported (-201175) +#define DAQmxErrorSCXI1600ImportNotSupported (-201174) +#define DAQmxErrorPowerSupplyConfigurationFailed (-201173) +#define DAQmxErrorIEPEWithDCNotAllowed (-201172) +#define DAQmxErrorMinTempForThermocoupleTypeOutsideAccuracyForPolyScaling (-201171) +#define DAQmxErrorDevImportFailedNoDeviceToOverwriteAndSimulationNotSupported (-201170) +#define DAQmxErrorDevImportFailedDeviceNotSupportedOnDestination (-201169) +#define DAQmxErrorFirmwareIsTooOld (-201168) #define DAQmxErrorFirmwareCouldntUpdate (-201167) -#define -DAQmxErrorFirmwareIsCorrupt (-201166) -#define -DAQmxErrorFirmwareTooNew (-201165) -#define -DAQmxErrorSampClockCannotBeExportedFromExternalSampClockSrc (-201164) -#define -DAQmxErrorPhysChanReservedForInputWhenDesiredForOutput (-201163) -#define -DAQmxErrorPhysChanReservedForOutputWhenDesiredForInput (-201162) -#define -DAQmxErrorSpecifiedCDAQSlotNotEmpty (-201161) -#define -DAQmxErrorDeviceDoesNotSupportSimulation (-201160) -#define -DAQmxErrorInvalidCDAQSlotNumberSpecd (-201159) -#define -DAQmxErrorCSeriesModSimMustMatchCDAQChassisSim (-201158) -#define -DAQmxErrorSCCCabledDevMustNotBeSimWhenSCCCarrierIsNotSim (-201157) -#define -DAQmxErrorSCCModSimMustMatchSCCCarrierSim (-201156) -#define -DAQmxErrorSCXIModuleDoesNotSupportSimulation (-201155) -#define -DAQmxErrorSCXICableDevMustNotBeSimWhenModIsNotSim (-201154) -#define -DAQmxErrorSCXIDigitizerSimMustNotBeSimWhenModIsNotSim (-201153) -#define -DAQmxErrorSCXIModSimMustMatchSCXIChassisSim (-201152) -#define -DAQmxErrorSimPXIDevReqSlotAndChassisSpecd (-201151) -#define -DAQmxErrorSimDevConflictWithRealDev (-201150) -#define -DAQmxErrorInsufficientDataForCalibration (-201149) -#define -DAQmxErrorTriggerChannelMustBeEnabled (-201148) -#define -DAQmxErrorCalibrationDataConflictCouldNotBeResolved (-201147) -#define -DAQmxErrorSoftwareTooNewForSelfCalibrationData (-201146) -#define -DAQmxErrorSoftwareTooNewForExtCalibrationData (-201145) -#define -DAQmxErrorSelfCalibrationDataTooNewForSoftware (-201144) -#define -DAQmxErrorExtCalibrationDataTooNewForSoftware (-201143) +#define DAQmxErrorFirmwareIsCorrupt (-201166) +#define DAQmxErrorFirmwareTooNew (-201165) +#define DAQmxErrorSampClockCannotBeExportedFromExternalSampClockSrc (-201164) +#define DAQmxErrorPhysChanReservedForInputWhenDesiredForOutput (-201163) +#define DAQmxErrorPhysChanReservedForOutputWhenDesiredForInput (-201162) +#define DAQmxErrorSpecifiedCDAQSlotNotEmpty (-201161) +#define DAQmxErrorDeviceDoesNotSupportSimulation (-201160) +#define DAQmxErrorInvalidCDAQSlotNumberSpecd (-201159) +#define DAQmxErrorCSeriesModSimMustMatchCDAQChassisSim (-201158) +#define DAQmxErrorSCCCabledDevMustNotBeSimWhenSCCCarrierIsNotSim (-201157) +#define DAQmxErrorSCCModSimMustMatchSCCCarrierSim (-201156) +#define DAQmxErrorSCXIModuleDoesNotSupportSimulation (-201155) +#define DAQmxErrorSCXICableDevMustNotBeSimWhenModIsNotSim (-201154) +#define DAQmxErrorSCXIDigitizerSimMustNotBeSimWhenModIsNotSim (-201153) +#define DAQmxErrorSCXIModSimMustMatchSCXIChassisSim (-201152) +#define DAQmxErrorSimPXIDevReqSlotAndChassisSpecd (-201151) +#define DAQmxErrorSimDevConflictWithRealDev (-201150) +#define DAQmxErrorInsufficientDataForCalibration (-201149) +#define DAQmxErrorTriggerChannelMustBeEnabled (-201148) +#define DAQmxErrorCalibrationDataConflictCouldNotBeResolved (-201147) +#define DAQmxErrorSoftwareTooNewForSelfCalibrationData (-201146) +#define DAQmxErrorSoftwareTooNewForExtCalibrationData (-201145) +#define DAQmxErrorSelfCalibrationDataTooNewForSoftware (-201144) +#define DAQmxErrorExtCalibrationDataTooNewForSoftware (-201143) #define DAQmxErrorSoftwareTooNewForEEPROM (-201142) -#define -DAQmxErrorEEPROMTooNewForSoftware (-201141) -#define -DAQmxErrorSoftwareTooNewForHardware (-201140) -#define -DAQmxErrorHardwareTooNewForSoftware (-201139) -#define -DAQmxErrorTaskCannotRestartFirstSampNotAvailToGenerate (-201138) -#define -DAQmxErrorOnlyUseStartTrigSrcPrptyWithDevDataLines (-201137) -#define -DAQmxErrorOnlyUsePauseTrigSrcPrptyWithDevDataLines (-201136) -#define -DAQmxErrorOnlyUseRefTrigSrcPrptyWithDevDataLines (-201135) -#define -DAQmxErrorPauseTrigDigPatternSizeDoesNotMatchSrcSize (-201134) -#define -DAQmxErrorLineConflictCDAQ (-201133) -#define -DAQmxErrorCannotWriteBeyondFinalFiniteSample (-201132) -#define -DAQmxErrorRefAndStartTriggerSrcCantBeSame (-201131) -#define -DAQmxErrorMemMappingIncompatibleWithPhysChansInTask (-201130) -#define -DAQmxErrorOutputDriveTypeMemMappingConflict (-201129) -#define -DAQmxErrorCASchematiceviceIndexInvalid (-201128) -#define -DAQmxErrorRatiometricDevicesMustUseExcitationForScaling (-201127) -#define -DAQmxErrorPropertyRequiresPerDeviceCfg (-201126) -#define -DAQmxErrorAICouplingAndAIInputSourceConflict (-201125) -#define -DAQmxErrorOnlyOneTaskCanPerformDOMemoryMappingAtATime (-201124) -#define -DAQmxErrorTooManyChansForAnalogRefTrigCDAQ (-201123) -#define -DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingType (-201122) -#define -DAQmxErrorCPUNotSupportedRequireSSE (-201121) -#define -DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingResponseMode (-201120) -#define -DAQmxErrorConflictingNextWriteIsLastAndRegenModeProperties (-201119) -#define -DAQmxErrorMStudioOperationDoesNotSupportDeviceContext (-201118) +#define DAQmxErrorEEPROMTooNewForSoftware (-201141) +#define DAQmxErrorSoftwareTooNewForHardware (-201140) +#define DAQmxErrorHardwareTooNewForSoftware (-201139) +#define DAQmxErrorTaskCannotRestartFirstSampNotAvailToGenerate (-201138) +#define DAQmxErrorOnlyUseStartTrigSrcPrptyWithDevDataLines (-201137) +#define DAQmxErrorOnlyUsePauseTrigSrcPrptyWithDevDataLines (-201136) +#define DAQmxErrorOnlyUseRefTrigSrcPrptyWithDevDataLines (-201135) +#define DAQmxErrorPauseTrigDigPatternSizeDoesNotMatchSrcSize (-201134) +#define DAQmxErrorLineConflictCDAQ (-201133) +#define DAQmxErrorCannotWriteBeyondFinalFiniteSample (-201132) +#define DAQmxErrorRefAndStartTriggerSrcCantBeSame (-201131) +#define DAQmxErrorMemMappingIncompatibleWithPhysChansInTask (-201130) +#define DAQmxErrorOutputDriveTypeMemMappingConflict (-201129) +#define DAQmxErrorCASchematiceviceIndexInvalid (-201128) +#define DAQmxErrorRatiometricDevicesMustUseExcitationForScaling (-201127) +#define DAQmxErrorPropertyRequiresPerDeviceCfg (-201126) +#define DAQmxErrorAICouplingAndAIInputSourceConflict (-201125) +#define DAQmxErrorOnlyOneTaskCanPerformDOMemoryMappingAtATime (-201124) +#define DAQmxErrorTooManyChansForAnalogRefTrigCDAQ (-201123) +#define DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingType (-201122) +#define DAQmxErrorCPUNotSupportedRequireSSE (-201121) +#define DAQmxErrorSpecdPropertyValueIsIncompatibleWithSampleTimingResponseMode (-201120) +#define DAQmxErrorConflictingNextWriteIsLastAndRegenModeProperties (-201119) +#define DAQmxErrorMStudioOperationDoesNotSupportDeviceContext (-201118) #define DAQmxErrorPropertyValueInChannelExpansionContextInvalid (-201117) -#define -DAQmxErrorHWTimedNonBufferedAONotSupported (-201116) -#define -DAQmxErrorWaveformLengthNotMultOfQuantum (-201115) -#define -DAQmxErrorDSAExpansionMixedBoardsWrongOrderInPXIChassis (-201114) -#define -DAQmxErrorPowerLevelTooLowForOOK (-201113) -#define -DAQmxErrorDeviceComponentTestFailure (-201112) -#define -DAQmxErrorUserDefinedWfmWithOOKUnsupported (-201111) -#define -DAQmxErrorInvalidDigitalModulationUserDefinedWaveform (-201110) -#define -DAQmxErrorBothRefInAndRefOutEnabled (-201109) -#define -DAQmxErrorBothAnalogAndDigitalModulationEnabled (-201108) -#define -DAQmxErrorBufferedOpsNotSupportedInSpecdSlotForCDAQ (-201107) -#define -DAQmxErrorPhysChanNotSupportedInSpecdSlotForCDAQ (-201106) -#define -DAQmxErrorResourceReservedWithConflictingSettings (-201105) -#define -DAQmxErrorInconsistentAnalogTrigSettingsCDAQ (-201104) -#define -DAQmxErrorTooManyChansForAnalogPauseTrigCDAQ (-201103) -#define -DAQmxErrorAnalogTrigNotFirstInScanListCDAQ (-201102) -#define -DAQmxErrorTooManyChansGivenTimingType (-201101) -#define -DAQmxErrorSampClkTimebaseDivWithExtSampClk (-201100) -#define -DAQmxErrorCantSaveTaskWithPerDeviceTimingProperties (-201099) -#define -DAQmxErrorConflictingAutoZeroMode (-201098) -#define -DAQmxErrorSampClkRateNotSupportedWithEAREnabled (-201097) -#define -DAQmxErrorSampClkTimebaseRateNotSpecd (-201096) -#define -DAQmxErrorSessionCorruptedByDLLReload (-201095) -#define -DAQmxErrorActiveDevNotSupportedWithChanExpansion (-201094) -#define -DAQmxErrorSampClkRateInvalid (-201093) +#define DAQmxErrorHWTimedNonBufferedAONotSupported (-201116) +#define DAQmxErrorWaveformLengthNotMultOfQuantum (-201115) +#define DAQmxErrorDSAExpansionMixedBoardsWrongOrderInPXIChassis (-201114) +#define DAQmxErrorPowerLevelTooLowForOOK (-201113) +#define DAQmxErrorDeviceComponentTestFailure (-201112) +#define DAQmxErrorUserDefinedWfmWithOOKUnsupported (-201111) +#define DAQmxErrorInvalidDigitalModulationUserDefinedWaveform (-201110) +#define DAQmxErrorBothRefInAndRefOutEnabled (-201109) +#define DAQmxErrorBothAnalogAndDigitalModulationEnabled (-201108) +#define DAQmxErrorBufferedOpsNotSupportedInSpecdSlotForCDAQ (-201107) +#define DAQmxErrorPhysChanNotSupportedInSpecdSlotForCDAQ (-201106) +#define DAQmxErrorResourceReservedWithConflictingSettings (-201105) +#define DAQmxErrorInconsistentAnalogTrigSettingsCDAQ (-201104) +#define DAQmxErrorTooManyChansForAnalogPauseTrigCDAQ (-201103) +#define DAQmxErrorAnalogTrigNotFirstInScanListCDAQ (-201102) +#define DAQmxErrorTooManyChansGivenTimingType (-201101) +#define DAQmxErrorSampClkTimebaseDivWithExtSampClk (-201100) +#define DAQmxErrorCantSaveTaskWithPerDeviceTimingProperties (-201099) +#define DAQmxErrorConflictingAutoZeroMode (-201098) +#define DAQmxErrorSampClkRateNotSupportedWithEAREnabled (-201097) +#define DAQmxErrorSampClkTimebaseRateNotSpecd (-201096) +#define DAQmxErrorSessionCorruptedByDLLReload (-201095) +#define DAQmxErrorActiveDevNotSupportedWithChanExpansion (-201094) +#define DAQmxErrorSampClkRateInvalid (-201093) #define DAQmxErrorExtSyncPulseSrcCannotBeExported (-201092) -#define -DAQmxErrorSyncPulseMinDelayToStartNeededForExtSyncPulseSrc (-201091) -#define -DAQmxErrorSyncPulseSrcInvalid (-201090) -#define -DAQmxErrorSampClkTimebaseRateInvalid (-201089) -#define -DAQmxErrorSampClkTimebaseSrcInvalid (-201088) -#define -DAQmxErrorSampClkRateMustBeSpecd (-201087) -#define -DAQmxErrorInvalidAttributeName (-201086) -#define -DAQmxErrorCJCChanNameMustBeSetWhenCJCSrcIsScannableChan (-201085) -#define -DAQmxErrorHiddenChanMissingInChansPropertyInCfgFile (-201084) -#define -DAQmxErrorChanNamesNotSpecdInCfgFile (-201083) -#define -DAQmxErrorDuplicateHiddenChanNamesInCfgFile (-201082) -#define -DAQmxErrorDuplicateChanNameInCfgFile (-201081) -#define -DAQmxErrorInvalidSCCModuleForSlotSpecd (-201080) -#define -DAQmxErrorInvalidSCCSlotNumberSpecd (-201079) -#define -DAQmxErrorInvalidSectionIdentifier (-201078) -#define -DAQmxErrorInvalidSectionName (-201077) -#define -DAQmxErrorDAQmxVersionNotSupported (-201076) -#define -DAQmxErrorSWObjectsFoundInFile (-201075) -#define -DAQmxErrorHWObjectsFoundInFile (-201074) -#define -DAQmxErrorLocalChannelSpecdWithNoParentTask (-201073) -#define -DAQmxErrorTaskReferencesMissingLocalChannel (-201072) -#define -DAQmxErrorTaskReferencesLocalChannelFromOtherTask (-201071) -#define -DAQmxErrorTaskMissingChannelProperty (-201070) -#define -DAQmxErrorInvalidLocalChanName (-201069) -#define -DAQmxErrorInvalidEscapeCharacterInString (-201068) +#define DAQmxErrorSyncPulseMinDelayToStartNeededForExtSyncPulseSrc (-201091) +#define DAQmxErrorSyncPulseSrcInvalid (-201090) +#define DAQmxErrorSampClkTimebaseRateInvalid (-201089) +#define DAQmxErrorSampClkTimebaseSrcInvalid (-201088) +#define DAQmxErrorSampClkRateMustBeSpecd (-201087) +#define DAQmxErrorInvalidAttributeName (-201086) +#define DAQmxErrorCJCChanNameMustBeSetWhenCJCSrcIsScannableChan (-201085) +#define DAQmxErrorHiddenChanMissingInChansPropertyInCfgFile (-201084) +#define DAQmxErrorChanNamesNotSpecdInCfgFile (-201083) +#define DAQmxErrorDuplicateHiddenChanNamesInCfgFile (-201082) +#define DAQmxErrorDuplicateChanNameInCfgFile (-201081) +#define DAQmxErrorInvalidSCCModuleForSlotSpecd (-201080) +#define DAQmxErrorInvalidSCCSlotNumberSpecd (-201079) +#define DAQmxErrorInvalidSectionIdentifier (-201078) +#define DAQmxErrorInvalidSectionName (-201077) +#define DAQmxErrorDAQmxVersionNotSupported (-201076) +#define DAQmxErrorSWObjectsFoundInFile (-201075) +#define DAQmxErrorHWObjectsFoundInFile (-201074) +#define DAQmxErrorLocalChannelSpecdWithNoParentTask (-201073) +#define DAQmxErrorTaskReferencesMissingLocalChannel (-201072) +#define DAQmxErrorTaskReferencesLocalChannelFromOtherTask (-201071) +#define DAQmxErrorTaskMissingChannelProperty (-201070) +#define DAQmxErrorInvalidLocalChanName (-201069) +#define DAQmxErrorInvalidEscapeCharacterInString (-201068) #define DAQmxErrorInvalidTableIdentifier (-201067) -#define -DAQmxErrorValueFoundInInvalidColumn (-201066) -#define -DAQmxErrorMissingStartOfTable (-201065) -#define -DAQmxErrorFileMissingRequiredDAQmxHeader (-201064) -#define -DAQmxErrorDeviceIDDoesNotMatch (-201063) -#define -DAQmxErrorBufferedOperationsNotSupportedOnSelectedLines (-201062) -#define -DAQmxErrorPropertyConflictsWithScale (-201061) -#define -DAQmxErrorInvalidINIFileSyntax (-201060) -#define -DAQmxErrorDeviceInfoFailedPXIChassisNotIdentified (-201059) -#define -DAQmxErrorInvalidHWProductNumber (-201058) -#define -DAQmxErrorInvalidHWProductType (-201057) -#define -DAQmxErrorInvalidNumericFormatSpecd (-201056) -#define -DAQmxErrorDuplicatePropertyInObject (-201055) -#define -DAQmxErrorInvalidEnumValueSpecd (-201054) -#define -DAQmxErrorTEDSSensorPhysicalChannelConflict (-201053) -#define -DAQmxErrorTooManyPhysicalChansForTEDSInterfaceSpecd (-201052) -#define -DAQmxErrorIncapableTEDSInterfaceControllingDeviceSpecd (-201051) -#define -DAQmxErrorSCCCarrierSpecdIsMissing (-201050) -#define -DAQmxErrorIncapableSCCDigitizingDeviceSpecd (-201049) -#define -DAQmxErrorAccessorySettingNotApplicable (-201048) -#define -DAQmxErrorDeviceAndConnectorSpecdAlreadyOccupied (-201047) -#define -DAQmxErrorIllegalAccessoryTypeForDeviceSpecd (-201046) -#define -DAQmxErrorInvalidDeviceConnectorNumberSpecd (-201045) -#define -DAQmxErrorInvalidAccessoryName (-201044) -#define -DAQmxErrorMoreThanOneMatchForSpecdDevice (-201043) +#define DAQmxErrorValueFoundInInvalidColumn (-201066) +#define DAQmxErrorMissingStartOfTable (-201065) +#define DAQmxErrorFileMissingRequiredDAQmxHeader (-201064) +#define DAQmxErrorDeviceIDDoesNotMatch (-201063) +#define DAQmxErrorBufferedOperationsNotSupportedOnSelectedLines (-201062) +#define DAQmxErrorPropertyConflictsWithScale (-201061) +#define DAQmxErrorInvalidINIFileSyntax (-201060) +#define DAQmxErrorDeviceInfoFailedPXIChassisNotIdentified (-201059) +#define DAQmxErrorInvalidHWProductNumber (-201058) +#define DAQmxErrorInvalidHWProductType (-201057) +#define DAQmxErrorInvalidNumericFormatSpecd (-201056) +#define DAQmxErrorDuplicatePropertyInObject (-201055) +#define DAQmxErrorInvalidEnumValueSpecd (-201054) +#define DAQmxErrorTEDSSensorPhysicalChannelConflict (-201053) +#define DAQmxErrorTooManyPhysicalChansForTEDSInterfaceSpecd (-201052) +#define DAQmxErrorIncapableTEDSInterfaceControllingDeviceSpecd (-201051) +#define DAQmxErrorSCCCarrierSpecdIsMissing (-201050) +#define DAQmxErrorIncapableSCCDigitizingDeviceSpecd (-201049) +#define DAQmxErrorAccessorySettingNotApplicable (-201048) +#define DAQmxErrorDeviceAndConnectorSpecdAlreadyOccupied (-201047) +#define DAQmxErrorIllegalAccessoryTypeForDeviceSpecd (-201046) +#define DAQmxErrorInvalidDeviceConnectorNumberSpecd (-201045) +#define DAQmxErrorInvalidAccessoryName (-201044) +#define DAQmxErrorMoreThanOneMatchForSpecdDevice (-201043) #define DAQmxErrorNoMatchForSpecdDevice (-201042) -#define -DAQmxErrorProductTypeAndProductNumberConflict (-201041) -#define -DAQmxErrorExtraPropertyDetectedInSpecdObject (-201040) -#define -DAQmxErrorRequiredPropertyMissing (-201039) -#define -DAQmxErrorCantSetAuthorForLocalChan (-201038) -#define -DAQmxErrorInvalidTimeValue (-201037) -#define -DAQmxErrorInvalidTimeFormat (-201036) -#define -DAQmxErrorDigDevChansSpecdInModeOtherThanParallel (-201035) -#define -DAQmxErrorCascadeDigitizationModeNotSupported (-201034) -#define -DAQmxErrorSpecdSlotAlreadyOccupied (-201033) -#define -DAQmxErrorInvalidSCXISlotNumberSpecd (-201032) -#define -DAQmxErrorAddressAlreadyInUse (-201031) -#define -DAQmxErrorSpecdDeviceDoesNotSupportRTSI (-201030) -#define -DAQmxErrorSpecdDeviceIsAlreadyOnRTSIBus (-201029) -#define -DAQmxErrorIdentifierInUse (-201028) -#define -DAQmxErrorWaitForNextSampleClockOrReadDetected3OrMoreMissedSampClks (-201027) -#define -DAQmxErrorHWTimedAndDataXferPIO (-201026) -#define -DAQmxErrorNonBufferedAndHWTimed (-201025) -#define -DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriodPolled (-201024) -#define -DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod2 (-201023) -#define -DAQmxErrorCOCannotKeepUpInHWTimedSinglePointPolled (-201022) -#define -DAQmxErrorWriteRecoveryCannotKeepUpInHWTimedSinglePoint (-201021) -#define -DAQmxErrorNoChangeDetectionOnSelectedLineForDevice (-201020) -#define -DAQmxErrorSMIOPauseTriggersNotSupportedWithChannelExpansion (-201019) -#define -DAQmxErrorClockMasterForExternalClockNotLongestPipeline (-201018) +#define DAQmxErrorProductTypeAndProductNumberConflict (-201041) +#define DAQmxErrorExtraPropertyDetectedInSpecdObject (-201040) +#define DAQmxErrorRequiredPropertyMissing (-201039) +#define DAQmxErrorCantSetAuthorForLocalChan (-201038) +#define DAQmxErrorInvalidTimeValue (-201037) +#define DAQmxErrorInvalidTimeFormat (-201036) +#define DAQmxErrorDigDevChansSpecdInModeOtherThanParallel (-201035) +#define DAQmxErrorCascadeDigitizationModeNotSupported (-201034) +#define DAQmxErrorSpecdSlotAlreadyOccupied (-201033) +#define DAQmxErrorInvalidSCXISlotNumberSpecd (-201032) +#define DAQmxErrorAddressAlreadyInUse (-201031) +#define DAQmxErrorSpecdDeviceDoesNotSupportRTSI (-201030) +#define DAQmxErrorSpecdDeviceIsAlreadyOnRTSIBus (-201029) +#define DAQmxErrorIdentifierInUse (-201028) +#define DAQmxErrorWaitForNextSampleClockOrReadDetected3OrMoreMissedSampClks (-201027) +#define DAQmxErrorHWTimedAndDataXferPIO (-201026) +#define DAQmxErrorNonBufferedAndHWTimed (-201025) +#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriodPolled (-201024) +#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod2 (-201023) +#define DAQmxErrorCOCannotKeepUpInHWTimedSinglePointPolled (-201022) +#define DAQmxErrorWriteRecoveryCannotKeepUpInHWTimedSinglePoint (-201021) +#define DAQmxErrorNoChangeDetectionOnSelectedLineForDevice (-201020) +#define DAQmxErrorSMIOPauseTriggersNotSupportedWithChannelExpansion (-201019) +#define DAQmxErrorClockMasterForExternalClockNotLongestPipeline (-201018) #define DAQmxErrorUnsupportedUnicodeByteOrderMarker (-201017) -#define -DAQmxErrorTooManyInstructionsInLoopInScript (-201016) -#define -DAQmxErrorPLLNotLocked (-201015) -#define -DAQmxErrorIfElseBlockNotAllowedInFiniteRepeatLoopInScript (-201014) -#define -DAQmxErrorIfElseBlockNotAllowedInConditionalRepeatLoopInScript (-201013) -#define -DAQmxErrorClearIsLastInstructionInIfElseBlockInScript (-201012) -#define -DAQmxErrorInvalidWaitDurationBeforeIfElseBlockInScript (-201011) -#define -DAQmxErrorMarkerPosInvalidBeforeIfElseBlockInScript (-201010) -#define -DAQmxErrorInvalidSubsetLengthBeforeIfElseBlockInScript (-201009) -#define -DAQmxErrorInvalidWaveformLengthBeforeIfElseBlockInScript (-201008) -#define -DAQmxErrorGenerateOrFiniteWaitInstructionExpectedBeforeIfElseBlockInScript (-201007) -#define -DAQmxErrorCalPasswordNotSupported (-201006) -#define -DAQmxErrorSetupCalNeededBeforeAdjustCal (-201005) -#define -DAQmxErrorMultipleChansNotSupportedDuringCalSetup (-201004) -#define -DAQmxErrorDevCannotBeAccessed (-201003) -#define -DAQmxErrorSampClkRateDoesntMatchSampClkSrc (-201002) -#define -DAQmxErrorSampClkRateNotSupportedWithEARDisabled (-201001) -#define -DAQmxErrorLabVIEWVersionDoesntSupportDAQmxEvents (-201000) -#define -DAQmxErrorCOReadyForNewValNotSupportedWithOnDemand (-200999) -#define -DAQmxErrorCIHWTimedSinglePointNotSupportedForMeasType (-200998) -#define -DAQmxErrorOnDemandNotSupportedWithHWTimedSinglePoint (-200997) -#define -DAQmxErrorHWTimedSinglePointAndDataXferNotProgIO (-200996) -#define -DAQmxErrorMemMapAndHWTimedSinglePoint (-200995) -#define -DAQmxErrorCannotSetPropertyWhenHWTimedSinglePointTaskIsRunning (-200994) -#define -DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod (-200993) +#define DAQmxErrorTooManyInstructionsInLoopInScript (-201016) +#define DAQmxErrorPLLNotLocked (-201015) +#define DAQmxErrorIfElseBlockNotAllowedInFiniteRepeatLoopInScript (-201014) +#define DAQmxErrorIfElseBlockNotAllowedInConditionalRepeatLoopInScript (-201013) +#define DAQmxErrorClearIsLastInstructionInIfElseBlockInScript (-201012) +#define DAQmxErrorInvalidWaitDurationBeforeIfElseBlockInScript (-201011) +#define DAQmxErrorMarkerPosInvalidBeforeIfElseBlockInScript (-201010) +#define DAQmxErrorInvalidSubsetLengthBeforeIfElseBlockInScript (-201009) +#define DAQmxErrorInvalidWaveformLengthBeforeIfElseBlockInScript (-201008) +#define DAQmxErrorGenerateOrFiniteWaitInstructionExpectedBeforeIfElseBlockInScript (-201007) +#define DAQmxErrorCalPasswordNotSupported (-201006) +#define DAQmxErrorSetupCalNeededBeforeAdjustCal (-201005) +#define DAQmxErrorMultipleChansNotSupportedDuringCalSetup (-201004) +#define DAQmxErrorDevCannotBeAccessed (-201003) +#define DAQmxErrorSampClkRateDoesntMatchSampClkSrc (-201002) +#define DAQmxErrorSampClkRateNotSupportedWithEARDisabled (-201001) +#define DAQmxErrorLabVIEWVersionDoesntSupportDAQmxEvents (-201000) +#define DAQmxErrorCOReadyForNewValNotSupportedWithOnDemand (-200999) +#define DAQmxErrorCIHWTimedSinglePointNotSupportedForMeasType (-200998) +#define DAQmxErrorOnDemandNotSupportedWithHWTimedSinglePoint (-200997) +#define DAQmxErrorHWTimedSinglePointAndDataXferNotProgIO (-200996) +#define DAQmxErrorMemMapAndHWTimedSinglePoint (-200995) +#define DAQmxErrorCannotSetPropertyWhenHWTimedSinglePointTaskIsRunning (-200994) +#define DAQmxErrorCTROutSampClkPeriodShorterThanGenPulseTrainPeriod (-200993) #define DAQmxErrorTooManyEventsGenerated (-200992) -#define -DAQmxErrorMStudioCppRemoveEventsBeforeStop (-200991) -#define -DAQmxErrorCAPICannotRegisterSyncEventsFromMultipleThreads (-200990) -#define -DAQmxErrorReadWaitNextSampClkWaitMismatchTwo (-200989) -#define -DAQmxErrorReadWaitNextSampClkWaitMismatchOne (-200988) -#define -DAQmxErrorDAQmxSignalEventTypeNotSupportedByChanTypesOrDevicesInTask (-200987) -#define -DAQmxErrorCannotUnregisterDAQmxSoftwareEventWhileTaskIsRunning (-200986) -#define -DAQmxErrorAutoStartWriteNotAllowedEventRegistered (-200985) -#define -DAQmxErrorAutoStartReadNotAllowedEventRegistered (-200984) -#define -DAQmxErrorCannotGetPropertyWhenTaskNotReservedCommittedOrRunning (-200983) -#define -DAQmxErrorSignalEventsNotSupportedByDevice (-200982) -#define -DAQmxErrorEveryNSamplesAcqIntoBufferEventNotSupportedByDevice (-200981) -#define -DAQmxErrorEveryNSampsTransferredFromBufferEventNotSupportedByDevice (-200980) -#define -DAQmxErrorCAPISyncEventsTaskStateChangeNotAllowedFromDifferentThread (-200979) -#define -DAQmxErrorDAQmxSWEventsWithDifferentCallMechanisms (-200978) -#define -DAQmxErrorCantSaveChanWithPolyCalScaleAndAllowInteractiveEdit (-200977) -#define -DAQmxErrorChanDoesNotSupportCJC (-200976) -#define -DAQmxErrorCOReadyForNewValNotSupportedWithHWTimedSinglePoint (-200975) -#define -DAQmxErrorDACAllowConnToGndNotSupportedByDevWhenRefSrcExt (-200974) -#define -DAQmxErrorCantGetPropertyTaskNotRunning (-200973) -#define -DAQmxErrorCantSetPropertyTaskNotRunning (-200972) -#define -DAQmxErrorCantSetPropertyTaskNotRunningCommitted (-200971) -#define -DAQmxErrorAIEveryNSampsEventIntervalNotMultipleOf2 (-200970) -#define -DAQmxErrorInvalidTEDSPhysChanNotAI (-200969) -#define -DAQmxErrorCAPICannotPerformTaskOperationInAsyncCallback (-200968) +#define DAQmxErrorMStudioCppRemoveEventsBeforeStop (-200991) +#define DAQmxErrorCAPICannotRegisterSyncEventsFromMultipleThreads (-200990) +#define DAQmxErrorReadWaitNextSampClkWaitMismatchTwo (-200989) +#define DAQmxErrorReadWaitNextSampClkWaitMismatchOne (-200988) +#define DAQmxErrorDAQmxSignalEventTypeNotSupportedByChanTypesOrDevicesInTask (-200987) +#define DAQmxErrorCannotUnregisterDAQmxSoftwareEventWhileTaskIsRunning (-200986) +#define DAQmxErrorAutoStartWriteNotAllowedEventRegistered (-200985) +#define DAQmxErrorAutoStartReadNotAllowedEventRegistered (-200984) +#define DAQmxErrorCannotGetPropertyWhenTaskNotReservedCommittedOrRunning (-200983) +#define DAQmxErrorSignalEventsNotSupportedByDevice (-200982) +#define DAQmxErrorEveryNSamplesAcqIntoBufferEventNotSupportedByDevice (-200981) +#define DAQmxErrorEveryNSampsTransferredFromBufferEventNotSupportedByDevice (-200980) +#define DAQmxErrorCAPISyncEventsTaskStateChangeNotAllowedFromDifferentThread (-200979) +#define DAQmxErrorDAQmxSWEventsWithDifferentCallMechanisms (-200978) +#define DAQmxErrorCantSaveChanWithPolyCalScaleAndAllowInteractiveEdit (-200977) +#define DAQmxErrorChanDoesNotSupportCJC (-200976) +#define DAQmxErrorCOReadyForNewValNotSupportedWithHWTimedSinglePoint (-200975) +#define DAQmxErrorDACAllowConnToGndNotSupportedByDevWhenRefSrcExt (-200974) +#define DAQmxErrorCantGetPropertyTaskNotRunning (-200973) +#define DAQmxErrorCantSetPropertyTaskNotRunning (-200972) +#define DAQmxErrorCantSetPropertyTaskNotRunningCommitted (-200971) +#define DAQmxErrorAIEveryNSampsEventIntervalNotMultipleOf2 (-200970) +#define DAQmxErrorInvalidTEDSPhysChanNotAI (-200969) +#define DAQmxErrorCAPICannotPerformTaskOperationInAsyncCallback (-200968) #define DAQmxErrorEveryNSampsTransferredFromBufferEventAlreadyRegistered (-200967) -#define -DAQmxErrorEveryNSampsAcqIntoBufferEventAlreadyRegistered (-200966) -#define -DAQmxErrorEveryNSampsTransferredFromBufferNotForInput (-200965) -#define -DAQmxErrorEveryNSampsAcqIntoBufferNotForOutput (-200964) -#define -DAQmxErrorAOSampTimingTypeDifferentIn2Tasks (-200963) -#define -DAQmxErrorCouldNotDownloadFirmwareHWDamaged (-200962) -#define -DAQmxErrorCouldNotDownloadFirmwareFileMissingOrDamaged (-200961) -#define -DAQmxErrorCannotRegisterDAQmxSoftwareEventWhileTaskIsRunning (-200960) -#define -DAQmxErrorDifferentRawDataCompression (-200959) -#define -DAQmxErrorConfiguredTEDSInterfaceDevNotDetected (-200958) -#define -DAQmxErrorCompressedSampSizeExceedsResolution (-200957) -#define -DAQmxErrorChanDoesNotSupportCompression (-200956) -#define -DAQmxErrorDifferentRawDataFormats (-200955) -#define -DAQmxErrorSampClkOutputTermIncludesStartTrigSrc (-200954) -#define -DAQmxErrorStartTrigSrcEqualToSampClkSrc (-200953) -#define -DAQmxErrorEventOutputTermIncludesTrigSrc (-200952) -#define -DAQmxErrorCOMultipleWritesBetweenSampClks (-200951) -#define -DAQmxErrorDoneEventAlreadyRegistered (-200950) -#define -DAQmxErrorSignalEventAlreadyRegistered (-200949) -#define -DAQmxErrorCannotHaveTimedLoopAndDAQmxSignalEventsInSameTask (-200948) -#define -DAQmxErrorNeedLabVIEW711PatchToUseDAQmxEvents (-200947) -#define -DAQmxErrorStartFailedDueToWriteFailure (-200946) -#define -DAQmxErrorDataXferCustomThresholdNotDMAXferMethodSpecifiedForDev (-200945) -#define -DAQmxErrorDataXferRequestConditionNotSpecifiedForCustomThreshold (-200944) -#define -DAQmxErrorDataXferCustomThresholdNotSpecified (-200943) +#define DAQmxErrorEveryNSampsAcqIntoBufferEventAlreadyRegistered (-200966) +#define DAQmxErrorEveryNSampsTransferredFromBufferNotForInput (-200965) +#define DAQmxErrorEveryNSampsAcqIntoBufferNotForOutput (-200964) +#define DAQmxErrorAOSampTimingTypeDifferentIn2Tasks (-200963) +#define DAQmxErrorCouldNotDownloadFirmwareHWDamaged (-200962) +#define DAQmxErrorCouldNotDownloadFirmwareFileMissingOrDamaged (-200961) +#define DAQmxErrorCannotRegisterDAQmxSoftwareEventWhileTaskIsRunning (-200960) +#define DAQmxErrorDifferentRawDataCompression (-200959) +#define DAQmxErrorConfiguredTEDSInterfaceDevNotDetected (-200958) +#define DAQmxErrorCompressedSampSizeExceedsResolution (-200957) +#define DAQmxErrorChanDoesNotSupportCompression (-200956) +#define DAQmxErrorDifferentRawDataFormats (-200955) +#define DAQmxErrorSampClkOutputTermIncludesStartTrigSrc (-200954) +#define DAQmxErrorStartTrigSrcEqualToSampClkSrc (-200953) +#define DAQmxErrorEventOutputTermIncludesTrigSrc (-200952) +#define DAQmxErrorCOMultipleWritesBetweenSampClks (-200951) +#define DAQmxErrorDoneEventAlreadyRegistered (-200950) +#define DAQmxErrorSignalEventAlreadyRegistered (-200949) +#define DAQmxErrorCannotHaveTimedLoopAndDAQmxSignalEventsInSameTask (-200948) +#define DAQmxErrorNeedLabVIEW711PatchToUseDAQmxEvents (-200947) +#define DAQmxErrorStartFailedDueToWriteFailure (-200946) +#define DAQmxErrorDataXferCustomThresholdNotDMAXferMethodSpecifiedForDev (-200945) +#define DAQmxErrorDataXferRequestConditionNotSpecifiedForCustomThreshold (-200944) +#define DAQmxErrorDataXferCustomThresholdNotSpecified (-200943) #define DAQmxErrorCAPISyncCallbackNotSupportedOnThisPlatform (-200942) -#define -DAQmxErrorCalChanReversePolyCoefNotSpecd (-200941) -#define -DAQmxErrorCalChanForwardPolyCoefNotSpecd (-200940) -#define -DAQmxErrorChanCalRepeatedNumberInPreScaledVals (-200939) -#define -DAQmxErrorChanCalTableNumScaledNotEqualNumPrescaledVals (-200938) -#define -DAQmxErrorChanCalTableScaledValsNotSpecd (-200937) -#define -DAQmxErrorChanCalTablePreScaledValsNotSpecd (-200936) -#define -DAQmxErrorChanCalScaleTypeNotSet (-200935) -#define -DAQmxErrorChanCalExpired (-200934) -#define -DAQmxErrorChanCalExpirationDateNotSet (-200933) -#define -DAQmxError3OutputPortCombinationGivenSampTimingType653x (-200932) -#define -DAQmxError3InputPortCombinationGivenSampTimingType653x (-200931) -#define -DAQmxError2OutputPortCombinationGivenSampTimingType653x (-200930) -#define -DAQmxError2InputPortCombinationGivenSampTimingType653x (-200929) -#define -DAQmxErrorPatternMatcherMayBeUsedByOneTrigOnly (-200928) -#define -DAQmxErrorNoChansSpecdForPatternSource (-200927) -#define -DAQmxErrorChangeDetectionChanNotInTask (-200926) -#define -DAQmxErrorChangeDetectionChanNotTristated (-200925) -#define -DAQmxErrorWaitModeValueNotSupportedNonBuffered (-200924) -#define -DAQmxErrorWaitModePropertyNotSupportedNonBuffered (-200923) -#define -DAQmxErrorCantSavePerLineConfigDigChanSoInteractiveEditsAllowed (-200922) -#define -DAQmxErrorCantSaveNonPortMultiLineDigChanSoInteractiveEditsAllowed (-200921) -#define -DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalNoIrqOnDev (-200920) -#define -DAQmxErrorGlobalTaskNameAlreadyChanName (-200919) -#define -DAQmxErrorGlobalChanNameAlreadyTaskName (-200918) +#define DAQmxErrorCalChanReversePolyCoefNotSpecd (-200941) +#define DAQmxErrorCalChanForwardPolyCoefNotSpecd (-200940) +#define DAQmxErrorChanCalRepeatedNumberInPreScaledVals (-200939) +#define DAQmxErrorChanCalTableNumScaledNotEqualNumPrescaledVals (-200938) +#define DAQmxErrorChanCalTableScaledValsNotSpecd (-200937) +#define DAQmxErrorChanCalTablePreScaledValsNotSpecd (-200936) +#define DAQmxErrorChanCalScaleTypeNotSet (-200935) +#define DAQmxErrorChanCalExpired (-200934) +#define DAQmxErrorChanCalExpirationDateNotSet (-200933) +#define DAQmxError3OutputPortCombinationGivenSampTimingType653x (-200932) +#define DAQmxError3InputPortCombinationGivenSampTimingType653x (-200931) +#define DAQmxError2OutputPortCombinationGivenSampTimingType653x (-200930) +#define DAQmxError2InputPortCombinationGivenSampTimingType653x (-200929) +#define DAQmxErrorPatternMatcherMayBeUsedByOneTrigOnly (-200928) +#define DAQmxErrorNoChansSpecdForPatternSource (-200927) +#define DAQmxErrorChangeDetectionChanNotInTask (-200926) +#define DAQmxErrorChangeDetectionChanNotTristated (-200925) +#define DAQmxErrorWaitModeValueNotSupportedNonBuffered (-200924) +#define DAQmxErrorWaitModePropertyNotSupportedNonBuffered (-200923) +#define DAQmxErrorCantSavePerLineConfigDigChanSoInteractiveEditsAllowed (-200922) +#define DAQmxErrorCantSaveNonPortMultiLineDigChanSoInteractiveEditsAllowed (-200921) +#define DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalNoIrqOnDev (-200920) +#define DAQmxErrorGlobalTaskNameAlreadyChanName (-200919) +#define DAQmxErrorGlobalChanNameAlreadyTaskName (-200918) #define DAQmxErrorAOEveryNSampsEventIntervalNotMultipleOf2 (-200917) -#define -DAQmxErrorSampleTimebaseDivisorNotSupportedGivenTimingType (-200916) -#define -DAQmxErrorHandshakeEventOutputTermNotSupportedGivenTimingType (-200915) -#define -DAQmxErrorChangeDetectionOutputTermNotSupportedGivenTimingType (-200914) -#define -DAQmxErrorReadyForTransferOutputTermNotSupportedGivenTimingType (-200913) -#define -DAQmxErrorRefTrigOutputTermNotSupportedGivenTimingType (-200912) -#define -DAQmxErrorStartTrigOutputTermNotSupportedGivenTimingType (-200911) -#define -DAQmxErrorSampClockOutputTermNotSupportedGivenTimingType (-200910) -#define -DAQmxError20MhzTimebaseNotSupportedGivenTimingType (-200909) -#define -DAQmxErrorSampClockSourceNotSupportedGivenTimingType (-200908) -#define -DAQmxErrorRefTrigTypeNotSupportedGivenTimingType (-200907) -#define -DAQmxErrorPauseTrigTypeNotSupportedGivenTimingType (-200906) -#define -DAQmxErrorHandshakeTrigTypeNotSupportedGivenTimingType (-200905) -#define -DAQmxErrorStartTrigTypeNotSupportedGivenTimingType (-200904) -#define -DAQmxErrorRefClkSrcNotSupported (-200903) -#define -DAQmxErrorDataVoltageLowAndHighIncompatible (-200902) -#define -DAQmxErrorInvalidCharInDigPatternString (-200901) -#define -DAQmxErrorCantUsePort3AloneGivenSampTimingTypeOn653x (-200900) -#define -DAQmxErrorCantUsePort1AloneGivenSampTimingTypeOn653x (-200899) -#define -DAQmxErrorPartialUseOfPhysicalLinesWithinPortNotSupported653x (-200898) -#define -DAQmxErrorPhysicalChanNotSupportedGivenSampTimingType653x (-200897) -#define -DAQmxErrorCanExportOnlyDigEdgeTrigs (-200896) -#define -DAQmxErrorRefTrigDigPatternSizeDoesNotMatchSourceSize (-200895) -#define -DAQmxErrorStartTrigDigPatternSizeDoesNotMatchSourceSize (-200894) -#define -DAQmxErrorChangeDetectionRisingAndFallingEdgeChanDontMatch (-200893) +#define DAQmxErrorSampleTimebaseDivisorNotSupportedGivenTimingType (-200916) +#define DAQmxErrorHandshakeEventOutputTermNotSupportedGivenTimingType (-200915) +#define DAQmxErrorChangeDetectionOutputTermNotSupportedGivenTimingType (-200914) +#define DAQmxErrorReadyForTransferOutputTermNotSupportedGivenTimingType (-200913) +#define DAQmxErrorRefTrigOutputTermNotSupportedGivenTimingType (-200912) +#define DAQmxErrorStartTrigOutputTermNotSupportedGivenTimingType (-200911) +#define DAQmxErrorSampClockOutputTermNotSupportedGivenTimingType (-200910) +#define DAQmxError20MhzTimebaseNotSupportedGivenTimingType (-200909) +#define DAQmxErrorSampClockSourceNotSupportedGivenTimingType (-200908) +#define DAQmxErrorRefTrigTypeNotSupportedGivenTimingType (-200907) +#define DAQmxErrorPauseTrigTypeNotSupportedGivenTimingType (-200906) +#define DAQmxErrorHandshakeTrigTypeNotSupportedGivenTimingType (-200905) +#define DAQmxErrorStartTrigTypeNotSupportedGivenTimingType (-200904) +#define DAQmxErrorRefClkSrcNotSupported (-200903) +#define DAQmxErrorDataVoltageLowAndHighIncompatible (-200902) +#define DAQmxErrorInvalidCharInDigPatternString (-200901) +#define DAQmxErrorCantUsePort3AloneGivenSampTimingTypeOn653x (-200900) +#define DAQmxErrorCantUsePort1AloneGivenSampTimingTypeOn653x (-200899) +#define DAQmxErrorPartialUseOfPhysicalLinesWithinPortNotSupported653x (-200898) +#define DAQmxErrorPhysicalChanNotSupportedGivenSampTimingType653x (-200897) +#define DAQmxErrorCanExportOnlyDigEdgeTrigs (-200896) +#define DAQmxErrorRefTrigDigPatternSizeDoesNotMatchSourceSize (-200895) +#define DAQmxErrorStartTrigDigPatternSizeDoesNotMatchSourceSize (-200894) +#define DAQmxErrorChangeDetectionRisingAndFallingEdgeChanDontMatch (-200893) #define DAQmxErrorPhysicalChansForChangeDetectionAndPatternMatch653x (-200892) -#define -DAQmxErrorCanExportOnlyOnboardSampClk (-200891) -#define -DAQmxErrorInternalSampClkNotRisingEdge (-200890) -#define -DAQmxErrorRefTrigDigPatternChanNotInTask (-200889) -#define -DAQmxErrorRefTrigDigPatternChanNotTristated (-200888) -#define -DAQmxErrorStartTrigDigPatternChanNotInTask (-200887) -#define -DAQmxErrorStartTrigDigPatternChanNotTristated (-200886) -#define -DAQmxErrorPXIStarAndClock10Sync (-200885) -#define -DAQmxErrorGlobalChanCannotBeSavedSoInteractiveEditsAllowed (-200884) -#define -DAQmxErrorTaskCannotBeSavedSoInteractiveEditsAllowed (-200883) -#define -DAQmxErrorInvalidGlobalChan (-200882) -#define -DAQmxErrorEveryNSampsEventAlreadyRegistered (-200881) -#define -DAQmxErrorEveryNSampsEventIntervalZeroNotSupported (-200880) -#define -DAQmxErrorChanSizeTooBigForU16PortWrite (-200879) -#define -DAQmxErrorChanSizeTooBigForU16PortRead (-200878) -#define -DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalWhenDMA (-200877) -#define -DAQmxErrorWriteWhenTaskNotRunningCOTicks (-200876) -#define -DAQmxErrorWriteWhenTaskNotRunningCOFreq (-200875) -#define -DAQmxErrorWriteWhenTaskNotRunningCOTime (-200874) -#define -DAQmxErrorAOMinMaxNotSupportedDACRangeTooSmall (-200873) -#define -DAQmxErrorAOMinMaxNotSupportedGivenDACRange (-200872) -#define -DAQmxErrorAOMinMaxNotSupportedGivenDACRangeAndOffsetVal (-200871) -#define -DAQmxErrorAOMinMaxNotSupportedDACOffsetValInappropriate (-200870) -#define -DAQmxErrorAOMinMaxNotSupportedGivenDACOffsetVal (-200869) -#define -DAQmxErrorAOMinMaxNotSupportedDACRefValTooSmall (-200868) +#define DAQmxErrorCanExportOnlyOnboardSampClk (-200891) +#define DAQmxErrorInternalSampClkNotRisingEdge (-200890) +#define DAQmxErrorRefTrigDigPatternChanNotInTask (-200889) +#define DAQmxErrorRefTrigDigPatternChanNotTristated (-200888) +#define DAQmxErrorStartTrigDigPatternChanNotInTask (-200887) +#define DAQmxErrorStartTrigDigPatternChanNotTristated (-200886) +#define DAQmxErrorPXIStarAndClock10Sync (-200885) +#define DAQmxErrorGlobalChanCannotBeSavedSoInteractiveEditsAllowed (-200884) +#define DAQmxErrorTaskCannotBeSavedSoInteractiveEditsAllowed (-200883) +#define DAQmxErrorInvalidGlobalChan (-200882) +#define DAQmxErrorEveryNSampsEventAlreadyRegistered (-200881) +#define DAQmxErrorEveryNSampsEventIntervalZeroNotSupported (-200880) +#define DAQmxErrorChanSizeTooBigForU16PortWrite (-200879) +#define DAQmxErrorChanSizeTooBigForU16PortRead (-200878) +#define DAQmxErrorBufferSizeNotMultipleOfEveryNSampsEventIntervalWhenDMA (-200877) +#define DAQmxErrorWriteWhenTaskNotRunningCOTicks (-200876) +#define DAQmxErrorWriteWhenTaskNotRunningCOFreq (-200875) +#define DAQmxErrorWriteWhenTaskNotRunningCOTime (-200874) +#define DAQmxErrorAOMinMaxNotSupportedDACRangeTooSmall (-200873) +#define DAQmxErrorAOMinMaxNotSupportedGivenDACRange (-200872) +#define DAQmxErrorAOMinMaxNotSupportedGivenDACRangeAndOffsetVal (-200871) +#define DAQmxErrorAOMinMaxNotSupportedDACOffsetValInappropriate (-200870) +#define DAQmxErrorAOMinMaxNotSupportedGivenDACOffsetVal (-200869) +#define DAQmxErrorAOMinMaxNotSupportedDACRefValTooSmall (-200868) #define DAQmxErrorAOMinMaxNotSupportedGivenDACRefVal (-200867) -#define -DAQmxErrorAOMinMaxNotSupportedGivenDACRefAndOffsetVal (-200866) -#define -DAQmxErrorWhenAcqCompAndNumSampsPerChanExceedsOnBrdBufSize (-200865) -#define -DAQmxErrorWhenAcqCompAndNoRefTrig (-200864) -#define -DAQmxErrorWaitForNextSampClkNotSupported (-200863) -#define -DAQmxErrorDevInUnidentifiedPXIChassis (-200862) -#define -DAQmxErrorMaxSoundPressureMicSensitivitRelatedAIPropertiesNotSupportedByDev (-200861) -#define -DAQmxErrorMaxSoundPressureAndMicSensitivityNotSupportedByDev (-200860) -#define -DAQmxErrorAOBufferSizeZeroForSampClkTimingType (-200859) -#define -DAQmxErrorAOCallWriteBeforeStartForSampClkTimingType (-200858) -#define -DAQmxErrorInvalidCalLowPassCutoffFreq (-200857) -#define -DAQmxErrorSimulationCannotBeDisabledForDevCreatedAsSimulatedDev (-200856) -#define -DAQmxErrorCannotAddNewDevsAfterTaskConfiguration (-200855) -#define -DAQmxErrorDifftSyncPulseSrcAndSampClkTimebaseSrcDevMultiDevTask (-200854) -#define -DAQmxErrorTermWithoutDevInMultiDevTask (-200853) -#define -DAQmxErrorSyncNoDevSampClkTimebaseOrSyncPulseInPXISlot2 (-200852) -#define -DAQmxErrorPhysicalChanNotOnThisConnector (-200851) -#define -DAQmxErrorNumSampsToWaitNotGreaterThanZeroInScript (-200850) -#define -DAQmxErrorNumSampsToWaitNotMultipleOfAlignmentQuantumInScript (-200849) -#define -DAQmxErrorEveryNSamplesEventNotSupportedForNonBufferedTasks (-200848) -#define -DAQmxErrorBufferedAndDataXferPIO (-200847) -#define -DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunning (-200846) -#define -DAQmxErrorNonBufferedAndDataXferInterrupts (-200845) -#define -DAQmxErrorWriteFailedMultipleCtrsWithFREQOUT (-200844) -#define -DAQmxErrorReadNotCompleteBefore3SampClkEdges (-200843) +#define DAQmxErrorAOMinMaxNotSupportedGivenDACRefAndOffsetVal (-200866) +#define DAQmxErrorWhenAcqCompAndNumSampsPerChanExceedsOnBrdBufSize (-200865) +#define DAQmxErrorWhenAcqCompAndNoRefTrig (-200864) +#define DAQmxErrorWaitForNextSampClkNotSupported (-200863) +#define DAQmxErrorDevInUnidentifiedPXIChassis (-200862) +#define DAQmxErrorMaxSoundPressureMicSensitivitRelatedAIPropertiesNotSupportedByDev (-200861) +#define DAQmxErrorMaxSoundPressureAndMicSensitivityNotSupportedByDev (-200860) +#define DAQmxErrorAOBufferSizeZeroForSampClkTimingType (-200859) +#define DAQmxErrorAOCallWriteBeforeStartForSampClkTimingType (-200858) +#define DAQmxErrorInvalidCalLowPassCutoffFreq (-200857) +#define DAQmxErrorSimulationCannotBeDisabledForDevCreatedAsSimulatedDev (-200856) +#define DAQmxErrorCannotAddNewDevsAfterTaskConfiguration (-200855) +#define DAQmxErrorDifftSyncPulseSrcAndSampClkTimebaseSrcDevMultiDevTask (-200854) +#define DAQmxErrorTermWithoutDevInMultiDevTask (-200853) +#define DAQmxErrorSyncNoDevSampClkTimebaseOrSyncPulseInPXISlot2 (-200852) +#define DAQmxErrorPhysicalChanNotOnThisConnector (-200851) +#define DAQmxErrorNumSampsToWaitNotGreaterThanZeroInScript (-200850) +#define DAQmxErrorNumSampsToWaitNotMultipleOfAlignmentQuantumInScript (-200849) +#define DAQmxErrorEveryNSamplesEventNotSupportedForNonBufferedTasks (-200848) +#define DAQmxErrorBufferedAndDataXferPIO (-200847) +#define DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunning (-200846) +#define DAQmxErrorNonBufferedAndDataXferInterrupts (-200845) +#define DAQmxErrorWriteFailedMultipleCtrsWithFREQOUT (-200844) +#define DAQmxErrorReadNotCompleteBefore3SampClkEdges (-200843) #define DAQmxErrorCtrHWTimedSinglePointAndDataXferNotProgIO (-200842) -#define -DAQmxErrorPrescalerNot1ForInputTerminal (-200841) -#define -DAQmxErrorPrescalerNot1ForTimebaseSrc (-200840) -#define -DAQmxErrorSampClkTimingTypeWhenTristateIsFalse (-200839) -#define -DAQmxErrorOutputBufferSizeNotMultOfXferSize (-200838) -#define -DAQmxErrorSampPerChanNotMultOfXferSize (-200837) -#define -DAQmxErrorWriteToTEDSFailed (-200836) -#define -DAQmxErrorSCXIDevNotUsablePowerTurnedOff (-200835) -#define -DAQmxErrorCannotReadWhenAutoStartFalseBufSizeZeroAndTaskNotRunning (-200834) -#define -DAQmxErrorCannotReadWhenAutoStartFalseHWTimedSinglePtAndTaskNotRunning (-200833) -#define -DAQmxErrorCannotReadWhenAutoStartFalseOnDemandAndTaskNotRunning (-200832) -#define -DAQmxErrorSimultaneousAOWhenNotOnDemandTiming (-200831) -#define -DAQmxErrorMemMapAndSimultaneousAO (-200830) -#define -DAQmxErrorWriteFailedMultipleCOOutputTypes (-200829) -#define -DAQmxErrorWriteToTEDSNotSupportedOnRT (-200828) -#define -DAQmxErrorVirtualTEDSDataFileError (-200827) -#define -DAQmxErrorTEDSSensorDataError (-200826) -#define -DAQmxErrorDataSizeMoreThanSizeOfEEPROMOnTEDS (-200825) -#define -DAQmxErrorPROMOnTEDSContainsBasicTEDSData (-200824) -#define -DAQmxErrorPROMOnTEDSAlreadyWritten (-200823) -#define -DAQmxErrorTEDSDoesNotContainPROM (-200822) -#define -DAQmxErrorHWTimedSinglePointNotSupportedAI (-200821) -#define -DAQmxErrorHWTimedSinglePointOddNumChansInAITask (-200820) -#define -DAQmxErrorCantUseOnlyOnBoardMemWithProgrammedIO (-200819) -#define -DAQmxErrorSwitchDevShutDownDueToHighTemp (-200818) +#define DAQmxErrorPrescalerNot1ForInputTerminal (-200841) +#define DAQmxErrorPrescalerNot1ForTimebaseSrc (-200840) +#define DAQmxErrorSampClkTimingTypeWhenTristateIsFalse (-200839) +#define DAQmxErrorOutputBufferSizeNotMultOfXferSize (-200838) +#define DAQmxErrorSampPerChanNotMultOfXferSize (-200837) +#define DAQmxErrorWriteToTEDSFailed (-200836) +#define DAQmxErrorSCXIDevNotUsablePowerTurnedOff (-200835) +#define DAQmxErrorCannotReadWhenAutoStartFalseBufSizeZeroAndTaskNotRunning (-200834) +#define DAQmxErrorCannotReadWhenAutoStartFalseHWTimedSinglePtAndTaskNotRunning (-200833) +#define DAQmxErrorCannotReadWhenAutoStartFalseOnDemandAndTaskNotRunning (-200832) +#define DAQmxErrorSimultaneousAOWhenNotOnDemandTiming (-200831) +#define DAQmxErrorMemMapAndSimultaneousAO (-200830) +#define DAQmxErrorWriteFailedMultipleCOOutputTypes (-200829) +#define DAQmxErrorWriteToTEDSNotSupportedOnRT (-200828) +#define DAQmxErrorVirtualTEDSDataFileError (-200827) +#define DAQmxErrorTEDSSensorDataError (-200826) +#define DAQmxErrorDataSizeMoreThanSizeOfEEPROMOnTEDS (-200825) +#define DAQmxErrorPROMOnTEDSContainsBasicTEDSData (-200824) +#define DAQmxErrorPROMOnTEDSAlreadyWritten (-200823) +#define DAQmxErrorTEDSDoesNotContainPROM (-200822) +#define DAQmxErrorHWTimedSinglePointNotSupportedAI (-200821) +#define DAQmxErrorHWTimedSinglePointOddNumChansInAITask (-200820) +#define DAQmxErrorCantUseOnlyOnBoardMemWithProgrammedIO (-200819) +#define DAQmxErrorSwitchDevShutDownDueToHighTemp (-200818) #define DAQmxErrorExcitationNotSupportedWhenTermCfgDiff (-200817) -#define -DAQmxErrorTEDSMinElecValGEMaxElecVal (-200816) -#define -DAQmxErrorTEDSMinPhysValGEMaxPhysVal (-200815) -#define -DAQmxErrorCIOnboardClockNotSupportedAsInputTerm (-200814) -#define -DAQmxErrorInvalidSampModeForPositionMeas (-200813) -#define -DAQmxErrorTrigWhenAOHWTimedSinglePtSampMode (-200812) -#define -DAQmxErrorDAQmxCantUseStringDueToUnknownChar (-200811) -#define -DAQmxErrorDAQmxCantRetrieveStringDueToUnknownChar (-200810) -#define -DAQmxErrorClearTEDSNotSupportedOnRT (-200809) -#define -DAQmxErrorCfgTEDSNotSupportedOnRT (-200808) -#define -DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthBySameTask1PerDev (-200807) -#define -DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthByAnotherTask1PerDev (-200806) -#define -DAQmxErrorNoLastExtCalDateTimeLastExtCalNotDAQmx (-200804) -#define -DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandHWTimedSglPt (-200803) -#define -DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandBufSizeZero (-200802) -#define -DAQmxErrorCOInvalidTimingSrcDueToSignal (-200801) -#define -DAQmxErrorCIInvalidTimingSrcForSampClkDueToSampTimingType (-200800) -#define -DAQmxErrorCIInvalidTimingSrcForEventCntDueToSampMode (-200799) -#define -DAQmxErrorNoChangeDetectOnNonInputDigLineForDev (-200798) -#define -DAQmxErrorEmptyStringTermNameNotSupported (-200797) -#define -DAQmxErrorMemMapEnabledForHWTimedNonBufferedAO (-200796) -#define -DAQmxErrorDevOnboardMemOverflowDuringHWTimedNonBufferedGen (-200795) -#define -DAQmxErrorCODAQmxWriteMultipleChans (-200794) -#define -DAQmxErrorCantMaintainExistingValueAOSync (-200793) -#define -DAQmxErrorMStudioMultiplePhysChansNotSupported (-200792) +#define DAQmxErrorTEDSMinElecValGEMaxElecVal (-200816) +#define DAQmxErrorTEDSMinPhysValGEMaxPhysVal (-200815) +#define DAQmxErrorCIOnboardClockNotSupportedAsInputTerm (-200814) +#define DAQmxErrorInvalidSampModeForPositionMeas (-200813) +#define DAQmxErrorTrigWhenAOHWTimedSinglePtSampMode (-200812) +#define DAQmxErrorDAQmxCantUseStringDueToUnknownChar (-200811) +#define DAQmxErrorDAQmxCantRetrieveStringDueToUnknownChar (-200810) +#define DAQmxErrorClearTEDSNotSupportedOnRT (-200809) +#define DAQmxErrorCfgTEDSNotSupportedOnRT (-200808) +#define DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthBySameTask1PerDev (-200807) +#define DAQmxErrorProgFilterClkCfgdToDifferentMinPulseWidthByAnotherTask1PerDev (-200806) +#define DAQmxErrorNoLastExtCalDateTimeLastExtCalNotDAQmx (-200804) +#define DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandHWTimedSglPt (-200803) +#define DAQmxErrorCannotWriteNotStartedAutoStartFalseNotOnDemandBufSizeZero (-200802) +#define DAQmxErrorCOInvalidTimingSrcDueToSignal (-200801) +#define DAQmxErrorCIInvalidTimingSrcForSampClkDueToSampTimingType (-200800) +#define DAQmxErrorCIInvalidTimingSrcForEventCntDueToSampMode (-200799) +#define DAQmxErrorNoChangeDetectOnNonInputDigLineForDev (-200798) +#define DAQmxErrorEmptyStringTermNameNotSupported (-200797) +#define DAQmxErrorMemMapEnabledForHWTimedNonBufferedAO (-200796) +#define DAQmxErrorDevOnboardMemOverflowDuringHWTimedNonBufferedGen (-200795) +#define DAQmxErrorCODAQmxWriteMultipleChans (-200794) +#define DAQmxErrorCantMaintainExistingValueAOSync (-200793) +#define DAQmxErrorMStudioMultiplePhysChansNotSupported (-200792) #define DAQmxErrorCantConfigureTEDSForChan (-200791) -#define -DAQmxErrorWriteDataTypeTooSmall (-200790) -#define -DAQmxErrorReadDataTypeTooSmall (-200789) -#define -DAQmxErrorMeasuredBridgeOffsetTooHigh (-200788) -#define -DAQmxErrorStartTrigConflictWithCOHWTimedSinglePt (-200787) -#define -DAQmxErrorSampClkRateExtSampClkTimebaseRateMismatch (-200786) -#define -DAQmxErrorInvalidTimingSrcDueToSampTimingType (-200785) -#define -DAQmxErrorVirtualTEDSFileNotFound (-200784) -#define -DAQmxErrorMStudioNoForwardPolyScaleCoeffs (-200783) -#define -DAQmxErrorMStudioNoReversePolyScaleCoeffs (-200782) -#define -DAQmxErrorMStudioNoPolyScaleCoeffsUseCalc (-200781) -#define -DAQmxErrorMStudioNoForwardPolyScaleCoeffsUseCalc (-200780) -#define -DAQmxErrorMStudioNoReversePolyScaleCoeffsUseCalc (-200779) -#define -DAQmxErrorCOSampModeSampTimingTypeSampClkConflict (-200778) -#define -DAQmxErrorDevCannotProduceMinPulseWidth (-200777) -#define -DAQmxErrorCannotProduceMinPulseWidthGivenPropertyValues (-200776) -#define -DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherTask (-200775) -#define -DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherProperty (-200774) -#define -DAQmxErrorDigSyncNotAvailableOnTerm (-200773) -#define -DAQmxErrorDigFilterNotAvailableOnTerm (-200772) -#define -DAQmxErrorDigFilterEnabledMinPulseWidthNotCfg (-200771) -#define -DAQmxErrorDigFilterAndSyncBothEnabled (-200770) -#define -DAQmxErrorHWTimedSinglePointAOAndDataXferNotProgIO (-200769) -#define -DAQmxErrorNonBufferedAOAndDataXferNotProgIO (-200768) -#define -DAQmxErrorProgIODataXferForBufferedAO (-200767) +#define DAQmxErrorWriteDataTypeTooSmall (-200790) +#define DAQmxErrorReadDataTypeTooSmall (-200789) +#define DAQmxErrorMeasuredBridgeOffsetTooHigh (-200788) +#define DAQmxErrorStartTrigConflictWithCOHWTimedSinglePt (-200787) +#define DAQmxErrorSampClkRateExtSampClkTimebaseRateMismatch (-200786) +#define DAQmxErrorInvalidTimingSrcDueToSampTimingType (-200785) +#define DAQmxErrorVirtualTEDSFileNotFound (-200784) +#define DAQmxErrorMStudioNoForwardPolyScaleCoeffs (-200783) +#define DAQmxErrorMStudioNoReversePolyScaleCoeffs (-200782) +#define DAQmxErrorMStudioNoPolyScaleCoeffsUseCalc (-200781) +#define DAQmxErrorMStudioNoForwardPolyScaleCoeffsUseCalc (-200780) +#define DAQmxErrorMStudioNoReversePolyScaleCoeffsUseCalc (-200779) +#define DAQmxErrorCOSampModeSampTimingTypeSampClkConflict (-200778) +#define DAQmxErrorDevCannotProduceMinPulseWidth (-200777) +#define DAQmxErrorCannotProduceMinPulseWidthGivenPropertyValues (-200776) +#define DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherTask (-200775) +#define DAQmxErrorTermCfgdToDifferentMinPulseWidthByAnotherProperty (-200774) +#define DAQmxErrorDigSyncNotAvailableOnTerm (-200773) +#define DAQmxErrorDigFilterNotAvailableOnTerm (-200772) +#define DAQmxErrorDigFilterEnabledMinPulseWidthNotCfg (-200771) +#define DAQmxErrorDigFilterAndSyncBothEnabled (-200770) +#define DAQmxErrorHWTimedSinglePointAOAndDataXferNotProgIO (-200769) +#define DAQmxErrorNonBufferedAOAndDataXferNotProgIO (-200768) +#define DAQmxErrorProgIODataXferForBufferedAO (-200767) #define DAQmxErrorTEDSLegacyTemplateIDInvalidOrUnsupported (-200766) -#define -DAQmxErrorTEDSMappingMethodInvalidOrUnsupported (-200765) -#define -DAQmxErrorTEDSLinearMappingSlopeZero (-200764) -#define -DAQmxErrorAIInputBufferSizeNotMultOfXferSize (-200763) -#define -DAQmxErrorNoSyncPulseExtSampClkTimebase (-200762) -#define -DAQmxErrorNoSyncPulseAnotherTaskRunning (-200761) -#define -DAQmxErrorAOMinMaxNotInGainRange (-200760) -#define -DAQmxErrorAOMinMaxNotInDACRange (-200759) -#define -DAQmxErrorDevOnlySupportsSampClkTimingAO (-200758) -#define -DAQmxErrorDevOnlySupportsSampClkTimingAI (-200757) -#define -DAQmxErrorTEDSIncompatibleSensorAndMeasType (-200756) -#define -DAQmxErrorTEDSMultipleCalTemplatesNotSupported (-200755) -#define -DAQmxErrorTEDSTemplateParametersNotSupported (-200754) -#define -DAQmxErrorParsingTEDSData (-200753) -#define -DAQmxErrorMultipleActivePhysChansNotSupported (-200752) -#define -DAQmxErrorNoChansSpecdForChangeDetect (-200751) -#define -DAQmxErrorInvalidCalVoltageForGivenGain (-200750) -#define -DAQmxErrorInvalidCalGain (-200749) -#define -DAQmxErrorMultipleWritesBetweenSampClks (-200748) -#define -DAQmxErrorInvalidAcqTypeForFREQOUT (-200747) -#define -DAQmxErrorSuitableTimebaseNotFoundTimeCombo2 (-200746) -#define -DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo2 (-200745) -#define -DAQmxErrorRefClkRateRefClkSrcMismatch (-200744) -#define -DAQmxErrorNoTEDSTerminalBlock (-200743) -#define -DAQmxErrorCorruptedTEDSMemory (-200742) +#define DAQmxErrorTEDSMappingMethodInvalidOrUnsupported (-200765) +#define DAQmxErrorTEDSLinearMappingSlopeZero (-200764) +#define DAQmxErrorAIInputBufferSizeNotMultOfXferSize (-200763) +#define DAQmxErrorNoSyncPulseExtSampClkTimebase (-200762) +#define DAQmxErrorNoSyncPulseAnotherTaskRunning (-200761) +#define DAQmxErrorAOMinMaxNotInGainRange (-200760) +#define DAQmxErrorAOMinMaxNotInDACRange (-200759) +#define DAQmxErrorDevOnlySupportsSampClkTimingAO (-200758) +#define DAQmxErrorDevOnlySupportsSampClkTimingAI (-200757) +#define DAQmxErrorTEDSIncompatibleSensorAndMeasType (-200756) +#define DAQmxErrorTEDSMultipleCalTemplatesNotSupported (-200755) +#define DAQmxErrorTEDSTemplateParametersNotSupported (-200754) +#define DAQmxErrorParsingTEDSData (-200753) +#define DAQmxErrorMultipleActivePhysChansNotSupported (-200752) +#define DAQmxErrorNoChansSpecdForChangeDetect (-200751) +#define DAQmxErrorInvalidCalVoltageForGivenGain (-200750) +#define DAQmxErrorInvalidCalGain (-200749) +#define DAQmxErrorMultipleWritesBetweenSampClks (-200748) +#define DAQmxErrorInvalidAcqTypeForFREQOUT (-200747) +#define DAQmxErrorSuitableTimebaseNotFoundTimeCombo2 (-200746) +#define DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo2 (-200745) +#define DAQmxErrorRefClkRateRefClkSrcMismatch (-200744) +#define DAQmxErrorNoTEDSTerminalBlock (-200743) +#define DAQmxErrorCorruptedTEDSMemory (-200742) #define DAQmxErrorTEDSNotSupported (-200741) -#define -DAQmxErrorTimingSrcTaskStartedBeforeTimedLoop (-200740) -#define -DAQmxErrorPropertyNotSupportedForTimingSrc (-200739) -#define -DAQmxErrorTimingSrcDoesNotExist (-200738) -#define -DAQmxErrorInputBufferSizeNotEqualSampsPerChanForFiniteSampMode (-200737) -#define -DAQmxErrorFREQOUTCannotProduceDesiredFrequency2 (-200736) -#define -DAQmxErrorExtRefClkRateNotSpecified (-200735) -#define -DAQmxErrorDeviceDoesNotSupportDMADataXferForNonBufferedAcq (-200734) -#define -DAQmxErrorDigFilterMinPulseWidthSetWhenTristateIsFalse (-200733) -#define -DAQmxErrorDigFilterEnableSetWhenTristateIsFalse (-200732) -#define -DAQmxErrorNoHWTimingWithOnDemand (-200731) -#define -DAQmxErrorCannotDetectChangesWhenTristateIsFalse (-200730) -#define -DAQmxErrorCannotHandshakeWhenTristateIsFalse (-200729) -#define -DAQmxErrorLinesUsedForStaticInputNotForHandshakingControl (-200728) -#define -DAQmxErrorLinesUsedForHandshakingControlNotForStaticInput (-200727) -#define -DAQmxErrorLinesUsedForStaticInputNotForHandshakingInput (-200726) -#define -DAQmxErrorLinesUsedForHandshakingInputNotForStaticInput (-200725) -#define -DAQmxErrorDifferentDITristateValsForChansInTask (-200724) -#define -DAQmxErrorTimebaseCalFreqVarianceTooLarge (-200723) -#define -DAQmxErrorTimebaseCalFailedToConverge (-200722) -#define -DAQmxErrorInadequateResolutionForTimebaseCal (-200721) -#define -DAQmxErrorInvalidAOGainCalConst (-200720) -#define -DAQmxErrorInvalidAOOffsetCalConst (-200719) -#define -DAQmxErrorInvalidAIGainCalConst (-200718) -#define -DAQmxErrorInvalidAIOffsetCalConst (-200717) +#define DAQmxErrorTimingSrcTaskStartedBeforeTimedLoop (-200740) +#define DAQmxErrorPropertyNotSupportedForTimingSrc (-200739) +#define DAQmxErrorTimingSrcDoesNotExist (-200738) +#define DAQmxErrorInputBufferSizeNotEqualSampsPerChanForFiniteSampMode (-200737) +#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency2 (-200736) +#define DAQmxErrorExtRefClkRateNotSpecified (-200735) +#define DAQmxErrorDeviceDoesNotSupportDMADataXferForNonBufferedAcq (-200734) +#define DAQmxErrorDigFilterMinPulseWidthSetWhenTristateIsFalse (-200733) +#define DAQmxErrorDigFilterEnableSetWhenTristateIsFalse (-200732) +#define DAQmxErrorNoHWTimingWithOnDemand (-200731) +#define DAQmxErrorCannotDetectChangesWhenTristateIsFalse (-200730) +#define DAQmxErrorCannotHandshakeWhenTristateIsFalse (-200729) +#define DAQmxErrorLinesUsedForStaticInputNotForHandshakingControl (-200728) +#define DAQmxErrorLinesUsedForHandshakingControlNotForStaticInput (-200727) +#define DAQmxErrorLinesUsedForStaticInputNotForHandshakingInput (-200726) +#define DAQmxErrorLinesUsedForHandshakingInputNotForStaticInput (-200725) +#define DAQmxErrorDifferentDITristateValsForChansInTask (-200724) +#define DAQmxErrorTimebaseCalFreqVarianceTooLarge (-200723) +#define DAQmxErrorTimebaseCalFailedToConverge (-200722) +#define DAQmxErrorInadequateResolutionForTimebaseCal (-200721) +#define DAQmxErrorInvalidAOGainCalConst (-200720) +#define DAQmxErrorInvalidAOOffsetCalConst (-200719) +#define DAQmxErrorInvalidAIGainCalConst (-200718) +#define DAQmxErrorInvalidAIOffsetCalConst (-200717) #define DAQmxErrorDigOutputOverrun (-200716) -#define -DAQmxErrorDigInputOverrun (-200715) -#define -DAQmxErrorAcqStoppedDriverCantXferDataFastEnough (-200714) -#define -DAQmxErrorChansCantAppearInSameTask (-200713) -#define -DAQmxErrorInputCfgFailedBecauseWatchdogExpired (-200712) -#define -DAQmxErrorAnalogTrigChanNotExternal (-200711) -#define -DAQmxErrorTooManyChansForInternalAIInputSrc (-200710) -#define -DAQmxErrorTEDSSensorNotDetected (-200709) -#define -DAQmxErrorPrptyGetSpecdActiveItemFailedDueToDifftValues (-200708) -#define -DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2 (-200706) -#define -DAQmxErrorRoutingDestTermPXIStarXNotInSlot2 (-200705) -#define -DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2 (-200704) -#define -DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove (-200703) -#define -DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove (-200702) -#define -DAQmxErrorRoutingDestTermPXIStarInSlot2 (-200701) -#define -DAQmxErrorRoutingSrcTermPXIStarInSlot2 (-200700) -#define -DAQmxErrorRoutingDestTermPXIChassisNotIdentified (-200699) -#define -DAQmxErrorRoutingSrcTermPXIChassisNotIdentified (-200698) -#define -DAQmxErrorFailedToAcquireCalData (-200697) -#define -DAQmxErrorBridgeOffsetNullingCalNotSupported (-200696) -#define -DAQmxErrorAIMaxNotSpecified (-200695) -#define -DAQmxErrorAIMinNotSpecified (-200694) -#define -DAQmxErrorOddTotalBufferSizeToWrite (-200693) -#define -DAQmxErrorOddTotalNumSampsToWrite (-200692) -#define -DAQmxErrorBufferWithWaitMode (-200691) +#define DAQmxErrorDigInputOverrun (-200715) +#define DAQmxErrorAcqStoppedDriverCantXferDataFastEnough (-200714) +#define DAQmxErrorChansCantAppearInSameTask (-200713) +#define DAQmxErrorInputCfgFailedBecauseWatchdogExpired (-200712) +#define DAQmxErrorAnalogTrigChanNotExternal (-200711) +#define DAQmxErrorTooManyChansForInternalAIInputSrc (-200710) +#define DAQmxErrorTEDSSensorNotDetected (-200709) +#define DAQmxErrorPrptyGetSpecdActiveItemFailedDueToDifftValues (-200708) +#define DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2 (-200706) +#define DAQmxErrorRoutingDestTermPXIStarXNotInSlot2 (-200705) +#define DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2 (-200704) +#define DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove (-200703) +#define DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove (-200702) +#define DAQmxErrorRoutingDestTermPXIStarInSlot2 (-200701) +#define DAQmxErrorRoutingSrcTermPXIStarInSlot2 (-200700) +#define DAQmxErrorRoutingDestTermPXIChassisNotIdentified (-200699) +#define DAQmxErrorRoutingSrcTermPXIChassisNotIdentified (-200698) +#define DAQmxErrorFailedToAcquireCalData (-200697) +#define DAQmxErrorBridgeOffsetNullingCalNotSupported (-200696) +#define DAQmxErrorAIMaxNotSpecified (-200695) +#define DAQmxErrorAIMinNotSpecified (-200694) +#define DAQmxErrorOddTotalBufferSizeToWrite (-200693) +#define DAQmxErrorOddTotalNumSampsToWrite (-200692) +#define DAQmxErrorBufferWithWaitMode (-200691) #define DAQmxErrorBufferWithHWTimedSinglePointSampMode (-200690) -#define -DAQmxErrorCOWritePulseLowTicksNotSupported (-200689) -#define -DAQmxErrorCOWritePulseHighTicksNotSupported (-200688) -#define -DAQmxErrorCOWritePulseLowTimeOutOfRange (-200687) -#define -DAQmxErrorCOWritePulseHighTimeOutOfRange (-200686) -#define -DAQmxErrorCOWriteFreqOutOfRange (-200685) -#define -DAQmxErrorCOWriteDutyCycleOutOfRange (-200684) -#define -DAQmxErrorInvalidInstallation (-200683) -#define -DAQmxErrorRefTrigMasterSessionUnavailable (-200682) -#define -DAQmxErrorRouteFailedBecauseWatchdogExpired (-200681) -#define -DAQmxErrorDeviceShutDownDueToHighTemp (-200680) -#define -DAQmxErrorNoMemMapWhenHWTimedSinglePoint (-200679) -#define -DAQmxErrorWriteFailedBecauseWatchdogExpired (-200678) -#define -DAQmxErrorDifftInternalAIInputSrcs (-200677) -#define -DAQmxErrorDifftAIInputSrcInOneChanGroup (-200676) -#define -DAQmxErrorInternalAIInputSrcInMultChanGroups (-200675) -#define -DAQmxErrorSwitchOpFailedDueToPrevError (-200674) -#define -DAQmxErrorWroteMultiSampsUsingSingleSampWrite (-200673) -#define -DAQmxErrorMismatchedInputArraySizes (-200672) -#define -DAQmxErrorCantExceedRelayDriveLimit (-200671) -#define -DAQmxErrorDACRngLowNotEqualToMinusRefVal (-200670) -#define -DAQmxErrorCantAllowConnectDACToGnd (-200669) -#define -DAQmxErrorWatchdogTimeoutOutOfRangeAndNotSpecialVal (-200668) -#define -DAQmxErrorNoWatchdogOutputOnPortReservedForInput (-200667) -#define -DAQmxErrorNoInputOnPortCfgdForWatchdogOutput (-200666) +#define DAQmxErrorCOWritePulseLowTicksNotSupported (-200689) +#define DAQmxErrorCOWritePulseHighTicksNotSupported (-200688) +#define DAQmxErrorCOWritePulseLowTimeOutOfRange (-200687) +#define DAQmxErrorCOWritePulseHighTimeOutOfRange (-200686) +#define DAQmxErrorCOWriteFreqOutOfRange (-200685) +#define DAQmxErrorCOWriteDutyCycleOutOfRange (-200684) +#define DAQmxErrorInvalidInstallation (-200683) +#define DAQmxErrorRefTrigMasterSessionUnavailable (-200682) +#define DAQmxErrorRouteFailedBecauseWatchdogExpired (-200681) +#define DAQmxErrorDeviceShutDownDueToHighTemp (-200680) +#define DAQmxErrorNoMemMapWhenHWTimedSinglePoint (-200679) +#define DAQmxErrorWriteFailedBecauseWatchdogExpired (-200678) +#define DAQmxErrorDifftInternalAIInputSrcs (-200677) +#define DAQmxErrorDifftAIInputSrcInOneChanGroup (-200676) +#define DAQmxErrorInternalAIInputSrcInMultChanGroups (-200675) +#define DAQmxErrorSwitchOpFailedDueToPrevError (-200674) +#define DAQmxErrorWroteMultiSampsUsingSingleSampWrite (-200673) +#define DAQmxErrorMismatchedInputArraySizes (-200672) +#define DAQmxErrorCantExceedRelayDriveLimit (-200671) +#define DAQmxErrorDACRngLowNotEqualToMinusRefVal (-200670) +#define DAQmxErrorCantAllowConnectDACToGnd (-200669) +#define DAQmxErrorWatchdogTimeoutOutOfRangeAndNotSpecialVal (-200668) +#define DAQmxErrorNoWatchdogOutputOnPortReservedForInput (-200667) +#define DAQmxErrorNoInputOnPortCfgdForWatchdogOutput (-200666) #define DAQmxErrorWatchdogExpirationStateNotEqualForLinesInPort (-200665) -#define -DAQmxErrorCannotPerformOpWhenTaskNotReserved (-200664) -#define -DAQmxErrorPowerupStateNotSupported (-200663) -#define -DAQmxErrorWatchdogTimerNotSupported (-200662) -#define -DAQmxErrorOpNotSupportedWhenRefClkSrcNone (-200661) -#define -DAQmxErrorSampClkRateUnavailable (-200660) -#define -DAQmxErrorPrptyGetSpecdSingleActiveChanFailedDueToDifftVals (-200659) -#define -DAQmxErrorPrptyGetImpliedActiveChanFailedDueToDifftVals (-200658) -#define -DAQmxErrorPrptyGetSpecdActiveChanFailedDueToDifftVals (-200657) -#define -DAQmxErrorNoRegenWhenUsingBrdMem (-200656) -#define -DAQmxErrorNonbufferedReadMoreThanSampsPerChan (-200655) -#define -DAQmxErrorWatchdogExpirationTristateNotSpecdForEntirePort (-200654) -#define -DAQmxErrorPowerupTristateNotSpecdForEntirePort (-200653) -#define -DAQmxErrorPowerupStateNotSpecdForEntirePort (-200652) -#define -DAQmxErrorCantSetWatchdogExpirationOnDigInChan (-200651) -#define -DAQmxErrorCantSetPowerupStateOnDigInChan (-200650) -#define -DAQmxErrorPhysChanNotInTask (-200649) -#define -DAQmxErrorPhysChanDevNotInTask (-200648) -#define -DAQmxErrorDigInputNotSupported (-200647) -#define -DAQmxErrorDigFilterIntervalNotEqualForLines (-200646) -#define -DAQmxErrorDigFilterIntervalAlreadyCfgd (-200645) -#define -DAQmxErrorCantResetExpiredWatchdog (-200644) -#define -DAQmxErrorActiveChanTooManyLinesSpecdWhenGettingPrpty (-200643) -#define -DAQmxErrorActiveChanNotSpecdWhenGetting1LinePrpty (-200642) -#define -DAQmxErrorDigPrptyCannotBeSetPerLine (-200641) +#define DAQmxErrorCannotPerformOpWhenTaskNotReserved (-200664) +#define DAQmxErrorPowerupStateNotSupported (-200663) +#define DAQmxErrorWatchdogTimerNotSupported (-200662) +#define DAQmxErrorOpNotSupportedWhenRefClkSrcNone (-200661) +#define DAQmxErrorSampClkRateUnavailable (-200660) +#define DAQmxErrorPrptyGetSpecdSingleActiveChanFailedDueToDifftVals (-200659) +#define DAQmxErrorPrptyGetImpliedActiveChanFailedDueToDifftVals (-200658) +#define DAQmxErrorPrptyGetSpecdActiveChanFailedDueToDifftVals (-200657) +#define DAQmxErrorNoRegenWhenUsingBrdMem (-200656) +#define DAQmxErrorNonbufferedReadMoreThanSampsPerChan (-200655) +#define DAQmxErrorWatchdogExpirationTristateNotSpecdForEntirePort (-200654) +#define DAQmxErrorPowerupTristateNotSpecdForEntirePort (-200653) +#define DAQmxErrorPowerupStateNotSpecdForEntirePort (-200652) +#define DAQmxErrorCantSetWatchdogExpirationOnDigInChan (-200651) +#define DAQmxErrorCantSetPowerupStateOnDigInChan (-200650) +#define DAQmxErrorPhysChanNotInTask (-200649) +#define DAQmxErrorPhysChanDevNotInTask (-200648) +#define DAQmxErrorDigInputNotSupported (-200647) +#define DAQmxErrorDigFilterIntervalNotEqualForLines (-200646) +#define DAQmxErrorDigFilterIntervalAlreadyCfgd (-200645) +#define DAQmxErrorCantResetExpiredWatchdog (-200644) +#define DAQmxErrorActiveChanTooManyLinesSpecdWhenGettingPrpty (-200643) +#define DAQmxErrorActiveChanNotSpecdWhenGetting1LinePrpty (-200642) +#define DAQmxErrorDigPrptyCannotBeSetPerLine (-200641) #define DAQmxErrorSendAdvCmpltAfterWaitForTrigInScanlist (-200640) -#define -DAQmxErrorDisconnectionRequiredInScanlist (-200639) -#define -DAQmxErrorTwoWaitForTrigsAfterConnectionInScanlist (-200638) -#define -DAQmxErrorActionSeparatorRequiredAfterBreakingConnectionInScanlist (-200637) -#define -DAQmxErrorConnectionInScanlistMustWaitForTrig (-200636) -#define -DAQmxErrorActionNotSupportedTaskNotWatchdog (-200635) -#define -DAQmxErrorWfmNameSameAsScriptName (-200634) -#define -DAQmxErrorScriptNameSameAsWfmName (-200633) -#define -DAQmxErrorDSFStopClock (-200632) -#define -DAQmxErrorDSFReadyForStartClock (-200631) -#define -DAQmxErrorWriteOffsetNotMultOfIncr (-200630) -#define -DAQmxErrorDifferentPrptyValsNotSupportedOnDev (-200629) -#define -DAQmxErrorRefAndPauseTrigConfigured (-200628) -#define -DAQmxErrorFailedToEnableHighSpeedInputClock (-200627) -#define -DAQmxErrorEmptyPhysChanInPowerUpStatesArray (-200626) -#define -DAQmxErrorActivePhysChanTooManyLinesSpecdWhenGettingPrpty (-200625) -#define -DAQmxErrorActivePhysChanNotSpecdWhenGetting1LinePrpty (-200624) -#define -DAQmxErrorPXIDevTempCausedShutDown (-200623) -#define -DAQmxErrorInvalidNumSampsToWrite (-200622) -#define -DAQmxErrorOutputFIFOUnderflow2 (-200621) -#define -DAQmxErrorRepeatedAIPhysicalChan (-200620) -#define -DAQmxErrorMultScanOpsInOneChassis (-200619) -#define -DAQmxErrorInvalidAIChanOrder (-200618) -#define -DAQmxErrorReversePowerProtectionActivated (-200617) -#define -DAQmxErrorInvalidAsynOpHandle (-200616) +#define DAQmxErrorDisconnectionRequiredInScanlist (-200639) +#define DAQmxErrorTwoWaitForTrigsAfterConnectionInScanlist (-200638) +#define DAQmxErrorActionSeparatorRequiredAfterBreakingConnectionInScanlist (-200637) +#define DAQmxErrorConnectionInScanlistMustWaitForTrig (-200636) +#define DAQmxErrorActionNotSupportedTaskNotWatchdog (-200635) +#define DAQmxErrorWfmNameSameAsScriptName (-200634) +#define DAQmxErrorScriptNameSameAsWfmName (-200633) +#define DAQmxErrorDSFStopClock (-200632) +#define DAQmxErrorDSFReadyForStartClock (-200631) +#define DAQmxErrorWriteOffsetNotMultOfIncr (-200630) +#define DAQmxErrorDifferentPrptyValsNotSupportedOnDev (-200629) +#define DAQmxErrorRefAndPauseTrigConfigured (-200628) +#define DAQmxErrorFailedToEnableHighSpeedInputClock (-200627) +#define DAQmxErrorEmptyPhysChanInPowerUpStatesArray (-200626) +#define DAQmxErrorActivePhysChanTooManyLinesSpecdWhenGettingPrpty (-200625) +#define DAQmxErrorActivePhysChanNotSpecdWhenGetting1LinePrpty (-200624) +#define DAQmxErrorPXIDevTempCausedShutDown (-200623) +#define DAQmxErrorInvalidNumSampsToWrite (-200622) +#define DAQmxErrorOutputFIFOUnderflow2 (-200621) +#define DAQmxErrorRepeatedAIPhysicalChan (-200620) +#define DAQmxErrorMultScanOpsInOneChassis (-200619) +#define DAQmxErrorInvalidAIChanOrder (-200618) +#define DAQmxErrorReversePowerProtectionActivated (-200617) +#define DAQmxErrorInvalidAsynOpHandle (-200616) #define DAQmxErrorFailedToEnableHighSpeedOutput (-200615) -#define -DAQmxErrorCannotReadPastEndOfRecord (-200614) -#define -DAQmxErrorAcqStoppedToPreventInputBufferOverwriteOneDataXferMech (-200613) -#define -DAQmxErrorZeroBasedChanIndexInvalid (-200612) -#define -DAQmxErrorNoChansOfGivenTypeInTask (-200611) -#define -DAQmxErrorSampClkSrcInvalidForOutputValidForInput (-200610) -#define -DAQmxErrorOutputBufSizeTooSmallToStartGen (-200609) -#define -DAQmxErrorInputBufSizeTooSmallToStartAcq (-200608) -#define -DAQmxErrorExportTwoSignalsOnSameTerminal (-200607) -#define -DAQmxErrorChanIndexInvalid (-200606) -#define -DAQmxErrorRangeSyntaxNumberTooBig (-200605) -#define -DAQmxErrorNULLPtr (-200604) -#define -DAQmxErrorScaledMinEqualMax (-200603) -#define -DAQmxErrorPreScaledMinEqualMax (-200602) -#define -DAQmxErrorPropertyNotSupportedForScaleType (-200601) -#define -DAQmxErrorChannelNameGenerationNumberTooBig (-200600) -#define -DAQmxErrorRepeatedNumberInScaledValues (-200599) -#define -DAQmxErrorRepeatedNumberInPreScaledValues (-200598) -#define -DAQmxErrorLinesAlreadyReservedForOutput (-200597) -#define -DAQmxErrorSwitchOperationChansSpanMultipleDevsInList (-200596) -#define -DAQmxErrorInvalidIDInListAtBeginningOfSwitchOperation (-200595) -#define -DAQmxErrorMStudioInvalidPolyDirection (-200594) -#define -DAQmxErrorMStudioPropertyGetWhileTaskNotVerified (-200593) -#define -DAQmxErrorRangeWithTooManyObjects (-200592) -#define -DAQmxErrorCppDotNetAPINegativeBufferSize (-200591) +#define DAQmxErrorCannotReadPastEndOfRecord (-200614) +#define DAQmxErrorAcqStoppedToPreventInputBufferOverwriteOneDataXferMech (-200613) +#define DAQmxErrorZeroBasedChanIndexInvalid (-200612) +#define DAQmxErrorNoChansOfGivenTypeInTask (-200611) +#define DAQmxErrorSampClkSrcInvalidForOutputValidForInput (-200610) +#define DAQmxErrorOutputBufSizeTooSmallToStartGen (-200609) +#define DAQmxErrorInputBufSizeTooSmallToStartAcq (-200608) +#define DAQmxErrorExportTwoSignalsOnSameTerminal (-200607) +#define DAQmxErrorChanIndexInvalid (-200606) +#define DAQmxErrorRangeSyntaxNumberTooBig (-200605) +#define DAQmxErrorNULLPtr (-200604) +#define DAQmxErrorScaledMinEqualMax (-200603) +#define DAQmxErrorPreScaledMinEqualMax (-200602) +#define DAQmxErrorPropertyNotSupportedForScaleType (-200601) +#define DAQmxErrorChannelNameGenerationNumberTooBig (-200600) +#define DAQmxErrorRepeatedNumberInScaledValues (-200599) +#define DAQmxErrorRepeatedNumberInPreScaledValues (-200598) +#define DAQmxErrorLinesAlreadyReservedForOutput (-200597) +#define DAQmxErrorSwitchOperationChansSpanMultipleDevsInList (-200596) +#define DAQmxErrorInvalidIDInListAtBeginningOfSwitchOperation (-200595) +#define DAQmxErrorMStudioInvalidPolyDirection (-200594) +#define DAQmxErrorMStudioPropertyGetWhileTaskNotVerified (-200593) +#define DAQmxErrorRangeWithTooManyObjects (-200592) +#define DAQmxErrorCppDotNetAPINegativeBufferSize (-200591) #define DAQmxErrorCppCantRemoveInvalidEventHandler (-200590) -#define -DAQmxErrorCppCantRemoveEventHandlerTwice (-200589) -#define -DAQmxErrorCppCantRemoveOtherObjectsEventHandler (-200588) -#define -DAQmxErrorDigLinesReservedOrUnavailable (-200587) -#define -DAQmxErrorDSFFailedToResetStream (-200586) -#define -DAQmxErrorDSFReadyForOutputNotAsserted (-200585) -#define -DAQmxErrorSampToWritePerChanNotMultipleOfIncr (-200584) -#define -DAQmxErrorAOPropertiesCauseVoltageBelowMin (-200583) -#define -DAQmxErrorAOPropertiesCauseVoltageOverMax (-200582) -#define -DAQmxErrorPropertyNotSupportedWhenRefClkSrcNone (-200581) -#define -DAQmxErrorAIMaxTooSmall (-200580) -#define -DAQmxErrorAIMaxTooLarge (-200579) -#define -DAQmxErrorAIMinTooSmall (-200578) -#define -DAQmxErrorAIMinTooLarge (-200577) -#define -DAQmxErrorBuiltInCJCSrcNotSupported (-200576) -#define -DAQmxErrorTooManyPostTrigSampsPerChan (-200575) -#define -DAQmxErrorTrigLineNotFoundSingleDevRoute (-200574) -#define -DAQmxErrorDifferentInternalAIInputSources (-200573) -#define -DAQmxErrorDifferentAIInputSrcInOneChanGroup (-200572) -#define -DAQmxErrorInternalAIInputSrcInMultipleChanGroups (-200571) -#define -DAQmxErrorCAPIChanIndexInvalid (-200570) -#define -DAQmxErrorCollectionDoesNotMatchChanType (-200569) -#define -DAQmxErrorOutputCantStartChangedRegenerationMode (-200568) -#define -DAQmxErrorOutputCantStartChangedBufferSize (-200567) -#define -DAQmxErrorChanSizeTooBigForU32PortWrite (-200566) +#define DAQmxErrorCppCantRemoveEventHandlerTwice (-200589) +#define DAQmxErrorCppCantRemoveOtherObjectsEventHandler (-200588) +#define DAQmxErrorDigLinesReservedOrUnavailable (-200587) +#define DAQmxErrorDSFFailedToResetStream (-200586) +#define DAQmxErrorDSFReadyForOutputNotAsserted (-200585) +#define DAQmxErrorSampToWritePerChanNotMultipleOfIncr (-200584) +#define DAQmxErrorAOPropertiesCauseVoltageBelowMin (-200583) +#define DAQmxErrorAOPropertiesCauseVoltageOverMax (-200582) +#define DAQmxErrorPropertyNotSupportedWhenRefClkSrcNone (-200581) +#define DAQmxErrorAIMaxTooSmall (-200580) +#define DAQmxErrorAIMaxTooLarge (-200579) +#define DAQmxErrorAIMinTooSmall (-200578) +#define DAQmxErrorAIMinTooLarge (-200577) +#define DAQmxErrorBuiltInCJCSrcNotSupported (-200576) +#define DAQmxErrorTooManyPostTrigSampsPerChan (-200575) +#define DAQmxErrorTrigLineNotFoundSingleDevRoute (-200574) +#define DAQmxErrorDifferentInternalAIInputSources (-200573) +#define DAQmxErrorDifferentAIInputSrcInOneChanGroup (-200572) +#define DAQmxErrorInternalAIInputSrcInMultipleChanGroups (-200571) +#define DAQmxErrorCAPIChanIndexInvalid (-200570) +#define DAQmxErrorCollectionDoesNotMatchChanType (-200569) +#define DAQmxErrorOutputCantStartChangedRegenerationMode (-200568) +#define DAQmxErrorOutputCantStartChangedBufferSize (-200567) +#define DAQmxErrorChanSizeTooBigForU32PortWrite (-200566) #define DAQmxErrorChanSizeTooBigForU8PortWrite (-200565) -#define -DAQmxErrorChanSizeTooBigForU32PortRead (-200564) -#define -DAQmxErrorChanSizeTooBigForU8PortRead (-200563) -#define -DAQmxErrorInvalidDigDataWrite (-200562) -#define -DAQmxErrorInvalidAODataWrite (-200561) -#define -DAQmxErrorWaitUntilDoneDoesNotIndicateDone (-200560) -#define -DAQmxErrorMultiChanTypesInTask (-200559) -#define -DAQmxErrorMultiDevsInTask (-200558) -#define -DAQmxErrorCannotSetPropertyWhenTaskRunning (-200557) -#define -DAQmxErrorCannotGetPropertyWhenTaskNotCommittedOrRunning (-200556) -#define -DAQmxErrorLeadingUnderscoreInString (-200555) -#define -DAQmxErrorTrailingSpaceInString (-200554) -#define -DAQmxErrorLeadingSpaceInString (-200553) -#define -DAQmxErrorInvalidCharInString (-200552) -#define -DAQmxErrorDLLBecameUnlocked (-200551) -#define -DAQmxErrorDLLLock (-200550) -#define -DAQmxErrorSelfCalConstsInvalid (-200549) -#define -DAQmxErrorInvalidTrigCouplingExceptForExtTrigChan (-200548) -#define -DAQmxErrorWriteFailsBufferSizeAutoConfigured (-200547) -#define -DAQmxErrorExtCalAdjustExtRefVoltageFailed (-200546) -#define -DAQmxErrorSelfCalFailedExtNoiseOrRefVoltageOutOfCal (-200545) -#define -DAQmxErrorExtCalTemperatureNotDAQmx (-200544) -#define -DAQmxErrorExtCalDateTimeNotDAQmx (-200543) -#define -DAQmxErrorSelfCalTemperatureNotDAQmx (-200542) -#define -DAQmxErrorSelfCalDateTimeNotDAQmx (-200541) +#define DAQmxErrorChanSizeTooBigForU32PortRead (-200564) +#define DAQmxErrorChanSizeTooBigForU8PortRead (-200563) +#define DAQmxErrorInvalidDigDataWrite (-200562) +#define DAQmxErrorInvalidAODataWrite (-200561) +#define DAQmxErrorWaitUntilDoneDoesNotIndicateDone (-200560) +#define DAQmxErrorMultiChanTypesInTask (-200559) +#define DAQmxErrorMultiDevsInTask (-200558) +#define DAQmxErrorCannotSetPropertyWhenTaskRunning (-200557) +#define DAQmxErrorCannotGetPropertyWhenTaskNotCommittedOrRunning (-200556) +#define DAQmxErrorLeadingUnderscoreInString (-200555) +#define DAQmxErrorTrailingSpaceInString (-200554) +#define DAQmxErrorLeadingSpaceInString (-200553) +#define DAQmxErrorInvalidCharInString (-200552) +#define DAQmxErrorDLLBecameUnlocked (-200551) +#define DAQmxErrorDLLLock (-200550) +#define DAQmxErrorSelfCalConstsInvalid (-200549) +#define DAQmxErrorInvalidTrigCouplingExceptForExtTrigChan (-200548) +#define DAQmxErrorWriteFailsBufferSizeAutoConfigured (-200547) +#define DAQmxErrorExtCalAdjustExtRefVoltageFailed (-200546) +#define DAQmxErrorSelfCalFailedExtNoiseOrRefVoltageOutOfCal (-200545) +#define DAQmxErrorExtCalTemperatureNotDAQmx (-200544) +#define DAQmxErrorExtCalDateTimeNotDAQmx (-200543) +#define DAQmxErrorSelfCalTemperatureNotDAQmx (-200542) +#define DAQmxErrorSelfCalDateTimeNotDAQmx (-200541) #define DAQmxErrorDACRefValNotSet (-200540) -#define -DAQmxErrorAnalogMultiSampWriteNotSupported (-200539) -#define -DAQmxErrorInvalidActionInControlTask (-200538) -#define -DAQmxErrorPolyCoeffsInconsistent (-200537) -#define -DAQmxErrorSensorValTooLow (-200536) -#define -DAQmxErrorSensorValTooHigh (-200535) -#define -DAQmxErrorWaveformNameTooLong (-200534) -#define -DAQmxErrorIdentifierTooLongInScript (-200533) -#define -DAQmxErrorUnexpectedIDFollowingSwitchChanName (-200532) -#define -DAQmxErrorRelayNameNotSpecifiedInList (-200531) -#define -DAQmxErrorUnexpectedIDFollowingRelayNameInList (-200530) -#define -DAQmxErrorUnexpectedIDFollowingSwitchOpInList (-200529) -#define -DAQmxErrorInvalidLineGrouping (-200528) -#define -DAQmxErrorCtrMinMax (-200527) -#define -DAQmxErrorWriteChanTypeMismatch (-200526) -#define -DAQmxErrorReadChanTypeMismatch (-200525) -#define -DAQmxErrorWriteNumChansMismatch (-200524) -#define -DAQmxErrorOneChanReadForMultiChanTask (-200523) -#define -DAQmxErrorCannotSelfCalDuringExtCal (-200522) -#define -DAQmxErrorMeasCalAdjustOscillatorPhaseDAC (-200521) -#define -DAQmxErrorInvalidCalConstCalADCAdjustment (-200520) -#define -DAQmxErrorInvalidCalConstOscillatorFreqDACValue (-200519) -#define -DAQmxErrorInvalidCalConstOscillatorPhaseDACValue (-200518) -#define -DAQmxErrorInvalidCalConstOffsetDACValue (-200517) -#define -DAQmxErrorInvalidCalConstGainDACValue (-200516) +#define DAQmxErrorAnalogMultiSampWriteNotSupported (-200539) +#define DAQmxErrorInvalidActionInControlTask (-200538) +#define DAQmxErrorPolyCoeffsInconsistent (-200537) +#define DAQmxErrorSensorValTooLow (-200536) +#define DAQmxErrorSensorValTooHigh (-200535) +#define DAQmxErrorWaveformNameTooLong (-200534) +#define DAQmxErrorIdentifierTooLongInScript (-200533) +#define DAQmxErrorUnexpectedIDFollowingSwitchChanName (-200532) +#define DAQmxErrorRelayNameNotSpecifiedInList (-200531) +#define DAQmxErrorUnexpectedIDFollowingRelayNameInList (-200530) +#define DAQmxErrorUnexpectedIDFollowingSwitchOpInList (-200529) +#define DAQmxErrorInvalidLineGrouping (-200528) +#define DAQmxErrorCtrMinMax (-200527) +#define DAQmxErrorWriteChanTypeMismatch (-200526) +#define DAQmxErrorReadChanTypeMismatch (-200525) +#define DAQmxErrorWriteNumChansMismatch (-200524) +#define DAQmxErrorOneChanReadForMultiChanTask (-200523) +#define DAQmxErrorCannotSelfCalDuringExtCal (-200522) +#define DAQmxErrorMeasCalAdjustOscillatorPhaseDAC (-200521) +#define DAQmxErrorInvalidCalConstCalADCAdjustment (-200520) +#define DAQmxErrorInvalidCalConstOscillatorFreqDACValue (-200519) +#define DAQmxErrorInvalidCalConstOscillatorPhaseDACValue (-200518) +#define DAQmxErrorInvalidCalConstOffsetDACValue (-200517) +#define DAQmxErrorInvalidCalConstGainDACValue (-200516) #define DAQmxErrorInvalidNumCalADCReadsToAverage (-200515) -#define -DAQmxErrorInvalidCfgCalAdjustDirectPathOutputImpedance (-200514) -#define -DAQmxErrorInvalidCfgCalAdjustMainPathOutputImpedance (-200513) -#define -DAQmxErrorInvalidCfgCalAdjustMainPathPostAmpGainAndOffset (-200512) -#define -DAQmxErrorInvalidCfgCalAdjustMainPathPreAmpGain (-200511) -#define -DAQmxErrorInvalidCfgCalAdjustMainPreAmpOffset (-200510) -#define -DAQmxErrorMeasCalAdjustCalADC (-200509) -#define -DAQmxErrorMeasCalAdjustOscillatorFrequency (-200508) -#define -DAQmxErrorMeasCalAdjustDirectPathOutputImpedance (-200507) -#define -DAQmxErrorMeasCalAdjustMainPathOutputImpedance (-200506) -#define -DAQmxErrorMeasCalAdjustDirectPathGain (-200505) -#define -DAQmxErrorMeasCalAdjustMainPathPostAmpGainAndOffset (-200504) -#define -DAQmxErrorMeasCalAdjustMainPathPreAmpGain (-200503) -#define -DAQmxErrorMeasCalAdjustMainPathPreAmpOffset (-200502) -#define -DAQmxErrorInvalidDateTimeInEEPROM (-200501) -#define -DAQmxErrorUnableToLocateErrorResources (-200500) -#define -DAQmxErrorDotNetAPINotUnsigned32BitNumber (-200499) -#define -DAQmxErrorInvalidRangeOfObjectsSyntaxInString (-200498) -#define -DAQmxErrorAttemptToEnableLineNotPreviouslyDisabled (-200497) -#define -DAQmxErrorInvalidCharInPattern (-200496) -#define -DAQmxErrorIntermediateBufferFull (-200495) -#define -DAQmxErrorLoadTaskFailsBecauseNoTimingOnDev (-200494) -#define -DAQmxErrorCAPIReservedParamNotNULLNorEmpty (-200493) -#define -DAQmxErrorCAPIReservedParamNotNULL (-200492) -#define -DAQmxErrorCAPIReservedParamNotZero (-200491) +#define DAQmxErrorInvalidCfgCalAdjustDirectPathOutputImpedance (-200514) +#define DAQmxErrorInvalidCfgCalAdjustMainPathOutputImpedance (-200513) +#define DAQmxErrorInvalidCfgCalAdjustMainPathPostAmpGainAndOffset (-200512) +#define DAQmxErrorInvalidCfgCalAdjustMainPathPreAmpGain (-200511) +#define DAQmxErrorInvalidCfgCalAdjustMainPreAmpOffset (-200510) +#define DAQmxErrorMeasCalAdjustCalADC (-200509) +#define DAQmxErrorMeasCalAdjustOscillatorFrequency (-200508) +#define DAQmxErrorMeasCalAdjustDirectPathOutputImpedance (-200507) +#define DAQmxErrorMeasCalAdjustMainPathOutputImpedance (-200506) +#define DAQmxErrorMeasCalAdjustDirectPathGain (-200505) +#define DAQmxErrorMeasCalAdjustMainPathPostAmpGainAndOffset (-200504) +#define DAQmxErrorMeasCalAdjustMainPathPreAmpGain (-200503) +#define DAQmxErrorMeasCalAdjustMainPathPreAmpOffset (-200502) +#define DAQmxErrorInvalidDateTimeInEEPROM (-200501) +#define DAQmxErrorUnableToLocateErrorResources (-200500) +#define DAQmxErrorDotNetAPINotUnsigned32BitNumber (-200499) +#define DAQmxErrorInvalidRangeOfObjectsSyntaxInString (-200498) +#define DAQmxErrorAttemptToEnableLineNotPreviouslyDisabled (-200497) +#define DAQmxErrorInvalidCharInPattern (-200496) +#define DAQmxErrorIntermediateBufferFull (-200495) +#define DAQmxErrorLoadTaskFailsBecauseNoTimingOnDev (-200494) +#define DAQmxErrorCAPIReservedParamNotNULLNorEmpty (-200493) +#define DAQmxErrorCAPIReservedParamNotNULL (-200492) +#define DAQmxErrorCAPIReservedParamNotZero (-200491) #define DAQmxErrorSampleValueOutOfRange (-200490) -#define -DAQmxErrorChanAlreadyInTask (-200489) -#define -DAQmxErrorVirtualChanDoesNotExist (-200488) -#define -DAQmxErrorChanNotInTask (-200486) -#define -DAQmxErrorTaskNotInDataNeighborhood (-200485) -#define -DAQmxErrorCantSaveTaskWithoutReplace (-200484) -#define -DAQmxErrorCantSaveChanWithoutReplace (-200483) -#define -DAQmxErrorDevNotInTask (-200482) -#define -DAQmxErrorDevAlreadyInTask (-200481) -#define -DAQmxErrorCanNotPerformOpWhileTaskRunning (-200479) -#define -DAQmxErrorCanNotPerformOpWhenNoChansInTask (-200478) -#define -DAQmxErrorCanNotPerformOpWhenNoDevInTask (-200477) -#define -DAQmxErrorCannotPerformOpWhenTaskNotRunning (-200475) -#define -DAQmxErrorOperationTimedOut (-200474) -#define -DAQmxErrorCannotReadWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200473) -#define -DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200472) -#define -DAQmxErrorTaskVersionNew (-200470) -#define -DAQmxErrorChanVersionNew (-200469) -#define -DAQmxErrorEmptyString (-200467) -#define -DAQmxErrorChannelSizeTooBigForPortReadType (-200466) -#define -DAQmxErrorChannelSizeTooBigForPortWriteType (-200465) -#define -DAQmxErrorExpectedNumberOfChannelsVerificationFailed (-200464) -#define -DAQmxErrorNumLinesMismatchInReadOrWrite (-200463) -#define -DAQmxErrorOutputBufferEmpty (-200462) -#define -DAQmxErrorInvalidChanName (-200461) +#define DAQmxErrorChanAlreadyInTask (-200489) +#define DAQmxErrorVirtualChanDoesNotExist (-200488) +#define DAQmxErrorChanNotInTask (-200486) +#define DAQmxErrorTaskNotInDataNeighborhood (-200485) +#define DAQmxErrorCantSaveTaskWithoutReplace (-200484) +#define DAQmxErrorCantSaveChanWithoutReplace (-200483) +#define DAQmxErrorDevNotInTask (-200482) +#define DAQmxErrorDevAlreadyInTask (-200481) +#define DAQmxErrorCanNotPerformOpWhileTaskRunning (-200479) +#define DAQmxErrorCanNotPerformOpWhenNoChansInTask (-200478) +#define DAQmxErrorCanNotPerformOpWhenNoDevInTask (-200477) +#define DAQmxErrorCannotPerformOpWhenTaskNotRunning (-200475) +#define DAQmxErrorOperationTimedOut (-200474) +#define DAQmxErrorCannotReadWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200473) +#define DAQmxErrorCannotWriteWhenAutoStartFalseAndTaskNotRunningOrCommitted (-200472) +#define DAQmxErrorTaskVersionNew (-200470) +#define DAQmxErrorChanVersionNew (-200469) +#define DAQmxErrorEmptyString (-200467) +#define DAQmxErrorChannelSizeTooBigForPortReadType (-200466) +#define DAQmxErrorChannelSizeTooBigForPortWriteType (-200465) +#define DAQmxErrorExpectedNumberOfChannelsVerificationFailed (-200464) +#define DAQmxErrorNumLinesMismatchInReadOrWrite (-200463) +#define DAQmxErrorOutputBufferEmpty (-200462) +#define DAQmxErrorInvalidChanName (-200461) #define DAQmxErrorReadNoInputChansInTask (-200460) -#define -DAQmxErrorWriteNoOutputChansInTask (-200459) -#define -DAQmxErrorPropertyNotSupportedNotInputTask (-200457) -#define -DAQmxErrorPropertyNotSupportedNotOutputTask (-200456) -#define -DAQmxErrorGetPropertyNotInputBufferedTask (-200455) -#define -DAQmxErrorGetPropertyNotOutputBufferedTask (-200454) -#define -DAQmxErrorInvalidTimeoutVal (-200453) -#define -DAQmxErrorAttributeNotSupportedInTaskContext (-200452) -#define -DAQmxErrorAttributeNotQueryableUnlessTaskIsCommitted (-200451) -#define -DAQmxErrorAttributeNotSettableWhenTaskIsRunning (-200450) -#define -DAQmxErrorDACRngLowNotMinusRefValNorZero (-200449) -#define -DAQmxErrorDACRngHighNotEqualRefVal (-200448) -#define -DAQmxErrorUnitsNotFromCustomScale (-200447) -#define -DAQmxErrorInvalidVoltageReadingDuringExtCal (-200446) -#define -DAQmxErrorCalFunctionNotSupported (-200445) -#define -DAQmxErrorInvalidPhysicalChanForCal (-200444) -#define -DAQmxErrorExtCalNotComplete (-200443) -#define -DAQmxErrorCantSyncToExtStimulusFreqDuringCal (-200442) -#define -DAQmxErrorUnableToDetectExtStimulusFreqDuringCal (-200441) -#define -DAQmxErrorInvalidCloseAction (-200440) -#define -DAQmxErrorExtCalFunctionOutsideExtCalSession (-200439) -#define -DAQmxErrorInvalidCalArea (-200438) -#define -DAQmxErrorExtCalConstsInvalid (-200437) -#define -DAQmxErrorStartTrigDelayWithExtSampClk (-200436) -#define -DAQmxErrorDelayFromSampClkWithExtConv (-200435) +#define DAQmxErrorWriteNoOutputChansInTask (-200459) +#define DAQmxErrorPropertyNotSupportedNotInputTask (-200457) +#define DAQmxErrorPropertyNotSupportedNotOutputTask (-200456) +#define DAQmxErrorGetPropertyNotInputBufferedTask (-200455) +#define DAQmxErrorGetPropertyNotOutputBufferedTask (-200454) +#define DAQmxErrorInvalidTimeoutVal (-200453) +#define DAQmxErrorAttributeNotSupportedInTaskContext (-200452) +#define DAQmxErrorAttributeNotQueryableUnlessTaskIsCommitted (-200451) +#define DAQmxErrorAttributeNotSettableWhenTaskIsRunning (-200450) +#define DAQmxErrorDACRngLowNotMinusRefValNorZero (-200449) +#define DAQmxErrorDACRngHighNotEqualRefVal (-200448) +#define DAQmxErrorUnitsNotFromCustomScale (-200447) +#define DAQmxErrorInvalidVoltageReadingDuringExtCal (-200446) +#define DAQmxErrorCalFunctionNotSupported (-200445) +#define DAQmxErrorInvalidPhysicalChanForCal (-200444) +#define DAQmxErrorExtCalNotComplete (-200443) +#define DAQmxErrorCantSyncToExtStimulusFreqDuringCal (-200442) +#define DAQmxErrorUnableToDetectExtStimulusFreqDuringCal (-200441) +#define DAQmxErrorInvalidCloseAction (-200440) +#define DAQmxErrorExtCalFunctionOutsideExtCalSession (-200439) +#define DAQmxErrorInvalidCalArea (-200438) +#define DAQmxErrorExtCalConstsInvalid (-200437) +#define DAQmxErrorStartTrigDelayWithExtSampClk (-200436) +#define DAQmxErrorDelayFromSampClkWithExtConv (-200435) #define DAQmxErrorFewerThan2PreScaledVals (-200434) -#define -DAQmxErrorFewerThan2ScaledValues (-200433) -#define -DAQmxErrorPhysChanOutputType (-200432) -#define -DAQmxErrorPhysChanMeasType (-200431) -#define -DAQmxErrorInvalidPhysChanType (-200430) -#define -DAQmxErrorLabVIEWEmptyTaskOrChans (-200429) -#define -DAQmxErrorLabVIEWInvalidTaskOrChans (-200428) -#define -DAQmxErrorInvalidRefClkRate (-200427) -#define -DAQmxErrorInvalidExtTrigImpedance (-200426) -#define -DAQmxErrorHystTrigLevelAIMax (-200425) -#define -DAQmxErrorLineNumIncompatibleWithVideoSignalFormat (-200424) -#define -DAQmxErrorTrigWindowAIMinAIMaxCombo (-200423) -#define -DAQmxErrorTrigAIMinAIMax (-200422) -#define -DAQmxErrorHystTrigLevelAIMin (-200421) -#define -DAQmxErrorInvalidSampRateConsiderRIS (-200420) -#define -DAQmxErrorInvalidReadPosDuringRIS (-200419) -#define -DAQmxErrorImmedTrigDuringRISMode (-200418) -#define -DAQmxErrorTDCNotEnabledDuringRISMode (-200417) -#define -DAQmxErrorMultiRecWithRIS (-200416) -#define -DAQmxErrorInvalidRefClkSrc (-200415) -#define -DAQmxErrorInvalidSampClkSrc (-200414) -#define -DAQmxErrorInsufficientOnBoardMemForNumRecsAndSamps (-200413) -#define -DAQmxErrorInvalidAIAttenuation (-200412) -#define -DAQmxErrorACCouplingNotAllowedWith50OhmImpedance (-200411) -#define -DAQmxErrorInvalidRecordNum (-200410) +#define DAQmxErrorFewerThan2ScaledValues (-200433) +#define DAQmxErrorPhysChanOutputType (-200432) +#define DAQmxErrorPhysChanMeasType (-200431) +#define DAQmxErrorInvalidPhysChanType (-200430) +#define DAQmxErrorLabVIEWEmptyTaskOrChans (-200429) +#define DAQmxErrorLabVIEWInvalidTaskOrChans (-200428) +#define DAQmxErrorInvalidRefClkRate (-200427) +#define DAQmxErrorInvalidExtTrigImpedance (-200426) +#define DAQmxErrorHystTrigLevelAIMax (-200425) +#define DAQmxErrorLineNumIncompatibleWithVideoSignalFormat (-200424) +#define DAQmxErrorTrigWindowAIMinAIMaxCombo (-200423) +#define DAQmxErrorTrigAIMinAIMax (-200422) +#define DAQmxErrorHystTrigLevelAIMin (-200421) +#define DAQmxErrorInvalidSampRateConsiderRIS (-200420) +#define DAQmxErrorInvalidReadPosDuringRIS (-200419) +#define DAQmxErrorImmedTrigDuringRISMode (-200418) +#define DAQmxErrorTDCNotEnabledDuringRISMode (-200417) +#define DAQmxErrorMultiRecWithRIS (-200416) +#define DAQmxErrorInvalidRefClkSrc (-200415) +#define DAQmxErrorInvalidSampClkSrc (-200414) +#define DAQmxErrorInsufficientOnBoardMemForNumRecsAndSamps (-200413) +#define DAQmxErrorInvalidAIAttenuation (-200412) +#define DAQmxErrorACCouplingNotAllowedWith50OhmImpedance (-200411) +#define DAQmxErrorInvalidRecordNum (-200410) #define DAQmxErrorZeroSlopeLinearScale (-200409) -#define -DAQmxErrorZeroReversePolyScaleCoeffs (-200408) -#define -DAQmxErrorZeroForwardPolyScaleCoeffs (-200407) -#define -DAQmxErrorNoReversePolyScaleCoeffs (-200406) -#define -DAQmxErrorNoForwardPolyScaleCoeffs (-200405) -#define -DAQmxErrorNoPolyScaleCoeffs (-200404) -#define -DAQmxErrorReversePolyOrderLessThanNumPtsToCompute (-200403) -#define -DAQmxErrorReversePolyOrderNotPositive (-200402) -#define -DAQmxErrorNumPtsToComputeNotPositive (-200401) -#define -DAQmxErrorWaveformLengthNotMultipleOfIncr (-200400) -#define -DAQmxErrorCAPINoExtendedErrorInfoAvailable (-200399) -#define -DAQmxErrorCVIFunctionNotFoundInDAQmxDLL (-200398) -#define -DAQmxErrorCVIFailedToLoadDAQmxDLL (-200397) -#define -DAQmxErrorNoCommonTrigLineForImmedRoute (-200396) -#define -DAQmxErrorNoCommonTrigLineForTaskRoute (-200395) -#define -DAQmxErrorF64PrptyValNotUnsignedInt (-200394) -#define -DAQmxErrorRegisterNotWritable (-200393) -#define -DAQmxErrorInvalidOutputVoltageAtSampClkRate (-200392) -#define -DAQmxErrorStrobePhaseShiftDCMBecameUnlocked (-200391) -#define -DAQmxErrorDrivePhaseShiftDCMBecameUnlocked (-200390) -#define -DAQmxErrorClkOutPhaseShiftDCMBecameUnlocked (-200389) -#define -DAQmxErrorOutputBoardClkDCMBecameUnlocked (-200388) -#define -DAQmxErrorInputBoardClkDCMBecameUnlocked (-200387) -#define -DAQmxErrorInternalClkDCMBecameUnlocked (-200386) -#define -DAQmxErrorDCMLock (-200385) +#define DAQmxErrorZeroReversePolyScaleCoeffs (-200408) +#define DAQmxErrorZeroForwardPolyScaleCoeffs (-200407) +#define DAQmxErrorNoReversePolyScaleCoeffs (-200406) +#define DAQmxErrorNoForwardPolyScaleCoeffs (-200405) +#define DAQmxErrorNoPolyScaleCoeffs (-200404) +#define DAQmxErrorReversePolyOrderLessThanNumPtsToCompute (-200403) +#define DAQmxErrorReversePolyOrderNotPositive (-200402) +#define DAQmxErrorNumPtsToComputeNotPositive (-200401) +#define DAQmxErrorWaveformLengthNotMultipleOfIncr (-200400) +#define DAQmxErrorCAPINoExtendedErrorInfoAvailable (-200399) +#define DAQmxErrorCVIFunctionNotFoundInDAQmxDLL (-200398) +#define DAQmxErrorCVIFailedToLoadDAQmxDLL (-200397) +#define DAQmxErrorNoCommonTrigLineForImmedRoute (-200396) +#define DAQmxErrorNoCommonTrigLineForTaskRoute (-200395) +#define DAQmxErrorF64PrptyValNotUnsignedInt (-200394) +#define DAQmxErrorRegisterNotWritable (-200393) +#define DAQmxErrorInvalidOutputVoltageAtSampClkRate (-200392) +#define DAQmxErrorStrobePhaseShiftDCMBecameUnlocked (-200391) +#define DAQmxErrorDrivePhaseShiftDCMBecameUnlocked (-200390) +#define DAQmxErrorClkOutPhaseShiftDCMBecameUnlocked (-200389) +#define DAQmxErrorOutputBoardClkDCMBecameUnlocked (-200388) +#define DAQmxErrorInputBoardClkDCMBecameUnlocked (-200387) +#define DAQmxErrorInternalClkDCMBecameUnlocked (-200386) +#define DAQmxErrorDCMLock (-200385) #define DAQmxErrorDataLineReservedForDynamicOutput (-200384) -#define -DAQmxErrorInvalidRefClkSrcGivenSampClkSrc (-200383) -#define -DAQmxErrorNoPatternMatcherAvailable (-200382) -#define -DAQmxErrorInvalidDelaySampRateBelowPhaseShiftDCMThresh (-200381) -#define -DAQmxErrorStrainGageCalibration (-200380) -#define -DAQmxErrorInvalidExtClockFreqAndDivCombo (-200379) -#define -DAQmxErrorCustomScaleDoesNotExist (-200378) -#define -DAQmxErrorOnlyFrontEndChanOpsDuringScan (-200377) -#define -DAQmxErrorInvalidOptionForDigitalPortChannel (-200376) -#define -DAQmxErrorUnsupportedSignalTypeExportSignal (-200375) -#define -DAQmxErrorInvalidSignalTypeExportSignal (-200374) -#define -DAQmxErrorUnsupportedTrigTypeSendsSWTrig (-200373) -#define -DAQmxErrorInvalidTrigTypeSendsSWTrig (-200372) -#define -DAQmxErrorRepeatedPhysicalChan (-200371) -#define -DAQmxErrorResourcesInUseForRouteInTask (-200370) -#define -DAQmxErrorResourcesInUseForRoute (-200369) -#define -DAQmxErrorRouteNotSupportedByHW (-200368) -#define -DAQmxErrorResourcesInUseForExportSignalPolarity (-200367) -#define -DAQmxErrorResourcesInUseForInversionInTask (-200366) -#define -DAQmxErrorResourcesInUseForInversion (-200365) -#define -DAQmxErrorExportSignalPolarityNotSupportedByHW (-200364) -#define -DAQmxErrorInversionNotSupportedByHW (-200363) -#define -DAQmxErrorOverloadedChansExistNotRead (-200362) -#define -DAQmxErrorInputFIFOOverflow2 (-200361) -#define -DAQmxErrorCJCChanNotSpecd (-200360) +#define DAQmxErrorInvalidRefClkSrcGivenSampClkSrc (-200383) +#define DAQmxErrorNoPatternMatcherAvailable (-200382) +#define DAQmxErrorInvalidDelaySampRateBelowPhaseShiftDCMThresh (-200381) +#define DAQmxErrorStrainGageCalibration (-200380) +#define DAQmxErrorInvalidExtClockFreqAndDivCombo (-200379) +#define DAQmxErrorCustomScaleDoesNotExist (-200378) +#define DAQmxErrorOnlyFrontEndChanOpsDuringScan (-200377) +#define DAQmxErrorInvalidOptionForDigitalPortChannel (-200376) +#define DAQmxErrorUnsupportedSignalTypeExportSignal (-200375) +#define DAQmxErrorInvalidSignalTypeExportSignal (-200374) +#define DAQmxErrorUnsupportedTrigTypeSendsSWTrig (-200373) +#define DAQmxErrorInvalidTrigTypeSendsSWTrig (-200372) +#define DAQmxErrorRepeatedPhysicalChan (-200371) +#define DAQmxErrorResourcesInUseForRouteInTask (-200370) +#define DAQmxErrorResourcesInUseForRoute (-200369) +#define DAQmxErrorRouteNotSupportedByHW (-200368) +#define DAQmxErrorResourcesInUseForExportSignalPolarity (-200367) +#define DAQmxErrorResourcesInUseForInversionInTask (-200366) +#define DAQmxErrorResourcesInUseForInversion (-200365) +#define DAQmxErrorExportSignalPolarityNotSupportedByHW (-200364) +#define DAQmxErrorInversionNotSupportedByHW (-200363) +#define DAQmxErrorOverloadedChansExistNotRead (-200362) +#define DAQmxErrorInputFIFOOverflow2 (-200361) +#define DAQmxErrorCJCChanNotSpecd (-200360) #define DAQmxErrorCtrExportSignalNotPossible (-200359) -#define -DAQmxErrorRefTrigWhenContinuous (-200358) -#define -DAQmxErrorIncompatibleSensorOutputAndDeviceInputRanges (-200357) -#define -DAQmxErrorCustomScaleNameUsed (-200356) -#define -DAQmxErrorPropertyValNotSupportedByHW (-200355) -#define -DAQmxErrorPropertyValNotValidTermName (-200354) -#define -DAQmxErrorResourcesInUseForProperty (-200353) -#define -DAQmxErrorCJCChanAlreadyUsed (-200352) -#define -DAQmxErrorForwardPolynomialCoefNotSpecd (-200351) -#define -DAQmxErrorTableScaleNumPreScaledAndScaledValsNotEqual (-200350) -#define -DAQmxErrorTableScalePreScaledValsNotSpecd (-200349) -#define -DAQmxErrorTableScaleScaledValsNotSpecd (-200348) -#define -DAQmxErrorIntermediateBufferSizeNotMultipleOfIncr (-200347) -#define -DAQmxErrorEventPulseWidthOutOfRange (-200346) -#define -DAQmxErrorEventDelayOutOfRange (-200345) -#define -DAQmxErrorSampPerChanNotMultipleOfIncr (-200344) -#define -DAQmxErrorCannotCalculateNumSampsTaskNotStarted (-200343) -#define -DAQmxErrorScriptNotInMem (-200342) -#define -DAQmxErrorOnboardMemTooSmall (-200341) -#define -DAQmxErrorReadAllAvailableDataWithoutBuffer (-200340) -#define -DAQmxErrorPulseActiveAtStart (-200339) -#define -DAQmxErrorCalTempNotSupported (-200338) -#define -DAQmxErrorDelayFromSampClkTooLong (-200337) -#define -DAQmxErrorDelayFromSampClkTooShort (-200336) -#define -DAQmxErrorAIConvRateTooHigh (-200335) +#define DAQmxErrorRefTrigWhenContinuous (-200358) +#define DAQmxErrorIncompatibleSensorOutputAndDeviceInputRanges (-200357) +#define DAQmxErrorCustomScaleNameUsed (-200356) +#define DAQmxErrorPropertyValNotSupportedByHW (-200355) +#define DAQmxErrorPropertyValNotValidTermName (-200354) +#define DAQmxErrorResourcesInUseForProperty (-200353) +#define DAQmxErrorCJCChanAlreadyUsed (-200352) +#define DAQmxErrorForwardPolynomialCoefNotSpecd (-200351) +#define DAQmxErrorTableScaleNumPreScaledAndScaledValsNotEqual (-200350) +#define DAQmxErrorTableScalePreScaledValsNotSpecd (-200349) +#define DAQmxErrorTableScaleScaledValsNotSpecd (-200348) +#define DAQmxErrorIntermediateBufferSizeNotMultipleOfIncr (-200347) +#define DAQmxErrorEventPulseWidthOutOfRange (-200346) +#define DAQmxErrorEventDelayOutOfRange (-200345) +#define DAQmxErrorSampPerChanNotMultipleOfIncr (-200344) +#define DAQmxErrorCannotCalculateNumSampsTaskNotStarted (-200343) +#define DAQmxErrorScriptNotInMem (-200342) +#define DAQmxErrorOnboardMemTooSmall (-200341) +#define DAQmxErrorReadAllAvailableDataWithoutBuffer (-200340) +#define DAQmxErrorPulseActiveAtStart (-200339) +#define DAQmxErrorCalTempNotSupported (-200338) +#define DAQmxErrorDelayFromSampClkTooLong (-200337) +#define DAQmxErrorDelayFromSampClkTooShort (-200336) +#define DAQmxErrorAIConvRateTooHigh (-200335) #define DAQmxErrorDelayFromStartTrigTooLong (-200334) -#define -DAQmxErrorDelayFromStartTrigTooShort (-200333) -#define -DAQmxErrorSampRateTooHigh (-200332) -#define -DAQmxErrorSampRateTooLow (-200331) -#define -DAQmxErrorPFI0UsedForAnalogAndDigitalSrc (-200330) -#define -DAQmxErrorPrimingCfgFIFO (-200329) -#define -DAQmxErrorCannotOpenTopologyCfgFile (-200328) -#define -DAQmxErrorInvalidDTInsideWfmDataType (-200327) -#define -DAQmxErrorRouteSrcAndDestSame (-200326) -#define -DAQmxErrorReversePolynomialCoefNotSpecd (-200325) -#define -DAQmxErrorDevAbsentOrUnavailable (-200324) -#define -DAQmxErrorNoAdvTrigForMultiDevScan (-200323) -#define -DAQmxErrorInterruptsInsufficientDataXferMech (-200322) -#define -DAQmxErrorInvalidAttentuationBasedOnMinMax (-200321) -#define -DAQmxErrorCabledModuleCannotRouteSSH (-200320) -#define -DAQmxErrorCabledModuleCannotRouteConvClk (-200319) -#define -DAQmxErrorInvalidExcitValForScaling (-200318) -#define -DAQmxErrorNoDevMemForScript (-200317) -#define -DAQmxErrorScriptDataUnderflow (-200316) -#define -DAQmxErrorNoDevMemForWaveform (-200315) -#define -DAQmxErrorStreamDCMBecameUnlocked (-200314) -#define -DAQmxErrorStreamDCMLock (-200313) -#define -DAQmxErrorWaveformNotInMem (-200312) -#define -DAQmxErrorWaveformWriteOutOfBounds (-200311) -#define -DAQmxErrorWaveformPreviouslyAllocated (-200310) +#define DAQmxErrorDelayFromStartTrigTooShort (-200333) +#define DAQmxErrorSampRateTooHigh (-200332) +#define DAQmxErrorSampRateTooLow (-200331) +#define DAQmxErrorPFI0UsedForAnalogAndDigitalSrc (-200330) +#define DAQmxErrorPrimingCfgFIFO (-200329) +#define DAQmxErrorCannotOpenTopologyCfgFile (-200328) +#define DAQmxErrorInvalidDTInsideWfmDataType (-200327) +#define DAQmxErrorRouteSrcAndDestSame (-200326) +#define DAQmxErrorReversePolynomialCoefNotSpecd (-200325) +#define DAQmxErrorDevAbsentOrUnavailable (-200324) +#define DAQmxErrorNoAdvTrigForMultiDevScan (-200323) +#define DAQmxErrorInterruptsInsufficientDataXferMech (-200322) +#define DAQmxErrorInvalidAttentuationBasedOnMinMax (-200321) +#define DAQmxErrorCabledModuleCannotRouteSSH (-200320) +#define DAQmxErrorCabledModuleCannotRouteConvClk (-200319) +#define DAQmxErrorInvalidExcitValForScaling (-200318) +#define DAQmxErrorNoDevMemForScript (-200317) +#define DAQmxErrorScriptDataUnderflow (-200316) +#define DAQmxErrorNoDevMemForWaveform (-200315) +#define DAQmxErrorStreamDCMBecameUnlocked (-200314) +#define DAQmxErrorStreamDCMLock (-200313) +#define DAQmxErrorWaveformNotInMem (-200312) +#define DAQmxErrorWaveformWriteOutOfBounds (-200311) +#define DAQmxErrorWaveformPreviouslyAllocated (-200310) #define DAQmxErrorSampClkTbMasterTbDivNotAppropriateForSampTbSrc (-200309) -#define -DAQmxErrorSampTbRateSampTbSrcMismatch (-200308) -#define -DAQmxErrorMasterTbRateMasterTbSrcMismatch (-200307) -#define -DAQmxErrorSampsPerChanTooBig (-200306) -#define -DAQmxErrorFinitePulseTrainNotPossible (-200305) -#define -DAQmxErrorExtMasterTimebaseRateNotSpecified (-200304) -#define -DAQmxErrorExtSampClkSrcNotSpecified (-200303) -#define -DAQmxErrorInputSignalSlowerThanMeasTime (-200302) -#define -DAQmxErrorCannotUpdatePulseGenProperty (-200301) -#define -DAQmxErrorInvalidTimingType (-200300) -#define -DAQmxErrorPropertyUnavailWhenUsingOnboardMemory (-200297) -#define -DAQmxErrorCannotWriteAfterStartWithOnboardMemory (-200295) -#define -DAQmxErrorNotEnoughSampsWrittenForInitialXferRqstCondition (-200294) -#define -DAQmxErrorNoMoreSpace (-200293) -#define -DAQmxErrorSamplesCanNotYetBeWritten (-200292) -#define -DAQmxErrorGenStoppedToPreventIntermediateBufferRegenOfOldSamples (-200291) -#define -DAQmxErrorGenStoppedToPreventRegenOfOldSamples (-200290) -#define -DAQmxErrorSamplesNoLongerWriteable (-200289) -#define -DAQmxErrorSamplesWillNeverBeGenerated (-200288) -#define -DAQmxErrorNegativeWriteSampleNumber (-200287) -#define -DAQmxErrorNoAcqStarted (-200286) -#define -DAQmxErrorSamplesNotYetAvailable (-200284) -#define -DAQmxErrorAcqStoppedToPreventIntermediateBufferOverflow (-200283) -#define -DAQmxErrorNoRefTrigConfigured (-200282) -#define -DAQmxErrorCannotReadRelativeToRefTrigUntilDone (-200281) +#define DAQmxErrorSampTbRateSampTbSrcMismatch (-200308) +#define DAQmxErrorMasterTbRateMasterTbSrcMismatch (-200307) +#define DAQmxErrorSampsPerChanTooBig (-200306) +#define DAQmxErrorFinitePulseTrainNotPossible (-200305) +#define DAQmxErrorExtMasterTimebaseRateNotSpecified (-200304) +#define DAQmxErrorExtSampClkSrcNotSpecified (-200303) +#define DAQmxErrorInputSignalSlowerThanMeasTime (-200302) +#define DAQmxErrorCannotUpdatePulseGenProperty (-200301) +#define DAQmxErrorInvalidTimingType (-200300) +#define DAQmxErrorPropertyUnavailWhenUsingOnboardMemory (-200297) +#define DAQmxErrorCannotWriteAfterStartWithOnboardMemory (-200295) +#define DAQmxErrorNotEnoughSampsWrittenForInitialXferRqstCondition (-200294) +#define DAQmxErrorNoMoreSpace (-200293) +#define DAQmxErrorSamplesCanNotYetBeWritten (-200292) +#define DAQmxErrorGenStoppedToPreventIntermediateBufferRegenOfOldSamples (-200291) +#define DAQmxErrorGenStoppedToPreventRegenOfOldSamples (-200290) +#define DAQmxErrorSamplesNoLongerWriteable (-200289) +#define DAQmxErrorSamplesWillNeverBeGenerated (-200288) +#define DAQmxErrorNegativeWriteSampleNumber (-200287) +#define DAQmxErrorNoAcqStarted (-200286) +#define DAQmxErrorSamplesNotYetAvailable (-200284) +#define DAQmxErrorAcqStoppedToPreventIntermediateBufferOverflow (-200283) +#define DAQmxErrorNoRefTrigConfigured (-200282) +#define DAQmxErrorCannotReadRelativeToRefTrigUntilDone (-200281) #define DAQmxErrorSamplesNoLongerAvailable (-200279) -#define -DAQmxErrorSamplesWillNeverBeAvailable (-200278) -#define -DAQmxErrorNegativeReadSampleNumber (-200277) -#define -DAQmxErrorExternalSampClkAndRefClkThruSameTerm (-200276) -#define -DAQmxErrorExtSampClkRateTooLowForClkIn (-200275) -#define -DAQmxErrorExtSampClkRateTooHighForBackplane (-200274) -#define -DAQmxErrorSampClkRateAndDivCombo (-200273) -#define -DAQmxErrorSampClkRateTooLowForDivDown (-200272) -#define -DAQmxErrorProductOfAOMinAndGainTooSmall (-200271) -#define -DAQmxErrorInterpolationRateNotPossible (-200270) -#define -DAQmxErrorOffsetTooLarge (-200269) -#define -DAQmxErrorOffsetTooSmall (-200268) -#define -DAQmxErrorProductOfAOMaxAndGainTooLarge (-200267) -#define -DAQmxErrorMinAndMaxNotSymmetric (-200266) -#define -DAQmxErrorInvalidAnalogTrigSrc (-200265) -#define -DAQmxErrorTooManyChansForAnalogRefTrig (-200264) -#define -DAQmxErrorTooManyChansForAnalogPauseTrig (-200263) -#define -DAQmxErrorTrigWhenOnDemandSampTiming (-200262) -#define -DAQmxErrorInconsistentAnalogTrigSettings (-200261) -#define -DAQmxErrorMemMapDataXferModeSampTimingCombo (-200260) -#define -DAQmxErrorInvalidJumperedAttr (-200259) -#define -DAQmxErrorInvalidGainBasedOnMinMax (-200258) -#define -DAQmxErrorInconsistentExcit (-200257) -#define -DAQmxErrorTopologyNotSupportedByCfgTermBlock (-200256) -#define -DAQmxErrorBuiltInTempSensorNotSupported (-200255) +#define DAQmxErrorSamplesWillNeverBeAvailable (-200278) +#define DAQmxErrorNegativeReadSampleNumber (-200277) +#define DAQmxErrorExternalSampClkAndRefClkThruSameTerm (-200276) +#define DAQmxErrorExtSampClkRateTooLowForClkIn (-200275) +#define DAQmxErrorExtSampClkRateTooHighForBackplane (-200274) +#define DAQmxErrorSampClkRateAndDivCombo (-200273) +#define DAQmxErrorSampClkRateTooLowForDivDown (-200272) +#define DAQmxErrorProductOfAOMinAndGainTooSmall (-200271) +#define DAQmxErrorInterpolationRateNotPossible (-200270) +#define DAQmxErrorOffsetTooLarge (-200269) +#define DAQmxErrorOffsetTooSmall (-200268) +#define DAQmxErrorProductOfAOMaxAndGainTooLarge (-200267) +#define DAQmxErrorMinAndMaxNotSymmetric (-200266) +#define DAQmxErrorInvalidAnalogTrigSrc (-200265) +#define DAQmxErrorTooManyChansForAnalogRefTrig (-200264) +#define DAQmxErrorTooManyChansForAnalogPauseTrig (-200263) +#define DAQmxErrorTrigWhenOnDemandSampTiming (-200262) +#define DAQmxErrorInconsistentAnalogTrigSettings (-200261) +#define DAQmxErrorMemMapDataXferModeSampTimingCombo (-200260) +#define DAQmxErrorInvalidJumperedAttr (-200259) +#define DAQmxErrorInvalidGainBasedOnMinMax (-200258) +#define DAQmxErrorInconsistentExcit (-200257) +#define DAQmxErrorTopologyNotSupportedByCfgTermBlock (-200256) +#define DAQmxErrorBuiltInTempSensorNotSupported (-200255) #define DAQmxErrorInvalidTerm (-200254) -#define -DAQmxErrorCannotTristateTerm (-200253) -#define -DAQmxErrorCannotTristateBusyTerm (-200252) -#define -DAQmxErrorNoDMAChansAvailable (-200251) -#define -DAQmxErrorInvalidWaveformLengthWithinLoopInScript (-200250) -#define -DAQmxErrorInvalidSubsetLengthWithinLoopInScript (-200249) -#define -DAQmxErrorMarkerPosInvalidForLoopInScript (-200248) -#define -DAQmxErrorIntegerExpectedInScript (-200247) -#define -DAQmxErrorPLLBecameUnlocked (-200246) -#define -DAQmxErrorPLLLock (-200245) -#define -DAQmxErrorDDCClkOutDCMBecameUnlocked (-200244) -#define -DAQmxErrorDDCClkOutDCMLock (-200243) -#define -DAQmxErrorClkDoublerDCMBecameUnlocked (-200242) -#define -DAQmxErrorClkDoublerDCMLock (-200241) -#define -DAQmxErrorSampClkDCMBecameUnlocked (-200240) -#define -DAQmxErrorSampClkDCMLock (-200239) -#define -DAQmxErrorSampClkTimebaseDCMBecameUnlocked (-200238) -#define -DAQmxErrorSampClkTimebaseDCMLock (-200237) -#define -DAQmxErrorAttrCannotBeReset (-200236) -#define -DAQmxErrorExplanationNotFound (-200235) -#define -DAQmxErrorWriteBufferTooSmall (-200234) -#define -DAQmxErrorSpecifiedAttrNotValid (-200233) -#define -DAQmxErrorAttrCannotBeRead (-200232) -#define -DAQmxErrorAttrCannotBeSet (-200231) -#define -DAQmxErrorNULLPtrForC_Api (-200230) +#define DAQmxErrorCannotTristateTerm (-200253) +#define DAQmxErrorCannotTristateBusyTerm (-200252) +#define DAQmxErrorNoDMAChansAvailable (-200251) +#define DAQmxErrorInvalidWaveformLengthWithinLoopInScript (-200250) +#define DAQmxErrorInvalidSubsetLengthWithinLoopInScript (-200249) +#define DAQmxErrorMarkerPosInvalidForLoopInScript (-200248) +#define DAQmxErrorIntegerExpectedInScript (-200247) +#define DAQmxErrorPLLBecameUnlocked (-200246) +#define DAQmxErrorPLLLock (-200245) +#define DAQmxErrorDDCClkOutDCMBecameUnlocked (-200244) +#define DAQmxErrorDDCClkOutDCMLock (-200243) +#define DAQmxErrorClkDoublerDCMBecameUnlocked (-200242) +#define DAQmxErrorClkDoublerDCMLock (-200241) +#define DAQmxErrorSampClkDCMBecameUnlocked (-200240) +#define DAQmxErrorSampClkDCMLock (-200239) +#define DAQmxErrorSampClkTimebaseDCMBecameUnlocked (-200238) +#define DAQmxErrorSampClkTimebaseDCMLock (-200237) +#define DAQmxErrorAttrCannotBeReset (-200236) +#define DAQmxErrorExplanationNotFound (-200235) +#define DAQmxErrorWriteBufferTooSmall (-200234) +#define DAQmxErrorSpecifiedAttrNotValid (-200233) +#define DAQmxErrorAttrCannotBeRead (-200232) +#define DAQmxErrorAttrCannotBeSet (-200231) +#define DAQmxErrorNULLPtrForC_Api (-200230) #define DAQmxErrorReadBufferTooSmall (-200229) -#define -DAQmxErrorBufferTooSmallForString (-200228) -#define -DAQmxErrorNoAvailTrigLinesOnDevice (-200227) -#define -DAQmxErrorTrigBusLineNotAvail (-200226) -#define -DAQmxErrorCouldNotReserveRequestedTrigLine (-200225) -#define -DAQmxErrorTrigLineNotFound (-200224) -#define -DAQmxErrorSCXI1126ThreshHystCombination (-200223) -#define -DAQmxErrorAcqStoppedToPreventInputBufferOverwrite (-200222) -#define -DAQmxErrorTimeoutExceeded (-200221) -#define -DAQmxErrorInvalidDeviceID (-200220) -#define -DAQmxErrorInvalidAOChanOrder (-200219) -#define -DAQmxErrorSampleTimingTypeAndDataXferMode (-200218) -#define -DAQmxErrorBufferWithOnDemandSampTiming (-200217) -#define -DAQmxErrorBufferAndDataXferMode (-200216) -#define -DAQmxErrorMemMapAndBuffer (-200215) -#define -DAQmxErrorNoAnalogTrigHW (-200214) -#define -DAQmxErrorTooManyPretrigPlusMinPostTrigSamps (-200213) -#define -DAQmxErrorInconsistentUnitsSpecified (-200212) -#define -DAQmxErrorMultipleRelaysForSingleRelayOp (-200211) -#define -DAQmxErrorMultipleDevIDsPerChassisSpecifiedInList (-200210) -#define -DAQmxErrorDuplicateDevIDInList (-200209) -#define -DAQmxErrorInvalidRangeStatementCharInList (-200208) -#define -DAQmxErrorInvalidDeviceIDInList (-200207) -#define -DAQmxErrorTriggerPolarityConflict (-200206) -#define -DAQmxErrorCannotScanWithCurrentTopology (-200205) +#define DAQmxErrorBufferTooSmallForString (-200228) +#define DAQmxErrorNoAvailTrigLinesOnDevice (-200227) +#define DAQmxErrorTrigBusLineNotAvail (-200226) +#define DAQmxErrorCouldNotReserveRequestedTrigLine (-200225) +#define DAQmxErrorTrigLineNotFound (-200224) +#define DAQmxErrorSCXI1126ThreshHystCombination (-200223) +#define DAQmxErrorAcqStoppedToPreventInputBufferOverwrite (-200222) +#define DAQmxErrorTimeoutExceeded (-200221) +#define DAQmxErrorInvalidDeviceID (-200220) +#define DAQmxErrorInvalidAOChanOrder (-200219) +#define DAQmxErrorSampleTimingTypeAndDataXferMode (-200218) +#define DAQmxErrorBufferWithOnDemandSampTiming (-200217) +#define DAQmxErrorBufferAndDataXferMode (-200216) +#define DAQmxErrorMemMapAndBuffer (-200215) +#define DAQmxErrorNoAnalogTrigHW (-200214) +#define DAQmxErrorTooManyPretrigPlusMinPostTrigSamps (-200213) +#define DAQmxErrorInconsistentUnitsSpecified (-200212) +#define DAQmxErrorMultipleRelaysForSingleRelayOp (-200211) +#define DAQmxErrorMultipleDevIDsPerChassisSpecifiedInList (-200210) +#define DAQmxErrorDuplicateDevIDInList (-200209) +#define DAQmxErrorInvalidRangeStatementCharInList (-200208) +#define DAQmxErrorInvalidDeviceIDInList (-200207) +#define DAQmxErrorTriggerPolarityConflict (-200206) +#define DAQmxErrorCannotScanWithCurrentTopology (-200205) #define DAQmxErrorUnexpectedIdentifierInFullySpecifiedPathInList (-200204) -#define -DAQmxErrorSwitchCannotDriveMultipleTrigLines (-200203) -#define -DAQmxErrorInvalidRelayName (-200202) -#define -DAQmxErrorSwitchScanlistTooBig (-200201) -#define -DAQmxErrorSwitchChanInUse (-200200) -#define -DAQmxErrorSwitchNotResetBeforeScan (-200199) -#define -DAQmxErrorInvalidTopology (-200198) -#define -DAQmxErrorAttrNotSupported (-200197) -#define -DAQmxErrorUnexpectedEndOfActionsInList (-200196) -#define -DAQmxErrorPowerLimitExceeded (-200195) -#define -DAQmxErrorHWUnexpectedlyPoweredOffAndOn (-200194) -#define -DAQmxErrorSwitchOperationNotSupported (-200193) -#define -DAQmxErrorOnlyContinuousScanSupported (-200192) -#define -DAQmxErrorSwitchDifferentTopologyWhenScanning (-200191) -#define -DAQmxErrorDisconnectPathNotSameAsExistingPath (-200190) -#define -DAQmxErrorConnectionNotPermittedOnChanReservedForRouting (-200189) -#define -DAQmxErrorCannotConnectSrcChans (-200188) -#define -DAQmxErrorCannotConnectChannelToItself (-200187) -#define -DAQmxErrorChannelNotReservedForRouting (-200186) -#define -DAQmxErrorCannotConnectChansDirectly (-200185) -#define -DAQmxErrorChansAlreadyConnected (-200184) -#define -DAQmxErrorChanDuplicatedInPath (-200183) -#define -DAQmxErrorNoPathToDisconnect (-200182) -#define -DAQmxErrorInvalidSwitchChan (-200181) -#define -DAQmxErrorNoPathAvailableBetween2SwitchChans (-200180) +#define DAQmxErrorSwitchCannotDriveMultipleTrigLines (-200203) +#define DAQmxErrorInvalidRelayName (-200202) +#define DAQmxErrorSwitchScanlistTooBig (-200201) +#define DAQmxErrorSwitchChanInUse (-200200) +#define DAQmxErrorSwitchNotResetBeforeScan (-200199) +#define DAQmxErrorInvalidTopology (-200198) +#define DAQmxErrorAttrNotSupported (-200197) +#define DAQmxErrorUnexpectedEndOfActionsInList (-200196) +#define DAQmxErrorPowerLimitExceeded (-200195) +#define DAQmxErrorHWUnexpectedlyPoweredOffAndOn (-200194) +#define DAQmxErrorSwitchOperationNotSupported (-200193) +#define DAQmxErrorOnlyContinuousScanSupported (-200192) +#define DAQmxErrorSwitchDifferentTopologyWhenScanning (-200191) +#define DAQmxErrorDisconnectPathNotSameAsExistingPath (-200190) +#define DAQmxErrorConnectionNotPermittedOnChanReservedForRouting (-200189) +#define DAQmxErrorCannotConnectSrcChans (-200188) +#define DAQmxErrorCannotConnectChannelToItself (-200187) +#define DAQmxErrorChannelNotReservedForRouting (-200186) +#define DAQmxErrorCannotConnectChansDirectly (-200185) +#define DAQmxErrorChansAlreadyConnected (-200184) +#define DAQmxErrorChanDuplicatedInPath (-200183) +#define DAQmxErrorNoPathToDisconnect (-200182) +#define DAQmxErrorInvalidSwitchChan (-200181) +#define DAQmxErrorNoPathAvailableBetween2SwitchChans (-200180) #define DAQmxErrorExplicitConnectionExists (-200179) -#define -DAQmxErrorSwitchDifferentSettlingTimeWhenScanning (-200178) -#define -DAQmxErrorOperationOnlyPermittedWhileScanning (-200177) -#define -DAQmxErrorOperationNotPermittedWhileScanning (-200176) -#define -DAQmxErrorHardwareNotResponding (-200175) -#define -DAQmxErrorInvalidSampAndMasterTimebaseRateCombo (-200173) -#define -DAQmxErrorNonZeroBufferSizeInProgIOXfer (-200172) -#define -DAQmxErrorVirtualChanNameUsed (-200171) -#define -DAQmxErrorPhysicalChanDoesNotExist (-200170) -#define -DAQmxErrorMemMapOnlyForProgIOXfer (-200169) -#define -DAQmxErrorTooManyChans (-200168) -#define -DAQmxErrorCannotHaveCJTempWithOtherChans (-200167) -#define -DAQmxErrorOutputBufferUnderwrite (-200166) -#define -DAQmxErrorSensorInvalidCompletionResistance (-200163) -#define -DAQmxErrorVoltageExcitIncompatibleWith2WireCfg (-200162) -#define -DAQmxErrorIntExcitSrcNotAvailable (-200161) -#define -DAQmxErrorCannotCreateChannelAfterTaskVerified (-200160) -#define -DAQmxErrorLinesReservedForSCXIControl (-200159) -#define -DAQmxErrorCouldNotReserveLinesForSCXIControl (-200158) -#define -DAQmxErrorCalibrationFailed (-200157) -#define -DAQmxErrorReferenceFrequencyInvalid (-200156) -#define -DAQmxErrorReferenceResistanceInvalid (-200155) -#define -DAQmxErrorReferenceCurrentInvalid (-200154) -#define -DAQmxErrorReferenceVoltageInvalid (-200153) -#define -DAQmxErrorEEPROMDataInvalid (-200152) +#define DAQmxErrorSwitchDifferentSettlingTimeWhenScanning (-200178) +#define DAQmxErrorOperationOnlyPermittedWhileScanning (-200177) +#define DAQmxErrorOperationNotPermittedWhileScanning (-200176) +#define DAQmxErrorHardwareNotResponding (-200175) +#define DAQmxErrorInvalidSampAndMasterTimebaseRateCombo (-200173) +#define DAQmxErrorNonZeroBufferSizeInProgIOXfer (-200172) +#define DAQmxErrorVirtualChanNameUsed (-200171) +#define DAQmxErrorPhysicalChanDoesNotExist (-200170) +#define DAQmxErrorMemMapOnlyForProgIOXfer (-200169) +#define DAQmxErrorTooManyChans (-200168) +#define DAQmxErrorCannotHaveCJTempWithOtherChans (-200167) +#define DAQmxErrorOutputBufferUnderwrite (-200166) +#define DAQmxErrorSensorInvalidCompletionResistance (-200163) +#define DAQmxErrorVoltageExcitIncompatibleWith2WireCfg (-200162) +#define DAQmxErrorIntExcitSrcNotAvailable (-200161) +#define DAQmxErrorCannotCreateChannelAfterTaskVerified (-200160) +#define DAQmxErrorLinesReservedForSCXIControl (-200159) +#define DAQmxErrorCouldNotReserveLinesForSCXIControl (-200158) +#define DAQmxErrorCalibrationFailed (-200157) +#define DAQmxErrorReferenceFrequencyInvalid (-200156) +#define DAQmxErrorReferenceResistanceInvalid (-200155) +#define DAQmxErrorReferenceCurrentInvalid (-200154) +#define DAQmxErrorReferenceVoltageInvalid (-200153) +#define DAQmxErrorEEPROMDataInvalid (-200152) #define DAQmxErrorCabledModuleNotCapableOfRoutingAI (-200151) -#define -DAQmxErrorChannelNotAvailableInParallelMode (-200150) -#define -DAQmxErrorExternalTimebaseRateNotKnownForDelay (-200149) -#define -DAQmxErrorFREQOUTCannotProduceDesiredFrequency (-200148) -#define -DAQmxErrorMultipleCounterInputTask (-200147) -#define -DAQmxErrorCounterStartPauseTriggerConflict (-200146) -#define -DAQmxErrorCounterInputPauseTriggerAndSampleClockInvalid (-200145) -#define -DAQmxErrorCounterOutputPauseTriggerInvalid (-200144) -#define -DAQmxErrorCounterTimebaseRateNotSpecified (-200143) -#define -DAQmxErrorCounterTimebaseRateNotFound (-200142) -#define -DAQmxErrorCounterOverflow (-200141) -#define -DAQmxErrorCounterNoTimebaseEdgesBetweenGates (-200140) -#define -DAQmxErrorCounterMaxMinRangeFreq (-200139) -#define -DAQmxErrorCounterMaxMinRangeTime (-200138) -#define -DAQmxErrorSuitableTimebaseNotFoundTimeCombo (-200137) -#define -DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo (-200136) -#define -DAQmxErrorInternalTimebaseSourceDivisorCombo (-200135) -#define -DAQmxErrorInternalTimebaseSourceRateCombo (-200134) -#define -DAQmxErrorInternalTimebaseRateDivisorSourceCombo (-200133) -#define -DAQmxErrorExternalTimebaseRateNotknownForRate (-200132) -#define -DAQmxErrorAnalogTrigChanNotFirstInScanList (-200131) -#define -DAQmxErrorNoDivisorForExternalSignal (-200130) -#define -DAQmxErrorAttributeInconsistentAcrossRepeatedPhysicalChannels (-200128) -#define -DAQmxErrorCannotHandshakeWithPort0 (-200127) -#define -DAQmxErrorControlLineConflictOnPortC (-200126) +#define DAQmxErrorChannelNotAvailableInParallelMode (-200150) +#define DAQmxErrorExternalTimebaseRateNotKnownForDelay (-200149) +#define DAQmxErrorFREQOUTCannotProduceDesiredFrequency (-200148) +#define DAQmxErrorMultipleCounterInputTask (-200147) +#define DAQmxErrorCounterStartPauseTriggerConflict (-200146) +#define DAQmxErrorCounterInputPauseTriggerAndSampleClockInvalid (-200145) +#define DAQmxErrorCounterOutputPauseTriggerInvalid (-200144) +#define DAQmxErrorCounterTimebaseRateNotSpecified (-200143) +#define DAQmxErrorCounterTimebaseRateNotFound (-200142) +#define DAQmxErrorCounterOverflow (-200141) +#define DAQmxErrorCounterNoTimebaseEdgesBetweenGates (-200140) +#define DAQmxErrorCounterMaxMinRangeFreq (-200139) +#define DAQmxErrorCounterMaxMinRangeTime (-200138) +#define DAQmxErrorSuitableTimebaseNotFoundTimeCombo (-200137) +#define DAQmxErrorSuitableTimebaseNotFoundFrequencyCombo (-200136) +#define DAQmxErrorInternalTimebaseSourceDivisorCombo (-200135) +#define DAQmxErrorInternalTimebaseSourceRateCombo (-200134) +#define DAQmxErrorInternalTimebaseRateDivisorSourceCombo (-200133) +#define DAQmxErrorExternalTimebaseRateNotknownForRate (-200132) +#define DAQmxErrorAnalogTrigChanNotFirstInScanList (-200131) +#define DAQmxErrorNoDivisorForExternalSignal (-200130) +#define DAQmxErrorAttributeInconsistentAcrossRepeatedPhysicalChannels (-200128) +#define DAQmxErrorCannotHandshakeWithPort0 (-200127) +#define DAQmxErrorControlLineConflictOnPortC (-200126) #define DAQmxErrorLines4To7ConfiguredForOutput (-200125) -#define -DAQmxErrorLines4To7ConfiguredForInput (-200124) -#define -DAQmxErrorLines0To3ConfiguredForOutput (-200123) -#define -DAQmxErrorLines0To3ConfiguredForInput (-200122) -#define -DAQmxErrorPortConfiguredForOutput (-200121) -#define -DAQmxErrorPortConfiguredForInput (-200120) -#define -DAQmxErrorPortConfiguredForStaticDigitalOps (-200119) -#define -DAQmxErrorPortReservedForHandshaking (-200118) -#define -DAQmxErrorPortDoesNotSupportHandshakingDataIO (-200117) -#define -DAQmxErrorCannotTristate8255OutputLines (-200116) -#define -DAQmxErrorTemperatureOutOfRangeForCalibration (-200113) -#define -DAQmxErrorCalibrationHandleInvalid (-200112) -#define -DAQmxErrorPasswordRequired (-200111) -#define -DAQmxErrorIncorrectPassword (-200110) -#define -DAQmxErrorPasswordTooLong (-200109) -#define -DAQmxErrorCalibrationSessionAlreadyOpen (-200108) -#define -DAQmxErrorSCXIModuleIncorrect (-200107) -#define -DAQmxErrorAttributeInconsistentAcrossChannelsOnDevice (-200106) -#define -DAQmxErrorSCXI1122ResistanceChanNotSupportedForCfg (-200105) -#define -DAQmxErrorBracketPairingMismatchInList (-200104) -#define -DAQmxErrorInconsistentNumSamplesToWrite (-200103) -#define -DAQmxErrorIncorrectDigitalPattern (-200102) -#define -DAQmxErrorIncorrectNumChannelsToWrite (-200101) -#define -DAQmxErrorIncorrectReadFunction (-200100) -#define -DAQmxErrorPhysicalChannelNotSpecified (-200099) +#define DAQmxErrorLines4To7ConfiguredForInput (-200124) +#define DAQmxErrorLines0To3ConfiguredForOutput (-200123) +#define DAQmxErrorLines0To3ConfiguredForInput (-200122) +#define DAQmxErrorPortConfiguredForOutput (-200121) +#define DAQmxErrorPortConfiguredForInput (-200120) +#define DAQmxErrorPortConfiguredForStaticDigitalOps (-200119) +#define DAQmxErrorPortReservedForHandshaking (-200118) +#define DAQmxErrorPortDoesNotSupportHandshakingDataIO (-200117) +#define DAQmxErrorCannotTristate8255OutputLines (-200116) +#define DAQmxErrorTemperatureOutOfRangeForCalibration (-200113) +#define DAQmxErrorCalibrationHandleInvalid (-200112) +#define DAQmxErrorPasswordRequired (-200111) +#define DAQmxErrorIncorrectPassword (-200110) +#define DAQmxErrorPasswordTooLong (-200109) +#define DAQmxErrorCalibrationSessionAlreadyOpen (-200108) +#define DAQmxErrorSCXIModuleIncorrect (-200107) +#define DAQmxErrorAttributeInconsistentAcrossChannelsOnDevice (-200106) +#define DAQmxErrorSCXI1122ResistanceChanNotSupportedForCfg (-200105) +#define DAQmxErrorBracketPairingMismatchInList (-200104) +#define DAQmxErrorInconsistentNumSamplesToWrite (-200103) +#define DAQmxErrorIncorrectDigitalPattern (-200102) +#define DAQmxErrorIncorrectNumChannelsToWrite (-200101) +#define DAQmxErrorIncorrectReadFunction (-200100) +#define DAQmxErrorPhysicalChannelNotSpecified (-200099) #define DAQmxErrorMoreThanOneTerminal (-200098) -#define -DAQmxErrorMoreThanOneActiveChannelSpecified (-200097) -#define -DAQmxErrorInvalidNumberSamplesToRead (-200096) -#define -DAQmxErrorAnalogWaveformExpected (-200095) -#define -DAQmxErrorDigitalWaveformExpected (-200094) -#define -DAQmxErrorActiveChannelNotSpecified (-200093) -#define -DAQmxErrorFunctionNotSupportedForDeviceTasks (-200092) -#define -DAQmxErrorFunctionNotInLibrary (-200091) -#define -DAQmxErrorLibraryNotPresent (-200090) -#define -DAQmxErrorDuplicateTask (-200089) -#define -DAQmxErrorInvalidTask (-200088) -#define -DAQmxErrorInvalidChannel (-200087) -#define -DAQmxErrorInvalidSyntaxForPhysicalChannelRange (-200086) -#define -DAQmxErrorMinNotLessThanMax (-200082) -#define -DAQmxErrorSampleRateNumChansConvertPeriodCombo (-200081) -#define -DAQmxErrorAODuringCounter1DMAConflict (-200079) -#define -DAQmxErrorAIDuringCounter0DMAConflict (-200078) -#define -DAQmxErrorInvalidAttributeValue (-200077) -#define -DAQmxErrorSuppliedCurrentDataOutsideSpecifiedRange (-200076) -#define -DAQmxErrorSuppliedVoltageDataOutsideSpecifiedRange (-200075) -#define -DAQmxErrorCannotStoreCalConst (-200074) -#define -DAQmxErrorSCXIModuleNotFound (-200073) -#define -DAQmxErrorDuplicatePhysicalChansNotSupported (-200072) -#define -DAQmxErrorTooManyPhysicalChansInList (-200071) -#define -DAQmxErrorInvalidAdvanceEventTriggerType (-200070) +#define DAQmxErrorMoreThanOneActiveChannelSpecified (-200097) +#define DAQmxErrorInvalidNumberSamplesToRead (-200096) +#define DAQmxErrorAnalogWaveformExpected (-200095) +#define DAQmxErrorDigitalWaveformExpected (-200094) +#define DAQmxErrorActiveChannelNotSpecified (-200093) +#define DAQmxErrorFunctionNotSupportedForDeviceTasks (-200092) +#define DAQmxErrorFunctionNotInLibrary (-200091) +#define DAQmxErrorLibraryNotPresent (-200090) +#define DAQmxErrorDuplicateTask (-200089) +#define DAQmxErrorInvalidTask (-200088) +#define DAQmxErrorInvalidChannel (-200087) +#define DAQmxErrorInvalidSyntaxForPhysicalChannelRange (-200086) +#define DAQmxErrorMinNotLessThanMax (-200082) +#define DAQmxErrorSampleRateNumChansConvertPeriodCombo (-200081) +#define DAQmxErrorAODuringCounter1DMAConflict (-200079) +#define DAQmxErrorAIDuringCounter0DMAConflict (-200078) +#define DAQmxErrorInvalidAttributeValue (-200077) +#define DAQmxErrorSuppliedCurrentDataOutsideSpecifiedRange (-200076) +#define DAQmxErrorSuppliedVoltageDataOutsideSpecifiedRange (-200075) +#define DAQmxErrorCannotStoreCalConst (-200074) +#define DAQmxErrorSCXIModuleNotFound (-200073) +#define DAQmxErrorDuplicatePhysicalChansNotSupported (-200072) +#define DAQmxErrorTooManyPhysicalChansInList (-200071) +#define DAQmxErrorInvalidAdvanceEventTriggerType (-200070) #define DAQmxErrorDeviceIsNotAValidSwitch (-200069) -#define -DAQmxErrorDeviceDoesNotSupportScanning (-200068) -#define -DAQmxErrorScanListCannotBeTimed (-200067) -#define -DAQmxErrorConnectOperatorInvalidAtPointInList (-200066) -#define -DAQmxErrorUnexpectedSwitchActionInList (-200065) -#define -DAQmxErrorUnexpectedSeparatorInList (-200064) -#define -DAQmxErrorExpectedTerminatorInList (-200063) -#define -DAQmxErrorExpectedConnectOperatorInList (-200062) -#define -DAQmxErrorExpectedSeparatorInList (-200061) -#define -DAQmxErrorFullySpecifiedPathInListContainsRange (-200060) -#define -DAQmxErrorConnectionSeparatorAtEndOfList (-200059) -#define -DAQmxErrorIdentifierInListTooLong (-200058) -#define -DAQmxErrorDuplicateDeviceIDInListWhenSettling (-200057) -#define -DAQmxErrorChannelNameNotSpecifiedInList (-200056) -#define -DAQmxErrorDeviceIDNotSpecifiedInList (-200055) -#define -DAQmxErrorSemicolonDoesNotFollowRangeInList (-200054) -#define -DAQmxErrorSwitchActionInListSpansMultipleDevices (-200053) -#define -DAQmxErrorRangeWithoutAConnectActionInList (-200052) -#define -DAQmxErrorInvalidIdentifierFollowingSeparatorInList (-200051) -#define -DAQmxErrorInvalidChannelNameInList (-200050) -#define -DAQmxErrorInvalidNumberInRepeatStatementInList (-200049) -#define -DAQmxErrorInvalidTriggerLineInList (-200048) -#define -DAQmxErrorInvalidIdentifierInListFollowingDeviceID (-200047) -#define -DAQmxErrorInvalidIdentifierInListAtEndOfSwitchAction (-200046) -#define -DAQmxErrorDeviceRemoved (-200045) +#define DAQmxErrorDeviceDoesNotSupportScanning (-200068) +#define DAQmxErrorScanListCannotBeTimed (-200067) +#define DAQmxErrorConnectOperatorInvalidAtPointInList (-200066) +#define DAQmxErrorUnexpectedSwitchActionInList (-200065) +#define DAQmxErrorUnexpectedSeparatorInList (-200064) +#define DAQmxErrorExpectedTerminatorInList (-200063) +#define DAQmxErrorExpectedConnectOperatorInList (-200062) +#define DAQmxErrorExpectedSeparatorInList (-200061) +#define DAQmxErrorFullySpecifiedPathInListContainsRange (-200060) +#define DAQmxErrorConnectionSeparatorAtEndOfList (-200059) +#define DAQmxErrorIdentifierInListTooLong (-200058) +#define DAQmxErrorDuplicateDeviceIDInListWhenSettling (-200057) +#define DAQmxErrorChannelNameNotSpecifiedInList (-200056) +#define DAQmxErrorDeviceIDNotSpecifiedInList (-200055) +#define DAQmxErrorSemicolonDoesNotFollowRangeInList (-200054) +#define DAQmxErrorSwitchActionInListSpansMultipleDevices (-200053) +#define DAQmxErrorRangeWithoutAConnectActionInList (-200052) +#define DAQmxErrorInvalidIdentifierFollowingSeparatorInList (-200051) +#define DAQmxErrorInvalidChannelNameInList (-200050) +#define DAQmxErrorInvalidNumberInRepeatStatementInList (-200049) +#define DAQmxErrorInvalidTriggerLineInList (-200048) +#define DAQmxErrorInvalidIdentifierInListFollowingDeviceID (-200047) +#define DAQmxErrorInvalidIdentifierInListAtEndOfSwitchAction (-200046) +#define DAQmxErrorDeviceRemoved (-200045) #define DAQmxErrorRoutingPathNotAvailable (-200044) -#define -DAQmxErrorRoutingHardwareBusy (-200043) -#define -DAQmxErrorRequestedSignalInversionForRoutingNotPossible (-200042) -#define -DAQmxErrorInvalidRoutingDestinationTerminalName (-200041) -#define -DAQmxErrorInvalidRoutingSourceTerminalName (-200040) -#define -DAQmxErrorRoutingNotSupportedForDevice (-200039) -#define -DAQmxErrorWaitIsLastInstructionOfLoopInScript (-200038) -#define -DAQmxErrorClearIsLastInstructionOfLoopInScript (-200037) -#define -DAQmxErrorInvalidLoopIterationsInScript (-200036) -#define -DAQmxErrorRepeatLoopNestingTooDeepInScript (-200035) -#define -DAQmxErrorMarkerPositionOutsideSubsetInScript (-200034) -#define -DAQmxErrorSubsetStartOffsetNotAlignedInScript (-200033) -#define -DAQmxErrorInvalidSubsetLengthInScript (-200032) -#define -DAQmxErrorMarkerPositionNotAlignedInScript (-200031) -#define -DAQmxErrorSubsetOutsideWaveformInScript (-200030) -#define -DAQmxErrorMarkerOutsideWaveformInScript (-200029) -#define -DAQmxErrorWaveformInScriptNotInMem (-200028) -#define -DAQmxErrorKeywordExpectedInScript (-200027) -#define -DAQmxErrorBufferNameExpectedInScript (-200026) -#define -DAQmxErrorProcedureNameExpectedInScript (-200025) -#define -DAQmxErrorScriptHasInvalidIdentifier (-200024) -#define -DAQmxErrorScriptHasInvalidCharacter (-200023) -#define -DAQmxErrorResourceAlreadyReserved (-200022) -#define -DAQmxErrorSelfTestFailed (-200020) -#define -DAQmxErrorADCOverrun (-200019) +#define DAQmxErrorRoutingHardwareBusy (-200043) +#define DAQmxErrorRequestedSignalInversionForRoutingNotPossible (-200042) +#define DAQmxErrorInvalidRoutingDestinationTerminalName (-200041) +#define DAQmxErrorInvalidRoutingSourceTerminalName (-200040) +#define DAQmxErrorRoutingNotSupportedForDevice (-200039) +#define DAQmxErrorWaitIsLastInstructionOfLoopInScript (-200038) +#define DAQmxErrorClearIsLastInstructionOfLoopInScript (-200037) +#define DAQmxErrorInvalidLoopIterationsInScript (-200036) +#define DAQmxErrorRepeatLoopNestingTooDeepInScript (-200035) +#define DAQmxErrorMarkerPositionOutsideSubsetInScript (-200034) +#define DAQmxErrorSubsetStartOffsetNotAlignedInScript (-200033) +#define DAQmxErrorInvalidSubsetLengthInScript (-200032) +#define DAQmxErrorMarkerPositionNotAlignedInScript (-200031) +#define DAQmxErrorSubsetOutsideWaveformInScript (-200030) +#define DAQmxErrorMarkerOutsideWaveformInScript (-200029) +#define DAQmxErrorWaveformInScriptNotInMem (-200028) +#define DAQmxErrorKeywordExpectedInScript (-200027) +#define DAQmxErrorBufferNameExpectedInScript (-200026) +#define DAQmxErrorProcedureNameExpectedInScript (-200025) +#define DAQmxErrorScriptHasInvalidIdentifier (-200024) +#define DAQmxErrorScriptHasInvalidCharacter (-200023) +#define DAQmxErrorResourceAlreadyReserved (-200022) +#define DAQmxErrorSelfTestFailed (-200020) +#define DAQmxErrorADCOverrun (-200019) #define DAQmxErrorDACUnderflow (-200018) -#define -DAQmxErrorInputFIFOUnderflow (-200017) -#define -DAQmxErrorOutputFIFOUnderflow (-200016) -#define -DAQmxErrorSCXISerialCommunication (-200015) -#define -DAQmxErrorDigitalTerminalSpecifiedMoreThanOnce (-200014) -#define -DAQmxErrorDigitalOutputNotSupported (-200012) -#define -DAQmxErrorInconsistentChannelDirections (-200011) -#define -DAQmxErrorInputFIFOOverflow (-200010) -#define -DAQmxErrorTimeStampOverwritten (-200009) -#define -DAQmxErrorStopTriggerHasNotOccurred (-200008) -#define -DAQmxErrorRecordNotAvailable (-200007) -#define -DAQmxErrorRecordOverwritten (-200006) -#define -DAQmxErrorDataNotAvailable (-200005) -#define -DAQmxErrorDataOverwrittenInDeviceMemory (-200004) -#define -DAQmxErrorDuplicatedChannel (-200003) -#define -DAQmxWarningTimestampCounterRolledOver (200003) -#define -DAQmxWarningInputTerminationOverloaded (200004) +#define DAQmxErrorInputFIFOUnderflow (-200017) +#define DAQmxErrorOutputFIFOUnderflow (-200016) +#define DAQmxErrorSCXISerialCommunication (-200015) +#define DAQmxErrorDigitalTerminalSpecifiedMoreThanOnce (-200014) +#define DAQmxErrorDigitalOutputNotSupported (-200012) +#define DAQmxErrorInconsistentChannelDirections (-200011) +#define DAQmxErrorInputFIFOOverflow (-200010) +#define DAQmxErrorTimeStampOverwritten (-200009) +#define DAQmxErrorStopTriggerHasNotOccurred (-200008) +#define DAQmxErrorRecordNotAvailable (-200007) +#define DAQmxErrorRecordOverwritten (-200006) +#define DAQmxErrorDataNotAvailable (-200005) +#define DAQmxErrorDataOverwrittenInDeviceMemory (-200004) +#define DAQmxErrorDuplicatedChannel (-200003) +#define DAQmxWarningTimestampCounterRolledOver (200003) +#define DAQmxWarningInputTerminationOverloaded (200004) #define DAQmxWarningADCOverloaded (200005) -#define -DAQmxWarningPLLUnlocked (200007) -#define -DAQmxWarningCounter0DMADuringAIConflict (200008) -#define -DAQmxWarningCounter1DMADuringAOConflict (200009) -#define -DAQmxWarningStoppedBeforeDone (200010) -#define -DAQmxWarningRateViolatesSettlingTime (200011) -#define -DAQmxWarningRateViolatesMaxADCRate (200012) -#define -DAQmxWarningUserDefInfoStringTooLong (200013) -#define -DAQmxWarningTooManyInterruptsPerSecond (200014) -#define -DAQmxWarningPotentialGlitchDuringWrite (200015) +#define DAQmxWarningPLLUnlocked (200007) +#define DAQmxWarningCounter0DMADuringAIConflict (200008) +#define DAQmxWarningCounter1DMADuringAOConflict (200009) +#define DAQmxWarningStoppedBeforeDone (200010) +#define DAQmxWarningRateViolatesSettlingTime (200011) +#define DAQmxWarningRateViolatesMaxADCRate (200012) +#define DAQmxWarningUserDefInfoStringTooLong (200013) +#define DAQmxWarningTooManyInterruptsPerSecond (200014) +#define DAQmxWarningPotentialGlitchDuringWrite (200015) #define DAQmxWarningDevNotSelfCalibratedWithDAQmx (200016) -#define -DAQmxWarningAISampRateTooLow (200017) -#define -DAQmxWarningAIConvRateTooLow (200018) -#define -DAQmxWarningReadOffsetCoercion (200019) -#define -DAQmxWarningPretrigCoercion (200020) -#define -DAQmxWarningSampValCoercedToMax (200021) -#define -DAQmxWarningSampValCoercedToMin (200022) -#define -DAQmxWarningPropertyVersionNew (200024) -#define -DAQmxWarningUserDefinedInfoTooLong (200025) -#define -DAQmxWarningCAPIStringTruncatedToFitBuffer (200026) +#define DAQmxWarningAISampRateTooLow (200017) +#define DAQmxWarningAIConvRateTooLow (200018) +#define DAQmxWarningReadOffsetCoercion (200019) +#define DAQmxWarningPretrigCoercion (200020) +#define DAQmxWarningSampValCoercedToMax (200021) +#define DAQmxWarningSampValCoercedToMin (200022) +#define DAQmxWarningPropertyVersionNew (200024) +#define DAQmxWarningUserDefinedInfoTooLong (200025) +#define DAQmxWarningCAPIStringTruncatedToFitBuffer (200026) #define DAQmxWarningSampClkRateTooLow (200027) -#define -DAQmxWarningPossiblyInvalidCTRSampsInFiniteDMAAcq (200028) -#define -DAQmxWarningRISAcqCompletedSomeBinsNotFilled (200029) -#define -DAQmxWarningPXIDevTempExceedsMaxOpTemp (200030) -#define -DAQmxWarningOutputGainTooLowForRFFreq (200031) -#define -DAQmxWarningOutputGainTooHighForRFFreq (200032) -#define -DAQmxWarningMultipleWritesBetweenSampClks (200033) -#define -DAQmxWarningDeviceMayShutDownDueToHighTemp (200034) -#define -DAQmxWarningRateViolatesMinADCRate (200035) -#define -DAQmxWarningSampClkRateAboveDevSpecs (200036) +#define DAQmxWarningPossiblyInvalidCTRSampsInFiniteDMAAcq (200028) +#define DAQmxWarningRISAcqCompletedSomeBinsNotFilled (200029) +#define DAQmxWarningPXIDevTempExceedsMaxOpTemp (200030) +#define DAQmxWarningOutputGainTooLowForRFFreq (200031) +#define DAQmxWarningOutputGainTooHighForRFFreq (200032) +#define DAQmxWarningMultipleWritesBetweenSampClks (200033) +#define DAQmxWarningDeviceMayShutDownDueToHighTemp (200034) +#define DAQmxWarningRateViolatesMinADCRate (200035) +#define DAQmxWarningSampClkRateAboveDevSpecs (200036) #define DAQmxWarningCOPrevDAQmxWriteSettingsOverwrittenForHWTimedSinglePoint (200037) -#define -DAQmxWarningLowpassFilterSettlingTimeExceedsUserTimeBetween2ADCConversions (200038) -#define -DAQmxWarningLowpassFilterSettlingTimeExceedsDriverTimeBetween2ADCConversions (200039) -#define -DAQmxWarningSampClkRateViolatesSettlingTimeForGen (200040) -#define -DAQmxWarningInvalidCalConstValueForAI (200041) -#define -DAQmxWarningInvalidCalConstValueForAO (200042) -#define -DAQmxWarningChanCalExpired (200043) -#define -DAQmxWarningUnrecognizedEnumValueEncounteredInStorage (200044) -#define -DAQmxWarningTableCRCNotCorrect (200045) -#define -DAQmxWarningExternalCRCNotCorrect (200046) +#define DAQmxWarningLowpassFilterSettlingTimeExceedsUserTimeBetween2ADCConversions (200038) +#define DAQmxWarningLowpassFilterSettlingTimeExceedsDriverTimeBetween2ADCConversions (200039) +#define DAQmxWarningSampClkRateViolatesSettlingTimeForGen (200040) +#define DAQmxWarningInvalidCalConstValueForAI (200041) +#define DAQmxWarningInvalidCalConstValueForAO (200042) +#define DAQmxWarningChanCalExpired (200043) +#define DAQmxWarningUnrecognizedEnumValueEncounteredInStorage (200044) +#define DAQmxWarningTableCRCNotCorrect (200045) +#define DAQmxWarningExternalCRCNotCorrect (200046) #define DAQmxWarningSelfCalCRCNotCorrect (200047) -#define -DAQmxWarningDeviceSpecExceeded (200048) -#define -DAQmxWarningOnlyGainCalibrated (200049) -#define -DAQmxWarningReversePowerProtectionActivated (200050) -#define -DAQmxWarningOverVoltageProtectionActivated (200051) -#define -DAQmxWarningBufferSizeNotMultipleOfSectorSize (200052) -#define -DAQmxWarningSampleRateMayCauseAcqToFail (200053) -#define -DAQmxWarningUserAreaCRCNotCorrect (200054) -#define -DAQmxWarningPowerUpInfoCRCNotCorrect (200055) -#define -DAQmxWarningConnectionCountHasExceededRecommendedLimit (200056) +#define DAQmxWarningDeviceSpecExceeded (200048) +#define DAQmxWarningOnlyGainCalibrated (200049) +#define DAQmxWarningReversePowerProtectionActivated (200050) +#define DAQmxWarningOverVoltageProtectionActivated (200051) +#define DAQmxWarningBufferSizeNotMultipleOfSectorSize (200052) +#define DAQmxWarningSampleRateMayCauseAcqToFail (200053) +#define DAQmxWarningUserAreaCRCNotCorrect (200054) +#define DAQmxWarningPowerUpInfoCRCNotCorrect (200055) +#define DAQmxWarningConnectionCountHasExceededRecommendedLimit (200056) #define DAQmxWarningNetworkDeviceAlreadyAdded (200057) -#define -DAQmxWarningAccessoryConnectionCountIsInvalid (200058) -#define -DAQmxWarningUnableToDisconnectPorts (200059) -#define -DAQmxWarningReadRepeatedData (200060) -#define -DAQmxWarningPXI5600_NotConfigured (200061) -#define -DAQmxWarningPXI5661_IncorrectlyConfigured (200062) -#define -DAQmxWarningPXIe5601_NotConfigured (200063) -#define -DAQmxWarningPXIe5663_IncorrectlyConfigured (200064) -#define -DAQmxWarningPXIe5663E_IncorrectlyConfigured (200065) -#define -DAQmxWarningPXIe5603_NotConfigured (200066) +#define DAQmxWarningAccessoryConnectionCountIsInvalid (200058) +#define DAQmxWarningUnableToDisconnectPorts (200059) +#define DAQmxWarningReadRepeatedData (200060) +#define DAQmxWarningPXI5600_NotConfigured (200061) +#define DAQmxWarningPXI5661_IncorrectlyConfigured (200062) +#define DAQmxWarningPXIe5601_NotConfigured (200063) +#define DAQmxWarningPXIe5663_IncorrectlyConfigured (200064) +#define DAQmxWarningPXIe5663E_IncorrectlyConfigured (200065) +#define DAQmxWarningPXIe5603_NotConfigured (200066) #define DAQmxWarningPXIe5665_5603_IncorrectlyConfigured (200067) -#define -DAQmxWarningPXIe5667_5603_IncorrectlyConfigured (200068) -#define -DAQmxWarningPXIe5605_NotConfigured (200069) -#define -DAQmxWarningPXIe5665_5605_IncorrectlyConfigured (200070) -#define -DAQmxWarningPXIe5667_5605_IncorrectlyConfigured (200071) -#define -DAQmxWarningPXIe5606_NotConfigured (200072) -#define -DAQmxWarningPXIe5665_5606_IncorrectlyConfigured (200073) -#define -DAQmxWarningPXI5610_NotConfigured (200074) -#define -DAQmxWarningPXI5610_IncorrectlyConfigured (200075) -#define -DAQmxWarningPXIe5611_NotConfigured (200076) +#define DAQmxWarningPXIe5667_5603_IncorrectlyConfigured (200068) +#define DAQmxWarningPXIe5605_NotConfigured (200069) +#define DAQmxWarningPXIe5665_5605_IncorrectlyConfigured (200070) +#define DAQmxWarningPXIe5667_5605_IncorrectlyConfigured (200071) +#define DAQmxWarningPXIe5606_NotConfigured (200072) +#define DAQmxWarningPXIe5665_5606_IncorrectlyConfigured (200073) +#define DAQmxWarningPXI5610_NotConfigured (200074) +#define DAQmxWarningPXI5610_IncorrectlyConfigured (200075) +#define DAQmxWarningPXIe5611_NotConfigured (200076) #define DAQmxWarningPXIe5611_IncorrectlyConfigured (200077) -#define -DAQmxWarningUSBHotfixForDAQ (200078) -#define -DAQmxWarningNoChangeSupersededByIdleBehavior (200079) -#define -DAQmxWarningReadNotCompleteBeforeSampClk (209800) -#define -DAQmxWarningWriteNotCompleteBeforeSampClk (209801) -#define -DAQmxWarningWaitForNextSampClkDetectedMissedSampClk (209802) -#define -DAQmxWarningOutputDataTransferConditionNotSupported (209803) -#define -DAQmxWarningTimestampMayBeInvalid (209804) -#define -DAQmxWarningFirstSampleTimestampInaccurate (209805) -#define -DAQmxErrorInterfaceObsoleted_Routing (-89169) -#define -DAQmxErrorRoCoServiceNotAvailable_Routing (-89168) -#define -DAQmxErrorRoutingDestTermPXIDStarXNotInSystemTimingSlot_Routing (-89167) -#define -DAQmxErrorRoutingSrcTermPXIDStarXNotInSystemTimingSlot_Routing (-89166) -#define -DAQmxErrorRoutingSrcTermPXIDStarInNonDStarTriggerSlot_Routing (-89165) -#define -DAQmxErrorRoutingDestTermPXIDStarInNonDStarTriggerSlot_Routing (-89164) -#define -DAQmxErrorRoutingDestTermPXIClk10InNotInStarTriggerSlot_Routing (-89162) -#define -DAQmxErrorRoutingDestTermPXIClk10InNotInSystemTimingSlot_Routing (-89161) -#define -DAQmxErrorRoutingDestTermPXIStarXNotInStarTriggerSlot_Routing (-89160) -#define -DAQmxErrorRoutingDestTermPXIStarXNotInSystemTimingSlot_Routing (-89159) -#define -DAQmxErrorRoutingSrcTermPXIStarXNotInStarTriggerSlot_Routing (-89158) -#define -DAQmxErrorRoutingSrcTermPXIStarXNotInSystemTimingSlot_Routing (-89157) -#define -DAQmxErrorRoutingSrcTermPXIStarInNonStarTriggerSlot_Routing (-89156) -#define -DAQmxErrorRoutingDestTermPXIStarInNonStarTriggerSlot_Routing (-89155) -#define -DAQmxErrorRoutingDestTermPXIStarInStarTriggerSlot_Routing (-89154) -#define -DAQmxErrorRoutingDestTermPXIStarInSystemTimingSlot_Routing (-89153) -#define -DAQmxErrorRoutingSrcTermPXIStarInStarTriggerSlot_Routing (-89152) -#define -DAQmxErrorRoutingSrcTermPXIStarInSystemTimingSlot_Routing (-89151) -#define -DAQmxErrorInvalidSignalModifier_Routing (-89150) -#define -DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2_Routing (-89149) -#define -DAQmxErrorRoutingDestTermPXIStarXNotInSlot2_Routing (-89148) -#define -DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2_Routing (-89147) -#define -DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove_Routing (-89146) -#define -DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove_Routing (-89145) -#define -DAQmxErrorRoutingDestTermPXIStarInSlot2_Routing (-89144) -#define -DAQmxErrorRoutingSrcTermPXIStarInSlot2_Routing (-89143) -#define -DAQmxErrorRoutingDestTermPXIChassisNotIdentified_Routing (-89142) -#define -DAQmxErrorRoutingSrcTermPXIChassisNotIdentified_Routing (-89141) -#define -DAQmxErrorTrigLineNotFoundSingleDevRoute_Routing (-89140) -#define -DAQmxErrorNoCommonTrigLineForRoute_Routing (-89139) -#define -DAQmxErrorResourcesInUseForRouteInTask_Routing (-89138) -#define -DAQmxErrorResourcesInUseForRoute_Routing (-89137) -#define -DAQmxErrorRouteNotSupportedByHW_Routing (-89136) -#define -DAQmxErrorResourcesInUseForInversionInTask_Routing (-89135) -#define -DAQmxErrorResourcesInUseForInversion_Routing (-89134) -#define -DAQmxErrorInversionNotSupportedByHW_Routing (-89133) -#define -DAQmxErrorResourcesInUseForProperty_Routing (-89132) -#define -DAQmxErrorRouteSrcAndDestSame_Routing (-89131) -#define -DAQmxErrorDevAbsentOrUnavailable_Routing (-89130) -#define -DAQmxErrorInvalidTerm_Routing (-89129) -#define -DAQmxErrorCannotTristateTerm_Routing (-89128) -#define -DAQmxErrorCannotTristateBusyTerm_Routing (-89127) -#define -DAQmxErrorCouldNotReserveRequestedTrigLine_Routing (-89126) -#define -DAQmxErrorTrigLineNotFound_Routing (-89125) -#define -DAQmxErrorRoutingPathNotAvailable_Routing (-89124) -#define -DAQmxErrorRoutingHardwareBusy_Routing (-89123) -#define -DAQmxErrorRequestedSignalInversionForRoutingNotPossible_Routing (-89122) -#define -DAQmxErrorInvalidRoutingDestinationTerminalName_Routing (-89121) -#define -DAQmxErrorInvalidRoutingSourceTerminalName_Routing (-89120) -#define -DAQmxErrorServiceLocatorNotAvailable_Routing (-88907) -#define -DAQmxErrorCouldNotConnectToServer_Routing (-88900) -#define -DAQmxErrorDeviceNameContainsSpacesOrPunctuation_Routing (-88720) -#define -DAQmxErrorDeviceNameContainsNonprintableCharacters_Routing (-88719) -#define -DAQmxErrorDeviceNameIsEmpty_Routing (-88718) -#define -DAQmxErrorDeviceNameNotFound_Routing (-88717) -#define -DAQmxErrorLocalRemoteDriverVersionMismatch_Routing (-88716) -#define -DAQmxErrorDuplicateDeviceName_Routing (-88715) -#define -DAQmxErrorRuntimeAborting_Routing (-88710) -#define -DAQmxErrorRuntimeAborted_Routing (-88709) -#define -DAQmxErrorResourceNotInPool_Routing (-88708) -#define -DAQmxErrorDriverDeviceGUIDNotFound_Routing (-88705) -#define -DAQmxErrorPALUSBTransactionError (-50808) -#define -DAQmxErrorPALIsocStreamBufferError (-50807) -#define -DAQmxErrorPALInvalidAddressComponent (-50806) -#define -DAQmxErrorPALSharingViolation (-50805) -#define -DAQmxErrorPALInvalidDeviceState (-50804) -#define -DAQmxErrorPALConnectionReset (-50803) -#define -DAQmxErrorPALConnectionAborted (-50802) -#define -DAQmxErrorPALConnectionRefused (-50801) -#define -DAQmxErrorPALBusResetOccurred (-50800) -#define -DAQmxErrorPALWaitInterrupted (-50700) -#define -DAQmxErrorPALMessageUnderflow (-50651) -#define -DAQmxErrorPALMessageOverflow (-50650) -#define -DAQmxErrorPALThreadAlreadyDead (-50604) -#define -DAQmxErrorPALThreadStackSizeNotSupported (-50603) -#define -DAQmxErrorPALThreadControllerIsNotThreadCreator (-50602) -#define -DAQmxErrorPALThreadHasNoThreadObject (-50601) -#define -DAQmxErrorPALThreadCouldNotRun (-50600) -#define -DAQmxErrorPALSyncAbandoned (-50551) -#define -DAQmxErrorPALSyncTimedOut (-50550) -#define -DAQmxErrorPALReceiverSocketInvalid (-50503) -#define -DAQmxErrorPALSocketListenerInvalid (-50502) -#define -DAQmxErrorPALSocketListenerAlreadyRegistered (-50501) -#define -DAQmxErrorPALDispatcherAlreadyExported (-50500) -#define -DAQmxErrorPALDMALinkEventMissed (-50450) -#define -DAQmxErrorPALBusError (-50413) -#define -DAQmxErrorPALRetryLimitExceeded (-50412) -#define -DAQmxErrorPALTransferOverread (-50411) -#define -DAQmxErrorPALTransferOverwritten (-50410) -#define -DAQmxErrorPALPhysicalBufferFull (-50409) -#define -DAQmxErrorPALPhysicalBufferEmpty (-50408) -#define -DAQmxErrorPALLogicalBufferFull (-50407) -#define -DAQmxErrorPALLogicalBufferEmpty (-50406) -#define -DAQmxErrorPALTransferAborted (-50405) -#define -DAQmxErrorPALTransferStopped (-50404) -#define -DAQmxErrorPALTransferInProgress (-50403) -#define -DAQmxErrorPALTransferNotInProgress (-50402) -#define -DAQmxErrorPALCommunicationsFault (-50401) -#define -DAQmxErrorPALTransferTimedOut (-50400) -#define -DAQmxErrorPALMemoryHeapNotEmpty (-50355) -#define -DAQmxErrorPALMemoryBlockCheckFailed (-50354) -#define -DAQmxErrorPALMemoryPageLockFailed (-50353) -#define -DAQmxErrorPALMemoryFull (-50352) -#define -DAQmxErrorPALMemoryAlignmentFault (-50351) -#define -DAQmxErrorPALMemoryConfigurationFault (-50350) -#define -DAQmxErrorPALDeviceInitializationFault (-50303) -#define -DAQmxErrorPALDeviceNotSupported (-50302) -#define -DAQmxErrorPALDeviceUnknown (-50301) -#define -DAQmxErrorPALDeviceNotFound (-50300) -#define -DAQmxErrorPALFeatureDisabled (-50265) -#define -DAQmxErrorPALComponentBusy (-50264) -#define -DAQmxErrorPALComponentAlreadyInstalled (-50263) -#define -DAQmxErrorPALComponentNotUnloadable (-50262) -#define -DAQmxErrorPALComponentNeverLoaded (-50261) -#define -DAQmxErrorPALComponentAlreadyLoaded (-50260) -#define -DAQmxErrorPALComponentCircularDependency (-50259) -#define -DAQmxErrorPALComponentInitializationFault (-50258) -#define -DAQmxErrorPALComponentImageCorrupt (-50257) -#define -DAQmxErrorPALFeatureNotSupported (-50256) -#define -DAQmxErrorPALFunctionNotFound (-50255) -#define -DAQmxErrorPALFunctionObsolete (-50254) -#define -DAQmxErrorPALComponentTooNew (-50253) -#define -DAQmxErrorPALComponentTooOld (-50252) -#define -DAQmxErrorPALComponentNotFound (-50251) -#define -DAQmxErrorPALVersionMismatch (-50250) -#define -DAQmxErrorPALFileFault (-50209) -#define -DAQmxErrorPALFileWriteFault (-50208) -#define -DAQmxErrorPALFileReadFault (-50207) -#define -DAQmxErrorPALFileSeekFault (-50206) -#define -DAQmxErrorPALFileCloseFault (-50205) -#define -DAQmxErrorPALFileOpenFault (-50204) -#define -DAQmxErrorPALDiskFull (-50203) -#define -DAQmxErrorPALOSFault (-50202) -#define -DAQmxErrorPALOSInitializationFault (-50201) -#define -DAQmxErrorPALOSUnsupported (-50200) -#define -DAQmxErrorPALCalculationOverflow (-50175) -#define -DAQmxErrorPALHardwareFault (-50152) -#define -DAQmxErrorPALFirmwareFault (-50151) -#define -DAQmxErrorPALSoftwareFault (-50150) -#define -DAQmxErrorPALMessageQueueFull (-50108) -#define -DAQmxErrorPALResourceAmbiguous (-50107) -#define -DAQmxErrorPALResourceBusy (-50106) -#define -DAQmxErrorPALResourceInitialized (-50105) -#define -DAQmxErrorPALResourceNotInitialized (-50104) -#define -DAQmxErrorPALResourceReserved (-50103) -#define -DAQmxErrorPALResourceNotReserved (-50102) -#define -DAQmxErrorPALResourceNotAvailable (-50101) -#define -DAQmxErrorPALResourceOwnedBySystem (-50100) -#define -DAQmxErrorPALBadToken (-50020) -#define -DAQmxErrorPALBadThreadMultitask (-50019) -#define -DAQmxErrorPALBadLibrarySpecifier (-50018) -#define -DAQmxErrorPALBadAddressSpace (-50017) -#define -DAQmxErrorPALBadWindowType (-50016) -#define -DAQmxErrorPALBadAddressClass (-50015) -#define -DAQmxErrorPALBadWriteCount (-50014) -#define -DAQmxErrorPALBadWriteOffset (-50013) -#define -DAQmxErrorPALBadWriteMode (-50012) -#define -DAQmxErrorPALBadReadCount (-50011) -#define -DAQmxErrorPALBadReadOffset (-50010) -#define -DAQmxErrorPALBadReadMode (-50009) -#define -DAQmxErrorPALBadCount (-50008) -#define -DAQmxErrorPALBadOffset (-50007) -#define -DAQmxErrorPALBadMode (-50006) -#define -DAQmxErrorPALBadDataSize (-50005) -#define -DAQmxErrorPALBadPointer (-50004) -#define -DAQmxErrorPALBadSelector (-50003) -#define -DAQmxErrorPALBadDevice (-50002) -#define -DAQmxErrorPALIrrelevantAttribute (-50001) -#define -DAQmxErrorPALValueConflict (-50000) -#define -DAQmxWarningPALValueConflict (50000) -#define -DAQmxWarningPALIrrelevantAttribute (50001) -#define -DAQmxWarningPALBadDevice (50002) -#define -DAQmxWarningPALBadSelector (50003) -#define -DAQmxWarningPALBadPointer (50004) -#define -DAQmxWarningPALBadDataSize (50005) -#define -DAQmxWarningPALBadMode (50006) -#define -DAQmxWarningPALBadOffset (50007) -#define -DAQmxWarningPALBadCount (50008) -#define -DAQmxWarningPALBadReadMode (50009) -#define -DAQmxWarningPALBadReadOffset (50010) -#define -DAQmxWarningPALBadReadCount (50011) -#define -DAQmxWarningPALBadWriteMode (50012) -#define -DAQmxWarningPALBadWriteOffset (50013) -#define -DAQmxWarningPALBadWriteCount (50014) -#define -DAQmxWarningPALBadAddressClass (50015) -#define -DAQmxWarningPALBadWindowType (50016) -#define -DAQmxWarningPALBadThreadMultitask (50019) -#define -DAQmxWarningPALResourceOwnedBySystem (50100) -#define -DAQmxWarningPALResourceNotAvailable (50101) -#define -DAQmxWarningPALResourceNotReserved (50102) -#define -DAQmxWarningPALResourceReserved (50103) -#define -DAQmxWarningPALResourceNotInitialized (50104) -#define -DAQmxWarningPALResourceInitialized (50105) -#define -DAQmxWarningPALResourceBusy (50106) -#define -DAQmxWarningPALResourceAmbiguous (50107) -#define -DAQmxWarningPALFirmwareFault (50151) -#define -DAQmxWarningPALHardwareFault (50152) -#define -DAQmxWarningPALOSUnsupported (50200) -#define -DAQmxWarningPALOSFault (50202) -#define -DAQmxWarningPALFunctionObsolete (50254) -#define -DAQmxWarningPALFunctionNotFound (50255) -#define -DAQmxWarningPALFeatureNotSupported (50256) -#define -DAQmxWarningPALComponentInitializationFault (50258) -#define -DAQmxWarningPALComponentAlreadyLoaded (50260) -#define -DAQmxWarningPALComponentNotUnloadable (50262) -#define -DAQmxWarningPALMemoryAlignmentFault (50351) -#define -DAQmxWarningPALMemoryHeapNotEmpty (50355) -#define -DAQmxWarningPALTransferNotInProgress (50402) -#define -DAQmxWarningPALTransferInProgress (50403) -#define -DAQmxWarningPALTransferStopped (50404) -#define -DAQmxWarningPALTransferAborted (50405) -#define -DAQmxWarningPALLogicalBufferEmpty (50406) -#define -DAQmxWarningPALLogicalBufferFull (50407) -#define -DAQmxWarningPALPhysicalBufferEmpty (50408) -#define -DAQmxWarningPALPhysicalBufferFull (50409) -#define -DAQmxWarningPALTransferOverwritten (50410) -#define -DAQmxWarningPALTransferOverread (50411) -#define -DAQmxWarningPALDispatcherAlreadyExported (50500) -#define -DAQmxWarningPALSyncAbandoned (50551) - - -#ifdef -__cplusplus +#define DAQmxWarningUSBHotfixForDAQ (200078) +#define DAQmxWarningNoChangeSupersededByIdleBehavior (200079) +#define DAQmxWarningReadNotCompleteBeforeSampClk (209800) +#define DAQmxWarningWriteNotCompleteBeforeSampClk (209801) +#define DAQmxWarningWaitForNextSampClkDetectedMissedSampClk (209802) +#define DAQmxWarningOutputDataTransferConditionNotSupported (209803) +#define DAQmxWarningTimestampMayBeInvalid (209804) +#define DAQmxWarningFirstSampleTimestampInaccurate (209805) +#define DAQmxErrorInterfaceObsoleted_Routing (-89169) +#define DAQmxErrorRoCoServiceNotAvailable_Routing (-89168) +#define DAQmxErrorRoutingDestTermPXIDStarXNotInSystemTimingSlot_Routing (-89167) +#define DAQmxErrorRoutingSrcTermPXIDStarXNotInSystemTimingSlot_Routing (-89166) +#define DAQmxErrorRoutingSrcTermPXIDStarInNonDStarTriggerSlot_Routing (-89165) +#define DAQmxErrorRoutingDestTermPXIDStarInNonDStarTriggerSlot_Routing (-89164) +#define DAQmxErrorRoutingDestTermPXIClk10InNotInStarTriggerSlot_Routing (-89162) +#define DAQmxErrorRoutingDestTermPXIClk10InNotInSystemTimingSlot_Routing (-89161) +#define DAQmxErrorRoutingDestTermPXIStarXNotInStarTriggerSlot_Routing (-89160) +#define DAQmxErrorRoutingDestTermPXIStarXNotInSystemTimingSlot_Routing (-89159) +#define DAQmxErrorRoutingSrcTermPXIStarXNotInStarTriggerSlot_Routing (-89158) +#define DAQmxErrorRoutingSrcTermPXIStarXNotInSystemTimingSlot_Routing (-89157) +#define DAQmxErrorRoutingSrcTermPXIStarInNonStarTriggerSlot_Routing (-89156) +#define DAQmxErrorRoutingDestTermPXIStarInNonStarTriggerSlot_Routing (-89155) +#define DAQmxErrorRoutingDestTermPXIStarInStarTriggerSlot_Routing (-89154) +#define DAQmxErrorRoutingDestTermPXIStarInSystemTimingSlot_Routing (-89153) +#define DAQmxErrorRoutingSrcTermPXIStarInStarTriggerSlot_Routing (-89152) +#define DAQmxErrorRoutingSrcTermPXIStarInSystemTimingSlot_Routing (-89151) +#define DAQmxErrorInvalidSignalModifier_Routing (-89150) +#define DAQmxErrorRoutingDestTermPXIClk10InNotInSlot2_Routing (-89149) +#define DAQmxErrorRoutingDestTermPXIStarXNotInSlot2_Routing (-89148) +#define DAQmxErrorRoutingSrcTermPXIStarXNotInSlot2_Routing (-89147) +#define DAQmxErrorRoutingSrcTermPXIStarInSlot16AndAbove_Routing (-89146) +#define DAQmxErrorRoutingDestTermPXIStarInSlot16AndAbove_Routing (-89145) +#define DAQmxErrorRoutingDestTermPXIStarInSlot2_Routing (-89144) +#define DAQmxErrorRoutingSrcTermPXIStarInSlot2_Routing (-89143) +#define DAQmxErrorRoutingDestTermPXIChassisNotIdentified_Routing (-89142) +#define DAQmxErrorRoutingSrcTermPXIChassisNotIdentified_Routing (-89141) +#define DAQmxErrorTrigLineNotFoundSingleDevRoute_Routing (-89140) +#define DAQmxErrorNoCommonTrigLineForRoute_Routing (-89139) +#define DAQmxErrorResourcesInUseForRouteInTask_Routing (-89138) +#define DAQmxErrorResourcesInUseForRoute_Routing (-89137) +#define DAQmxErrorRouteNotSupportedByHW_Routing (-89136) +#define DAQmxErrorResourcesInUseForInversionInTask_Routing (-89135) +#define DAQmxErrorResourcesInUseForInversion_Routing (-89134) +#define DAQmxErrorInversionNotSupportedByHW_Routing (-89133) +#define DAQmxErrorResourcesInUseForProperty_Routing (-89132) +#define DAQmxErrorRouteSrcAndDestSame_Routing (-89131) +#define DAQmxErrorDevAbsentOrUnavailable_Routing (-89130) +#define DAQmxErrorInvalidTerm_Routing (-89129) +#define DAQmxErrorCannotTristateTerm_Routing (-89128) +#define DAQmxErrorCannotTristateBusyTerm_Routing (-89127) +#define DAQmxErrorCouldNotReserveRequestedTrigLine_Routing (-89126) +#define DAQmxErrorTrigLineNotFound_Routing (-89125) +#define DAQmxErrorRoutingPathNotAvailable_Routing (-89124) +#define DAQmxErrorRoutingHardwareBusy_Routing (-89123) +#define DAQmxErrorRequestedSignalInversionForRoutingNotPossible_Routing (-89122) +#define DAQmxErrorInvalidRoutingDestinationTerminalName_Routing (-89121) +#define DAQmxErrorInvalidRoutingSourceTerminalName_Routing (-89120) +#define DAQmxErrorServiceLocatorNotAvailable_Routing (-88907) +#define DAQmxErrorCouldNotConnectToServer_Routing (-88900) +#define DAQmxErrorDeviceNameContainsSpacesOrPunctuation_Routing (-88720) +#define DAQmxErrorDeviceNameContainsNonprintableCharacters_Routing (-88719) +#define DAQmxErrorDeviceNameIsEmpty_Routing (-88718) +#define DAQmxErrorDeviceNameNotFound_Routing (-88717) +#define DAQmxErrorLocalRemoteDriverVersionMismatch_Routing (-88716) +#define DAQmxErrorDuplicateDeviceName_Routing (-88715) +#define DAQmxErrorRuntimeAborting_Routing (-88710) +#define DAQmxErrorRuntimeAborted_Routing (-88709) +#define DAQmxErrorResourceNotInPool_Routing (-88708) +#define DAQmxErrorDriverDeviceGUIDNotFound_Routing (-88705) +#define DAQmxErrorPALUSBTransactionError (-50808) +#define DAQmxErrorPALIsocStreamBufferError (-50807) +#define DAQmxErrorPALInvalidAddressComponent (-50806) +#define DAQmxErrorPALSharingViolation (-50805) +#define DAQmxErrorPALInvalidDeviceState (-50804) +#define DAQmxErrorPALConnectionReset (-50803) +#define DAQmxErrorPALConnectionAborted (-50802) +#define DAQmxErrorPALConnectionRefused (-50801) +#define DAQmxErrorPALBusResetOccurred (-50800) +#define DAQmxErrorPALWaitInterrupted (-50700) +#define DAQmxErrorPALMessageUnderflow (-50651) +#define DAQmxErrorPALMessageOverflow (-50650) +#define DAQmxErrorPALThreadAlreadyDead (-50604) +#define DAQmxErrorPALThreadStackSizeNotSupported (-50603) +#define DAQmxErrorPALThreadControllerIsNotThreadCreator (-50602) +#define DAQmxErrorPALThreadHasNoThreadObject (-50601) +#define DAQmxErrorPALThreadCouldNotRun (-50600) +#define DAQmxErrorPALSyncAbandoned (-50551) +#define DAQmxErrorPALSyncTimedOut (-50550) +#define DAQmxErrorPALReceiverSocketInvalid (-50503) +#define DAQmxErrorPALSocketListenerInvalid (-50502) +#define DAQmxErrorPALSocketListenerAlreadyRegistered (-50501) +#define DAQmxErrorPALDispatcherAlreadyExported (-50500) +#define DAQmxErrorPALDMALinkEventMissed (-50450) +#define DAQmxErrorPALBusError (-50413) +#define DAQmxErrorPALRetryLimitExceeded (-50412) +#define DAQmxErrorPALTransferOverread (-50411) +#define DAQmxErrorPALTransferOverwritten (-50410) +#define DAQmxErrorPALPhysicalBufferFull (-50409) +#define DAQmxErrorPALPhysicalBufferEmpty (-50408) +#define DAQmxErrorPALLogicalBufferFull (-50407) +#define DAQmxErrorPALLogicalBufferEmpty (-50406) +#define DAQmxErrorPALTransferAborted (-50405) +#define DAQmxErrorPALTransferStopped (-50404) +#define DAQmxErrorPALTransferInProgress (-50403) +#define DAQmxErrorPALTransferNotInProgress (-50402) +#define DAQmxErrorPALCommunicationsFault (-50401) +#define DAQmxErrorPALTransferTimedOut (-50400) +#define DAQmxErrorPALMemoryHeapNotEmpty (-50355) +#define DAQmxErrorPALMemoryBlockCheckFailed (-50354) +#define DAQmxErrorPALMemoryPageLockFailed (-50353) +#define DAQmxErrorPALMemoryFull (-50352) +#define DAQmxErrorPALMemoryAlignmentFault (-50351) +#define DAQmxErrorPALMemoryConfigurationFault (-50350) +#define DAQmxErrorPALDeviceInitializationFault (-50303) +#define DAQmxErrorPALDeviceNotSupported (-50302) +#define DAQmxErrorPALDeviceUnknown (-50301) +#define DAQmxErrorPALDeviceNotFound (-50300) +#define DAQmxErrorPALFeatureDisabled (-50265) +#define DAQmxErrorPALComponentBusy (-50264) +#define DAQmxErrorPALComponentAlreadyInstalled (-50263) +#define DAQmxErrorPALComponentNotUnloadable (-50262) +#define DAQmxErrorPALComponentNeverLoaded (-50261) +#define DAQmxErrorPALComponentAlreadyLoaded (-50260) +#define DAQmxErrorPALComponentCircularDependency (-50259) +#define DAQmxErrorPALComponentInitializationFault (-50258) +#define DAQmxErrorPALComponentImageCorrupt (-50257) +#define DAQmxErrorPALFeatureNotSupported (-50256) +#define DAQmxErrorPALFunctionNotFound (-50255) +#define DAQmxErrorPALFunctionObsolete (-50254) +#define DAQmxErrorPALComponentTooNew (-50253) +#define DAQmxErrorPALComponentTooOld (-50252) +#define DAQmxErrorPALComponentNotFound (-50251) +#define DAQmxErrorPALVersionMismatch (-50250) +#define DAQmxErrorPALFileFault (-50209) +#define DAQmxErrorPALFileWriteFault (-50208) +#define DAQmxErrorPALFileReadFault (-50207) +#define DAQmxErrorPALFileSeekFault (-50206) +#define DAQmxErrorPALFileCloseFault (-50205) +#define DAQmxErrorPALFileOpenFault (-50204) +#define DAQmxErrorPALDiskFull (-50203) +#define DAQmxErrorPALOSFault (-50202) +#define DAQmxErrorPALOSInitializationFault (-50201) +#define DAQmxErrorPALOSUnsupported (-50200) +#define DAQmxErrorPALCalculationOverflow (-50175) +#define DAQmxErrorPALHardwareFault (-50152) +#define DAQmxErrorPALFirmwareFault (-50151) +#define DAQmxErrorPALSoftwareFault (-50150) +#define DAQmxErrorPALMessageQueueFull (-50108) +#define DAQmxErrorPALResourceAmbiguous (-50107) +#define DAQmxErrorPALResourceBusy (-50106) +#define DAQmxErrorPALResourceInitialized (-50105) +#define DAQmxErrorPALResourceNotInitialized (-50104) +#define DAQmxErrorPALResourceReserved (-50103) +#define DAQmxErrorPALResourceNotReserved (-50102) +#define DAQmxErrorPALResourceNotAvailable (-50101) +#define DAQmxErrorPALResourceOwnedBySystem (-50100) +#define DAQmxErrorPALBadToken (-50020) +#define DAQmxErrorPALBadThreadMultitask (-50019) +#define DAQmxErrorPALBadLibrarySpecifier (-50018) +#define DAQmxErrorPALBadAddressSpace (-50017) +#define DAQmxErrorPALBadWindowType (-50016) +#define DAQmxErrorPALBadAddressClass (-50015) +#define DAQmxErrorPALBadWriteCount (-50014) +#define DAQmxErrorPALBadWriteOffset (-50013) +#define DAQmxErrorPALBadWriteMode (-50012) +#define DAQmxErrorPALBadReadCount (-50011) +#define DAQmxErrorPALBadReadOffset (-50010) +#define DAQmxErrorPALBadReadMode (-50009) +#define DAQmxErrorPALBadCount (-50008) +#define DAQmxErrorPALBadOffset (-50007) +#define DAQmxErrorPALBadMode (-50006) +#define DAQmxErrorPALBadDataSize (-50005) +#define DAQmxErrorPALBadPointer (-50004) +#define DAQmxErrorPALBadSelector (-50003) +#define DAQmxErrorPALBadDevice (-50002) +#define DAQmxErrorPALIrrelevantAttribute (-50001) +#define DAQmxErrorPALValueConflict (-50000) +#define DAQmxWarningPALValueConflict (50000) +#define DAQmxWarningPALIrrelevantAttribute (50001) +#define DAQmxWarningPALBadDevice (50002) +#define DAQmxWarningPALBadSelector (50003) +#define DAQmxWarningPALBadPointer (50004) +#define DAQmxWarningPALBadDataSize (50005) +#define DAQmxWarningPALBadMode (50006) +#define DAQmxWarningPALBadOffset (50007) +#define DAQmxWarningPALBadCount (50008) +#define DAQmxWarningPALBadReadMode (50009) +#define DAQmxWarningPALBadReadOffset (50010) +#define DAQmxWarningPALBadReadCount (50011) +#define DAQmxWarningPALBadWriteMode (50012) +#define DAQmxWarningPALBadWriteOffset (50013) +#define DAQmxWarningPALBadWriteCount (50014) +#define DAQmxWarningPALBadAddressClass (50015) +#define DAQmxWarningPALBadWindowType (50016) +#define DAQmxWarningPALBadThreadMultitask (50019) +#define DAQmxWarningPALResourceOwnedBySystem (50100) +#define DAQmxWarningPALResourceNotAvailable (50101) +#define DAQmxWarningPALResourceNotReserved (50102) +#define DAQmxWarningPALResourceReserved (50103) +#define DAQmxWarningPALResourceNotInitialized (50104) +#define DAQmxWarningPALResourceInitialized (50105) +#define DAQmxWarningPALResourceBusy (50106) +#define DAQmxWarningPALResourceAmbiguous (50107) +#define DAQmxWarningPALFirmwareFault (50151) +#define DAQmxWarningPALHardwareFault (50152) +#define DAQmxWarningPALOSUnsupported (50200) +#define DAQmxWarningPALOSFault (50202) +#define DAQmxWarningPALFunctionObsolete (50254) +#define DAQmxWarningPALFunctionNotFound (50255) +#define DAQmxWarningPALFeatureNotSupported (50256) +#define DAQmxWarningPALComponentInitializationFault (50258) +#define DAQmxWarningPALComponentAlreadyLoaded (50260) +#define DAQmxWarningPALComponentNotUnloadable (50262) +#define DAQmxWarningPALMemoryAlignmentFault (50351) +#define DAQmxWarningPALMemoryHeapNotEmpty (50355) +#define DAQmxWarningPALTransferNotInProgress (50402) +#define DAQmxWarningPALTransferInProgress (50403) +#define DAQmxWarningPALTransferStopped (50404) +#define DAQmxWarningPALTransferAborted (50405) +#define DAQmxWarningPALLogicalBufferEmpty (50406) +#define DAQmxWarningPALLogicalBufferFull (50407) +#define DAQmxWarningPALPhysicalBufferEmpty (50408) +#define DAQmxWarningPALPhysicalBufferFull (50409) +#define DAQmxWarningPALTransferOverwritten (50410) +#define DAQmxWarningPALTransferOverread (50411) +#define DAQmxWarningPALDispatcherAlreadyExported (50500) +#define DAQmxWarningPALSyncAbandoned (50551) + + +#ifdef __cplusplus } #endif -#endif // __nidaqmx_h__ +#endif // __nidaqmx_h__ \ No newline at end of file diff --git a/driver/ni/digital_read.cpp b/driver/ni/digital_read.cpp index f84b305489..460a541cd2 100644 --- a/driver/ni/digital_read.cpp +++ b/driver/ni/digital_read.cpp @@ -108,7 +108,7 @@ void ni::DigitalReadSource::acquireData() { // TODO: code dedup with analogreadsource read -std::pair ni::DigitalReadSource::read() { +std::pair ni::DigitalReadSource::read(breaker::Breaker& breaker) { synnax::Frame f = synnax::Frame(numChannels); // sleep per stream rate std::this_thread::sleep_for( diff --git a/driver/ni/digital_write.cpp b/driver/ni/digital_write.cpp index e045aa5b4e..813d7bf048 100644 --- a/driver/ni/digital_write.cpp +++ b/driver/ni/digital_write.cpp @@ -316,7 +316,7 @@ ni::StateSource::StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive } } -std::pair ni::StateSource::read() { +std::pair ni::StateSource::read(breaker::Breaker& breaker) { std::unique_lock lock(this->state_mutex); waiting_reader.wait_for(lock, state_period); return std::make_pair(this->getDriveState(), freighter::NIL); diff --git a/driver/ni/ni.h b/driver/ni/ni.h index 5b0d0a0a68..dda8b8fefd 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -98,7 +98,7 @@ namespace ni { virtual void getIndexKeys(); - virtual std::pair read() = 0; + virtual std::pair read(breaker::Breaker& breaker) = 0; virtual void parseChannels(config::Parser &parser) = 0; @@ -144,7 +144,7 @@ namespace ni { const synnax::Task task ) : Source(task_handle, ctx, task) {} - std::pair read() override; + std::pair read(breaker::Breaker& breaker) override; void acquireData() override; @@ -152,8 +152,7 @@ namespace ni { int createChannels() override; - std::shared_ptr - parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name); + std::shared_ptr parseChannel(config::Parser &parser, std::string channel_type, std::string channel_name); void parseChannels(config::Parser &parser) override; @@ -175,7 +174,7 @@ namespace ni { const synnax::Task task ) : Source(task_handle, ctx, task) {} - std::pair read() override; + std::pair read(breaker::Breaker& breaker) override; void acquireData() override; @@ -197,7 +196,7 @@ namespace ni { explicit StateSource(std::uint64_t state_rate, synnax::ChannelKey &drive_state_index_key, std::vector &drive_state_channel_keys); - std::pair read(); + std::pair read(breaker::Breaker& breaker); freighter::Error start(); From 2872852d0ef8803dec7b0b966d3cb50f3d93c21b Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sat, 15 Jun 2024 15:37:10 -0400 Subject: [PATCH 39/41] checkpoint --- driver/ni/ai_channels.h | 3 --- driver/ni/analog_read.cpp | 2 +- driver/ni/ni.cpp | 2 -- driver/ni/ni.h | 2 +- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/driver/ni/ai_channels.h b/driver/ni/ai_channels.h index 709b82c6d3..ca787a1452 100644 --- a/driver/ni/ai_channels.h +++ b/driver/ni/ai_channels.h @@ -231,7 +231,4 @@ namespace ni { // Velocity // /////////////////////////////////////////////////////////////////////////////////// // DAQmxCreateAIVelocityIEPEChan - - - } \ No newline at end of file diff --git a/driver/ni/analog_read.cpp b/driver/ni/analog_read.cpp index 8637823b75..8e19756382 100644 --- a/driver/ni/analog_read.cpp +++ b/driver/ni/analog_read.cpp @@ -37,7 +37,7 @@ void ni::AnalogReadSource::parseChannels(config::Parser &parser) { std::to_string(channel_builder.required("port"))); config.channel_key = channel_builder.required("channel"); - config.channel_type = channel_builder.required("channel_type"); + config.channel_type = channel_builder.required("type"); // TODO: check scale parser in the function below config.ni_channel = this->parseChannel(channel_builder, config.channel_type, config.name); diff --git a/driver/ni/ni.cpp b/driver/ni/ni.cpp index 55a31022fc..79987c7b2d 100644 --- a/driver/ni/ni.cpp +++ b/driver/ni/ni.cpp @@ -46,8 +46,6 @@ const std::map ni::UNITS_MAP = { /////////////////////////////////////////////////////////////////////////////////// // NiSource // /////////////////////////////////////////////////////////////////////////////////// - - void ni::Source::getIndexKeys() { LOG(INFO) << "[NI Reader] acquiring index channels for task " << this->reader_config.task_name; std::set < std::uint32_t > index_keys; diff --git a/driver/ni/ni.h b/driver/ni/ni.h index dda8b8fefd..8ab18939f9 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -294,7 +294,7 @@ namespace ni { explicit Scanner(const std::shared_ptr &ctx, const synnax::Task &task); - + ~Scanner(); void scan(); From 7c88948283830e62519f5814a3d5765f81a9f83d Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Sun, 16 Jun 2024 17:04:14 -0400 Subject: [PATCH 40/41] added more comments to ni interface --- driver/ni/ni.h | 56 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/driver/ni/ni.h b/driver/ni/ni.h index dda8b8fefd..f3024062b0 100644 --- a/driver/ni/ni.h +++ b/driver/ni/ni.h @@ -38,6 +38,8 @@ #include "ai_channels.h" namespace ni { + /// @brief configuration for a synnax channel which reads data from an NI channel + // TODO: split this config between sink channels and source channels? typedef struct ChannelConfig { uint32_t channel_key; std::string name; @@ -45,15 +47,20 @@ namespace ni { std::shared_ptr ni_channel; } ChannelConfig; + /// @brief configuration for a NI Source typedef struct ReaderConfig { + /// @brief for retrieving ni device metadata std::string device_key; + /// @brief channels source reads from std::vector channels; std::uint64_t sample_rate = 0; std::uint64_t stream_rate = 0; std::string device_name; std::string task_name; - std::string timing_source; // for sample clock + /// @brief timing setup for NI hardware + std::string timing_source; std::uint64_t period = 0; + /// @brief synnax task key synnax::ChannelKey task_key; std::set index_keys; } ReaderConfig; @@ -67,6 +74,9 @@ namespace ni { /////////////////////////////////////////////////////////////////////////////////// // NiSource // /////////////////////////////////////////////////////////////////////////////////// + + /// @brief an abstract class for an object reading channels (digital or analog) from a National Instruments DAQ + /// reads in data from DAQ following a conccurent producer-consumer model class Source : public pipeline::Source { public: explicit Source(TaskHandle task_handle, @@ -80,6 +90,7 @@ namespace ni { void clearTask(); + /// @brief wrapper around all National Instruments API calls to check and log for vendor errors int checkNIError(int32 error); void logError(std::string err_msg); @@ -92,22 +103,26 @@ namespace ni { virtual freighter::Error stop(); + /// @brief implements pipeline::source::stoppedWithError virtual void stoppedWithErr(const freighter::Error &err) override; virtual bool ok(); virtual void getIndexKeys(); + + /// @brief function which grabs data from data_queue and returns synnax frames virtual std::pair read(breaker::Breaker& breaker) = 0; virtual void parseChannels(config::Parser &parser) = 0; virtual int configureTiming() = 0; - virtual void acquireData() = 0; - virtual int createChannels() = 0; + /// @brief function run in sample_thread to acquire data and load data_queue + virtual void acquireData() = 0; + typedef struct DataPacket { void *data; // actual data uint64_t t0; // initial timestamp @@ -136,6 +151,8 @@ namespace ni { /////////////////////////////////////////////////////////////////////////////////// // AnalogReadSource // /////////////////////////////////////////////////////////////////////////////////// + /// @brief object which implements ni::Source abstract class to specifically read data from + /// analog channels of National Instruments DAQs class AnalogReadSource : public Source { public: explicit AnalogReadSource( @@ -158,7 +175,6 @@ namespace ni { int createChannel(ChannelConfig &channel); - // NI related resources uint64_t numAIChannels = 0; }; @@ -166,6 +182,8 @@ namespace ni { /////////////////////////////////////////////////////////////////////////////////// // DigitalReadSource // /////////////////////////////////////////////////////////////////////////////////// + /// @brief object which implements ni::Source abstract class to specifically read data from + /// digital channels of National Instruments DAQs class DigitalReadSource : public Source { public: explicit DigitalReadSource( @@ -220,23 +238,30 @@ namespace ni { /////////////////////////////////////////////////////////////////////////////////// // DigitalWriteSink // /////////////////////////////////////////////////////////////////////////////////// + /// @brief for an NI Sink which which reads commands from a synnax channel, writes commands + /// out to a National Instruments DAQ output channel, and then maintains a state of said + /// output channel on another synnax channel typedef struct WriterConfig { + /// @brief digital output channels std::vector channels; + /// @brief how frequenctly to update the state of a digital output + /// (in other words, how often to write to the corresponding synnax channel) std::uint64_t state_rate = 0; std::string device_name; std::string device_key; std::string task_name; synnax::ChannelKey task_key; + /// @brief channels where digital output states are written to + std::vector drive_state_channel_keys; // TODO: renmove drive from name + /// @brief channels to get + std::vector drive_cmd_channel_keys; // TODO: renmove drive from name - - std::vector drive_state_channel_keys; - std::vector drive_cmd_channel_keys; - - synnax::ChannelKey drive_state_index_key; + synnax::ChannelKey drive_state_index_key; // TODO: renmove drive from name std::queue modified_state_keys; std::queue modified_state_values; } WriterConfig; + /// @brief object which writes digital output to National Instruments DAQs class DigitalWriteSink : public pipeline::Sink { public: explicit DigitalWriteSink(TaskHandle task_handle, @@ -261,13 +286,17 @@ namespace ni { ~DigitalWriteSink(); - + /// @brief source object which writes digital output states back to synanx std::shared_ptr writer_state_source; private: + + /// @brief parses frame containing values to write out to digital channels and converts + /// to format used to write to NI digital channels freighter::Error formatData(synnax::Frame frame); void parseConfig(config::Parser &parser); + /// @brief wrapper around all National Instruments API calls to check and log for vendor errors int checkNIError(int32 error); uint8_t *writeBuffer; @@ -275,9 +304,7 @@ namespace ni { int numSamplesPerChannel = 0; std::int64_t numChannels = 0; TaskHandle task_handle = 0; - json err_info; - bool ok_state = true; std::shared_ptr ctx; WriterConfig writer_config; @@ -288,6 +315,8 @@ namespace ni { /////////////////////////////////////////////////////////////////////////////////// // Scanner // /////////////////////////////////////////////////////////////////////////////////// + + /// @brief object used to detect NI hardware and provide device metadata to synnax server class Scanner { public: explicit Scanner() = default; @@ -323,10 +352,11 @@ namespace ni { // TASK INTERFACES // // // ///////////////////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////////////// // ScannerTask // /////////////////////////////////////////////////////////////////////////////////// + /// @brief scanner task which starts up on driver startup and periodically searches for connected + /// and simulated NI devices, and returns relevant metadata for device class ScannerTask final : public task::Task { public: explicit ScannerTask(const std::shared_ptr &ctx, From 9c9487c2e14eb8cbc09e16a0c4fafd12d0da3c8d Mon Sep 17 00:00:00 2001 From: Elham Islam Date: Mon, 17 Jun 2024 11:43:15 -0400 Subject: [PATCH 41/41] added asserts --- driver/ni/scale.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/driver/ni/scale.h b/driver/ni/scale.h index 02311ac94c..7c1abdf992 100644 --- a/driver/ni/scale.h +++ b/driver/ni/scale.h @@ -185,7 +185,6 @@ namespace ni { PolynomialScale polynomial; TableScale table; - // Destructor Scale() {} ~Scale() {} @@ -201,7 +200,6 @@ namespace ni { ScaleConfig() = default; - // Constructor ScaleConfig(config::Parser &parser, std::string &name) : name(name), type(parser.required("type")), @@ -221,6 +219,7 @@ namespace ni { } else if (type == "table") { scale.table = TableScale(parser); } + assert(parser.ok()); } // copy constructor @@ -239,6 +238,7 @@ namespace ni { } else if (type == "table") { scale.table = TableScale(parser); } + assert(parser.ok()); } // copy assignment operator @@ -259,6 +259,7 @@ namespace ni { } else if (type == "table") { scale.table = TableScale(parser); } + assert(parser.ok()); return *this; }