package com.hdl.sdk.link;
|
|
import android.content.Context;
|
import android.text.TextUtils;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.google.gson.JsonArray;
|
import com.google.gson.JsonElement;
|
import com.google.gson.JsonObject;
|
import com.google.gson.reflect.TypeToken;
|
import com.hdl.sdk.link.bean.GatewayLocationBean;
|
import com.hdl.sdk.link.bean.LinkIrDeviceBean;
|
import com.hdl.sdk.link.bean.LinkOtaBean;
|
import com.hdl.sdk.link.bean.LinkSidNameBean;
|
import com.hdl.sdk.link.common.config.TopicConstant;
|
import com.hdl.sdk.link.common.exception.HDLLinkCode;
|
import com.hdl.sdk.link.common.exception.HDLLinkException;
|
import com.hdl.sdk.link.common.utils.ErrorUtils;
|
import com.hdl.sdk.link.common.utils.IdUtils;
|
import com.hdl.sdk.link.common.utils.LogUtils;
|
import com.hdl.sdk.link.common.utils.gson.GsonConvert;
|
import com.hdl.sdk.link.bean.LinkCreateLogicBean;
|
import com.hdl.sdk.link.bean.LinkCreateSceneBean;
|
import com.hdl.sdk.link.bean.LinkEnableLogicBean;
|
import com.hdl.sdk.link.bean.LinkEnableSecurityBean;
|
import com.hdl.sdk.link.bean.LinkFunctionBean;
|
import com.hdl.sdk.link.bean.LinkLogicBean;
|
import com.hdl.sdk.link.bean.LinkOidBean;
|
import com.hdl.sdk.link.bean.LinkReNameGWBean;
|
import com.hdl.sdk.link.bean.LinkRoomBean;
|
import com.hdl.sdk.link.bean.LinkRoomBindBean;
|
import com.hdl.sdk.link.bean.LinkSceneBean;
|
import com.hdl.sdk.link.bean.LinkSidStrBean;
|
import com.hdl.sdk.link.bean.LinkSidUidBean;
|
import com.hdl.sdk.link.core.bean.FileRequest;
|
import com.hdl.sdk.link.core.bean.LinkRequest;
|
import com.hdl.sdk.link.core.bean.LinkResponse;
|
import com.hdl.sdk.link.core.bean.request.AuthenticateRequest;
|
import com.hdl.sdk.link.core.bean.request.DeviceControlRequest;
|
import com.hdl.sdk.link.core.bean.request.FunctionAttributeRequest;
|
import com.hdl.sdk.link.core.bean.request.PropertyReadRequest;
|
import com.hdl.sdk.link.core.bean.response.BaseLocalResponse;
|
import com.hdl.sdk.link.core.bean.scenebatch.SceneCanDeleteInfo;
|
import com.hdl.sdk.link.core.bean.scenebatch.SceneGroupInfo;
|
import com.hdl.sdk.link.core.callback.GatewayCallBack;
|
import com.hdl.sdk.link.core.callback.HDLLinkCallBack;
|
import com.hdl.sdk.link.core.callback.HDLLinkResponseCallBack;
|
import com.hdl.sdk.link.common.event.EventDispatcher;
|
import com.hdl.sdk.link.common.event.EventListener;
|
import com.hdl.sdk.link.core.callback.HDLLinkTCallBack;
|
import com.hdl.sdk.link.core.config.HDLLinkConfig;
|
import com.hdl.sdk.link.core.connect.HDLUdpConnect;
|
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
|
import com.hdl.sdk.link.core.connect.HDLConnectHelper;
|
import com.hdl.sdk.link.core.utils.LinkResponseUtils;
|
import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
|
|
import java.lang.reflect.Type;
|
import java.nio.charset.StandardCharsets;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Locale;
|
import java.util.Map;
|
|
/**
|
* Created by jlchen on 11/15/21.
|
*
|
* @Description : HDLLink
|
*/
|
public class HDLLinkLocalSdk {
|
/**
|
* instance
|
*/
|
private volatile static HDLLinkLocalSdk instance;
|
|
/**
|
* getInstance
|
*
|
* @return HDLLink
|
*/
|
public static synchronized HDLLinkLocalSdk getInstance() {
|
if (instance == null) {
|
synchronized (HDLLinkLocalSdk.class) {
|
if (instance == null) {
|
instance = new HDLLinkLocalSdk();
|
}
|
}
|
}
|
return instance;
|
}
|
|
private Context context;
|
|
|
public void init(Context context) {
|
this.context = context.getApplicationContext();
|
|
String[] gatewayErrors = context.getResources().getStringArray(R.array.gateway);
|
Map<String, String> codeAndMsgMap = new HashMap<>();
|
for (String gatewayError : gatewayErrors) {
|
String codeMsg[] = gatewayError.split("=");
|
codeAndMsgMap.put(codeMsg[0], codeMsg[1]);
|
}
|
//初始化状态码多语言信息
|
ErrorUtils.errorsMap.putAll(codeAndMsgMap);
|
}
|
|
public Context getContext() {
|
return context;
|
}
|
|
public boolean isZh() {
|
Locale locale = getContext().getResources().getConfiguration().locale;
|
String language = locale.getLanguage();
|
if (language.endsWith("zh"))
|
return true;
|
else
|
return false;
|
}
|
|
/**
|
* 设置打印是否开启
|
*
|
* @param enable
|
*/
|
public void setLogEnabled(boolean enable) {
|
LogUtils.setEnabled(enable);
|
}
|
|
/**
|
* 注册所有主题消息的监听
|
*
|
* @param listener
|
*/
|
public synchronized void registerAllTopicsListener(EventListener listener) {
|
EventDispatcher.getInstance().registerAllTopicsListener(listener);
|
}
|
|
/**
|
* 取消所有主题消息的监听
|
*
|
* @param listener
|
*/
|
public synchronized void removeAllTopicsListener(EventListener listener) {
|
if (listener == null) return;
|
EventDispatcher.getInstance().removeAllTopicsListener(listener);
|
}
|
|
/***********************三方设备和网关通信之前的认证流程****************************/
|
/**
|
* 检测是否已经认证过
|
* 认证通过才能进行设备控制
|
*
|
* @return
|
*/
|
public boolean checkIfCertified() {
|
return HDLLinkConfig.getInstance().checkIfCertified();
|
}
|
|
/**
|
* 开始监听和发起入网及认证请求
|
*
|
* @param request 认证请求信息
|
* @param callBack 结果回调
|
*/
|
public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) {
|
HDLUdpConnect.getInstance().startAuthenticateRequest(request, callBack);
|
}
|
|
/**
|
* 发送入网及认证请求
|
*
|
* @param ip 网关IP
|
* @param request 认证请求信息
|
* @param callBack 结果回调
|
*/
|
public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLLinkCallBack callBack) {
|
HDLUdpConnect.getInstance().sendAuthenticateRequest(ip, request, callBack);
|
}
|
|
/***********************三方设备请先认证成功 再调用下面的接口和网关通信****************************/
|
/**
|
* 组播搜索指定网关是否在线,搜索到则返回指定的网关对象
|
*
|
* @param callBack 回调
|
*/
|
public void searchGatewayMulticast(HDLUdpConnect.SearchGatewayCallBack callBack) {
|
HDLUdpConnect.getInstance().searchGatewayMulticast(callBack);
|
}
|
|
/**
|
* 组播搜索指定网关是否在线,搜索到则返回指定的网关对象
|
*
|
* @param callBack 回调
|
*/
|
public void searchGatewayBroadcast(HDLUdpConnect.SearchGatewayCallBack callBack) {
|
HDLUdpConnect.getInstance().searchGatewayBroadcast(callBack);
|
}
|
|
/**
|
* 获取设备列表
|
*/
|
public void getDeviceList(HDLLinkTCallBack<List<LinkOidBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
String topic = String.format(TopicConstant.GET_DEVICE_LIST, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getDeviceList onSuccess");
|
Type type = new TypeToken<BaseLocalResponse<List<LinkOidBean>>>() {
|
}.getType();
|
List<LinkOidBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝/遥控器定位
|
*/
|
public void locationIr(String sid, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
List<JSONObject> stringList = new ArrayList<>();
|
JSONObject jsonObject1 = new JSONObject();
|
jsonObject1.put("sid", sid);
|
jsonObject1.put("duration_time", "5");
|
stringList.add(jsonObject1);
|
jsonObject.put("objects", stringList);
|
String topic = String.format(TopicConstant.IR_FIND_REMOTE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("locationIr onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝删除(采用link协议通知删除并退网子设备拓扑关系)
|
*/
|
public void deleteLinkDevice(String oid, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
List<JSONObject> stringList = new ArrayList<>();
|
JSONObject jsonObject1 = new JSONObject();
|
jsonObject1.put("oid", oid);
|
stringList.add(jsonObject1);
|
jsonObject.put("objects", stringList);
|
String topic = String.format(TopicConstant.DELETING_GATEWAY_SLAVE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("deleteLinkDevice onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 遥控器删除(采用link协议通知删除并退网子设备拓扑关系)
|
*/
|
public void deleteIrControlDevice(String sid, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
List<JSONObject> stringList = new ArrayList<>();
|
JSONObject jsonObject1 = new JSONObject();
|
jsonObject1.put("sid", sid);
|
stringList.add(jsonObject1);
|
jsonObject.put("objects", stringList);
|
String topic = String.format(TopicConstant.DELETING_GATEWAY_SLAVE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("deleteIrControlDevice onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 设备控制
|
*/
|
public void controlDevice(Object object, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
List<Object> stringList = new ArrayList<>();
|
stringList.add(object);
|
jsonObject.put("objects", stringList);
|
String topic = String.format(TopicConstant.PROPERTY_DOWN, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("controlDevice onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 更改主网关备注名
|
*/
|
public void changeGWName(String gateWayName, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<LinkReNameGWBean> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
LinkReNameGWBean linkReNameGWBean = new LinkReNameGWBean();
|
linkReNameGWBean.setDevice_name(gateWayName);
|
data.setObjects(linkReNameGWBean);
|
String topic = String.format(TopicConstant.GATEWAY_RENAME, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("changeGWName onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 更改从网关备注名
|
*/
|
public void changeCongGWName(String gateWayName, String gatewayId, String ipAddress, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<LinkReNameGWBean> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
LinkReNameGWBean linkReNameGWBean = new LinkReNameGWBean();
|
linkReNameGWBean.setDevice_name(gateWayName);
|
data.setObjects(linkReNameGWBean);
|
String topic = String.format(TopicConstant.GATEWAY_RENAME, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
request.setCloudTopic(String.format(TopicConstant.NATIVE_LINK_DOWN_SLAVE, HDLLinkConfig.getInstance().getGatewayId(), gatewayId));
|
new HDLConnectHelper(ipAddress, request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("changeCongGWName onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* sid更改名字
|
*/
|
public void sidNameChange(List<LinkSidNameBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidNameBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.EDIT_FUNCTION, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("sidNameChange onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* sid绑定房间
|
*/
|
public void sidBindUid(List<LinkSidUidBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidUidBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SID_BIND_ROOM, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("sidBindUid onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* sid删除绑定房间关系
|
*/
|
public void sidDeleteUid(List<LinkSidUidBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidUidBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SID_DELETE_ROOM, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("sidDeleteUid onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 创建场景
|
*/
|
public void createScene(List<LinkCreateSceneBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkCreateSceneBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.CREATE_SCENE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("createScene onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 编辑场景 批量处理组
|
*/
|
public void editSceneBatchGroup(List<SceneGroupInfo> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<SceneGroupInfo>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SCENE_EDIT, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("editSceneBatchGroup onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 编辑场景 批量处理删除
|
*/
|
public void editSceneBatchDelete(List<SceneCanDeleteInfo> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<SceneCanDeleteInfo>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SCENE_EDIT, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("editSceneBatchDelete onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 编辑场景
|
*/
|
public void editScene(List<LinkCreateSceneBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkCreateSceneBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SCENE_EDIT, gatewayId);
|
for (int i = 0; i < data.getObjects().size(); i++) {
|
if (data.getObjects().get(i).getFunctions().size() == 0) {
|
data.getObjects().get(i).setFunctions(null);
|
}
|
// if (data.getObjects().get(i).getUids().size() == 0) {
|
// data.getObjects().get(i).setUids(null);
|
// }
|
}
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("editScene onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 删除场景
|
*/
|
public void deleteScene(List<LinkSidStrBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SCENE_DELETE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("deleteScene onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取自动化列表
|
*/
|
public void getLogicList(HDLLinkTCallBack<List<LinkLogicBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
String topic = String.format(TopicConstant.LOGIC_LIST_GET, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getLogicList onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkLogicBean>>>() {
|
}.getType();
|
List<LinkLogicBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取自动化详情
|
*/
|
public void getLogicDetail(List<LinkSidStrBean> list, HDLLinkTCallBack<List<LinkCreateLogicBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(list);
|
String topic = String.format(TopicConstant.LOGIC_GET, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getLogicDetail onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkCreateLogicBean>>>() {
|
}.getType();
|
List<LinkCreateLogicBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 新建自动化
|
*/
|
public void createLogic(List<LinkCreateLogicBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkCreateLogicBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.LOGIC_EDIT, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("createLogic onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 开启关闭自动化
|
*/
|
public void enableLogic(List<LinkEnableLogicBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkEnableLogicBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.LOGIC_ENABLE_EDIT, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("enableLogic onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 删除自动化
|
*/
|
public void deleteLogic(List<LinkSidStrBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.LOGIC_DELETE, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("deleteLogic onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝试码
|
*/
|
public void irCodeTest(JSONObject content, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
JSONArray jsonArray = new JSONArray();
|
jsonArray.add(content);
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
jsonObject.put("objects", jsonArray);
|
String topic = String.format(TopicConstant.IR_CODE_TEST, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("irCodeTest onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝添加遥控器
|
*/
|
public void irDeviceAdd(JSONObject content, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
JSONArray jsonArray = new JSONArray();
|
jsonArray.add(content);
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
jsonObject.put("objects", jsonArray);
|
String topic = String.format(TopicConstant.IR_DEVICE_ADD, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getSceneList onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝自学码
|
*/
|
public void irCodeStudy(JSONObject content, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
JSONArray jsonArray = new JSONArray();
|
jsonArray.add(content);
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
jsonObject.put("objects", jsonArray);
|
String topic = String.format(TopicConstant.IR_CODE_STUDY, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("irCodeStudy onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 红外宝自学码删除
|
*/
|
public void irCodeRemove(JSONObject content, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
JSONArray jsonArray = new JSONArray();
|
jsonArray.add(content);
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
jsonObject.put("objects", jsonArray);
|
String topic = String.format(TopicConstant.IR_CODE_REMOVE, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("irCodeRemove onSuccess");
|
callBack.onSuccess("");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
|
/**
|
* 红外宝遥控器列表获取
|
*/
|
public void irDeviceList(JSONObject content, HDLLinkTCallBack<List<LinkIrDeviceBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JSONObject jsonObject = new JSONObject();
|
JSONArray jsonArray = new JSONArray();
|
jsonArray.add(content);
|
jsonObject.put("id", IdUtils.getUUId());
|
jsonObject.put("time_stamp", time);
|
jsonObject.put("objects", jsonArray);
|
String topic = String.format(TopicConstant.IR_DEVICE_LIST, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("irDeviceList onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkIrDeviceBean>>>() {
|
}.getType();
|
List<LinkIrDeviceBean> response = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (response == null) {
|
callBack.onSuccess(new ArrayList<>());
|
} else {
|
callBack.onSuccess(response);
|
}
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
|
/**
|
* 获取安防列表
|
*/
|
public void getSecurityList(HDLLinkTCallBack<List<LinkLogicBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
|
String topic = String.format(TopicConstant.SECURITY_LIST_GET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getSecurityList onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkLogicBean>>>() {
|
}.getType();
|
List<LinkLogicBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取自动化详情
|
*/
|
public void getSecurityDetail(List<LinkSidStrBean> list, HDLLinkTCallBack<List<LinkCreateLogicBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(list);
|
|
String topic = String.format(TopicConstant.SECURITY_GET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getSecurityDetail onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkCreateLogicBean>>>() {
|
}.getType();
|
List<LinkCreateLogicBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 新建安防
|
*/
|
public void createSecurity(List<LinkCreateLogicBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkCreateLogicBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SECURITY_EDIT, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("createSecurity onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 删除安防
|
*/
|
public void deleteSecurity(List<LinkSidStrBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SECURITY_DELETE, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("deleteSecurity onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 开启关闭自动化
|
*/
|
public void enableSecurity(List<LinkEnableSecurityBean> bean, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkEnableSecurityBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.SECURITY_STATUS_SET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("enableSecurity onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
|
/**
|
* 获取功能列表
|
*/
|
public void getFunctionList(HDLLinkTCallBack<List<LinkFunctionBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
|
String topic = String.format(TopicConstant.GET_FUNCTION_LIST, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getFunctionList onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkFunctionBean>>>() {
|
}.getType();
|
List<LinkFunctionBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 模拟云端ota
|
*/
|
public void otaDeviceUpgradeDown(String oid, String module, HDLLinkTCallBack callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkOtaBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
List<LinkOtaBean> bean = new ArrayList<>();
|
LinkOtaBean linkOtaBean = new LinkOtaBean();
|
linkOtaBean.setOid(oid);
|
linkOtaBean.setModule(module);
|
linkOtaBean.setSize(291710);
|
linkOtaBean.setSign_method("md5");
|
linkOtaBean.setSign("05afc42e715b724e01b4ecd0ee2bde5d");
|
linkOtaBean.setUrl("https://hdl-hz-prod.oss-cn-hangzhou.aliyuncs.com/20/2023/05/37886160-375a-4bf0-8a32-4093dac38679.ota");
|
linkOtaBean.setVersion("V02.04.16");
|
bean.add(linkOtaBean);
|
data.setObjects(bean);
|
String topic = String.format(TopicConstant.OTA_UPGRADE_DOWN, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getFunctionList onSuccess");
|
if (callBack != null) {
|
callBack.onSuccess("Success");
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
|
/**
|
* 更改Sid备注名
|
*/
|
public void editSidName(BaseLocalResponse<List<JsonObject>> data, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
// LinkReNameGWBean linkReNameGWBean = new LinkReNameGWBean();
|
// linkReNameGWBean.setDevice_name(sidName);
|
// data.setObjects(linkReNameGWBean);
|
String topic = String.format(TopicConstant.EDIT_FUNCTION_ATTRIBUTE, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("editSidName onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取功能属性
|
* 支持批量
|
*
|
* @param sids
|
* @param callBack
|
*/
|
public void getFunctionAttribute(List<String> sids, HDLLinkTCallBack<List<LinkFunctionBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
|
final BaseLocalResponse<List<FunctionAttributeRequest>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
List<FunctionAttributeRequest> list = new ArrayList<>();
|
for (String s : sids) {
|
list.add(new FunctionAttributeRequest(s));
|
}
|
data.setObjects(list);
|
|
String topic = String.format(TopicConstant.GET_FUNCTION_ATTRIBUTE, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getFunctionAttribute onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkFunctionBean>>>() {
|
}.getType();
|
List<LinkFunctionBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 设备控制
|
*
|
* @param requestList 控制状态参数
|
* @param callBack 结果回调
|
*/
|
public void propertyDown(List<DeviceControlRequest> requestList, HDLLinkCallBack callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
|
final BaseLocalResponse<List<DeviceControlRequest>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(requestList);
|
String topic = String.format(TopicConstant.PROPERTY_DOWN, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("propertyDown onSuccess");
|
callBack.onSuccess(msg.toString());
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
|
}
|
|
/**
|
* 读取状态
|
*
|
* @param sids 请求参数 指定读取的设备sid列表
|
* @param callBack 回调
|
*/
|
public void propertyRead(List<String> sids, HDLLinkCallBack callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
|
List<PropertyReadRequest> list = new ArrayList<>();
|
for (String s : sids) {
|
list.add(new PropertyReadRequest(s));
|
}
|
data.setObjects(list);
|
|
String topic = String.format(TopicConstant.PROPERTY_READ, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("propertyRead onSuccess");
|
callBack.onSuccess(msg.toString());
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取场景列表
|
*/
|
public void getSceneList(HDLLinkTCallBack<List<LinkSceneBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
|
String topic = String.format(TopicConstant.SCENE_LIST_GET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getSceneList onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkSceneBean>>>() {
|
}.getType();
|
List<LinkSceneBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取场景详情
|
*/
|
public void getSceneDetail(List<LinkSidStrBean> list, HDLLinkTCallBack<List<LinkCreateSceneBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkSidStrBean>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
data.setObjects(list);
|
String topic = String.format(TopicConstant.SCENE_GET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getSceneDetail onSuccess");
|
if (callBack != null) {
|
Type type = new TypeToken<BaseLocalResponse<List<LinkCreateSceneBean>>>() {
|
}.getType();
|
List<LinkCreateSceneBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 场景控制
|
*
|
* @param sids 场景sid列表
|
* @param callBack 回调
|
*/
|
public void controlScene(List<String> sids, HDLLinkCallBack callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
|
data.setId(IdUtils.getUUId());
|
data.setTime_stamp(time);
|
|
List<PropertyReadRequest> list = new ArrayList<>();
|
for (String s : sids) {
|
list.add(new PropertyReadRequest(s));
|
}
|
data.setObjects(list);
|
String topic = String.format(TopicConstant.SCENE_CONTROL, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("controlScene onSuccess");
|
callBack.onSuccess(msg.toString());
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 通用UDP发送指令
|
* 1秒没响应就让他重新发送,重试3次
|
*
|
* @param topic 发送数据
|
* @param bodyStr body内容
|
* @param callBack 回调
|
*/
|
public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
|
HDLUdpConnect.getInstance().udpSendMsg(topic, bodyStr, false, callBack);
|
}
|
|
/**
|
* 通用广播UDP发送指令
|
* 1秒没响应就让他重新发送,重试3次
|
*
|
* @param topic 发送数据
|
* @param bodyStr body内容
|
* @param callBack 回调
|
*/
|
public void udpBroadcastSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
|
HDLUdpConnect.getInstance().udpSendMsg(topic, bodyStr, true, callBack);
|
}
|
|
/**
|
* 通用TCP发送指令
|
* 1秒没响应就让他重新发送,重试3次
|
*
|
* @param topic 发送数据
|
* @param body body内容
|
* @param callBack 回调
|
*/
|
public void tcpSendMsg(String topic, String body, HDLLinkCallBack callBack) {
|
|
LinkRequest request = new LinkRequest(topic, body, HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("sendMsg onSuccess");
|
if (callBack != null) {
|
callBack.onSuccess(msg.toString());
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
}
|
|
/**
|
* 通用TCP发送指令 只发一次,不监听回复,不重发
|
*
|
* @param topic 发送数据
|
* @param body 回复的主题
|
*/
|
public void tcpSendMsg(String topic, String body) {
|
LinkRequest request = new LinkRequest(topic, body, HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(1, HDLLinkConfig.getInstance().getIpAddress(), request, true);
|
}
|
|
/**
|
* 创新网关列表,重新读取
|
*
|
* @param homeId 住宅Id
|
* @param callBack 回调所有读取到的网关列表
|
*/
|
public void refreshGatewayByHome(String homeId, GatewayCallBack callBack) {
|
HDLLinkLocalGateway.getInstance().refreshGatewayByHome(homeId, callBack);
|
}
|
|
/**
|
* 创新网关列表,重新读取
|
*
|
* @param callBack 回调所有读取到的网关列表
|
*/
|
public void refreshGateway(GatewayCallBack callBack,List<String> spks) {
|
HDLLinkLocalGateway.getInstance().refreshGateway(callBack,spks);
|
}
|
|
/**
|
* 获取当前住宅缓存的所有网关,一般是调试软件使用,三方不用调试此方法
|
* 如果之前还没有读取过网关,先调用方法refreshGatewayByHome读取一次
|
*
|
* @return
|
*/
|
public List<GatewayBean> getGatewayByHome() {
|
return HDLLinkLocalGateway.getInstance().getGatewayList();
|
}
|
|
|
/**
|
* 获取房间列表
|
*
|
* @param callBack
|
*/
|
public void getRoomList(HDLLinkTCallBack<List<LinkRoomBean>> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
|
String topic = String.format(TopicConstant.ROOM_LIST_GET, gatewayId);
|
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getRoomList onSuccess");
|
Type type = new TypeToken<BaseLocalResponse<List<LinkRoomBean>>>() {
|
}.getType();
|
List<LinkRoomBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 全量更新房间列表
|
*
|
* @param list
|
* @param callBack
|
*/
|
public void coverAddRoomList(List<LinkRoomBean> list, HDLLinkCallBack callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
final BaseLocalResponse<List<LinkRoomBean>> senData = new BaseLocalResponse<>();
|
senData.setId(IdUtils.getUUId());
|
senData.setTime_stamp(time);
|
senData.setObjects(list);
|
|
String topic = String.format(TopicConstant.ROOM_COVER_ADD, gatewayId);
|
LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(senData), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("coverAddRoomList onSuccess");
|
callBack.onSuccess(msg.toString());
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 获取房间绑定关系
|
*/
|
public void getRoomBindList(HDLLinkTCallBack<List<LinkRoomBindBean>> callBack, List<String> uidRoomList) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
|
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
JsonArray array = new JsonArray();
|
for (String uid : uidRoomList) {
|
array.add(uid);
|
}
|
jsonObject.add("objects", array);
|
String topic = String.format(TopicConstant.ROOM_BIND_LIST_GET, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getRoomBindList onSuccess");
|
Type type = new TypeToken<BaseLocalResponse<List<LinkRoomBindBean>>>() {
|
}.getType();
|
List<LinkRoomBindBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 读取网关经纬度
|
*/
|
public void getGatewayLocation(String gatewayId, HDLLinkTCallBack<GatewayLocationBean> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
String topic = String.format(TopicConstant.GATEWAY_LOCATION_GET, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getGatewayLocation onSuccess");
|
Type type = new TypeToken<BaseLocalResponse<GatewayLocationBean>>() {
|
}.getType();
|
GatewayLocationBean list = LinkResponseUtils.convertLinkResponse(msg, type);
|
if (list == null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
|
} else {
|
callBack.onSuccess(list);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 设置网关经纬度
|
*/
|
public void gatewayLocation(GatewayBean bean, String longitude, String lat, HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = bean.getGatewayId();
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
JsonObject jsonObject1 = new JsonObject();
|
jsonObject1.addProperty("longitude", longitude);
|
jsonObject1.addProperty("latitude", lat);
|
jsonObject.add("objects", jsonObject1);
|
String topic = String.format(TopicConstant.GATEWAY_LOCATION_EDIT, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("getRoomBindList onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
/**
|
* 刚刚绑定网关的时候设置网关经纬度 不需要加密
|
*/
|
public void gatewayLocation(String mGatewayId, String longitude, String lat, boolean isEncrypt,HDLLinkTCallBack<String> callBack) {
|
if (null == callBack) {
|
return;
|
}
|
String gatewayId = mGatewayId;
|
if (!TextUtils.isEmpty(gatewayId)) {
|
String time = String.valueOf(System.currentTimeMillis());
|
JsonObject jsonObject = new JsonObject();
|
jsonObject.addProperty("id", IdUtils.getUUId());
|
jsonObject.addProperty("time_stamp", time);
|
JsonObject jsonObject1 = new JsonObject();
|
jsonObject1.addProperty("longitude", longitude);
|
jsonObject1.addProperty("latitude", lat);
|
jsonObject.add("objects", jsonObject1);
|
String topic = String.format(TopicConstant.GATEWAY_LOCATION_EDIT, gatewayId);
|
LinkRequest request = new LinkRequest(topic, jsonObject.toString(), isEncrypt);
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
if (msg instanceof LinkResponse) {
|
LogUtils.i("gatewayLocation onSuccess");
|
callBack.onSuccess("Success");
|
}
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
|
}
|
}
|
}, true).send();
|
} else {
|
if (callBack != null) {
|
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
|
}
|
}
|
}
|
|
|
/*********************** 文件传输 ****************************/
|
/**
|
* 文件用途通知
|
*
|
* @param fileId 文件Id
|
* @param fileName 文件名称
|
* @param purpose 用途 用途枚举
|
* zigbee设备配置恢复: ConfigRecoveryForZigbeeDevices
|
* 数据备份:DataBackup
|
* 数据恢复:DataRecovery
|
* @param callBack
|
*/
|
public void sendFileUserNotification(String fileId, String fileName, String purpose, HDLLinkCallBack callBack) {
|
//帧格式:head+命令字+数据长度+二进制数据
|
String time = String.valueOf(System.currentTimeMillis());
|
String data = "hex" + "0001" + fileId + "\r\n" + fileName + "\r\n" + purpose;
|
byte[] dataBytes = data.getBytes(StandardCharsets.UTF_8);
|
FileRequest linkRequest = new FileRequest(fileId, 0x0011, dataBytes, HDLLinkConfig.getInstance().isLocalEncrypt());
|
linkRequest.setReplyTopic(linkRequest.getAckTopic());
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), linkRequest, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
}
|
}, true).send();
|
}
|
|
/**
|
* 发送文件相关命令
|
*/
|
public void sendFileCommand(byte[] dataBytes, Integer command, HDLLinkCallBack callBack) {
|
//帧格式:head+命令字+数据长度+二进制数据
|
String time = String.valueOf(System.currentTimeMillis());
|
// byte []dataBytes=data.getBytes(StandardCharsets.UTF_8);
|
FileRequest linkRequest = new FileRequest("65531", command, dataBytes, HDLLinkConfig.getInstance().isLocalEncrypt());
|
linkRequest.setReplyTopic(linkRequest.getAckTopic());
|
linkRequest.setCloudTopic(String.format(TopicConstant.NATIVE_LINK_DOWN, HDLLinkConfig.getInstance().getGatewayId()));
|
new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), linkRequest, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
}
|
}, true).send();
|
}
|
|
|
/********************************驱动升级***********************************/
|
/**
|
* 发送文件相关命令
|
*/
|
public void sendFileCommand(String ipAddress, byte[] dataBytes, String fileId, Integer command, HDLLinkCallBack callBack) {
|
//帧格式:head+命令字+数据长度+二进制数据
|
FileRequest linkRequest = new FileRequest(fileId, command, dataBytes, HDLLinkConfig.getInstance().isLocalEncrypt());
|
linkRequest.setReplyTopic(linkRequest.getAckTopic());
|
new HDLConnectHelper(ipAddress, linkRequest, new HDLConnectHelper.HdlSocketListener() {
|
@Override
|
public void onSucceed(Object msg) {
|
|
}
|
|
@Override
|
public void onFailure(HDLLinkCode hdlLinkCode) {
|
|
}
|
}, true).send();
|
}
|
|
}
|