package com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd; import android.text.TextUtils; import com.mm.android.deviceaddmodule.mobilecommon.annotation.DeviceAbility; import com.mm.android.deviceaddmodule.mobilecommon.entity.DataInfo; import java.io.Serializable; /** * 设备添加模块设备信息存储类 */ public class DeviceAddInfo extends DataInfo { public static final int NC_TYPE_SOUND_WAVE_V2 = 1; // 新声波 public static class GatewayInfo implements Serializable { //若是添加配件,存储对应的网关信息 String sn; String ability; public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } public String getAbility() { return ability; } public void setAbility(String ability) { this.ability = ability; } @Override public String toString() { return "GatewayInfo{" + "sn='" + sn + '\'' + ", ability='" + ability + '\'' + '}'; } } public class WifiInfo implements Serializable { String ssid = ""; String pwd = ""; public String getSsid() { return ssid; } public void setSsid(String ssid) { this.ssid = ssid; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "WifiInfo{" + "ssid='" + ssid + '\'' + ", pwd='" + pwd + '\'' + '}'; } } public class GPSInfo implements Serializable { String longitude; String latitude; public String getLongitude() { return longitude; } public void setLongitude(String longitude) { this.longitude = longitude; } public String getLatitude() { return latitude; } public void setLatitude(String latitude) { this.latitude = latitude; } @Override public String toString() { return "GPSInfo{" + "longitude='" + longitude + '\'' + ", latitude='" + latitude + '\'' + '}'; } } //设备配网模式 public enum ConfigMode { SmartConfig, // SmartConfig方式 SoundWave, // 声波方式 SoftAP, // 软AP方式 LAN, // 有线局域网 // SIMCard, // SIMCARD方式 QRCode, // 二维码 SoundWaveV2, // 声波V2版本,优化声波算法 Location, //设备本地配网 Bluetooth, //设备本地配网 NBIOT //NB配网 } //设备绑定状态 public enum BindStatus { bindByMe, //被当前帐户绑定 bindByOther, //被其他帐户绑定 unbind //未被绑定 } //设备状态 public enum Status { online, //在线 offline, //离线 upgrading, //升级中 sleep //休眠 } //设备类型 public enum DeviceType { ap, //配件 device //配件外的设备 } public enum DeviceAddType { SOFTAP, //软AP添加 AP, //配件添加 // SIMCARD, //SIM卡添加 HUB, //HUB配对 WLAN, //无线 LAN, //有线 ONLINE, //在线 LOCAL, //设备本地配网 NBIOT, //NB配网 Bluetooth; //设备本地配网 } boolean support = true; //是否支持绑定 String deviceSn; //设备序列号 String deviceCodeModel; //二维码中扫描得到的设备型号 boolean deviceExist; //设备是否在服务上注册 String bindStatus; //设备绑定状态 String bindAcount; //设备绑定帐号 String accessType = "PaaS"; //设备接入类型 PaaS-表示Paas程序接入、Lechange-表示乐橙非PaaS设备、Easy4IP表示Easy4IP程序设备、P2P表示P2P程序设备 String status; //设备状态 String configMode; //配对模式SmartConfig,SoundWave,SoftAP,LAN,SIMCard boolean wifiConfigModeOptional = false; //true,表示可让用户自行选择可用的配网模式 小微这边没有这个配置功能,默认false String wifiTransferMode; //wifi频段2.4Ghz,5Ghz // String imeiCode = ""; // iot设备唯一标识码 String deviceDefaultName; //设备默认名,绑定成功后服务返回 String regCode; //设备安全码,国内乐橙乐盒设备才有 String nc; // 设备二维码上的能力,之前的QR(二维码配网)不在支持,目前使用为新声波使用 WifiInfo wifiInfo = new WifiInfo(); //无线配置当前wifi信息 String curConfigMode = ConfigMode.SmartConfig.name(); //当前配对模式 String devicePwd; //设备密码 String recordSaveDays; // 录像保存天数(免费套餐信息,设备有可赠送免费套餐时返回) String streamType; // 码流类型:main:主码流extra1:辅码流(免费套餐信息,设备有可赠送免费套餐时返回) String serviceTime; //服务时长(秒)(免费套餐信息,设备有可赠送免费套餐时返回) boolean isWifiOfflineMode = false; //是否为wifi离线配置 GPSInfo gpsInfo = new GPSInfo(); GatewayInfo gatewayInfo; DeviceAddType curDeviceAddType = DeviceAddType.WLAN; //当前添加流程类型 DeviceIntroductionInfo mDevIntroductionInfo; //设备添加引导信息 boolean isDeviceDetail = false; // 是否为中间页添加 private String sc; // 设备安全验证码 private String requestId; private boolean isManualInput; // 手动输入序列号进入 private String ssid; //软ap添加时,设备的SSID private String previousSsid; //连接软ap之前的ssid,方便退出软ap流程时恢复网络 public long getStartTime() { return startTime; } public void setStartTime(long startTime) { this.startTime = startTime; } private long startTime; // //TODO SMB这里字段的默认值和上层判断逻辑需要处理 //**********************网络获取缺失的字段********************************// String brand; //设备品牌信息lechange-乐橙设备,general-通用设备, 海外:dahua-大华设备,general-通用设备 String family; //设备系列 String deviceModel; //设备型号 String modelName; //型号名称 String catalog; //设备大类 String ability; //设备能力项 String type; //设备分类,ap配件device设备 int channelNum; //视频通道的总数量(包含未接入的通道),网关的通道数可能为0 private String watchSetupVideoUrl; //String 可选 视频地址,海外3.100新增 private String port; // String 可选 设备私有协议端口,海外使用 //**********************网络获取缺失的字段********************************// public String getDeviceSn() { return deviceSn == null ? "" : deviceSn; } public void setDeviceSn(String deviceSn) { this.deviceSn = deviceSn; } public String getDeviceCodeModel() { return deviceCodeModel == null ? "" : deviceCodeModel; } public void setDeviceCodeModel(String deviceCodeModel) { this.deviceCodeModel = deviceCodeModel; } public boolean isDeviceInServer() { return deviceExist; } public boolean isP2PDev() { //是否为P2P设备 return "p2p".equalsIgnoreCase(accessType); } public boolean isEasy4ipP2PDev() { //是否为Easy4ip及P2P设备 return "p2p".equalsIgnoreCase(accessType) || "easy4ip".equalsIgnoreCase(accessType); } public boolean getDeviceExist() { return deviceExist; } public void setDeviceExist(boolean deviceExist) { this.deviceExist = deviceExist; } public String getBindStatus() { return bindStatus == null ? "" : bindStatus; } public void setBindStatus(String bindStatus) { this.bindStatus = bindStatus; } public String getBindAcount() { return bindAcount == null ? "" : bindAcount; } public void setBindAcount(String bindAcount) { this.bindAcount = bindAcount; } public String getAccessType() { return accessType == null ? "" : accessType; } public void setAccessType(String accessType) { this.accessType = accessType; } public String getStatus() { return status == null ? "" : status; } public void setStatus(String status) { this.status = status; } public String getConfigMode() { return configMode == null ? "" : configMode; } public void setConfigMode(String configMode) { this.configMode = configMode; } public String getBrand() { return brand == null ? "" : brand; } public void setBrand(String brand) { this.brand = brand; } public String getFamily() { return family == null ? "" : family; } public void setFamily(String family) { this.family = family; } public String getDeviceModel() { return deviceModel == null ? "" : deviceModel; } public void setDeviceModel(String deviceModel) { this.deviceModel = deviceModel; } public String getModelName() { return modelName == null ? "" : modelName; } public void setModelName(String modelName) { this.modelName = modelName; } public String getCatalog() { return catalog == null ? "" : catalog; } public void setCatalog(String catalog) { this.catalog = catalog; } public String getType() { return type == null ? "" : type; } public void setType(String type) { this.type = type; } public String getWifiTransferMode() { return wifiTransferMode == null ? "" : wifiTransferMode; } public void setWifiTransferMode(String wifiTransferMode) { this.wifiTransferMode = wifiTransferMode; } public String getRegCode() { return regCode == null ? "" : regCode; } public void setRegCode(String regCode) { this.regCode = regCode; } public String getNc() { return nc; } public void setNc(String nc) { this.nc = nc; } public DeviceIntroductionInfo getDevIntroductionInfo() { return mDevIntroductionInfo; } public void setDevIntroductionInfos(DeviceIntroductionInfo devIntroductionInfo) { this.mDevIntroductionInfo = devIntroductionInfo; } public WifiInfo getWifiInfo() { return wifiInfo; } public void setWifiInfo(WifiInfo wifiInfo) { this.wifiInfo = wifiInfo; } public String getCurConfigMode() { return curConfigMode == null ? "" : curConfigMode; } public void setCurConfigMode(String curConfigMode) { this.curConfigMode = curConfigMode; } public String getDevicePwd() { return devicePwd == null ? "" : devicePwd; } public void setDevicePwd(String devicePwd) { this.devicePwd = devicePwd; } public boolean isWifiOfflineMode() { return isWifiOfflineMode; } public void setWifiOfflineMode(boolean wifiOfflineMode) { isWifiOfflineMode = wifiOfflineMode; } public int getChannelNum() { return channelNum; } public void setChannelNum(int channelNum) { this.channelNum = channelNum; } public GPSInfo getGpsInfo() { return gpsInfo; } public String getAbility() { return ability == null ? "" : ability; } public void setAbility(String ability) { this.ability = ability; } public GatewayInfo getGatewayInfo() { return gatewayInfo; } public void setGatewayInfo(GatewayInfo gatewayInfo) { this.gatewayInfo = gatewayInfo; } public String getDeviceDefaultName() { return deviceDefaultName == null ? "" : deviceDefaultName; } public void setDeviceDefaultName(String deviceDefaultName) { this.deviceDefaultName = deviceDefaultName; } public DeviceAddType getCurDeviceAddType() { return curDeviceAddType; } public void setCurDeviceAddType(DeviceAddType curDeviceAddType) { this.curDeviceAddType = curDeviceAddType; } public boolean hasAbility(@DeviceAbility String ability) { return !TextUtils.isEmpty(this.ability) && this.ability.contains(ability); } public void clearCache() { wifiInfo.setPwd(null); wifiInfo.setSsid(null); curDeviceAddType = DeviceAddType.WLAN; } public String getRecordSaveDays() { return recordSaveDays; } public void setRecordSaveDays(String recordSaveDays) { this.recordSaveDays = recordSaveDays; } public String getStreamType() { return streamType; } public void setStreamType(String streamType) { this.streamType = streamType; } public String getServiceTime() { return serviceTime; } public void setServiceTime(String serviceTime) { this.serviceTime = serviceTime; } public boolean isDeviceDetail() { return isDeviceDetail; } public void setDeviceDetail(boolean deviceDetail) { isDeviceDetail = deviceDetail; } public String getSc() { return sc; } public void setSc(String sc) { this.sc = sc; } //设备是否有安全码 public boolean hasSc(){ return !TextUtils.isEmpty(sc); } public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public boolean isManualInput() { return isManualInput; } public void setManualInput(boolean manualInput) { isManualInput = manualInput; } public String getSsid() { return ssid; } public void setSsid(String ssid) { this.ssid = ssid; } public String getPreviousSsid() { return previousSsid; } public void setPreviousSsid(String previousSsid) { this.previousSsid = previousSsid; } public String getWatchSetupVideoUrl() { return watchSetupVideoUrl; } public void setWatchSetupVideoUrl(String watchSetupVideoUrl) { this.watchSetupVideoUrl = watchSetupVideoUrl; } public String getPort() { return port; } public void setPort(String port) { this.port = port; } public boolean isWifiConfigModeOptional() { return wifiConfigModeOptional; } public void setWifiConfigModeOptional(boolean wifiConfigModeOptional) { this.wifiConfigModeOptional = wifiConfigModeOptional; } public boolean isSupport() { return support; } public void setSupport(boolean support) { this.support = support; } @Override public String toString() { return "DeviceAddInfo{" + "deviceSn='" + deviceSn + '\'' + ", deviceCodeModel='" + deviceCodeModel + '\'' + ", deviceExist='" + deviceExist + '\'' + ", bindStatus='" + bindStatus + '\'' + ", bindAcount='" + bindAcount + '\'' + ", accessType='" + accessType + '\'' + ", status='" + status + '\'' + ", configMode='" + configMode + '\'' + ", brand='" + brand + '\'' + ", family='" + family + '\'' + ", deviceModel='" + deviceModel + '\'' + ", modelName='" + modelName + '\'' + ", catalog='" + catalog + '\'' + ", ability='" + ability + '\'' + ", type='" + type + '\'' + ", wifiTransferMode='" + wifiTransferMode + '\'' + ", deviceDefaultName='" + deviceDefaultName + '\'' + ", regCode='" + regCode + '\'' + ", nc='" + nc + '\'' + ", wifiInfo=" + wifiInfo + ", curConfigMode='" + curConfigMode + '\'' + ", devicePwd='" + devicePwd + '\'' + ", isWifiOfflineMode=" + isWifiOfflineMode + ", gpsInfo=" + gpsInfo + ", gatewayInfo=" + gatewayInfo + ", curDeviceAddType=" + curDeviceAddType + ", mDevIntroductionInfo=" + mDevIntroductionInfo + ",sc=" + sc + ",requestId=" + requestId + ",isManualInput=" + isManualInput + ", ssid=" + ssid + ", previousSsid=" + previousSsid + '}'; } }