Skip to main content

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

Зависимости

Metadata

Release files for ashapi 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ashapi 1.0.0
File Size Uploaded
ashapi-1.0.0.tar.gz 122.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ashapi 1.0.0
File Interpreter ABI Platform
ashapi-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 196.1 kB

Release files / ashapi-1.0.0.tar.gz

Download URL ashapi-1.0.0.tar.gz
Size 122.1 kB
Tags Source
SHA-256 checksum
How to use checksums
20eb3a2b10c0cee3b4aaebd4f2caab757ccbafcb23aa0723660e965addcee4df
BLAKE2b-256 checksum
How to use checksums
c464ce9fd852f107e4333f7fc53ba5957d04a532f6add64d085235fb69df92af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / ashapi-1.0.0-py3-none-any.whl

Download URL ashapi-1.0.0-py3-none-any.whl
Size 74.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dee97bc6f438fd6d553b41d324b32c9f7a12f6b27debe1a158e16a2f80d3a5d
BLAKE2b-256 checksum
How to use checksums
bb4f4d7bd3a9d7ce42cfc7222a3d5a8883a29b15fa8b4467ea58341d2fccc5b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page