Coder Social home page Coder Social logo

esa / opengeode Goto Github PK

View Code? Open in Web Editor NEW
69.0 10.0 20.0 40.85 MB

OpenGEODE - a free SDL editor

Home Page: https://opengeode.net

License: GNU Lesser General Public License v3.0

Makefile 3.63% Shell 0.12% Python 92.73% GAP 1.42% C 1.61% Batchfile 0.01% Ada 0.17% Smalltalk 0.31%

opengeode's Introduction

OpenGEODE Logo

OpenGEODE

OpenGEODE is an open-source SDL editor that is developed for the purpose of providing an easy to use and free state machine editor and Ada code generator to the TASTE toolchain from the European Space Agency, running in combination with ESA's "Space Certifiable" ASN.1 compiler.

SDL is the Specification and Description Language (Z100 standard from ITU-T).

This is NOT related to the graphical Simple DirectMedia Layer libraries!

Visit http://sdl-forum.org for more information about SDL.

OpenGEODE Screenshot

Features

  • Graphical editor of SDL processes and procedures.
  • Support for state composition and state aggregation (parallel/nested states)
  • Works on pure PR+CIF files (textual SDL notation)
  • Supports ASN.1 data types using ESA Space Certified compiler (www.github.com/ttsiodras/asn1scc)
  • Generates Ada code
  • Automatic conversion to Statechart diagrams
  • Save the complete or parts of the model to PNG/SVG/PDF files
  • Hyperlinks (link a symbol content to any external document or web page)
  • Context-dependent text auto-completion
  • Syntax highlighting
  • Undo/Redo, Copy-Paste
  • (Limited) VIM mode - You can use :wq or :%s,search,replace,g, and /search pattern
  • Python API to parse and render SDL from other Python modules
  • Simulator (prototype)

Main limitations

  • Supports only one process at a time (use TASTE to connect processes to form a complete system)
  • Minimal support of legacy SDL datatypes (newtypes/synonyms..): use ASN.1 instead

Installation

OpenGEODE is made primarily for Linux.

It is part of the TASTE project

It is installed with all dependencies in the TASTE virtual machine that you can download from this link. Manual installation is possible in a native Linux environment. Debian 10 (buster) is the baseline. Recent versions of Ubuntu (20.x) should work as well.

Using TASTE

Important: OpenGEODE is already installed in the TASTE10 Virtual Machine (based on Debian Buster), and fully integrated with the toolset. It is the easiest way to get started with OpenGEODE

To start a new project run:

$ taste

Select a project name and the graphical editor will pop-up shortly after. You can add functions to the system and specify the implementation language to SDL. When you edit the function, the OpenGEODE editor will start.

You can check an example of a system using Opengeode if you go in ~/tool-src/kazoo/tests/Demo_ABB_Opengeode and run make to build it. Then taste to edit.

The code is automatically generated when you exit the tool.

Manual

The following commands should automate the installation:

$ git clone https://github.com/esa/opengeode
$ cd opengeode
$ make full-install   # it will prompt for sudo password to call apt

The installation will be done in the ~/.local folder by the Python3 pip tool. Make sure you add this to your .bashrc (or equivalent):

export PATH=~/.local/bin:$PATH

Once you have the dependencies installed you can update the tool by running the following commands:

$ git pull
$ make install    # alternatively:  python3 -m pip install opengeode

OpenGEODE Website

A web page has been created with more information about OpenGEODE.

The source for the page can be found in the wiki folder of this repository. Any changes to the wiki source will be subsequently merged into the wiki by the wiki maintainers.

Information and contact

For information please contact: maxime (dot) perrotin (at) esa (dot) int

Additional contributors:

  • Diego Barbera (ESA Summer of Code 2014 - LLVM backend)
  • Laurent Meyer
  • Marco Lattuada (C backend)

The ASN.1 compiler (ASN1SCC) that OpenGEODE is based on was developed by George Mamais and Thanassis Tsiodras for the European Space Agency.

Licence

License is LGPL (see file LICENSE) There is no runtime, and the generated code is not subject to any license.

The fonts are the fonts from Ubuntu, check licence in file FONT-LICENSE.TXT The background pattern was downloaded from www.subtlepatterns.com

Changelog

4.3.1 (04/2024)

  • Major parsing speedup

4.3.0 (04/2024)

  • Introduce the requirements and review widgets
  • Fix help search engine

4.2.1 (03/2024)

  • Introduce support of newtype literals (user-defined enumerated types) as per Z100 syntax

4.2.0 (03/2024)

  • Support named bit assignments in BIT STRING variables

4.1.27 (02/2024)

  • Support BIT STRING indexing properly in the Ada backend

4.1.26 (01/2024)

  • Support substrings in ternary operator in the C backend (alignment with Ada)

4.1.25 (12/2023)

  • Give possitbility to ignore a syntax error while editing
  • Fix copy-paste issue for procedure using the present operator on an fpar

4.1.24 (12/2023)

  • Fix support for inequality operator in decisions (for bool and enumerated types)
  • Fix support for arrays indexed by enumerated

4.1.23 (12/2023)

  • Fix interprocess copy-paste issue (could result in duplicate copies)

4.1.22 (11/2023)

  • Fix export of the statechart into png from the GUI (worked only from command line before)
  • Fix navigation in nested states when using partitions

4.1.21 (11/2023)

  • Critical Fix: saving error (when code generation backend raises an exception model could be lost!)
  • Fixed support for array newtypes indexed by an enumerated type

4.1.20 (11/2023)

  • Fix code generation when combinining a history nextstate trying to go back to a nested state that contains no inner state (just a start transition ending with a RETURN).

4.1.19 (11/2023)

  • Improve the management of temporary folders/files, and fix Windows support

4.1.17 (11/2023)

  • (minor) Remove workaround that was added when calling the ASN.1 compiler on Windodws

4.1.16 (11/2023)

  • Updated setup.py for easier pip-based installation

4.1.15 (10/2023)

  • Added --edit flag to be used in combination with --toC/--toAda to generate code together with the model and save build time

4.1.14 (10/2023)

  • Report an error when a procedure is declared referenced and external but no definition is provided
  • Fix support for sync PI in function type/instance

4.1.13 (09/2023)

  • Fix for the support of the CREATE symbol (needed for the simulation)

4.1.12 (09/2023)

  • Fix for the support of the CREATE symbol (Ada backend)

4.1.11 (09/2023)

  • Major upgrade of the C backend - nearly feature complete (except type/instances and a few other features)
  • Fixes in the code generation for observers/model checking and interactive simulator

4.1.10 (09/2023)

  • Various fixes in the C backend

4.1.9 (06/2023)

  • Fix support of the renaming clause in C and Ada backends

4.1.8 (06/2023)

  • Fix generation of inner calls to exported procedures in Ada backend

4.1.7 (06/2023)

  • Fix octet string synonym declaration using hex notation

