Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] Diagramming tool voor Finite State Machine

Pagina: 1
Acties:

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik ben bezig met het programmeren van een tool om van alles en nog wat met een FSM te kunnen doen, het maken ervan, een eventlog inlezen en deze door de FSM laten lopen etc.

Progameertechnisch is dit allemaal geen probleem. Onder water doet het programma wat hij moet doen en heb ik geen problemen.

Echter zit ik met het probleem van het weergeven van deze diagrammen. Ik heb al verschillende open source diagramming tools geprobeerd maar elke van deze heeft weer andere issues. Ik ben dus op zoek naar een open source diagramming library die functioneert voor hetgeen waarvoor ik het gebruik.

Wat ik zoek is een vrij simpele library waarmee ik shapes op een diagram kan tekenen, connecties tussen shapes kan maken (ook een connectie naar zichzelf en connecties moeten ook niet alleen rechte lijnen zijn) en waar ik event functies van de elementen kan benaderen (click, doubleclick per element etc.).

De libraries die ik al geprobeerd heb en hun problemen:
  • Crainiate Diagramming - Tot nu toe de library die het meeste doet wat ik wil, echter krijg ik het niet voor elkaar om fatsoenlijke layouting voor elkaar te krijgen. Ook is het toevoegen van beziercurves hier niet mogelijk. Een ander probleem, zoals bij de meeste van deze libraries, is dat de laatste versie uit het jaar 0 is en niet meer supported wordt.
  • Dalsoft Diagram.net - Zit al tijden in een Alphastage en heeft niet eens een of andere fatsoenlijke gebruikershandleiding of korte tutorial. Wordt niet meer ontwikkeld. Krijg het op een of andere manier niet voor elkaar om een connectie toe te voegen tussen 2 shapes.
  • NShape - Vage instantiëring van de objecten (niet makkelijk VarType x = new VarType() maar je moet op een of andere stomme manier werken met .GetNewInstance() en de opslag en benadering van de objecten in het diagram is niet handig in gebruik
  • Graph#/QuickGraph - Maakt een DOT file om op te slaan, ik wil met mijn elementen op mijn formulier kunnen spelen
Heeft iemand nog ideeën voor me of tips om beter met deze andere libraries om te gaan?

Voorbeeld (Dit is wat ik op het moment gebruik, Dit is de versie van Crainiate maar ik heb hier dus problemen met overlappende lijnen):
Afbeeldingslocatie: http://i45.tinypic.com/n63sy0.png

[ Voor 3% gewijzigd door Kayshin op 20-02-2013 14:35 . Reden: Voorbeeld van applicatie toegevoegd ]

My personal videoteek: -Clique-; -NMe- is een snol!


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Kijk eens naar StarUML. Het is een algemene UML editor, maar doet voor zover ik weet ook state diagrams.

Laat je niet misleiden door het gebrek aan activiteit in het project (laatste updates ergens in 2008); Het programma is functioneel eigenlijk compleet en ik heb er tot dusver nog geen enkele bug in tegengekomen.

[ Voor 50% gewijzigd door H!GHGuY op 20-02-2013 19:27 ]

ASSUME makes an ASS out of U and ME


  • IceM
  • Registratie: Juni 2003
  • Laatst online: 15:39
H!GHGuY schreef op woensdag 20 februari 2013 @ 19:26:
Kijk eens naar StarUML. Het is een algemene UML editor, maar doet voor zover ik weet ook state diagrams.

Laat je niet misleiden door het gebrek aan activiteit in het project (laatste updates ergens in 2008); Het programma is functioneel eigenlijk compleet en ik heb er tot dusver nog geen enkele bug in tegengekomen.
Volgens mij is de TS opzoek naar een library (voor .net) die hij kan gebruiken in zijn eigen code, geen applicatie waar hij "met de hand" een schema kan bouwen, want die zijn er genoeg.

...


  • [ti]
  • Registratie: Februari 2000
  • Niet online
Misschien heb je wat aan de designer van WF? Deze ondersteunt ook state machines, en kun je in je eigen applicaties hosten ( http://demiliani.com/blog/archive/2009/06/18/6556.aspx ).

Ik verwacht eerlijk gezegd dat je er teveel WF-meuk bij krijgt en dat het je niet echt zal helpen, maar ik wilde 'm wel even vermelden.

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik ben zelf bezig met een editor te maken voor verwerking van eigen eventfiles en een vervolgtraject waar nog veel meer met deze state machines moet gebeuren dus een "out of the box" oplossing werkt voor mij niet. Ik ben dus op zoek naar puur een display library, verder niets.

Open Diagram doet tot nu toe precies wat ik zoek, en ook op de manier waarop ik het zou willen gebruiken (buiten eventuele kleine dingetjes maar daar kan ik nog wel iets op bedenken) maar heeft geen ondersteuning voor curved lines of een fatsoenlijke oplossing om transities niet over elkaar te laten zien, ik krijg nu een stomme dubbele lijn en dat is niet zichtbaar voor de gebruiker.

Wat ik per sé moet kunnen:
Event handlers van de verschillende elementen
Kromme lijntjes trekken of op een of andere manier de lijnen niet over elkaar heen laten trekken

Wat verder mooi zou zijn is een of andere ingebouwde layouting-engine, want dit mis ik tot nu toe ook.

My personal videoteek: -Clique-; -NMe- is een snol!


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Ik vrees dat je zelf aan de bak moet. Graph# heeft wat layout algorithmes en een control, daarmee kun je beginnen. het probleem met graphs visueel weergeven zijn de layout algorithmes, die zijn veelal complex en het is lastig ze performant te krijgen. Op het opensource vlak zul je geen libraries vinden die volledig zijn en aan je wensen voldoen. Wellicht MsAGL wel: http://research.microsoft...34e1331d32c5/default.aspx, maar ik heb het zelf nooit gebruikt dus ik weet niet in hoeverre het interactief te maken is.

Je mag het niet in een commerciele applicatie gebruiken, maar als je commercieel gaat, dan zou ik een commerciele library nemen, ben je meteen klaar.

Ikzelf gebruik de IBM ILog Datagramming .net library, naar mijn mening de allerbeste die er ooit gemaakt is, maar helaas niet meer beschikbaar (was ook commercieel)

[ Voor 5% gewijzigd door EfBe op 22-02-2013 09:36 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Graph# zit weer met het probeem dat ik daar, zover ik geconstateerd heb, geen functies meer op kan uitvoeren omdat er een afbeelding wordt gegenereerd.
Layoutalgoritme is een pré, geen verplichting (heb zelf al een simpel algoritme gemaakt dat de shapes rond een andere shape zet)

Het gaat mij nu vooral om de overlappende connecties waar ik een probleem mee heb. Als ik dit op een of andere manier op kan lossen, al dan niet met curved lines. De rest van de gezochte functionaliteit (tot nu toe) heb ik in mijn huidige library kunnen vinden (Crainiate Open Diagram)

My personal videoteek: -Clique-; -NMe- is een snol!

Pagina: 1