Использование внешнего класса из блока тестовой последовательности - PullRequest
0 голосов
/ 19 октября 2018

В соответствии с документацией https://www.mathworks.com/examples/simulink-test/mw/simulinktest-ex80867886-using-an-external-function-from-a-test-sequence-block

Мы можем использовать внешнюю функцию в тестовой последовательности, любой имеет представление о том, можно ли использовать класс или объекты

В тестовой последовательности можно использовать функцию, объявленную внапример, любой mscript. Следующая строка отлично работает

step_1

Stick1_Raw_Data.Stick_Main_Sensor_TRX1_Raw_Data = update_or_initialize_Stick_Raw_Data (); * 1013_in_state *m

function  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data = update_or_initialize_Stick_Raw_Data(x,x_error,y,y_error)
% Sets the inital value or update the value
if nargin < 4 
  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data = struct();
  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.X = int16(0);
  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.X_Error = uint8(0);
  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.Y = int16(0);
  Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.Y_Error = uint8(0);
else
Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data = struct();
Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.X = int16(x);
Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.X_Error = uint8(x_error);
Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.Y = int16(y);
Stick_Raw_Data_Stick_Main_Sensor_TRX1_Raw_Data.Y_Error = uint8(y_error);
end
end

Но можем ли мы также использовать его для объявления и использования объекта

step_3

m = Stick_Raw_Data_Stick_Main_Sensor_TRX_Raw_Data;

% Stick1_Raw_Data.Stick_Main_Sensor_TRX1_Raw_Data = m.update (int16 (23), uint8 (0), int16 (1500), uint8 (0));

Stick_Raw_Data_S_R_S_RX_S_RX_S_RX_S_RX_S_RX_S_RX.m

classdef Stick_Raw_Data_Stick_Main_Sensor_TRX_Raw_Data
   properties
    X
    X_Error
    Y
    Y_Error
   end
   methods
      function r = initialize(obj)
           r.X = int16(0);
           r.X_Error = uint8(0);
           r.Y = int16(0);
           r.Y_Error = uint8(0);
      end
      function r = update(obj,x,x_error,y,y_error)
            r.X = int16(x);
            r.X_Error = uint8(x_error);
            r.Y = int16(y);
            r.Y_Error = uint8(y_error);
      end
   end
end

Получение ошибки Диаграмма «Последовательность испытаний» содержит неразрешенные символы.

...