4.1.6 (05/2023)

  • Fix more issues with computation of modulo operator range (negative numbers)

4.1.5 (05/2023)

  • Fix computation of modulo operator range

4.1.4 (05/2023)

  • Fix support for built-in operators (Val, To_Enum, etc) / Ada backend

4.1.3 (05/2023)

  • Fix type signed/unsigned potential mismatches when using syntypes

4.1.2 (05/2023)

  • Maintenance relaase - text search work cross-partitions

4.1.1 (05/2023)

  • Maintenance relaase - minor bugfixes (placement of comments, partitions)

4.1.0 (05/2023)

  • Support partitions
  • Bug fix with the append operator

4.0.9 (05/2023)

  • Allow exporting of local procedures (not PIs)

4.0.8 (04/2023)

  • Fix regression (allow appending a raw text string to an octet string)

4.0.7 (04/2023)

  • More type checking with the append operator

4.0.6 (04/2023)

  • Bugfix: type checking when mixing octet strings and integers

4.0.5 (03/2023)

  • Bugfix: alternative symbol could not follow labels

4.0.4 (03/2023)

  • Improve type checking of raw SEQUENCE expressions

4.0.3 (01/2023)

  • Better support for optional fields in sequences
  • Improve synonym parsing
  • Improve checks on ground expressions

4.0.2 (01/2023)

  • It is possible to subtype (with syntype) native "integer" and "natural" types

4.0.1 (01/2023)

  • Add support for the DELETE symbol (to delete a "dynamically" created instance)

4.0.0 (01/2023)

  • Add support for the CREATE symbol

3.14.2 (12/2022)

  • Ada backend: fix instantiation of parameterless output messages

3.14.1 (12/2022)

  • Support synonym of SEQUENCE literal

3.14.0 (12/2022)

  • the "self" constant was not set properly in instances of process type. Fixed (Ada backend)

3.13.3 (12/2022)

  • Fix default values of type OCTET STRINGs when referencing an ASN.1 constant

3.13.2 (12/2022)

  • Fix rendering issue with nextstate when using a VIA clause

3.13.1 (12/2022)

  • Fix missing cast in Ada backend when using index loops
  • Fix support for IS5String in CHOICE elements (Ada backend bugfix)

3.13.0 (12/2022)

  • Support arrays indexed by an enumerated type (when using the newtype construct)

3.12.7 (12/2022)

  • Fix rendering issue with --png, reduced risk of text overlap
  • Add procedures (with edit button) to the data dictionary

3.12.6 (12/2022)

  • Fix rendering of enumerated values in data dictionary
  • Fix localization of errors upon model loading

3.12.5 (12/2022)

  • Add synonyms, newtypes and syntypes in the data dictionary tab
  • Highlight selected type/constant in the ASN.1 file when selected from data dictionary
  • Make sure splashscreen remains on top while loading the model

3.12.4 (12/2022)

  • Fix rendering issue with alternative symbol in presence of errors
  • Support of the NULL ASN.1 type and corresponding constant
  • Fix parsing of synonyms

3.12.3 (11/2022)

  • Fix support of newtypes depending on syntypes (parsing order bug)

3.12.2 (11/2022)

  • Fix cast error when appending an octet to an octet string

3.12.1 (11/2022)

  • Fix support for loop iterator in combination with arrays (Ada backend fix)
  • Align generation of code with asn1scc bugfix when using subtypes with sign incompatibilities

3.12.0 (11/2022)

  • Add support for standard SDL SYNTYPE construct (useful to create a range type for a local array)

3.11.2 (11/2022)

  • In simulation mode, signal unhandled interfaces (lost signal)

3.11.1 (11/2022)

  • Fix scope issue when using for loops in observers

3.11.0 (11/2022)

  • Introduce support for SDL's alternative symbol

3.10.3 (11/2022)

  • Fix parsing bug with input *

3.10.2 (11/2022)

  • Detect name conflicts between variables and constants
  • Support newtype names with underscore (bugfix)
  • Improve data dictionary (constant values, better jump to the ASN.1 model)
  • Text search: spot the exact pattern location in results, and iterate properly on multiple occurences

3.10.1 (10/2022)

  • Add Quick filter for the data dictionary

3.10.0 (10/2022)

  • Add implicit declaration of "self" and "sender" of type PID

3.9.33 (10/2022)

  • Fix copy-paste bug with internal procedure calls

3.9.32 (10/2022)

  • Fix support to OUTPUT TO variable of type PID

3.9.31 (10/2022)

  • Fix Append operator (when appending using an index)
  • Allow custom-types (newtype array) to reference other custom types
  • Partially support array indexed by an enumerated type (fixed-sized array)
  • Support OUTPUT TO variable of type PID

3.9.30 (10/2022)

  • Introduce parsing of OUTPUT TO and CALL TO to support multicast

3.9.29 (10/2022)

  • Introduce inline help
  • Fix code generation (decision answer with multiple values)

3.9.28 (09/2022)

  • Added splashscreen while loading the model

  • Fix issue with the spelling of the C symbol for exported procedurs (Ada backend) 3.9.27 (09/2022)

  • Fix issue with the spelling of the C symbol for exported procedurs (Ada backend)

  • Fix check of procedure parameters (definition vs referenced declaration)

3.9.26 (09/2022)

  • Fix copy paste issues (paste state in procedure, and label transitions)

3.9.25 (09/2022)

  • Detect risk of division by zero with the modulo operator
  • Fix range of ASN.1 constants

3.9.24 (09/2022)

  • Fix C code generation backend (use renamePolicy=3)

3.9.23 (09/2022)

  • API for asn1scc now allows calling asn1scc with renamePolicy=3
  • Minor fix in copy-paste of Label branches

3.9.22 (08/2022)

  • Look for mismatch in exported procedure signature declaration/definition
  • Fix copy-paste issues

3.9.21 (08/2022)

  • Minor fixes in the C code generator backend
  • Fix bug when saving a model with non-existing types assigned to a variable

3.9.20 (08/2022)

  • Better check of errors related to the CONNECT construct (nested state named return: detect duplicates and missing connect transition)
  • Improvement of the Label symbol shape

3.9.19 (08/2022)

  • Improve visibility of text and autocompleter when editing comments (ensure that text is always in front of other symbols and that autocompleter is in the screen area)

3.9.18 (08/2022)

  • Improve auto-resizing of symbols (and remove manual resizing)

3.9.17 (08/2022)

  • Fix support of Asterisk input (INPUT *) - parser bugfix

3.9.16 (08/2022)

  • Better check that dcl variable default values are ground expressions (no reference to variables)

3.9.15 (08/2022)

  • Relax the range checks in index access (raise an error only when absolutely certain there is an overflow)

3.9.14 (08/2022)

  • Fix various range checks
  • Detect/forbid assignments to loop range iterators
  • Fix selection of connectors
  • Many fixes to the Append operator (parser and Ada backend)

