Я делаю программу, в которой мне нужно взять значения, собранные из модели Simulink, и передать их в программу Java. Я установил S-функцию уровня 2 в Matlab, где я создаю экземпляр класса, которому нужно передать значения. Получив эти значения, я хочу передать их моему объекту в функции Update. Однако моя программа не распознает мой объект в функции обновления.
function Start(block)
gameObj = javaObject('millerek.lafayette.edu.Game'); %set up game
gameObj.main("");
%end Start
function Update(block)
X = block.InputPort(1).Data(1,1);
Y = block.InputPort(1).Data(2,1);
javaMethod('getMdlValues',gameObj,X,Y);
%gameObj.getMdlValues(1,0); %test. This did not work either
%end Update
Я пытался использовать javaObjectEDT и javaMethodEDT, но они не работали.
Я могу успешно создать свой объект при запуске Simulink. Я получаю сообщение об ошибке от Matlab, когда выполняется обновление, говоря, что оно не распознает мой объект (и, таким образом, получает исключение нулевого указателя). Я считаю, что это потому, что я создаю свой Java-объект в функции Start и вызываю там его main, но я пытаюсь передать значения в функцию Update, так что, возможно, объект обрабатывается как локальный? Я добавил файл jar, который я использую, к статическому пути к классам в Matlab. Я не уверен, как заставить Matlab обращаться с ним, как с глобальным. Спасибо, что нашли время помочь, я очень ценю это!