
# AppClient方法说明
ModuleSDK中，客户端类AppClient提供多个方法供客户开发应用时使用，使用时可参考每个函数的功能定义。
表1AppClient方法说明 
| 接口                           | 说明                          |
|:---|:---|
| createFromEnv                | 根据环境变量创建客户端，相关配置参数从环境变量获取。  |
| setBusMessageCallback        | 设置消息总线回调，用于对设备上报的数据进行处理。    |
| sendBusMessage               | 向总线发送设备数据，用于将处理后的设备数据发送到总线。 |
| callDeviceCommand            | 调用设备命令。                     |
| getDevicesStatus             | 查询设备状态。                     |
| getDevicesInfos              | 查询子设备列表。                    |
| getDeviceProperties          | 获取设备属性。                     |
| setCustomizedMessageCallback | 设置自定义消息回调，用于对自定义数据进行处理。     |
| sendCustomizedMessage        | 向总线发送自定义消息。                 |
   
#### AppClient::createFromEnv
根据环境变量创建客户端，相关配置参数从环境变量获取。
**函数描述**
```
public static AppClient createFromEnv()throws GeneraException
```
#### AppClient::setBusMessageCallback
设置总线消息回调，用于对设备上报的数据进行处理。
**函数描述**
```
public void setBusMessageCallback(String inputName,BusMessageCallback callback)throws java.lang.IllegalArgumentException
```
表2参数说明 
| 参数名称      | 类型                 | 参数描述  |
|:---|:---|:---|
| inputName | String             | 模块输入点 |
| callback  | BusMessageCallback | 回调类实例 |
   
表3BusMessageCallback需要实现的回调接口 
| 回调接口                                                  | 参数描述              |
|:---|:---|
| ``` void onMessageReceived(BusMessage busMessage) ``` | 收到来自消息总线的设备上报数据回调 |
   
#### AppClient::sendBusMessage
向总线发送消息，用于将处理后的设备数据发送到总线。
**函数描述**
```
public void sendBusMessage(String outputName,BusMessage message)throws java.lang.IllegalArgumentException,JsonException
```
表4参数说明 
| 参数名称       | 类型         | 参数描述  |
|:---|:---|:---|
| outputName | String     | 模块输出点 |
| message    | BusMessage | 设备数据  |
   
#### AppClient::getDevicesStatus
查询设备状态。
**函数描述**
```
public List<DeviceStatus> getDevicesStatus(String[] deviceIds,int timeout)throws GeneraException
```
表5参数说明 
| 参数名称      | 类型         | 参数描述    |
|:---|:---|:---|
| deviceIds | String\[\] | 设备ID数组  |
| timeout   | int        | 等待超时毫秒数 |
   
#### AppClient::getDevicesInfos
查询子设备列表。
**函数描述**
```
public List<EdgeDeviceInfo> getDevicesInfos()throws GeneraException
```
表6参数说明 
| 参数名称      | 类型         | 参数描述    |
|:---|:---|:---|
| deviceIds | String\[\] | 设备ID数组。 |
| timeout   | int        | 等待超时毫秒数 |
   
#### AppClient::setCustomizedMessageCallback
设置自定义消息回调，用于从消息总线中接收自定义消息。
**函数描述**
```
public void setCustomizedMessageCallback(CustomizedMessageCallback callback)
```
表7参数说明 
| 参数名称     | 类型                        | 参数描述  |
|:---|:---|:---|
| callback | CustomizedMessageCallback | 回调类实例 |
   
表8CustomizedMessageCallback需要实现的回调接口 
| 回调接口                                                  | 参数描述              |
|:---|:---|
| ``` void onMessageReceived(BusMessage busMessage) ``` | 收到来自消息总线的设备上报数据回调 |
   
#### AppClient::sendCustomizedMessage
向总线发送自定义消息
**函数描述**
```
public void sendCustomizedMessage(java.lang.String topic,String payload)
```
表9参数说明 
| 参数名称    | 类型     | 参数描述          |
|:---|:---|:---|
| topic   | String | 自定义消息的目标topic |
| payload | String | 自定义消息         |
   
