|
|
@@ -3,74 +3,15 @@ A list of features that are wanted in this tool:
|
|
|
* More flags:
|
|
|
-g/--file: only generate specific file(s)
|
|
|
-i/--ignore: don't generate specific file(s)
|
|
|
-* Allow Renaming of files? => Via tabs?
|
|
|
-* Allow global variables/code? => Model specific; so no flag
|
|
|
-* Allow setting of drawio xpath => Formalism-specific; set in setup file
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-* inverterblock: change symbol \frac{1}{N} to 1/
|
|
|
- N is confusing as the input is IN1. Furthermore,
|
|
|
- N seems to indicate that the input must be an integer.
|
|
|
- Is this the same for the rootblock?
|
|
|
- ---> Maybe use UTF-8 icons instead of LaTeX? MathJax does
|
|
|
- not render in the sidebar/library panel (I opened
|
|
|
- a feature request at drawio for this), so for now
|
|
|
- using icons may be a better way to go?
|
|
|
- OK
|
|
|
- ---> fallback for complex symbols: render/draw and take snapshot
|
|
|
-
|
|
|
-* make the use (and inclusion!) of bokeh dependent
|
|
|
- on (1) whether there are any signals to plot and
|
|
|
- (2) whether the library can be loaded (with try:)
|
|
|
- ---> Done!
|
|
|
-
|
|
|
-* low priority: allow the use of matplotlib instead of bokeh.
|
|
|
- More generally, make it easy to (1) not plot at all,
|
|
|
- but only save the date for those OutputPortBlocks
|
|
|
- with a 'signal' property in a standard (.csv, .xml) format,
|
|
|
- (2) use matplotlib, or (3) use bokeh.
|
|
|
- ---> matplotlib (or mpl) is now the default for plotting,
|
|
|
- a commandline argument (-P or --plot) can now switch
|
|
|
- between mpl, bokeh and csv, or it can disable plotting
|
|
|
- as a whole.
|
|
|
- ---> I don't know what the structure of an XML would look like,
|
|
|
- so it's not implemented (yet).
|
|
|
- NOT IMPORTANT (for the time being)
|
|
|
+ -p/--print: print everything to the console instead of to files
|
|
|
|
|
|
-* The CBD simulator assumes that all blocks have a unique name.
|
|
|
- In what scope?
|
|
|
- ---> In the scope of each individual CBD itself. This is clarified in the docs.
|
|
|
- - within the scope of each CBD definition, blocks have a unique name (check this)
|
|
|
- - CBD definitions must have unique class_name (check this)
|
|
|
-
|
|
|
-* Optionally, additional class parameters can be provided
|
|
|
- by adding more properties.
|
|
|
- These will be passed on as-is, allowing for complex values.
|
|
|
- As-is? Indentation? Or declaring local variable?
|
|
|
- ---> Indentation is now removed from the values.
|
|
|
- ---> The property values should be expressions/rvalues. This should
|
|
|
- be clearer in the docs now.
|
|
|
-
|
|
|
-* Otherwise, one may use a single input, as long as the
|
|
|
- 'numberOfInputs' property is set to a value that is at least the total
|
|
|
- number of incoming links. ???
|
|
|
- ---> Unintentional 'feature' caused by the CBD-simulator's 'addConnection'
|
|
|
- behaviour when 'input_port_name' is not defined. On the one hand, this
|
|
|
- may add a shorthand for what could be a painful issue. On the other hand,
|
|
|
- it causes less clean modeling.
|
|
|
+* Allow Renaming of files? => Via tabs?
|
|
|
|
|
|
-* When this option is set, even those ports will explicitly be set.??
|
|
|
- ---> See previous answer. When set, this parameter will always add the
|
|
|
- 'input_port_name' and 'output_port_name' argument, even if it can be
|
|
|
- deduced from the context. Counteracts the previous 'feature'.
|
|
|
+* Allow global variables/code? => Model specific; so no flag
|
|
|
|
|
|
-* Function block (e.g., sin()): GenericBlock?
|
|
|
- ---> See 'examples/SinGen/' example
|
|
|
+* Allow setting of drawio xpath => Formalism-specific; set in setup file
|
|
|
|
|
|
-* Property 'block_name' is the name of the block if this class is the top-level CBD?
|
|
|
- OK? Property 'block_name' is the name of an instance of this hierarchical CBD model.
|
|
|
- ---> ONLY if this class/CBD is marked as 'entry' by the commandline arguments.
|
|
|
+* Sphinx documentation
|
|
|
|
|
|
* multiple pages: unique names?
|
|
|
---> I agree, it should be nice to actually split up these models graphically, yet
|
|
|
@@ -81,56 +22,3 @@ A list of features that are wanted in this tool:
|
|
|
it is now page-independent.
|
|
|
TODO: ask Joeri
|
|
|
|
|
|
-* online documentation using
|
|
|
- https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
|
|
- ---> Done!
|
|
|
-
|
|
|
-* be printed to the console --> stdio?
|
|
|
- ---> Currently, it uses the 'print' function. Using 'sys.stdout' shouldn't be an issue.
|
|
|
-
|
|
|
-* represents an input file (uncompressed or compressed XML) ?OK compressed?
|
|
|
- ---> I removed that from the documentation. Either is fine, though the compressed might be
|
|
|
- better performance-wise (and space-wise on your system).
|
|
|
-
|
|
|
-* Generation of LaTeX ... in drawio2cdf and/or in generated "simulator"?
|
|
|
- ---> In the generated file only. Though, I am not fully convinced the current syntax/way
|
|
|
- of doing it is 'clean'.
|
|
|
- TODO: LaTeX functions must be checked/altered (they must be ordered)
|
|
|
- ---> Add LaTeX generation of the flattened CBDs!
|
|
|
-
|
|
|
-* Generate FMU (in the near future)
|
|
|
-
|
|
|
-* Restructure simulator based on Claudio's version
|
|
|
-
|
|
|
-* In the future: refactor simulator to use internal (graph) structure from ModelverseState (MvS).
|
|
|
- This is the first step to full integration with the Modelverse. drawio will then be
|
|
|
- one possible visual interface for formalism-specific syntax-directed editing of Modelverse models
|
|
|
-
|
|
|
-* currently, remove graphViz (or keep for dependency graph)
|
|
|
-
|
|
|
-* Re-add the "plotting" module, but provide functionality for bokeh, matplotlib, gnuplot, csv, xml... that way
|
|
|
-
|
|
|
-* Move "get_block" function from generated scripts to "CBD" module
|
|
|
- ---> Done!
|
|
|
-
|
|
|
-* Move __docstring__ attribute to custom shape (Text/Textbox/...) in drawio?
|
|
|
-
|
|
|
-* Add possibility to import other libraries into your custom library, allowing multiple files.
|
|
|
-
|
|
|
-* Custom LaTeX representation for custom blocks?
|
|
|
-
|
|
|
-* RootBlock: is linear if its root is <= 1
|
|
|
-
|
|
|
-* Don't override "if __name__ == '__main__':" option?
|
|
|
- ---> Maybe only override the classes?
|
|
|
-
|
|
|
-* Reduce the amount of whitespaces for imports
|
|
|
- ---> Use a list of all import statements instead of making it variable
|
|
|
- with the file generation.
|
|
|
-
|
|
|
-* Have multiple entry points for the ports possible
|
|
|
-
|
|
|
-* Cleaner/better code generation, that is easily expandible to other frameworks (C [FMU], Java...)
|
|
|
-
|
|
|
-* Fix issues that appear in "troublesome.xml" -- Thank you Nils Charlet for pointing this out!
|
|
|
-
|