Metadata-Version: 2.4
Name: ara-api-lua
Version: 1.2.1
Summary: Lua scripting bridge for ARA drone API
Project-URL: Repository, https://gitlab.mobird.dev/ara-api/ara-api-lua
Maintainer-email: Alexander Kleimenov <nequamy@gmail.com>
License: MIT
License-File: LICENSE
Keywords: API,ARA,drones,lua,robotics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.8
Requires-Dist: grpcio>=1.69.0
Requires-Dist: lupa>=2.6
Requires-Dist: protobuf>=4.21.0
Requires-Dist: rich>=14.2.0
Description-Content-Type: text/markdown

# ara-api-lua

Lua scripting bridge для дрона ARA — исполняет Lua-скрипты,
управляющие дроном через тот же gRPC API, что и эталонный проект
`ara-api` (Rust+Python). Объект `core` в Lua runtime — camelCase-
обёртка над 79 методами эталона (навигация, MSP-телеметрия,
DXL-модули, компьютерное зрение, GPIO). 

## Установка

```bash
uv add ara-api-lua
# или
pip install ara-api-lua
```

## Быстрый старт

```bash
ara-api-lua script.lua
```

Пример скрипта:
```lua
print("=== TAKEOFF & LAND ===")
local result, err = core:takeoff(1.5)
if err then
    print("Takeoff error: " .. err)
else
    print("Takeoff status: " .. result.status)
end
sleep(5)
local result, err = core:land()
if err then
    print("Land error: " .. err)
else
    print("Land status: " .. result.status)
end
print("Test completed")
```

Каждый метод `core:` возвращает пару `(data, error)`: при успехе
`data` — таблица (или скаляр), `error` — nil; при ошибке — наоборот.

## Требования

Для работы нужны запущенные gRPC-сервисы эталона `ara-api` (MSP,
Navigation, Vision, DXL, GPIO). Адреса не настраиваются на стороне
`ara-api-lua` — управление ими не его обязанность:

