# 机器人相关模块文档 (Python版本)

## 机器人相关

### 校验机器人是否存在

* 方法说明

  校验机器人是否存在。

```python
async def is_robot_exist(robot_name: str) -> bool
```

* 输入参数

  `robot_name`: string 类型，机器人名称。

* 输出参数
  * `True`: 存在。
  * `False`: 不存在。

* 异常

  本方法不抛出异常。

### 获取机器人基本信息

* 方法说明

  获取所有机器人的详细信息，包含完整的字段信息，使用蛇形命名规范。

```python
async def get_lite_robots_status() -> str
```

* 输入参数

  无。

* 输出参数

```json
[
  {
    "id": "1930612644818161666",
    "tenant_id": "1000",
    "brand_id": "1900149312550977537",
    "type_id": "1900154046275993602",
    "ip_address": "192.168.1.106",
    "name": "ZKG-1",
    "scene_id": "",
    "group_id": "",
    "online_station_id": "",
    "is_online": 1,
    "is_simulation": 0,
    "is_available": 1,
    "is_accept_task": 1,
    "length": 1.51,
    "width": 0.88,
    "min_power": 30,
    "max_power": 100,
    "charge_power": 30,
    "task_power": 10,
    "exchange_power": 60,
    "amr_status": 0,
    "create_by": "admin",
    "create_time": "2025-06-05 21:08:18"
  }
]
```

* 异常

  本方法不抛出异常，失败时返回空数组。

### 根据ID获取机器人基本信息

* 方法说明

  根据ID或名称获取指定机器人的详细信息，使用蛇形命名规范。

```python
async def get_lite_robots_status_by_id(agv_id: str) -> str
```

* 输入参数

  `agv_id`: string 类型，机器人ID或名称。

* 输出参数

```json
{
  "id": "1930612644818161666",
  "tenant_id": "1000",
  "brand_id": "1900149312550977537",
  "type_id": "1900154046275993602",
  "ip_address": "192.168.1.106",
  "name": "ZKG-1",
  "scene_id": "",
  "group_id": "",
  "online_station_id": "",
  "is_online": 1,
  "is_simulation": 0,
  "is_available": 1,
  "is_accept_task": 1,
  "length": 1.51,
  "width": 0.88,
  "min_power": 30,
  "max_power": 100,
  "charge_power": 30,
  "task_power": 10,
  "exchange_power": 60,
  "amr_status": 0,
  "create_by": "admin",
  "create_time": "2025-06-05 21:08:18"
}
```

如果未找到机器人，返回空对象 `{}`。

* 异常

  本方法不抛出异常。

### 根据ID获取机器人位置

* 方法说明

  根据机器人ID或名称获取机器人的位置信息，使用蛇形命名规范。

```python
async def get_vehicle_station(agv_id: str) -> str
```

* 输入参数

  `agv_id`: string 类型，机器人ID或名称。

* 输出参数

```json
{
  "last_station": "LM32",
  "station": "AP25"
}
```

如果与调度断连或未找到机器人返回空对象 `{}`。

* 异常

  本方法不抛出异常。

### 获取Core报错信息 ⚠️ 未实现

* 方法说明

  获取Core报错信息。**当前版本暂未实现此功能。**

```python
async def get_core_alarms() -> Optional[str]
```

* 输入参数

  无。

* 输出参数

  当前返回 `None`。

* 异常

  本方法不会抛出异常。

### 根据ID获取Core报错信息 ⚠️ 未实现

* 方法说明

  根据ID获取Core报错信息。**当前版本暂未实现此功能。**

```python
async def get_core_alarms_by_id(code: int) -> Optional[str]
```

* 输入参数

  `code`: int类型，错误码。

* 输出参数

  当前返回 `None`。

* 异常

  本方法不会抛出异常。

### 获取Rbk报错信息 ⚠️ 未实现

* 方法说明

  获取Rbk报错信息。**当前版本暂未实现此功能。**

