WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interfacing Function Problem in Xcos 5.3.1?

 

gerhard

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2011, 09:22     Titel: Interfacing Function Problem in Xcos 5.3.1?
  Antworten mit Zitat      
Hallo Leute!
Ich hab mir mal ein c file für einen generic_block3 geschrieben - funktioniert auch wunderbar. Nun wollte ich mir eine interfacing function dazu schreiben und als palette laden. Ich hab das mit dem nachfolgenden Skript gemacht (nach der Vorlage aus der Xcos Hilfe).

Code:
loadXcosLibs();

function [x,y,typ]=Offsetblk(job,arg1,arg2)
x=[];y=[];typ=[];
select job
case 'plot' then
  standard_draw(arg1)
case 'getinputs' then
  [x,y,typ]=standard_inputs(arg1)
case 'getoutputs' then
  [x,y,typ]=standard_outputs(arg1)
case 'getorigin' then
  [x,y]=standard_origin(arg1)
case 'set' then
  x=arg1;
  graphics=arg1.graphics;exprs=graphics.exprs
  model=arg1.model;
 // if size(exprs,'*')==2 then exprs=exprs(2),end //compatibility
  while %t do
    [ok,a,exprs]=scicos_getvalue('Block zur Offsetaddition (nur positive Werte)',..
   'Offset',list('vec',1),exprs)
    if ~ok then break,end
    if a<0 then
      message('Zahl muss groesser 0 sein')
    else
      if ok then
   graphics.exprs=exprs
   model.rpar=a
   x.graphics=graphics;x.model=model
   break
      end
    end
  end
case 'define' then
  in=1
  a=0
  model=scicos_model()
  model.sim=list('offset_c',4)
  model.in=1
  model.out=1
  model.rpar=a
  model.blocktype='c'
  model.dep_ut=[%t %f]

  exprs='a'
  gr_i=['xstringb(orig(1),orig(2),''Offsetadditionsblock'',sz(1),sz(2),''fill'');']
  x=standard_define([2 2],model,exprs,gr_i)
end
endfunction

//create an instance of a new block
scs_m = Offsetblk("define");
export_to_hdf5(TMPDIR + "/off.h5","scs_m");

//create a new palette
pal = xcosPal("My palette");
//add block to this palette using e.g. RAMP icon
pal = xcosPalAddBlock(pal,TMPDIR+"/off.h5");

//deploy palette
xcosPalAdd(pal);


Ich kann das file auch ausführen und dann in Xcos einfügen und verwenden. Will ich das diagram allerdings abspeichern so kommt folgender Fehler:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:821)
at org.scilab.modules.gui.utils.ConfigManager.writeDocument(Unknown Source)
at org.scilab.modules.gui.utils.ConfigManager.saveLastOpenedDirectory(Unknown Source)
at org.scilab.modules.gui.bridge.filechooser.SwingScilabFileChooser.displayAndWait(Unknown Source)
at org.scilab.modules.xcos.graph.XcosDiagram.saveDiagramAs(Unknown Source)
at org.scilab.modules.xcos.actions.SaveAsAction.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.xml.serializer.TreeWalker
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 33 more

Meine Frage: Hab ich da was falsch gemacht oder ist das noch ein bug von xcos. Gibt es einen anderen Weg (also nicht über palette einfügen), damit der Fehler nicht auftritt?

Danke
LG Gerhard


gerhard

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2011, 18:29     Titel: Lösung
  Antworten mit Zitat      
Hallo. Ich hab mir heute versuchsweise die neueste Version von Scilab installiert (5.3.2). Jetzt funktioniert es ohne die Fehlermeldung Laughing

Trotzdem Danke an alle Leser!
 
moe69
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 20.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2012, 09:28     Titel:
  Antworten mit Zitat      
Hallo Gerhard,

ich wollte deinen Xcos BLock verwenden, leider funktioniert das bei mir nicht.
Ich habe Scilab 5.3.3

Wie muss ich vorgehen um deine Funktion als Block in Xcos zu verwenden?

Ich hab die Funktion als Offsetblk.sic gespeichert

Danach in der Scilab Console "exec Offsetblk.sc" ausgeführt.

Jetzt hatte ich in Xcos eine neue Palette mit dem Offsetblk BLock.

Hier konnte ich auch zb einen Wert eintragen.

Wenn ich ihn allerdings zwischen einen Sinusgenerator und einem Scope hängt, oder eine andere Verschaltung aufbaut, kommt folgende Fehlermeldung:

scicosim : unknown block : offset_c

Kannst du mir weiterhelfen?

mfg
moe69
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.