Skip to main content

Python library for remote controlling the environment in FwESI

Project description

ESIRemote

A Python library to remotely control the environment in FwESI

Functionality

FwESI

expand

FwESI has a remote control (basically a local web server) where the user can control the application without having to interact with the computer itself.

This includes actions such as

  • loading save file/sub save
  • controlling variables of a fire engine (such as the height and length of the ladder)
  • start a fire (in FwESI)
  • check state of door
  • show/hide elements

The last action is still quite buggy with smoke in the latest tested version (1.10.1) and needs to be fixed by the FwESI developers. Actions like video control are also a bit unstable.

What CAN'T be done:

  • read/change coordinates of elements (like the user himself)
  • get a livestream of the situation
  • detect button presses (there are no buttons)

ESIRemote

The library automatically parses the available objects (also called OperatorActors), parameters and save files as Python objects.

By default, ESIRemote allows the user to modify the attributes of these objects. Changes are applied automatically, but this can be turned off.

Anything available on the remote server can be used with this library.

Installation

ESIRemote is still in early development, but can already be installed using PyPI:

pip install esiremote

Quick Start

Check out the (TODO) examples directory to get an idea of how you can use ESIRemote.

Before you can use this library, make sure the remote server is enabled. You can enable it by default in the settings.

Also make sure you have objects with the remote option enabled.

from esiremote import ESIRemote

remote = ESIRemote()
for operatoractor in remote.operatoractors:
    print(operatoractor.name)

This little example lists all elements available.


TODO list
  • Add more docstrings and comments
  • Add more to readme (stuff like installation and usage)
  • Add more helper functions (like search by ID, name, type, etc)
    • Maybe do something like a custom list object with a function called "search_by_attribute" or something
  • remove test code
  • add some examples (and maybe supply scenes)
  • make sure it works flawlessly (check the models especially)
  • add setup.py or pyproject.toml
  • publish to PyPi with GH Actions
  • add unittests
  • Feature: load external save file (might not work at all)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esiremote-0.5.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

ESIRemote-0.5-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file esiremote-0.5.tar.gz.

File metadata

  • Download URL: esiremote-0.5.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for esiremote-0.5.tar.gz
Algorithm Hash digest
SHA256 de6da7d3a55905a33651b401ced3395211c3030af9372a9619884320b093bec6
MD5 5f18ffd7251fa133b3e7b8ec02141faa
BLAKE2b-256 3cf36f2db5b0f2b09d07450be44f87cf95e4769671ff30abcd87a2388ce5b4ff

See more details on using hashes here.

File details

Details for the file ESIRemote-0.5-py3-none-any.whl.

File metadata

  • Download URL: ESIRemote-0.5-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for ESIRemote-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 561f4ffbc00accafe261b02be4917d13b5830d361da37d62dac5157cbb62b647
MD5 a9d6388320cfb2c5edf304c2356c20d9
BLAKE2b-256 568c182dae5a403874a8f26c2d0a16b9452e2c68a6b249f420884ecc6f0eb4f7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page