viatra / massif

Massif is a Matlab Simulink Integration Framework for Eclipse
https://viatra.github.io/massif/
Eclipse Public License 1.0
19 stars 14 forks source link

CLI of Massif #205

Closed Antolin1 closed 3 years ago

Antolin1 commented 3 years ago

Dear all,

Setup section of Headless usage of Massif in MATLAB IDE says "The CLI of Massif is in this package." I was wondering whether the link was available.

abelhegedus commented 3 years ago

I think it should point to https://static.incquerylabs.com/projects/massif/release/0.7.0/ where you can find hu.bme.mit.massif.simulink.cli-example-0.7.0.zip

Antolin1 commented 3 years ago

Thank you very much. Now, when I execute CLI_CreateMassifModel_Example.m, I have this error: Exception in thread "Thread-19": java.lang.ClassCastException: hu.bme.mit.massif.communication.datatype.MatlabString cannot be cast to hu.bme.mit.massif.communication.datatype.StructMatlabData at hu.bme.mit.massif.communication.datatype.StructMatlabData.asStructMatlabData(StructMatlabData.java:51) at hu.bme.mit.massif.communication.datatype.StructMatlabData.getStructMatlabDataData(StructMatlabData.java:55) at hu.bme.mit.massif.simulink.api.adapter.block.DefaultBlockAdapter.process(DefaultBlockAdapter.java:56) at hu.bme.mit.massif.simulink.api.Importer.createBlockInstance(Importer.java:934) at hu.bme.mit.massif.simulink.api.Importer.createBlock(Importer.java:870) at hu.bme.mit.massif.simulink.api.Importer.createBlocksFromTopLevel(Importer.java:804) at hu.bme.mit.massif.simulink.api.Importer.traverseAndCreateEMFModel(Importer.java:620) at hu.bme.mit.massif.simulink.cli.CLIEMFCreator$1.run(CLIEMFCreator.java:65) at java.lang.Thread.run(Thread.java:748)

abelhegedus commented 3 years ago

That error message is not really helpful for sure 😃 Usually this happens when you don't have massif_functions.m added to the Matlab path, see https://github.com/viatra/massif/issues/193#issuecomment-505045541 and https://github.com/viatra/massif/issues/80#issuecomment-393805561

Antolin1 commented 3 years ago

Thanks again !! hehe. I am close. Now I get this error: Exception in thread "Thread-20": java.lang.NullPointerException: System default backend not found at java.util.Objects.requireNonNull(Objects.java:228) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions.getSystemDefaultBackend(ViatraQueryEngineOptions.java:75) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions.access$4(ViatraQueryEngineOptions.java:71) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions$Builder.getDefaultBackend(ViatraQueryEngineOptions.java:173) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions$Builder.build(ViatraQueryEngineOptions.java:162) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions.getDefault(ViatraQueryEngineOptions.java:105) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineManager.getQueryEngine(ViatraQueryEngineManager.java:86) at org.eclipse.viatra.query.runtime.api.ViatraQueryEngine.on(ViatraQueryEngine.java:70) at org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.getEngineForNotifier(QueryBasedFeatureSettingDelegateFactory.java:81) at org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegate.initializeSettingDelegateInternal(QueryBasedFeatureSettingDelegate.java:151) at org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegate.get(QueryBasedFeatureSettingDelegate.java:129) at org.eclipse.emf.ecore.util.BasicSettingDelegate$Stateless.dynamicGet(BasicSettingDelegate.java:185) at hu.bme.mit.massif.simulink.impl.SimulinkElementImpl.getName(SimulinkElementImpl.java:128) at hu.bme.mit.massif.simulink.api.Importer.createConnections(Importer.java:1278) at hu.bme.mit.massif.simulink.api.Importer.traverseAndCreateEMFModel(Importer.java:626) at hu.bme.mit.massif.simulink.cli.CLIEMFCreator$1.run(CLIEMFCreator.java:65) at java.lang.Thread.run(Thread.java:748)

abelhegedus commented 3 years ago

This is probably https://github.com/viatra/massif/issues/196 Can you try with the latest build? https://build.incquerylabs.com/jenkins/job/Massif/job/master/lastSuccessfulBuild/artifact/releng/hu.bme.mit.massif.simulink.cli-package/

You could also probably add the required line to the Matlab script: https://viatra.github.io/massif/user/api_usage_example.html

org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions.setSystemDefaultBackends(org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory.INSTANCE, org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory.INSTANCE, org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchEMFBackendFactory.INSTANCE);
Antolin1 commented 3 years ago

Thank you very much. It works fine. <3

abelhegedus commented 3 years ago

Great! Can you maybe tell us about yourself and/or your use case for Massif?

Antolin1 commented 3 years ago

Sure. I am a PhD student at the University of Murcia (Spain) and I am working on a model search engine (this one -> https://dl.acm.org/doi/10.1145/3365438.3410947). Currently, I am trying to index simulink models. To do so I need to transform a set of simulink models into models in EMF.

abelhegedus commented 3 years ago

Thanks!