Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ScxmlEditor - powerful tool for creating, editing and debugging scxml files

License

NotificationsYou must be signed in to change notification settings

alexzhornyak/ScxmlEditor-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

294 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ContentsSCXML WikiSCXML ExamplesForum

stand_with_Ukraine

Video overview - v.1.0

Video overview - v.2.0

Video overview - v.2.1

Video overview - v.2.2

Scxml Editor 2.7.0

Powerful tool for creating, editing and debugging SCXML charts.

MainExample

New:IDE Insight,DOT-based autolayout,SCXML to DOT,Inheritance,visual chart splitting,conditional project definitions, GIF maker etc.

Quick Support

Discord

Changelog

2.7.0: Option to useTextual Metadata instead ofBinary Metadata
2.6.0: Export charts withQt Creator,VSCode,ScxmlGui andSimple graphical metainformation
2.5.5: Chart design panel view presets
2.5.4: Nested initial state indication
2.5.3: Chart Draw Constraints, Select Chart Elements
2.5.1:Fast Triggers
2.5:Virtual Invoke
2.4:Post Save Commands,Self-Transitions Inside
2.3: Highlight Transitions
2.2.4:Import QtCreator state charts
2.2.3:Transition indexes bugfix
2.2.2:Option to override SmartTransitions
2.2.1:Qt SVG Monitors Released
2.2:Invoke ID is sending by testing apps
2.1.10:New breakpoints interface
2.1.9:Better handling of virtual states
2.1.8:Support of custom console testing applications likeSCION command-line tool
2.1.7:SVG Export Settings
2.1.6: UScxmlTester with EcmaScript, In() predicate autocomplete, QtScxmlTester 5.9.1->5.15
2.1.5:Refactored Qt external debugger
2.1.4:Export SCXML to SVG,Structure View

System requirements

  • Windows 7, 8, 10, 11 (MSVC 2010, MSVC 2015 Update 3 Runtimes installed)
  • Linux viaWine
  • Mac OS viaWine andWineskin

NOTICE! Dot '.' must be a float-point delimiter in OS Regional Settings !!!

Installation

You can find portable version as attached Zip in ScxmlEditor Github Release page

Latest version:[2.7.0.1798]

Windows Installation

First Install

  1. Download from latest Release page and unpack it in any target location
  2. InstallScxmlEditor\vcredist_x86.exe forUscxmlTester,Graphviz
  3. InstallScxmlEditor\vcredist_x64.exe forQtScxmlTester
    (You may skip steps 2 and 3 if you have previously installed MSVC 2015 Update 3 redistributable)
  4. InstallScxmlEditor\UScxmlTester\vcredist_x86_vc10.exe forUscxmlTester withEcmaScript datamodel
    (You may skip step 4 if you have previously installed MSVC 2010 redistributable)

Update

  1. Download from latest Release page and unpack it intoTemporary folder
  2. RunTemporary\ScxmlEditor\ScxmlEditor_InstallOrUpdate.cmd "Path\To\Location\ScxmlEditor"

NOTICE! We are continiously making updates, so follow the version number on the README page and update to the latest to have all last cool features

  1. InstallWine:
sudo apt -y install wine
  1. Install Microsoft fonts
  • Install a collection of Microsoft fonts.
sudo apt install ttf-mscorefonts-installer
  • Acknowledge the terms of the EULA in your terminal when prompted.
  1. Download ScxmlEditor from latest Release page and unpack it in any target location
  2. Run program
cd /path/to/ScxmlEditorwine ScxmlEditor.exe

Read detailed installation stepshere


AppPreview

Roadmap

  • Make Open API (Lua based)
  • Make cross-platform
  • Make opensource

Donations

If you are interested in the development of ScxmlEditor we would be highly appreciated for any help.

Paypal
PaypalBtn

Licensing

ScxmlEditor source code is distributed under under the terms of the BSD 3-Clause License but if you want to compile binary application by yourself you need to purchase external components with their own licensies by yourself.

Current binaries are compiled with single development licensies registered by this github account owner name.Many thanks to all who made donations and especially toEd K for his valuable contribution

External ComponentsLicenseComment
TeeChart ProSteema Software LicensesState chart editor is based on TTree
LMD VCL CompleteLMD Innovative LicenseUsed in Dock Panels, Property inspector, etc.
VCL ComponentsC++Builder Community EditionGeneral application compilation and VCL standard components
log4cppLGPL-2.1 licenseLogger
myJSONMIT LicenseJSON Parsing
PNG FunctionsMozilla Public License 1.1PNG Functions

Table of contents

Creating SCXML charts

Creating a unit

Unit is a single scxml chart. It is mostly used for simple charts without invokable sessions.

SelectFile->New Unit or pressShift+Ctrl+N

new_unit

Creating a project

