package com.hdl.photovoltaic.other;
|
|
import android.provider.Settings;
|
import android.text.TextUtils;
|
|
import com.google.gson.Gson;
|
import com.google.gson.JsonObject;
|
import com.google.gson.reflect.TypeToken;
|
import com.hdl.hdlhttp.HxHttp;
|
import com.hdl.linkpm.sdk.core.exception.HDLException;
|
import com.hdl.photovoltaic.HDLApp;
|
import com.hdl.photovoltaic.bean.HttpResponsePack;
|
import com.hdl.photovoltaic.bean.MqttInfo;
|
import com.hdl.photovoltaic.internet.HttpClient;
|
import com.hdl.photovoltaic.internet.api.HttpApi;
|
import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
|
import com.hdl.photovoltaic.listener.CloudCallBeak;
|
import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean;
|
import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
|
|
import java.lang.reflect.Type;
|
import java.util.List;
|
import java.util.Random;
|
|
import io.reactivex.rxjava3.disposables.Disposable;
|
|
/**
|
* mqtt的逻辑
|
*/
|
public class HdlMqttLogic {
|
private static volatile HdlMqttLogic sHdlMqttLogic;
|
|
/**
|
* 获取当前对象
|
*
|
* @return HdlAccountLogic
|
*/
|
public static synchronized HdlMqttLogic getInstance() {
|
if (sHdlMqttLogic == null) {
|
synchronized (HdlMqttLogic.class) {
|
if (sHdlMqttLogic == null) {
|
sHdlMqttLogic = new HdlMqttLogic();
|
}
|
}
|
|
}
|
return sHdlMqttLogic;
|
}
|
|
/**
|
* 获取mqtt远程连接数据
|
*
|
* @param homeType 住宅类型 (1.ZIGBEE 2.BUSPRO 3.A 4.ALL)
|
* @param cloudCallBeak 回调
|
*/
|
public void getMqttRemoteInfo(String homeType, CloudCallBeak<MqttInfo> cloudCallBeak) {
|
String requestUrl = HttpApi.POST_Mqtt_GetRemoteInfo;
|
int randomNumberClientId = new Random().nextInt(1000000000);
|
String deviceUuid = Settings.System.getString(HDLApp.getInstance().getContentResolver(), Settings.System.ANDROID_ID);
|
JsonObject json = new JsonObject();
|
json.addProperty("attachClientId", randomNumberClientId);
|
json.addProperty("homeType", homeType);
|
json.addProperty("deviceUuid", deviceUuid);
|
HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
|
@Override
|
public void onSuccess(String jsonStr) {
|
Type type = new TypeToken<MqttInfo>() {
|
}.getType();
|
MqttInfo mqttInfo = new Gson().fromJson(jsonStr, type);
|
if (cloudCallBeak != null) {
|
cloudCallBeak.onSuccess(mqttInfo);
|
}
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
if (cloudCallBeak != null) {
|
cloudCallBeak.onFailure(e);
|
}
|
}
|
});
|
|
}
|
|
}
|