Instrument

Создайте инструментальный объект в реальном времени

Описание

slrealtime.Instrument объектные потоковые данные сигнала от симуляции в реальном времени, работающей на целевом компьютере к компьютеру разработчика.

Создание

instrument_object = slrealtime.Instrument('appName') создает пустой инструментальный объект для существующего приложения реального времени appName.

Пример: создайте инструментальный объект для приложения реального времени

instrument_object = slrealtime.Instrument() создает пустой инструментальный объект без присвоенного приложения реального времени.

Пример: создайте инструментальный объект без приложения реального времени

Свойства

развернуть все

AxesTimeSpan свойство управляет осью времени (ось X) для всех осей в пользовательском интерфейсе App Designer. Когда установлено в Inf, значение сигналов из приложения реального времени, работающего на целевом компьютере, отображено в осях. Если вы превращаетесь в значение, например, 10, ось времени для всех осей установлена в то значение, например, 10 секунд.

AxesTimeSpanOverrun свойство управляет ответом для осей в пользовательском интерфейсе App Designer когда потери данных AxesTimeSpan значение свойства. Когда AxesTimeSpan значением свойства является Inf, AxesTimeSpanOverrun свойство не оказывает влияния. Когда AxesTimeSpan значение свойства установлено в секундах, ось времени для всех осей установлена в конечную ширину (область значений времени). Когда значение сигналов из приложения реального времени превышает самую большую временную стоимость на оси X, оси могут или прокрутить или перенестись.

Можно установить значение Application свойство к существующему приложению реального времени, когда вы создаете объект Instrument или можно установить значение позже. После того, как значение записано в это свойство, это становится только для чтения. Вы не можете изменить значение Свойства приложения непосредственно после создания объекта. Значение свойства может только быть изменено после создания объекта при помощи validate функция.

Функции объекта

addInstrumentedSignalsНайдите оснащенные сигналы и добавьте их в инструментальный объект в реальном времени
addSignalДобавьте сигнал для потоковой передачи, чтобы быть доступными в коллбэке
clearScalarAndLineDataОчистите данные от дочерних элементов инструментального объекта в реальном времени
connectCallbackДобавьте коллбэк, который отвечает на новые данные
connectLineСигнал подключения для потоковой передачи к осям
connectScalarДобавьте сигнал для потоковой передачи к скалярному отображению
deleteУдалите инструментальный объект в реальном времени
generateScriptСгенерируйте скрипт, который создает скаляр и средства управления осями от сигналов, скаляры и линии в режиме реального времени инструментальный объект
getCallbackDataForSignalПолучите данные о коллбэке для сигнала в режиме реального времени инструментальный объект
removeCallbackУдаленный коллбэк от инструментального объекта в реальном времени
removeSignalУдалите сигнал из инструментального объекта в реальном времени
validateПодтвердите сигналы в инструментальном объекте

Примеры

свернуть все

  • Создайте инструментальный объект hInst для существующего приложения реального времени appName.

    appName = 'slrt_ex_tank.mldatx';
    hInst = slrealtime.Instrument(appName);
  • Создайте инструментальный объект hInst не присваивая приложение реального времени. Этот подход полезен при создании графический интерфейса пользователя и приложения реального времени, файл MLDATX не доступен.

    hInst = slrealtime.Instrument();
  • В этом примере показано, как создать объект Instrument, примените Инструментальные методы объекта и удалите объект.

    inst = slrealtime.Instrument();
    
    inst.connectScalar(app.Numeric1, 'ScalarDouble1');
    inst.connectScalar(app.Gauge1,   'ScalarDouble1');
    inst.connectScalar(app.Numeric2, "ScalarDouble2");
    inst.connectScalar(app.Gauge2,   "ScalarDouble2");
    
    inst.connectScalar(app.Text1, "myString", 'Callback', @(t,d)string(d));
    inst.connectScalar(app.Text2, "myString", 'Callback', @(t,d)string(d), 'Decimation', 2);
    
    inst.connectScalar(app.Lamp0, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Green)));
    inst.connectScalar(app.Lamp1, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Yellow)));
    inst.connectScalar(app.Lamp2, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Red)));
    
    ls2 = slrealtime.instrument.LineStyle();
    ls2.Marker = '*';
    ls2.MarkerSize = 4;
    ls2.Color = 'black';
    inst.connectLine(app.Axes1, "SineWave", 'ArrayIndex', 5, 'LineStyle', ls2, 'Callback', @(t,d)(d+app.Offset.Value));
    inst.connectLine(app.Axes1, "SineWave");
    
    inst.connectCallback(@(o,e)customPlot(o,e,app)); % plot sine waves added together with amplitudes 1, 3 and 5
    
    tg=slrealtime;
    tg.addInstrument(inst);
    
    inst.AxesTimeSpan = 10;
    
    inst.AxesTimeSpanOverrun = 'wrap';
    
    inst.AxesTimeSpan = Inf;
    
    tg.removeInstrument(inst);
    
Введенный в R2020b