3.9.13 (07/2022)

  • Fix the computation of range of the mod and rem operators
  • Add makefile rules to test the sdl2if and sdl2promela tools

3.9.12 (07/2022)

  • Fix the datamodel generation in function types

3.9.11 (07/2022)

  • Fix a bug in code used by the model checker
  • In Ada backend: ignore exported procedures with no start transition

3.9.10 (06/2022)

  • Fix a bug in the Helper preprocessing function when handling aliases

3.9.9 (06/2022)

  • Fix a bug in the statechart rendering for the TASTE simulator

3.9.8 (05/2022)

  • Remove option to generate code with QGen
  • Refactor backends
  • Generate the ASN.1 datamodel together with the model
  • Simplify generated Makefile

3.9.7 (05/2022)

  • Simplify generated code when using dash history (nextstate -*)

3.9.6 (05/2022)

  • Detect attempts to write to FPAR IN parameters in procedure (read-only variables)

3.9.5 (05/2022)

  • More type checks when using mkstring to form octet strings

3.9.4 (04/2022)

  • More type checks in sequence fields

3.9.3 (04/2022)

  • More type checks

3.9.2 (04/2022)

  • Add type checks when using octet string literals

3.9.1 (04/2022)

  • Improve chr operator: add input range check
  • Bugfix with octet string literals if they had an odd number of characters (add a 0 on the left)

3.9.0 (04/2022)

  • Upgrade to Qt6 (PySide6)

3.8.1 (04/2022)

  • Add chr operator to cast elements of OCTET STRING into unsigned integers

3.8.0 (04/2022)

  • Remove old simulator code (and feature) in favor of the TASTE simulator

3.7.29 (03/2022)

  • Support the "set" and "reset" names as identifiers

3.7.28 (03/2022)

  • Fix bug with error reporting in decision answers (caused segfault)

3.7.27 (03/2022)

  • Fix function call order in case of parallel states (major bugfix)
  • Fix initialisation of deep nested/parallel states
  • Add edge selection feature in statecharts

3.7.26 (03/2022)

  • change API of asn1dataModel (used by the TASTE simulator)

3.7.25 (02/2022)

  • Fix continuous signals in generated code

3.7.24 (02/2022)

  • Update statechart rendering when simulating parallel states

3.7.23 (02/2022)

  • Major performance boost when loading/checking the model

3.7.22 (02/2022)

  • Ada backend: optimize code for decision answers and state switch case

3.7.21 (02/2022)

  • Fix assignments of octet string literals in Ada backend

3.7.20 (01/2022)

  • Fix support of auto-generated -selection type for CHOICE interface

3.7.19 (01/2022)

  • Import SQL Alchemy interface when interfacing with DMT

3.7.18 (10/2021)

  • Support double quotes and escaped strings

3.7.17 (10/2021)

  • Fix continuous signals in instance of process types

3.7.16 (10/2021)

  • Support continuous signals in instance of process types

3.7.15 (10/2021)

  • When using NEWTYPEs, capitalize the type name for ASN.1 compliance

3.7.14 (09/2021)

  • Support indexes and field access in OUT parameters of procedure calls

3.7.13 (08/2021)

  • Minor alignment of the C backend (still incomplete: use Ada)

3.7.12 (07/2021)

  • Fix type checking in decisions with call procedures (also prevented copy-pasting)

3.7.11 (07/2021)

  • Fix call of exit procedure in nested states with continuous signals

3.7.10 (07/2021)

  • Fix use of string literals in several contexts (return, procedure params)

3.7.9 (07/2021)

  • Store the proper text in the DECISION string content
  • Performance boost

3.7.8 (07/2021)

  • Add support for the NOT operator on unsigned numbers

3.7.7 (07/2021)

  • Fix some bitwise operators when using unsigned numbers

3.7.6 (07/2021)

  • Add Right_Shift and Left_Shift operators applicable to unsigned integers

3.7.5 (07/2021)

  • Improve support SDL synonyms (synonym foo SomeIntType = 42;)

3.7.4 (06/2021)

  • Octet and bit strings can be indexed
  • Better support of octet and bit string literals
  • Bitwise operators support for unsigned integers

3.7.3 (06/2021)

  • Fix support of continuous signals when using parallel states
  • Support history state for parallel state (nextstate -*)
  • Fix shape of continuous signals

3.7.2 (06/2021)

  • Add operator to return the observer state status
  • Support internal operators with no parameters

3.7.1 (06/2021)

  • Support the declaration of error, success and ignore states for observers

3.7.0 (06/2021)

  • No more dependency on mono ; use ASN1SCC based on .NET Core 5

3.6.3 (06/2021)

  • Fix parsing bug when there is no CIF data on a symbol that contains an error
  • Use 'Enum_Val to set an enumerated value from a number

3.6.2 (06/2021)

  • Observer early support detection of lost (unhandled) messages

3.6.1 (06/2021)

  • Support bit string literals assigned to integers (eg. dcl x SomeInt := '11'B;)
  • Add range checking for bit string and hex string literals

3.6.0 (05/2021)

  • Support grouped answers in decisions (comma-separated answers)
  • Support hex literals assigned to integers (eg. dcl x SomeInt := '2A'H;)

3.5.9 (05/2021)

  • Fix autocompletion of variable when fields are separated with dot

3.5.8 (05/2021)

  • Use --type-prefix AUTO when calling ASN1SCC to avoid naming conflicts

3.5.7 (05/2021)

  • Fix generation of statecharts

3.5.6 (05/2021)

  • observers: support renaming of continuous signals with parameters

3.5.5 (04/2021)

  • Fix support for single input/output expressions (with no message name)
  • Fix graphical location of errors for undefined states
  • Fix continuous signal evaluation in parallel states

3.5.4 (04/2021)

  • Fix code generation when no signals are defined (only exported procedures)
  • Add renames clause (aliases) for input/output expressions

3.5.3 (04/2021)

  • Model checking observers: add support for parameters in input/output expressions

3.5.2 (04/2021)

  • Model checking observers: run only one transition per call
  • Support field names called "state"

3.5.1 (04/2021)

  • Support aliases: dcl var type renames foo.bar.baz;

3.5.0 (04/2021)

  • Support Input/Output expressions for model checkers

3.4.6 (04/2021)

  • Introduce monitors to support model checking observers

3.4.5 (04/2021)

  • Fix bug affecting RPC

3.4.4 (04/2021)

  • After RPC call, execute corresponding transition in the state machine (if any)

3.4.3 (03/2021)

  • Ignore duplicate signal definition at system level (impacts only taste systems)

3.4.2 (03/2021)

  • Minor bugfix

3.4.1 (03/2021)

  • Fix support of remote synchronous calls

3.4.0 (03/2021)

  • Support exported/reference procedures (allowing remote synchronous calls)

3.3.7 (03/2021)

  • Support IA5String type

3.3.7 (03/2021)

  • Fix handling of context parameters in type/instances

