| | |
| | | package com.hdl.sdk.connect; |
| | | |
| | | import com.hdl.sdk.common.utils.IpUtils; |
| | | import com.hdl.sdk.connect.bean.request.DeviceControlRequest; |
| | | import com.hdl.sdk.connect.bean.request.PropertyReadRequest; |
| | | import com.hdl.sdk.connect.callback.HDLLinkCallBack; |
| | | import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack; |
| | | import com.hdl.sdk.connect.config.HDLLinkConfig; |
| | | import com.hdl.sdk.common.event.EventDispatcher; |
| | | import com.hdl.sdk.common.event.EventListener; |
| | | import com.hdl.sdk.connect.bean.AuthenticateRequest; |
| | | import com.hdl.sdk.connect.bean.request.AuthenticateRequest; |
| | | import com.hdl.sdk.connect.socket.HDLAuthSocket; |
| | | import com.hdl.sdk.connect.socket.HDLSocket; |
| | | import com.hdl.sdk.connect.socket.HdlSocketHelper; |
| | | import com.hdl.sdk.socket.listener.SendListener; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by jlchen on 11/15/21. |
| | |
| | | * @param listener |
| | | */ |
| | | public synchronized void removeAllTopicsListener(EventListener listener) { |
| | | if(listener == null) return; |
| | | EventDispatcher.getInstance().removeAllTopicsListener(listener); |
| | | } |
| | | |
| | | /***********************三方设备和网关通信之前的认证流程****************************/ |
| | | /** |
| | | * 检测是否已经认证过 |
| | | * 认证通过才能进行设备控制 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 开始监听和发起入网及认证请求 |
| | | * |
| | | * @param request 认证请求信息 |
| | | * @param callBack 结果回调 |
| | | */ |
| | | public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) { |
| | | HDLAuthSocket.getInstance().startAuthenticateRequest(request,callBack); |
| | | } |
| | | |
| | | /** |
| | | * 发送入网及认证请求 |
| | | * |
| | | * @param ip 网关IP |
| | | * @param request 认证请求信息 |
| | | * @param callBack 结果回调 |
| | | */ |
| | | public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLAuthSocket.CallBack callBack) { |
| | | HDLAuthSocket.getInstance().sendAuthenticateRequest(ip,request,callBack); |
| | | public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLLinkCallBack callBack) { |
| | | HDLAuthSocket.getInstance().sendAuthenticateRequest(ip, request, callBack); |
| | | } |
| | | |
| | | // /** |
| | | // * 开始搜索所有网关,有网关回复就回调,上层自己做去重判断 |
| | | // * |
| | | // * @param callBack 回调 |
| | | // */ |
| | | // public void startSearchAllGateway(HDLAuthSocket.SearchGatewayCallBack callBack) { |
| | | // |
| | | // } |
| | | // |
| | | // /** |
| | | // * 暂停搜索网关 |
| | | // */ |
| | | // public void endSearchAllGateway() { |
| | | // |
| | | // } |
| | | |
| | | /***********************三方设备请先认证成功 再调用下面的接口和网关通信****************************/ |
| | | /** |
| | | * 组播搜索指定网关是否在线,搜索到则返回指定的网关对象 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void searchGatewayMulticast(HDLAuthSocket.SearchGatewayCallBack callBack) { |
| | | HDLAuthSocket.getInstance().searchGatewayMulticast(callBack); |
| | | } |
| | | |
| | | /** |
| | | * 搜索指定网关是否在线,搜索到则返回指定的网关对象 |
| | | * |
| | | * 组播搜索指定网关是否在线,搜索到则返回指定的网关对象 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void searchGateway(HDLAuthSocket.SearchGatewayCallBack callBack) { |
| | | HDLAuthSocket.getInstance().searchGateway(HDLLinkConfig.getInstance().getGatewayId(), callBack); |
| | | public void searchGatewayBroadcast(HDLAuthSocket.SearchGatewayCallBack callBack) { |
| | | HDLAuthSocket.getInstance().searchGatewayBroadcast(callBack); |
| | | } |
| | | |
| | | /** |
| | | * 获取设备列表 |
| | | */ |
| | | public void getDeviceList(HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().getDeviceList(callBack); |
| | | } |
| | | |
| | | /** |
| | | * 获取功能列表 |
| | | */ |
| | | public void getFunctionList(HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().getFunctionList(callBack); |
| | | } |
| | | |
| | | /** |
| | | * 获取功能属性 |
| | | * |
| | | * @param sids |
| | | * @param callBack |
| | | */ |
| | | public void getFunctionAttribute(List<String> sids, HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().getFunctionAttribute(sids, callBack); |
| | | } |
| | | |
| | | /** |
| | | * 设备控制 |
| | | * @param request 控制状态参数 |
| | | * @param callBack 结果回调 |
| | | */ |
| | | public void propertyDown(List<DeviceControlRequest> request, HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().propertyDown(request, callBack); |
| | | } |
| | | |
| | | /** |
| | | * 读取状态 |
| | | * @param sids 请求参数 指定读取的设备sid列表 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void propertyRead(List<String> sids, HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().propertyRead(sids, callBack); |
| | | } |
| | | |
| | | /** |
| | | * 获取场景列表 |
| | | */ |
| | | public void getSceneList(HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().getSceneList(callBack); |
| | | } |
| | | |
| | | /** |
| | | * 场景控制 |
| | | * @param sids 场景sid列表 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void controlScene(List<String> sids, HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().controlScene(sids, callBack); |
| | | } |
| | | |
| | | /** |
| | | * 通用UDP广播发送指令 |
| | | * 1秒没响应就让他重新发送,重试3次 |
| | | * @param topic 发送数据 |
| | | * @param bodyStr body内容 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) { |
| | | HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, callBack); |
| | | } |
| | | |
| | | /** |
| | | * 通用TCP发送指令 |
| | | * 1秒没响应就让他重新发送,重试3次 |
| | | * |
| | | * @param topic 发送数据 |
| | | * @param bodyStr body内容 |
| | | * @param callBack 回调 |
| | | */ |
| | | public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) { |
| | | HDLSocket.getInstance().tcpSendMsg(topic, bodyStr, callBack); |
| | | } |
| | | } |