Skip to main content

Python API library for SimTech simcomplex (autonomous ship handling emulating system)

Project description

ashapi

ASHAPI - Autonomous Ship Handling Application Programming Interface - компонент Шлюз программного интерфейса Имитационного Программного Комплекса Автономного Судовождения (ИПКАС).

Шлюз программного интерфейса (ШПИ) обеспечивает открытость системы компьютерного моделирования сценариев автономного судовождения для сторонних разработчиков. Функциональность ШПИ дублирует функциональность компонента Испытатель, однако вместо предоставления графического интерфейса для управления исследованием вручную, ШПИ предоставляет программный интерфейс для реализации автоматизированных сценариев, осуществляющих компьютерное моделирование, загрузку, сбор и анализ данных, управление судном и другие возможности.

ШПИ является клиентом сервера, имеет доступ ко всем параметрам внутреннего двустороннего протокола передачи данных, и предназначен для передачи данных симуляции стороннему приложению, приема управляющих команд и данных от стороннего приложения для управления симуляцией.

ШПИ позволяет подключать к объектам сцены симуляции алгоритмы автономного судовождения, написанные на языках высокого уровня, запускать и отлаживать их. ШПИ предоставляет функции для управления временем симуляции, добавления моделей судов в сцену, считывания показаний датчиков и состояния моделируемых систем судна, управление движителями, рулями и другими исполнительными устройствами, загрузки данных областей маневрирования, маршрутов и т.п.

Ключевой особенностью ШПИ является возможность перезагрузки или переключения алгоритмов в любой момент без необходимости перезагрузки текущей сцены симуляции, к которой подключен интерфейс. Такая возможность ускоряет цикл «изменение-отладка», поскольку состояние сцены симуляции не уничтожается и может быть использовано снова в точке, где произошел сбой отлаживаемой программы или требуется переключение на другую систему управления.

Пример использования

Для написания собственного сценария проще всего отнаследоваться от определённого в ШПИ класса SimcomplexTask, переопределить пару волшебных методов, подписаться на события симуляции и выполнить задание. В примере ниже показано как распечатать перечень объектов, доступных в симуляции:

from ashapi import Config, SimcomplexTask, local_server


class SceneObjectsTask(SimcomplexTask):

    def init(self, path):
        self.scene_path = path

    def setup(self):
        self.done = False
        print(f"Opening scene '{self.scene_path}'")
        self.scene.open(
            self.scene_path,
            self.on_scene_opened
        )

    def on_scene_opened(self, response):
        print(f"Opened scene: '{self.scene_path}'")
        print(f"Opened scene contains {len(self.scene.objects)} object(s).")
        if self.scene.objects:
            print("Objects:")
            for o in self.scene.objects:
                print(f'    {o.uid}: {o.code}, "{o.name}"')
        self.done = self.scene.path == self.scene_path
        self.complete()

    def result(self):
        return self.done



if __name__ == '__main__':

    config = Config.localhost()

    with local_server(config):

        task = SceneObjectsTask(config, "api/all_models_nv.stexc")

        result = task.run()

Установка

$ pip install ashapi

Зависимости

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

ashapi-1.0.0.tar.gz (122.1 kB view details)

Uploaded Source

Built Distribution

ashapi-1.0.0-py3-none-any.whl (74.0 kB view details)

Uploaded Python 3

File details

Details for the file ashapi-1.0.0.tar.gz.

File metadata

  • Download URL: ashapi-1.0.0.tar.gz
  • Upload date:
  • Size: 122.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for ashapi-1.0.0.tar.gz
Algorithm Hash digest
SHA256 20eb3a2b10c0cee3b4aaebd4f2caab757ccbafcb23aa0723660e965addcee4df
MD5 134fe558e0588a49ae830215728c485a
BLAKE2b-256 c464ce9fd852f107e4333f7fc53ba5957d04a532f6add64d085235fb69df92af

See more details on using hashes here.

File details

Details for the file ashapi-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ashapi-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 74.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for ashapi-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dee97bc6f438fd6d553b41d324b32c9f7a12f6b27debe1a158e16a2f80d3a5d
MD5 c08fd09dcabfb2938ba911c902d5db75
BLAKE2b-256 bb4f4d7bd3a9d7ce42cfc7222a3d5a8883a29b15fa8b4467ea58341d2fccc5b3

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