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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20eb3a2b10c0cee3b4aaebd4f2caab757ccbafcb23aa0723660e965addcee4df |
|
MD5 | 134fe558e0588a49ae830215728c485a |
|
BLAKE2b-256 | c464ce9fd852f107e4333f7fc53ba5957d04a532f6add64d085235fb69df92af |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6dee97bc6f438fd6d553b41d324b32c9f7a12f6b27debe1a158e16a2f80d3a5d |
|
MD5 | c08fd09dcabfb2938ba911c902d5db75 |
|
BLAKE2b-256 | bb4f4d7bd3a9d7ce42cfc7222a3d5a8883a29b15fa8b4467ea58341d2fccc5b3 |