Построение AnalogWaveform<TData> на графике Waveform с помощью метода PlotWaveforms с использованием Measurement Studio 2013 в.Net

Я использую Measurement Studio 2013 с VS 2012.

Я получаю данные из NI PXI 5122, которые я хочу построить на графике. Я отчетливо вижу записи при печати в консоли или даже в виде сетки, но не могу отобразить их на WaveformGraph. Вот мой код:

    static void PlotWaveformsOnGraph(AnalogWaveformCollection<double> waveforms)
     {       
           List<AnalogWaveform<double>> waveformList = new List <AnalogWaveform<double>>(waveforms);
           MainWindow main = new MainWindow();
           main.waveformGraph.PlotWaveforms(waveformList.ToArray());
     }

в приведенном выше коде нет ошибок, также данные присутствуют в WaveformList, но не отображаются на графике.

1 ответ

Решение

Вы создаете MainWindow экземпляр динамически в вашем PlotWaveformsOnGraph метод, потому что вы не можете достичь объекта waveformGraph из контекста метода? Если это так, вы можете рассмотреть следующее:

  1. Передача объекта waveformGraph, в который вы строите свои осциллограммы, в качестве параметра для вашего PlotWaveformsOnGraph метод. Таким образом, вы можете получить доступ к PlotWaveformsAppend метод на waveformGraph из вашего статического метода.

Это может выглядеть так:

static void PlotWaveformsOnGraph(AnalogWaveformCollection<double> waveforms,
   WaveformGraph graph)
{
    var waveformList = new List<AnalogWaveform<double>>(waveforms);
    graph.PlotWaveforms(waveformList.ToArray());
}
  1. Удалите статическое ключевое слово из PlotWaveformsOnGraph метод. Если предположить, PlotWaveformsOnGraph является членом вашего MainWindow класс, и ваше окно имеет WaveformGraph контроль над ним, вы можете получить доступ к waveformGraph из вашего метода. У вас есть конкретная причина сделать этот метод статичным?

Похоже, что здесь достигнут больший прогресс в этом вопросе.

Другие вопросы по тегам