問題タブ [scxml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
automata - SCXML はどのようなオートマトンを記述しますか?
SCXML の制限は、決定論的有限オートマトン/決定論的有限ステート マシンと同じですか? それとも、SCXML の能力は他の抽象マシン/オートマトンの方がうまく捉えられますか? たとえば、SCXML は、プッシュダウン オートマトンやチューリング マシンを説明するのに十分強力であると考えられますか?
java - JavaでApache-commons scxml apiからデータモデル値を読み取る方法
Java アプリケーションで SCXML を使用しています。ステート マシンを実装するために apache-commons-scxml api を使用しています。sxml API を使用してデータ モデルに値を設定できますが、Java コードでその値を読み取ることができません。
読み取り操作のたびに、実行時に設定された最新の値を読み取る代わりに、scxml ドキュメントに設定されたデフォルト値がフェッチされます。ただし、同じ値の式を scxml doc に記録すると、更新された値が出力されますが、Java コードでは更新された値を取得できません。
以下はデータモデルです。
データ モデルの読み取り:
値の設定:
値の読み取り:
読み取り操作では常に、実行時に設定される「ダミー」ではなく「F」という値が返されます。Apache commons-scxml api を介して Java コードでノードの更新された値 (この場合は「ダミー」) を読み取る方法はありますか?
javascript - D3 で DOM 要素を選択するが、その子を選択しない
私は SCXML を使用しており、私のデータは次のようなものです。
状態とその遷移を視覚化する目的で D3 を使用していますが、必要な遷移だけを正確に選択するのに苦労しています。
私が望むのは、状態の遷移のみを選択し、そのサブ状態を選択しないことです。たとえば、state1 の唯一の遷移は「quit」です。私は次のようなものを想像します:
(そして、目的の状態に達するまで、親の状態ごとにこれを繰り返します)。
java - Apache Commons SCXMLで同じ状態でInvokerを再度呼び出す方法
プロジェクトでステート マシンを維持するために Apache commons SCXML を使用しました。Invoker が定義されている状態への遷移が実行されるとすぐに、いくつかのアクティビティを実行するために Invoker を使用しました。
インボーカーが同じ状態から 2 回呼び出されると、問題が発生します。たとえば、状態「A」からイベント「TEMP」が発生し、状態「B」に移行します。そして状態「B」になるとすぐにインボーカーが呼び出され、インボーカークラスのコールバックメソッドinvoke()が呼び出されています。
イベント「TEMP」が状態 A から再び発生し、その後 Invoker が呼び出されない場合に問題が発生します。invoke() メソッドが再度呼び出されることはありません。インボーカーは 1 回だけ呼び出すことができますか?
インボーカー/invoke() を再度呼び出す方法を教えてください。私はインターネットであまり助けを得ていません。
前もって感謝します。
c - ネットワーク プロトコルをシミュレートするための C 用有限状態マシン コンパイラ
いくつかのカスタム ネットワーク プロトコルをテストするために、優れたステート マシン コンパイラを探していました。Yakindu、Ragel (コンパイラ)、SCXML (言語) などのいくつかのツールを既に調べましたが、それらのいずれかがネットワーク プロトコルに使用できるかどうかはわかりませんでした。
SCXML(language) は良さそうですが、C 専用のコンパイラは見つかりませんでした (scxmlcc は C++ 用です)。SCXML に基づく C のコンパイラを知っている人はいますか? Yakindu ツールは有望に見えますが、BGP/OSPF などのネットワーク プロトコルをテストできるかどうかはわかりません。誰でもこれについての指針を教えてください。Ragel も良さそうですが、このコンパイラを使用して複雑なネットワーク プロトコル クライアントを生成できるかどうかはわかりません。
特にネットワーク プロトコルについて言及した理由は、「イベント」が発生した後の「アクション」の一部として、packet_create/packet_send (カスタム パケット サイズ) などのカスタム ルーチンを実行できるようにしたいからです。
常に状態グラフからコードを生成する必要がありますか、または状態と直接対話する方法はありますか? 私はFSMに非常に慣れていません。ヘルプ/アドバイス/提案/リンクは大歓迎です。
java - SCXML が有効なステート マシンを定義していることを確認するにはどうすればよいですか?
私はステート マシンの定義を検討し始めたばかりで、SCXML、特にApache Commons SCXML for Javaは魅力的に見えます。明らかに、XML を検証できます (適切な XSD を使用)。
ただし、定義された状態マシンが有効であることを確認する方法が明らかに見つかりません (行き止まりがない、到達不能な状態がないなど)。
しかし、定義されたステートマシンを実行する前に検証するにはどうすればよいでしょうか? 特に、ビルド ツール チェーンに (コマンド ラインから) 統合できるツールに興味があります。
java - Apache SCXML: カスタム アクションを追加する
Apache Commons SCXML 0.9 を使用していますが、CustomAction を追加する方法が見つかりません。v2.0-SNAPSHOT を使用した例を見つけました (ちなみに、どこで入手できるかはわかりません) が、v0.9 では機能しないようです。
v2.0-SNAPSHOT の場合、次のように記述できます。
その後、 を取得しSCXMLExecutor
てメソッドを呼び出しSCXMLExecutor.go
ますが、v0.9 のオプションが見つかりません。ここで助けが必要です。
よろしくお願いします