Skip to content

Releases: eventsim/pyjevsim

pyjevsim 2.1.2

Choose a tag to compare

@cbchoi cbchoi released this 28 Jun 14:07
66fbc88

pyjevsim 2.1.2

The 2.1.x line makes pyjevsim interoperable and distributable: a DEVS
model can run, unchanged, as an HLA (IEEE 1516-2010) federate. 2.1.2
completes that story with a true multi-process / multi-host distributed
example and the supporting RTI plumbing, validated live against
Pitch pRTI.

Highlights

  • HLA federate support via pluggable RTI backends. Declare HLA
    bindings on existing model ports; an HLAExecutorFactory bridges them
    to a transport selected by name with create_rti(...). The same model
    runs standalone, on an in-process bus, or on a live RTI.
  • Distributed ping-pong example. Two federates exchange interactions
    and synchronize an object attribute under RTI-managed logical time —
    runnable offline (no Java) or live, including one federate per OS
    process across hosts
    .
  • Validated on Pitch pRTI (IEEE 1516-2010): federation
    join/publish/subscribe/resign, time-stamp-ordered interactions, object
    registration/reflection, time regulation/constraint with TAR/grant.

New in 2.1.2 (since 2.1.1)

  • Distributed (multi-process) HLA ping-pong: one federate per OS process
    (own JVM/LRC) joined to one federation —
    examples/hla_pingpong/run_pitch_federate.py,
    run_pitch_multiprocess.py.
  • PitchTransport: federation synchronization-point support
    (start barrier) and a configurable CRC endpoint
    (crc="host:port" / PYJEVSIM_CRC) for multi-host federations.
  • Packaging/citation: .zenodo.json, CITATION.cff, Zenodo DOI badge.

The HLA subsystem at a glance (pyjevsim.hla)

Component Role
RTIConnector Base class for RTI backends — implement two methods, inherit the rest
RTICapabilities / Codec Feature negotiation / pluggable FOM (de)serialization
HLAInteraction, HLAAttribute Port-to-FOM bindings
HLAExecutorFactory, Federate Wire models to a transport; drive the time-advance loop
Backends loopback, inprocess (no Java), pitch (Pitch pRTI via JPype)
create_rti / register_rti Select / add a backend by name

A new RTI (CERTI, Portico, OpenRTI, MÄK, …) is added by subclassing
RTIConnector — see docs/hla/rti_interface.md.

Also in the 2.1.x line

  • 2.1.0 — RTI-agnostic HLA interface + Pitch pRTI backend + unified
    V_TIME/R_TIME/HLA two-phase tick (correct confluent / TSO semantics).
  • 2.1.1 — canonical republish from main.

Install

pip install pyjevsim==2.1.2
pip install pyjevsim[hla-pitch]   # adds JPype for the Pitch pRTI backend

The loopback / inprocess backends need nothing beyond the core; the
pitch backend additionally needs JPype, Java ≥ 9, and an IEEE 1516-2010
RTI with a running CRC.

Validation

Live, two separate OS processes (Pitch pRTI Free 5.5.2 + Temurin 11),
connecting to the CRC over the network (routable LAN address, not
localhost):

pong received pings: [0, 1, 2, 3]
ping received pongs: [0, 1, 2, 3]
pong reflected hits: [0, 1, 2, 3]   # object synchronization

Test suite: 110 passed, 2 skipped (Pitch live cases skip without a JVM).

Links

Citation

Archived on Zenodo — see the DOI badge in the
README and
CITATION.cff.

v2.1.1

Choose a tag to compare

@cbchoi cbchoi released this 28 Jun 11:47
297b92f

pyjevsim 2.1.1

Republish from main. PyPI 2.1.0 shipped an older HLAExecutor inbound
convention (built from the feature branch); 2.1.1 is the canonical build
from main. No in-tree behaviour change versus the 2.1.0 source on main.

v2.1.0

Choose a tag to compare

@cbchoi cbchoi released this 28 Jun 10:24
cfd066f

pyjevsim 2.1.0

pyjevsim v1.2.0

Choose a tag to compare

@jaiyun9816 jaiyun9816 released this 16 May 08:41

pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.
version 1.2.0

pyjevsim v1.1.0

Choose a tag to compare

@jaiyun9816 jaiyun9816 released this 16 Mar 09:14
f282ae3

pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.
version 1.1.0

pyjevsim v1.0.0

Choose a tag to compare

@jaiyun9816 jaiyun9816 released this 13 Nov 01:51
02ddfee

pyjevsim, a python-based DEVS environment that allows snapshots of behavioral models and their relationships.