
# 通过协议转换网关实现泛协议设备接入
#### 场景说明
目前平台只支持MQTT/HTTP/LWM2M等标准协议接入，如果设备是其他协议（统称为第三方协议），怎么接入平台？
由于第三方协议设备不能直接接入平台，需要在平台外部完成协议转换。我们推荐使用网关来完成协议转换，将第三方协议转成MQTT协议。我们把用来进行协议转换的网关叫做协议转换网关。
#### 实现原理
方案总体架构框图如下：
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0268681708.png "点击放大")
协议转换网关是一个网关，可以部署在云上或者本地。第三方协议设备作为协议转换网关的子设备接入平台。
协议转换网关一般由三部分组成：
1. 第三方协议接入。完成第三方协议的解析，鉴权。
2. 协议转换。负责完成第三方协议数据和平台格式数据的互相转换。
   - 上行：把第三方协议数据转成平台格式数据，并调用设备SDK接口进行上报。
   
   - 下行：收到平台下行数据时，转换为第三方协议数据转发给第三方协议设备。
    
3. 设备SDK。即平台提供的设备接入SDK，提供了网关的通用功能实现，用户可以在此基础上实现自己的网关。
 
#### 业务流程
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0268705451.png "点击放大")
1. 在物联网平台上注册网关，详细方法请参考[设备注册](https://support.huaweicloud.com/usermanual-iothub/iot_01_0019.html#section2)。
2. 网关上电，连接到平台，连接所需的鉴权参数在[注册网关](https://support.huaweicloud.com/usermanual-iothub/iot_01_0031.html)时获取。
3. 用户在平台上注册子设备时，平台下发添加子设备事件到网关。网关收到后，保存子设备信息到本地并持久化（SDK提供了默认的持久化实现，用户可以自定义扩展）。
4. 第三方协议设备连接到网关。网关根据子设备信息对设备进行鉴权。
5. 设备上报数据到网关。网关转换为平台格式数据后，调用SDK的上报子设备属性/消息 的接口上报给平台。
6. 平台向设备下发命令。网关收到后，转换为第三方协议，转发给子设备。设备收到后对命令进行处理。
 
#### 协议转换网关的具体实现
网关具体实现和使用方法参见 [Java版本](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0089.html#section9)、[C版本](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0090.html)。