3.3.6 (12/2020)

  • Minor bugfix with procedure parsing

3.3.5 (11/2020)

  • Improve link between error messages and graphical symbols

3.3.4 (10/2020)

  • Fix bug when drawing connections in decision branches

3.3.3 (10/2020)

  • Refactoring : Generate all data types in ASN.1

3.3.2 (10/2020)

  • Fix reporting of semantic errors in procedures

3.3.1 (09/2020)

  • Fix issue with type synonyms
  • Update installation procedure
  • Enable pip3 installations from PyPI

3.3.0 (08/2020)

  • Save the state as an ASN.1 model instead of a native Ada type

  • Ada backend basic support for "decision any" **3.2.3 (09/2020)

  • Fix type checks when a type inherits another type with different constraints

**3.2.2 (09/2020)

  • Fix a regression with legacy, non-kazoo taste systems, related to the import of check_queue symbol

3.2.1 (07/2020)

  • Fix issue with the "present" operator
  • Move the context declaration to the .ads
  • Always expose the Get_State function (returns char * to C)

3.2.0 (07/2020)

  • Add basic support for state type/instance

3.1.2 (07/2020)

  • Reinforce syntax error checking and reporting

3.1.1 (07/2020)

  • Reinforce syntax error checking and reporting
  • Don't allow user escape a symbol syntax error: refocus text until fixed

3.1.0 (06/2020)

  • Add support for mkstring operator to transform an element into an array mkstring (a, b, c) is in principle equivalent to ASN.1 Value Notation {a, b, c} however ASN.1 value notation can't be used for a single indexed element : { foo(1) } as this is an ambiguous syntax (it can be mixed with a record field, with value 1). mkstring is the actual Z100 (SDL standard) syntax to be used

3.0.9 (06/2020)

  • Minor fixes in C backend related to case sensitivity

3.0.8 (06/2020)

  • Support ASN.1 integer constants with no range (plain x INTEGER ::= 5)
  • Check that procedures with a return type are called only from TASKs

3.0.7 (06/2020)

  • Fix update of data dictionary window
  • Fix unconstrained constants support

3.0.6 (06/2020)

  • Fix CONNECT symbol

3.0.5 (06/2020)

  • Add support to standard SDL syntax x := CALL procedure in tasks

3.0.4 (06/2020)

  • Fix use of ASN.1 constants in decision branches

3.0.3 (05/2020)

  • Replace the unicode separator when flattening the model for code generation
  • Fix calls to the exit procedure in nested states

3.0.2 (05/2020)

  • Fix API change in Pyside2

3.0.1 (05/2020)

  • Improve generated Makefile/gpr project file

3.0.0 (12/2019)

  • Port of Opengeode to Python3
  • Use PySide2 instead of PySide
  • Asn1scc module supports additional options

2.1.5 (10/2019)

  • Fix unicode issues

2.1.4 (10/2019)

  • Improve code generated for simulation

2.1.3 (10/2019)

  • Improve statechart rendering (in particular with nested states)

2.1.2 (10/2019)

  • Change import name case for set/reset of timer (for taste compatibility)

2.1.1 (10/2019)

  • Create cache folder if it was missing

2.1.0 (09/2019)

  • Reinforce type checks when using substrings and indexes, and variable-length arrays. the latter can no longer be indexed on the left side of an assignment, as the size cannot be set that way The proper ways to set values of a variable-length array are: 1) ASN.1 value notation var := { a, b, c } 2) New assignment to replace a value using append statements: var := var (0) // { b } // var (2, 3)

2.0.44 (09/2019)

  • Fix case issue when used combined with kazoo

2.0.43 (05/2019)

  • Better handling of path in generated gpr files

2.0.42 (05/2019)

  • Fix substring support (can now write var(1,2) := {1,2})

2.0.41 (05/2019)

  • Add --taste flag to target taste integration with kazoo

2.0.40 (04/2019)

  • Improve generated gpr file

2.0.39 (04/2019)

  • Fix append operator when using substrings
  • Fix unicode issue