```python
async def get_rbk_alarms() -> Optional[str]
```

* 输入参数

  无。

* 输出参数

  当前返回 `None`。

* 异常

  本方法不会抛出异常。

### 根据ID获取Rbk报错信息 ⚠️ 未实现

* 方法说明

  根据ID获取Rbk报错信息。**当前版本暂未实现此功能。**

```python
async def get_rbk_alarms_by_id(code: int) -> Optional[str]
```

* 输入参数

  `code`: int类型，错误码。

* 输出参数

  当前返回 `None`。

* 异常

  本方法不会抛出异常。

### 设置机器人软急停 ⚠️ 未实现

* 方法说明

  设置机器人软急停。**当前版本暂未实现此功能。**

```python
async def set_soft_stop(vehicle_id: str, status: bool) -> bool
```

* 输入参数

  `vehicle_id`: string 类型，机器人名称。
  `status`: boolean类型，`True`: 设置机器人软急停，`False`: 取消机器人软急停。

* 输出参数

  当前返回 `False`。

* 异常

  本方法不抛出异常。

### 获取机器人所有信息 ⚠️ 未实现

* 方法说明

  获取机器人所有信息。**当前版本暂未实现此功能。**

```python
async def get_robots_status() -> Optional[str]
```

* 输入参数

  无。

* 输出参数

  当前返回 `None`。

* 异常

  本方法不抛出异常。

### 查询所有机器人充电阈值

* 方法说明

  获取所有机器人充电阈值信息，使用蛇形命名规范。

```python
async def query_charge_param() -> Optional[str]
```

* 输入参数

  无。

* 输出参数

```json
[
  {
    "id": "1930612644818161666",
    "name": "ZKG-1",
    "exchange_power": 60,
    "task_power": 10,
    "charge_power": 30,
    "min_power": 30,
    "max_power": 100
  }
]
```

当与调度断连时，本方法会返回 `None`；失败时返回空数组。

* 异常

  本方法不抛出异常。

### 查询指定机器人充电阈值

* 方法说明

  根据机器人名称列表获取指定机器人充电阈值信息，使用蛇形命名规范。

```python
async def query_charge_param_by_vehicles(vehicles: str) -> Optional[str]
```

* 输入参数

  `vehicles`: JSON 格式的字符串(数组转成字符串格式)，包含要查询的机器人名称列表。

* 输出参数

```json
[
  {
    "id": "1930612644818161666",
    "name": "ZKG-1",
    "exchange_power": 60,
    "task_power": 10,
    "charge_power": 30,
    "min_power": 30,
    "max_power": 100
  }
]
```

当与调度断连时，本方法会返回 `None`；失败时返回空数组。

* 异常

  本方法不抛出异常。

### 修改机器人充电阈值

* 方法说明

  根据机器人ID修改机器人充电阈值信息，使用蛇形命名规范。

```python
async def modify_charge_param(param: str) -> bool
```

* 输入参数

  `param`: JSON 格式的字符串，包含机器人ID和要修改的充电参数（使用蛇形命名）。

* 输出参数
  * `True`: 修改成功。
  * `False`: 修改失败。

* 异常

  本方法不抛出异常。

* 支持的参数字段（蛇形命名）：
  - `exchange_power`: 换货电量阈值
  - `task_power`: 任务电量阈值  
  - `charge_power`: 充电电量阈值
  - `min_power`: 最小电量
  - `max_power`: 最大电量

* 示例：

```python
async def test_modify_charge():
    # 指定要修改的机器人ID和充电参数
    req = {
        "id": "1930612644818161666",
        "exchange_power": 65,
        "task_power": 15,
        "charge_power": 35
    }
    
    # 使用 modify_charge_param 修改阈值
    success = await robot.modify_charge_param(json.dumps(req))
    
    if success:
        print("修改充电阈值成功")
    else:
        print("修改充电阈值失败")
```