
# 客户端通用方法说明
ModuleSDK中提供多个通用方法供客户开发应用时使用，使用时可参考每个函数的功能定义。
表1客户端通用方法 
| 接口                                | 说明                      |
|:---|:---|
| open                              | 打开客户端。                  |
| startModuleShadow                 | 启动影子，设置收到影子回调并触发获取影子动作。 |
| getModuleShadow                   | 获取影子，触发获取影子动作。          |
| setConnectionStatusChangeCallback | 设置连接状态变化回调。             |
   
#### BaseClient::open
打开客户端，客户端打开后才能正常收发消息，该函数适用于所有客户端。
**函数描述**
```
public void open() throws GeneraException
```
#### InnerClient::startModuleShadow
启动模块影子，设置收到影子回调并触发获取影子动作，该函数适用于AppClient、DriverClient、DcDriver。
**函数描述**
```
public void startModuleShadow(ModuleShadowNotificationCallback callback) throws IllegalArgumentException
```
表2参数说明 
| 参数名称     | 类型                               | 参数描述  |
|:---|:---|:---|
| callback | ModuleShadowNotificationCallback | 回调类实例 |
   
表3ModuleShadowNotificationCallback需要实现的回调接口 
| 回调接口                                                                 | 参数描述                                                   |
|:---|:---|
| ``` void onModuleShadowReceived(ModuleShadowNotification shadow) ``` | 收到模块影子回调，模块影子支持增量同步，根据properties_update_time判断发生改变的属性。 |
   
#### InnerClient::getModuleShadow
获取影子，触发获取影子动作，该函数适用于AppClient、DriverClient、DcDriver。
**函数描述**
```
private void getModuleShadow()
```
#### InnerClient::setConnectionStatusChangeCallback
设置连接状态变化回调，用于MQTT连接状态改变时进行相应的处理，该函数适用于AppClient、DriverClient、DcDriver。
```
public void setConnectionStatusChangeCallback(ConnectionStatusChangeCallback callback)
```
表4参数说明 
| 参数名称     | 类型                             | 参数描述  |
|:---|:---|:---|
| callback | ConnectionStatusChangeCallback | 回调类实例 |
   
表5ConnectionStatusChangeCallback需要实现的回调接口 
| 回调接口                                                                      | 参数描述         |
|:---|:---|
| ``` void onConnectionStatusChanged(ConnectionStatus connectionStatus) ``` | MQTT连接状态变化回调 |
   