Project is the most preferred choice of designing scxml charts to get all benefits (custom triggers, nested scxml charts, etc.)

SelectFile->New Project or pressCtrl+N

new_project

Editing SCXML charts

ScxmlEditor provides a project wizard for opening scxml. It supports either opening files with metainformation about the position of states and transitions or plain scxml files. You can useScxmlEditor to add states and transitions to the chart. You can add executable content to a state chart to enable the state machine to modify its data model and to interact with external entities.

  1. SelectFile->Open Unit or pressShift+Ctrl+O (for all types of .scxml files)
  2. SelectFile->Open Project or pressCtrl+O (for ScxmlEditor .sproj files)

Is used to edit and examine the properties of the currently selected states, executable contents and transitions.

2018-09-26 09 50 33

Editor tabs

Are used to add scxml elements, zoom, align, change chart visual options, etc.

2018-09-26 09 50 33

Press'Ctrl+.' to callIDE Insight dialog where you may search for all actions through the application. Add shapes, edit properties in one place!

ide_insight

Structure View with quick search

StructureViewSearch

ScxmlEditor has an ability to receive and send string UDP commands:

Receive API:

  • @@@ - clear highlighted states in all statecharts
  • @@@ScxmlName - clear highlighted states in statechart where<scxml> 'name' is equalScxmlName
  • Type@ScxmlName@Msg@Id - commands to highlight state or display message inCallStack panel
    Description:Type - integer type of command:1 - AfterEnter, 2 - BeforeEnter, 3 - AfterExit, 4 - BeforeExit, 5 - Step, 6 - BeforeExecContent, 7 - AfterExecContent, 8 - BeforeInvoke, 9 - AfterInvoke, 10 - BeforeUnInvoke, 11 - AfterUnInvoke, 12 - BeforeTakingTransition, 13 - AfterTakingTransition, 14 - StableConfiguration, 15 - BeforeProcessingEvent
    ScxmlName - name of<scxml>
    Msg - message which depends on type of command. For example: forBeforeEnter orBeforeExit - it is the id(name) of states, forBeforeInvoke orBeforeUnInvoke it is the name of invoked element, etc.
    Id -identifier of the invoked state machine (Since ScxmlEditor 2.2). Can be empty for root machines

BeforeEnter graphically highlight andBeforeExit unhighlight the corresponding states, other commands are displayed inCallStack panel

SinceScxmlEditor 2.3 there is an option to highlight taking transitions inBeforeTakingTransitionMessage format:FromState|TransitionIndex whereTransitionIndex is transition xml child index

Example of commands:

  • 2@CalculatorStateMachine@operand1 - highlight stateoperand1 in statechartCalculatorStateMachine
  • 4@CalculatorStateMachine@operand1 - unhighlight stateoperand1 in statechartCalculatorStateMachine
  • 2@ScxmlSub1@isSub1@ID_SUB_1 - highlight stateisSub1 in statechartScxmlSub1 wheninvoke Id isID_SUB_1
  • 12@CalculatorStateMachine@operand1|0 - highlight the first transition fromoperand1 state in statechartCalculatorStateMachine

You can alsotrace the execution of the chart and usebreakpoints.

Local debugging

ScxmlEditor starts a testing application, intercepts its command line output and may communicate in two modes:

  • UDP mode (receives UDP commands and sends events as UDP packages to testing application)
  • Pipes mode (since version 2.1.8) (capture enter-exit events from console output by regexp, and submit trigger event to state machine to console input)

There are two ready-to-use testing applications:

  1. Based onUSCXML framework.Supportsnull, lua, ecmascript datamodels

  2. QtScxmlTester - based onQt SCXML frameworkSupportsnull, ecmascript datamodels

Also you may write your own testing application using the corresponding API

External debugging

In this mode ScxmlEditor only listens UDP commands for highlighting states and displaying messages in CallStack panel

Breakpoints

BreakpointsImage

It was an old dream to monitor state machine workflow without any external dependencies in Qt and finally it comes true. We prepared some native SCXML SVG monitors:

StopWatchDemo

Since ScxmlEditor 2.2.1 you can export SCXML to SVG, include only monitor headers in your app and create monitor instances any time.

NOTICE: While state machine pointer is not set, the monitordoes nothing and can be left inRelease.

Qt SCXML External Debugging with ScxmlEditor

For Qt SCXML applications you may includescxmlexternmonitor2.h header to your project and followthe instructions

Example of debugging Qt Calculator-QML project

MonitorQML1

  1. SelectRun->Start listening from external application
  2. SelectRun->Run
  3. LaunchCalculator-QML.exe
  4. UsePause for tracing (optionally)

CalculatorDebug

TOPContentsSCXML WikiSCXML ExamplesForum

[8]ページ先頭

©2009-2026 Movatter.jp