2.0.38 (04/2019)

  • Support advanced "in" expressions (e.g. "someVar in {enum1, enum2}", or "someVar in {{a 4, b false}, {a 1, b true}}"

2.0.37 (04/2019)

  • Support substrings on the left part of an expression (a(1,2) := ...)

2.0.36 (04/2019)

  • Fix unicode issue in Ada backend

2.0.35 (04/2019)

  • Add helper when editing text (update data dictionary selection)

2.0.34 (04/2019)

  • Relax range check for substrings
  • Save/restore windows geometry when quitting/opening the tool
  • Make datatypes fully visible in the data dictionary window
  • write[ln] operator now supports embedded newlines

2.0.33 (04/2019)

  • Fix unicode issue in Ada backend when using substrings

2.0.32 (04/2019)

  • Fix segfault and improve copy paste of nested states in branches

2.0.31 (04/2019)

  • Can cut/paste nested states (nested content was lost before)
  • Can copy/paste and then rename states with nested content

2.0.30 (03/2019)

  • Fix bug when double clicking in an autocompletion box in text areas

2.0.29 (03/2019)

  • Fix range computations and modulo operator

2.0.28 (03/2019)

  • Fix saving issue on new non-taste models

2.0.27 (03/2019)

  • Fix type checking when using substrings

2.0.26 (03/2019)

  • minor bugfix with underscore/dash confusion

2.0.25 (03/2019)

  • fixed variable renaming bug in code generation for nested states

2.0.24 (03/2019)

  • Add choice_to_int operator

2.0.23 (03/2019)

  • Add basic support for NEWTYPE definitions

2.0.22 (02/2019)

  • Generate GPR files to ease the build using gprbuild

2.0.21 (02/2019)

  • Fix regression in simulation build script

2.0.20 (02/2019)

  • Added "val" operator to convert a number to an enumerant usage: someVal := val (0, MyEnumeratedType) with someVal of type MyEnumeratedType. Will return the first enumerant

2.0.19 (01/2019)

  • for CHOICE types variables can be declared with enumerated type corresponding to the choice discriminant. CHOICE type is suffixed by "-selection", and the "present" operator now returns type type
  • If there is an enumerated type with the exact same content as the list of CHOICE determinants, cast is possible using to_selector and to_enum

2.0.18 (12/2018)

  • Generate code in the current directory, not in the one of the .pr

2.0.17 (09/2018)

  • Fix type checking of the "power" operator

2.0.16 (07/2018)

  • Added interaction with system clipboard (basic for floating items)

2.0.15 (07/2018)

  • Fix many bugs in type checking system

2.0.14 (06/2018)

  • fix numerical checks when setting timer parameters

2.0.13 (06/2018)

  • Add taste-compatible cache mechanism when calling asn1scc

2.0.12 (06/2018)

  • Fix resolution of ASN.1 constants - values were not use properly when a constant was referencing another constant (numerical operations only)

2.0.11 (06/2018)

  • Ada backend: fix choice determinant issue leading to CHOICE_NOT_FOUND bug

2.0.10 (06/2018)

  • Various fixes in statechart rendering, esp. from command line

2.0.9 (06/2018)

  • Add timers in statecharts
  • Fix statechart list of signals when tab is activated from a sub-diagram

2.0.8 (05/2018)

  • Minor bugfix

2.0.7 (05/2018)

  • Add option to generate code with QGen (C and Ada)
  • Better reporting of model parsing error

2.0.6 (05/2018)

  • Several fixes with the Append operator when working on complex types

2.0.5 (04/2018)

  • Fix zoom-in on laptops keyboards with ctrl-shift-+

2.0.4 (03/2018)

  • Fix issue with variable prefix in nested states (in generated code)

2.0.3 (03/2018)

  • Optimize calls to asn1scc
  • Fix paste error when input symbol is selected

2.0.2 (03/2018)

  • Better support of ASN.1 constants
  • Support timer when using process type
  • Trigger model check proposal on save only if not checked recently
  • Fix Statechart rendering (incl. with process type)
  • Ada backend: when a branch is ignored, generate "null"

2.0.1 (02/2018)

  • Detect type mismatches when user mixes signed and unsigned variables

2.0.0 (02/2018)

  • V2 of Opengeode is based on ASN1SCC V4 and is not compatible with V3
  • Main changes concern support of unsigned numbers in ASN.1 types

1.5.44 (01/2018)

  • Bugfix: Return error code when Ada generation fails
  • Tests: reorder arguments to asn1scc for v4 compatibility

1.5.43 (01/2018)

  • Add preliminary compatibility with asn1scc v4

1.5.42 (10/2017)

  • Fix case issue with process types
  • Remove submodules

1.5.40 (07/2017)

  • Fix range check in arrays

1.5.39 (07/2017)

  • Minor fix in testcase Makefile

1.5.38 (06/2017)

  • Fix unicode issue in Ada backend

1.5.37 (05/2017)

  • Fix Ada backend bug with sequence of literals in nested states

1.5.36 (05/2017)

  • Fix Unicode issues in Ada backend

1.5.35 (05/2017)

  • Fix FOR LOOPS code generation

1.5.34 (05/2017)

  • Fix statechart message selection box

1.5.33 (04/2017)

  • Fix unicode issue with the simulation code
  • Use -fPIC when building the simulation library

1.5.32 (04/2017)

  • Unicode bugfixes in Ada backend
  • Bugfix with SEQUENCE OF literals in Ada backend
  • Various bugfixes with mixed int32/64 bits

1.5.28 (03/2017)

  • Added preliminary support for PROCESS TYPE and instances

1.5.26 (02/2017)

  • Statecharts can be configured to filter out signals

1.5.25 (01/2017)

  • Ada backend generates aliased context (used for model checking)

1.5.24 (01/2017)

  • PR file use better indentation for text areas (no line return)

1.5.23 (12/2016)

  • In simulation mode, bugfix in the declaration of the startup function
  • Code generator prepared for model checking

1.5.22 (12/2016)

  • Simulation function save/restore context fix

1.5.21 (11/2016)

  • Fix regression with test-math (import of external functions)
  • Use monospace font in the HTML rendering of ASN.1 files

1.5.20 (11/2016)

  • Fix wrongly formatted error reporting in FOR loops
  • Support SDL2010 dot field separator (variable.field, while sdl92 only supported variable!field)
  • Sequence of literals now support field selectors (i.e. { variable.field } is now a valid statement)
  • Support inner procedure call with return statement

1.5.19 (11/2016)

  • Fix integer cast in Ada

1.5.18 (11/2016)

  • Fix parsing of ASN.1 constants that use an anonymous inner type

1.5.17 (11/2016)

  • Fixed issue with initialization of generated code in state aggregations

1.5.16 (11/2016)

  • Fix minor indentation issue when saving

1.5.15 (10/2016)

  • Report incomplete startup transitions as errors in nested states

1.5.14 (10/2016)

  • Support named integers (requires asn1scc 3.3.04 or more recent)

1.5.13 (10/2016)

  • Better support of warnings
  • Fixed detection of CHOICE assignment errors
  • Raise error if process miss the start transition
  • Raise error in case of SEQUENCE OF type mismatch

1.5.12 (09/2016)

  • Detect duplicate declaration of procedures

1.5.11 (09/2016)

  • Allow semicolon in the declaration of procedures after RETURNS keyword

1.5.10 (09/2016)

  • readonly mode with more restrictions

1.5.9 (09/2016)

  • Added --readonly command line to restrict process modifications

1.5.8 (09/2016)

  • Bugfix - Ada backend failed when there were continuous signals in nested states but none at root level (missing end if)
  • Load fix when there is no dataview
  • Additional type checks

1.5.7 (09/2016)

  • Bugfix - Update completion list of process symbol
  • Sort ASN.1 types in data dictionary

1.5.6 (08/2016)

  • vi interface supports history
  • vi interface for substitution can apply to the whole model (with g)
  • refactoring function via vi interface (eg. %state,fromName,toName,)
  • Fixed issue with rendering (coordinates of symbols could be wrong)
  • Introduce data dictionary

1.5.4 (08/2016)

  • Various GUI improvements

1.5.3 (07/2016):

  • Ada backend fix: Continuous signals now handled in states where input is not consumed

1.5.2 (07/2016):

  • Asn1scc API added to interface with DMT/asn2dataModel
  • Better statechart rendering (less distance between nodes)

1.4.5 (07/2016):

  • Context variable was not prefixed properly
  • Callback function for timers use 64bits integer
  • RIs use prefix with unicode separation to avoid name clashes

1.4.4 (06/2016)

  • Minor bugfix in Ada backend to support typeless systems

1.4.3 (06/2016)

  • Add support for priority of continuous signals in Ada code generator

1.4.2 (06/2016)

  • Reload / render properly priority of continuous signals

1.4.1 (06/2016)

  • Continuous states can check the presence of messages in the input queue to respect the SDL semantics
  • Bugfix in Ada code generator on continuous states

1.3.28 (06/2016)

  • Excluded states (with *(statelist) ) were case sensitive

1.3.27 (05/2016)

  • Fix bug in Ada backend when using continuous signals
  • Better handling of simulation script

1.3.26 (05/2016)

  • Fix parser issues with negative expressions

1.3.25 (05/2016)

  • Fix reporting of syntax errors in state aggregations

1.3.22 (05/2016)

  • Bug fix in range checks for division and subtraction
  • Optimise loading when there are no CIF comments

1.3.21 (05/2016)

  • Complete support of optional fields (check tests/regression/test-optionalfields)

1.3.20 (05/2016)

  • Improve simulator interface

1.3.19 (04/2016)

  • Various bugfixes with ternary operator
  • Added demo "test-save" showing how to emulate the behaviour of the SAVE symbol
  • ASN.1 types are shown with SDL-syntax (no hyphens)

1.3.18 (04/2016)

  • Add support for value notation of NULL type
  • Remove warning when accessing CHOICE fields

1.3.17 (04/2016)

  • Add support for value notation of empty SEQUENCEs ("{}")

1.3.16 (03/2016)

  • Bugfix in testing aggregation states in the GUI

1.3.15 (03/2016)

  • Bugfix in Ada backend when a state aggregation contained only empty states (directly returning states).

1.3.14

  • Minor bugfix with command line handling

1.3.13

  • Bugfix in rendering of Continuous signals

1.3.12

  • Render properly parameterless procedures that are declared in the .pr file but without a textbox
  • When going to parent scene, fixed rendering issue

1.3.11

  • Parser is more tolerant to incomplete systems

1.3.9/10 (01/2016)

  • Checker verifies that decision coverage is complete on Real and Boolean types
  • F3 generates Ada code

1.3.8 (01/2016)

  • Fix logging when LLVM is not installed

1.3.7 (12/2015)

  • Added icon to use Continuous Signals from the GUI

1.3.6 (11/2015)

  • Support external procedures having a return statement this allows to import math functions from the libmath without having to provide manual code. see test-math

1.3.5 (11/2015)

  • Better support for continuous signals

1.3.4 (11/2015)

  • Early support for continuous signals
  • Regression issue fixed (test-nocif2)

1.3.3 (11/2015)

  • Better support of platform-dependent screen resolution and dpi
  • Minor fixes in statechart scenes (no negative coordinates)

1.3.1 (11/2015)

  • Support for State Aggregations (parallel states)
  • Improved statechart rendering

1.2.10 (10/2015)

  • Better support of renamePolicy
  • Better handling of models without CIF coordinates
  • Minor bug fixes
  • Forloop syntax error handled correctly when using range
  • support Hex and bit string literals when working with OCTET STRING
  • support OUT keyword for procedure FPAR

1.2.4 (07/2015)

  • Use version 3.2.x of the ASN1SCC compiler with new -renamePolicy flag
  • Improve robustness

1.1.1 (07/2015)

  • Strongly report syntax errors with symbol location and warning if user tries to save a model with syntax errors

1.1.0 (07/2015)

  • Write/Writeln procedure support enumerated types

1.0.1 (06/2015)

  • Bugfix: use mono when calling asn1.exe by default (needed redhat-based

1.0.0 (06/2015)

  • Bugfixes and minor improvements
  • Python API / Simulator function (coupled with other TASTE components)

1.0RC (10/2014)

  • Release candidate Version 1
  • Allow standalone systems (made of one process)
  • Major refactoring of parser and Ada backend
  • Many bugfixes and improvements
  • First version of LLVM backend

0.994 (07/2014)

  • Maintenance release, minor fixes

0.993 (07/2014)

  • Parser bugfixes
  • Better support for nested states
  • Ada generator improvements
  • Support for unicode
  • Indentation of PR code
  • Copy-paste of procedures and nested states
  • Improved regression testing

0.99 (04/2014)

  • Refactoring of the backend engine, now using singledispatch
  • Support of hierarchical states
  • Minor bugfixes

0.98

  • Added support for FOR loops In a task, use "for x in range([start], stop, [range]): ... endfor" or "for x in sequenceOfvariable: ... endfor"
  • Default symbol size is smaller
  • Various minor bugfixes

0.97

  • added support for default value when declaring a variable e.g. DCL myVar myType ::= { x 5, y 2 }; default value must be a ground expression

opengeode's People

Contributors

alexfmpe avatar alimuhammadofficial avatar andrestt avatar asmodehn avatar examon avatar jsoref avatar lattuada avatar maxime-esa avatar meyerlaurent avatar rphh avatar ttsiodras avatar wbnns avatar xuanxu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opengeode's Issues

Having trouble getting started with OpenGEODE via TASTE VM

I've installed OpenGEODE via the Taste VM, however, I'm having trouble accessing it when following the TASTE Quick Reference. Not sure if there is an example project I can quickly access to begin playing around with OpenGEODE to be able to see how it fits together with this repository? Or if there are a set of steps I can follow to quickly create one?

Not sure if this is the right place for this issue; apologies if not. :)

PyPI opengeode project

I was looking at your project page on PyPI (https://pypi.org/project/opengeode/) and I was wondering if it was still alive. It has not been updated for 4 years.

I am asking this because I also have a project called "opengeode" that I would like to publish on PyPI. Before finding a workaround name for my project, I wanted to contact you to make sure your PyPI project was still used.

Thanks for your answer

Some questions about the OpenGEODE

Hello,

I have several questions about the tool:

Q1: I find the tool only supports a little structure information, A SDL model accepted by OpenGEODE has one system, one block, and only one process, within the process, we can model some functions using state machines and procedures. We guess the main reason may be that OpenGEODE is a part of the TASTE tool, the structure information could be described by AADL, SDL only focuses on the functionality of systems. Is it right?

I am reading the source code of your tool and the latest recommendation ITU-T Z.100 (2019). The latest version may help me to understand SDL. So I will have other questions about your tool soon.

Could you please give me some suggestions when you are free? Many Thanks!

Best wishes,

type of channel.

My third question is about the type of channel.

Q3: Is it a nodelaying channel at the current version (between process and ENV)? If I use a delaying channel, what is the generated Ada code?

In fact, I find OpenGEODE only accepts a subset of SDL92 and some features of SDL2000, for instance, structure information is missing (TASTE does it). There is no information about the type of channel within the source OpenGEODE code.

Q4: do you have a detailed BNF for OpenDEODE? Within the source project, sdl92.g includes many details but some of them are useless, for instance, we only have one block and one process. ogAST.py also says the system's blocks & channels are list type... If the BNF document is missing, I could try to write one and maybe you could give me some suggestions when you're free.

I also check some test examples, it's really helpful for me to understand how to design SDL model within OpenGEODE. Thanks!

Originally posted by @nuaaysh in #62 (comment)

Tagging releases

Hello. When reviewing the README, I noticed many releases in the changelog. Was thinking it might be helpful to consider tagging the releases so potential contributors or others downstream might get a clearer point of reference.

image

Or maybe at least for significant point releases.

Anyhow, just an idea.

Composite states

Hi again,
I am sorry to bother with these issues but I don't know where else I can find support with OpenGEODE.

I want to build a hierarchical state machine like the one described in this slide of the training:
Screenshot from 2020-05-26 10-45-03

Are the entry and exit procedures necessary?
When I tried to do something like that I got an error about "missing definition of a substate" relative to the innermost composite state (BOOT). This is the code in my main .pr file:

system OBCmain;
    /* CIF TEXT (159, 221), (287, 203) */
    -- Text area for declarations and comments
    
    use dv comment 'dataview-uniq.asn';
    
    --use dv2 comment 'dataview2.asn';
    
    signal test_voltage(MyInteger);
    signal status_string(MyString);
    /* CIF ENDTEXT */
    channel c
        from env to OBCmain with test_voltage;
        from OBCmain to env with status_string;
    endchannel;
    block OBCmain;
        signalroute r
            from env to OBCmain with test_voltage;
            from OBCmain to env with status_string;
        connect c and r;
        /* CIF PROCESS (225, 49), (150, 75) */
        process OBCmain;
            state LEOP;
            substructure
                    state BOOT;
                    substructure
                        out (error,error);
                            /* CIF TEXT (15, 42), (287, 143) */
                            -- Text area for declarations and comments
                            
                            dcl V MyInteger :=0;
                            /* CIF ENDTEXT */
                            /* CIF procedure (72, 402), (70, 35) */
                            procedure exit;
                            endprocedure;
                            /* CIF procedure (73, 341), (70, 35) */
                            procedure entry;
                            endprocedure;
                            /* CIF START (384, 62), (70, 35) */
                            START;
                                /* CIF NEXTSTATE (365, 117), (107, 35) */
                                NEXTSTATE check_voltage;
                            /* CIF state (774, 68), (114, 35) */
                            state check_voltage;
                                /* CIF input (735, 136), (192, 39) */
                                input test_voltage(V)
                                /* CIF comment (947, 138), (328, 35) */
                                comment 'Read signal test_voltage coming from the outside';
                                    /* CIF decision (796, 195), (70, 36) */
                                    decision V;
                                        /* CIF ANSWER (616, 255), (70, 24) */
                                        (>5):
                                            /* CIF output (580, 299), (143, 35) */
                                            output status_string('high');
                                            /* CIF return (634, 354), (35, 35) */
                                            return error;
                                        /* CIF ANSWER (777, 255), (47, 24) */
                                        (<2):
                                            /* CIF output (732, 299), (137, 35) */
                                            output status_string('low');
                                            /* CIF return (783, 354), (35, 35) */
                                            return error;
                                        /* CIF ANSWER (916, 255), (70, 24) */
                                        ELSE:
                                            /* CIF output (880, 299), (143, 35) */
                                            output status_string('ok')
                                            /* CIF comment (1035, 299), (182, 35) */
                                            comment 'Send signal to the outside';
                                            /* CIF NEXTSTATE (901, 349), (101, 35) */
                                            NEXTSTATE check_other
                                            /* CIF comment (1014, 349), (432, 35) */
                                            comment 'The voltage is within an acceptable range, move to the next check ';
                                    enddecision;
                            endstate;
                            /* CIF state (1580, 73), (101, 35) */
                            state check_other
                            /* CIF comment (1701, 73), (194, 35) */
                            comment 'Go on from here for nominal';
                            endstate;
                    endsubstructure;
                    /* CIF procedure (975, 215), (70, 35) */
                    procedure exit;
                    endprocedure;
                    /* CIF procedure (948, 144), (70, 35) */
                    procedure entry;
                    endprocedure;
                    /* CIF START (376, 51), (70, 35) */
                    START;
                        /* CIF NEXTSTATE (378, 101), (66, 35) */
                        NEXTSTATE BOOT
                        /* CIF comment (464, 101), (337, 35) */
                        comment 'Nested state: double-click to enter the FSM for BOOT';
            endsubstructure;
            /* CIF START (56, 87), (70, 35) */
            START
            /* CIF comment (146, 87), (177, 35) */
            comment 'This is the starting state';
                /* CIF NEXTSTATE (56, 197), (70, 35) */
                NEXTSTATE LEOP
                /* CIF comment (146, 197), (390, 35) */
                comment 'Nested state: double-click to enter the states composing LEOP';
            /* CIF label (883, 127), (70, 35) */
            connection error:
                /* CIF NEXTSTATE (883, 189), (70, 35) */
                NEXTSTATE FDIR;
            /* CIF End Label */
            endconnection;
        endprocess OBCmain;
    endblock;
endsystem;

(If this is not the best way of showing what I am doing, let me know.)

Installation problems in Ubuntu 16.10

  • gnat-4.8

sudo apt-get install gnat-4.8
-> This package doesnt exist any more on Ubuntu
I did

sudo apt-get install gnat-5

  • libmono-corlib4.0-cil
    -> This package doesnt exist any more.
    I did

sudo apt-get install libmono-corlib4.5-cil

sudo wget http://download.tuxfamily.org/taste/ASN1SCC/ASN1SCC-latest.tgz

  • idem for tar

sudo zxvf ASN1SCC-latest.tgz

  • sudo update-ca-certificate
    -> command not found

Export PNG: neither background nor arrow

On Linux Ubuntu 16.10, when "I export To PNG", there is

  • no background in the picture(white color would
    be appreciated) : remark : in this Web page, the background is white.
  • no arrows except for the first status (called New here)

fred

Error - Answers of decision could overlap

Hi,
I have to do a check on a variable, and go to the same recovery state if it is too high or too low. I have done something like this
Screenshot from 2020-06-03 18-42-18

where battery_VIT.i is a variable of type MyReal ::= REAL (0..100.0), ilow is a constant MyReal ::= 0.5 and ihigh is a constant MyReal ::= 3.0. However it results in

[ERROR] Answers of decision "battery_VIT.i" could overlap

I don't see problems on the ranges, is it because I go to the same state in two different branches? I had done it before like here
Screenshot from 2020-06-03 18-42-43

and there was no error.

I have a question about signal in openGEODO

I wonder where the signal is defined. I can only get its name in the example . I wonder some other information about the siganl such as the type of this signal(int ? float ? or something else?) .
image

Multiple SDL Processes

Hi,

I wanted to create a diagram containing two processes that communicate with each other (which is exactly what will happen in my implementation) but after I create one process in OpenGEODE the "Process" button becomes grayed out and I can only add "ProcessTypes".

Is it not possible to have multiple processes in OpenGEODE?

FYI, I have started studying SDL from this tutorial: https://www.sdl-forum.org/sdl88tutorial/index.html

ASN.1 compiler not found

Hi,
I successfully installed OpenGeode as standalone tool following the instructions. If I run

mono /opt/asn1scc/asn1.exe

I get

ERROR: missing parameter '<files>...'.
USAGE: Asn1f4.exe [--help] [--c-lang] [--ada-lang] [--uper-enc] [--xer-enc]
                  [--acn-enc] [--auto-test-cases] [--out <dir>] [--equal-func]
                  [--xml-ast <xmlFilename>] [--type-prefix <prefix>]
                  [--rename-policy <int>] [--field-prefix <prefix>]
                  [--generate-test-grammar]
                  [--custom-stg <custom stg colon outfilename>]
                  [--custom-stg-ast-version <astver>]
                  [--icduper <uper icd output file>]
                  [--customicduper <custom stg colon out filename>]
                  [--icdacn <acn icd output file>]
                  [--customicdacn <custom stg colon out filename>] [--adauses]
                  [--acnd] [--word-size <wordSize>]
                  [--fp-word-size <fpWordSize>] [--version]
                  [--debug-asn1 [<string>]]
                  [--mapping-functions-module <string>] [--debug]
                  [--streaming-mode] <files>...

with all the rest of the manual following.
So I assumed that the ASN.1 compiler was also successfully installed (not in /opt though, I have it in another directory). I added the directory to my PATH, which can be proved by

$ echo $PATH
---lots of other directories here---:/--path to my software folder---/asn1scc

However, if I try to run one of the tests I get the following error(s):

opengeode/tests/testsuite/test4$ make edit
opengeode orchestrator.pr system_structure.pr
[INFO] Model backup enabled - auto-saving every 2 minutes
Qt WebEngine seems to be initialized from a plugin. Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute before constructing QGuiApplication.
[ERROR] ASN.1 compiler failed - ASN.1 Compiler not found in path
[ERROR] Type MyInteger not found in ASN.1 model
[ERROR] Type MyInteger not found in ASN.1 model
[ERROR] Type MyInteger not found in ASN.1 model(line 15)
[ERROR] Type MyInteger not found in ASN.1 model(line 16)
[ERROR] Type MyInteger not found in ASN.1 model - "a, a2 MyInteger"

and many other similar messages. Did I miss something?

P.S. I know it is probably easier to download the TASTE VM, but I only need OpenGeode and it feels like a big overhead to run a virtual machine just for that.

More pythonic, less system-heavy ?

Hi,

I would like to use opengeode without the whole TASTE environment, and if possible with recent dependencies.

Since opengeode is written in python I was hoping to get it to run with minimal changes on my machine, since I use a virtualenv to hold what is related to the python code for this project.

I started making some changes for this there : https://github.com/asmodehn/opengeode/pull/1/files
Feel free to grab what is of interest to you, or let me know if you have any question / concerns / future plans, I can always make a pull request to this repo.

I wish one day I ll be able to install opengeode from pip with just a minimal set of system dependencies.

Cheers!

Another Question about ASN.1

Sorry to bother you again ! I want to use asn.1 syntax to represent character types. but it is not given directly on the website which you gave to me.
So I get this way by myself after reading something from the web which you gave to me.But I do not know whether it is right.

char ::= PrintableString (FROM ("a".."z")|FROM ("A".."Z"))

But this way only can represent the char of letter , How can I represent all the char??? Thank you for your lots of help.

Website for OpenGEODE

If at some point it might be helpful to have a website about OpenGEODE, I'd be happy to take a shot at putting one together.

ASN.1 compiler failed - [Errno2] No such file or directory: 'dataview-uniq.asn'

Hello,
I try to check my SDL model, but it returns this kind of error: ASN.1 compiler failed - [Errno2] No such file or directory: 'dataview-uniq.asn'.
But the .asn file exists and is at the same folder with the .pr file. The screenshot also shows the opengeode has read the .asn file.
sdl.png
I follow the readme to install the asn compiler. Could you please give me some suggestions?
In fact, when I try the TASTE tool, the SDL model is right.
Some information is listed as follow:

..:~$ mono /opt/asn1scc/asn1.exe -v
asn1scc version 4.2.1.3f
..:~$ echo $PATH
..:/opt/asn1scc:..
...:~$ opengeode -v
3.0.8

Best wishes,

Read SDL in Python or Other Language

Hi,
I need to read SDL state machine in python (or other), though I can generate some information based on its structure. Expecting something like below-

sdl = get_root()
blocks = sdl.get_blocks()
sm = blocks[0].get_state_machine()

Please, help on how to read SDL? Or suggest anything better.

Unexpected error - Answers of decision could overlap

Hello,
I would like to implement a value check as reported in the following image, but during the model verification OpenGEODE still complains about the fact that [ERROR] Answers of decision "val" could overlap, while it can not happen because of the first check performed, which clearly states "high > low".
image

Here there is the example file along with the asn types definition.
issue.zip

no submodule mapping found - Ubuntu 16.04

Hi,
I am trying to install OpenGEODE on Ubuntu 16.04. But getting this error -

:/opengeode$ make full-install
fatal: no submodule mapping found in .gitmodules for path 'antlr3-python'
Makefile:44: recipe for target 'update' failed
make: *** [update] Error 128
:
/opengeode$ python --version
Python 2.7.12
:~/opengeode$ python setup.py
Traceback (most recent call last):
File "setup.py", line 12, in
import opengeode
File "/home/taher/.local/share/Trash/files/opengeode.2/opengeode/init.py", line 28, in
from opengeode import opengeode, version, SDL_Scene, SDL_View, parse, init_qt
File "/home/taher/.local/share/Trash/files/opengeode.2/opengeode/opengeode.py", line 34, in
import enum # NOQA
ImportError: No module named enum

While I was installing the dependencies I got some error-
E: Package 'libmono-corlib4.0-cil' has no installation candidate
E: Package 'libmono-corlib2.0-cil' has no installation candidate
E: Package 'libmono-system2.0-cil' has no installation candidate

After googling I have used -
$ sudo apt install pkg-config python-pyside pyside-tools graphviz python-ply graphviz-dev libgraphviz-dev python-pip gnat
$ sudo apt-get install mono-reference-assemblies-4.0 mono-devel mono-xbuild mono-mcs mono-devel
$ sudo apt install mono-reference-assemblies-2.0 mono-devel libmono-cil-dev
$ sudo apt install libmono-system-runtime4.0-cil libmono-system-web4.0-cil libmono-system-xml4.0-cil libmono-system4.0-cil mono-runtime
$ sudo apt install libmono-system-numerics4.0-cil libmono-system-data-linq4.0-cil

Instead of -
sudo apt install pkg-config python-pyside pyside-tools graphviz python-ply graphviz-dev libgraphviz-dev python-pip gnat libmono-system-runtime4.0-cil libmono-corlib4.0-cil libmono-system-runtime-serialization-formatters-soap4.0-cil libmono-system-web4.0-cil libmono-system-xml4.0-cil libmono-system4.0-cil mono-runtime libmono-system-numerics4.0-cil libmono-system-data-linq4.0-cil libmono-corlib2.0-cil libmono-system2.0-cil

Please, help to get it installed.

How to create a .asn file in openGeode???

Sorry to bother you again! But I have a problem .
On the Taste offical website,There is a page
http://taste.tuxfamily.org/wiki/index.php?title=Technical_topic:_OpenGEODE_-_Design_pattern:_How_to_emulate_the_SAVE_symbol
I read it ,but i do not know how to create a data type
image
I have tried to create the .asn file by myself at the .pr file path,and then open the .pr file at the OpenGEODE. But it no use????
the file that i create by myself
image
image
but the OpenGEODE may not open it.
image
So Do you know How to create it by using OpenGEODE?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.