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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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