Allow pulling part of the log file from a hub via bluetooth.

This commit is contained in:
MarkBryanMilligan
2021-02-28 23:36:58 -06:00
parent 11097049e2
commit 16c853bf86
8 changed files with 115 additions and 27 deletions

View File

@@ -15,7 +15,9 @@ public enum HubConfigCharacteristic {
AccountId(7, CharacteristicFlag.READ),
NetworkState(8, CharacteristicFlag.READ),
Flash(9, CharacteristicFlag.WRITE),
Host(10, CharacteristicFlag.WRITE);
Host(10, CharacteristicFlag.WRITE),
Log(11, CharacteristicFlag.READ),
NetworkDetails(12, CharacteristicFlag.READ);
public final int idx;
public final UUID uuid;

View File

@@ -1,13 +1,16 @@
package com.lanternsoftware.datamodel.currentmonitor;
import com.lanternsoftware.util.CollectionUtils;
import com.lanternsoftware.util.dao.annotations.DBSerializable;
import java.util.EnumSet;
import java.util.List;
@DBSerializable
public class NetworkStatus {
private List<String> wifiIPs;
private List<String> ethernetIPs;
private boolean pingSuccessful = true;
public List<String> getWifiIPs() {
return wifiIPs;
@@ -25,6 +28,14 @@ public class NetworkStatus {
ethernetIPs = _ethernetIPs;
}
public boolean isPingSuccessful() {
return pingSuccessful;
}
public void setPingSuccessful(boolean _pingSuccessful) {
pingSuccessful = _pingSuccessful;
}
public boolean isWifiConnected() {
return CollectionUtils.isNotEmpty(wifiIPs);
}
@@ -35,9 +46,9 @@ public class NetworkStatus {
public byte toMask() {
EnumSet<NetworkAdapter> adapters = EnumSet.noneOf(NetworkAdapter.class);
if (isWifiConnected())
if (isWifiConnected() && isPingSuccessful())
adapters.add(NetworkAdapter.WIFI);
if (isEthernetConnected())
if (isEthernetConnected() && isPingSuccessful())
adapters.add(NetworkAdapter.ETHERNET);
return NetworkAdapter.toMask(adapters);
}

View File

@@ -0,0 +1,44 @@
package com.lanternsoftware.datamodel.currentmonitor.dao;
import com.lanternsoftware.datamodel.currentmonitor.NetworkStatus;
import com.lanternsoftware.util.dao.AbstractDaoSerializer;
import com.lanternsoftware.util.dao.DaoEntity;
import com.lanternsoftware.util.dao.DaoProxyType;
import com.lanternsoftware.util.dao.DaoSerializer;
import java.lang.String;
import java.util.Collections;
import java.util.List;
public class NetworkStatusSerializer extends AbstractDaoSerializer<NetworkStatus>
{
@Override
public Class<NetworkStatus> getSupportedClass()
{
return NetworkStatus.class;
}
@Override
public List<DaoProxyType> getSupportedProxies() {
return Collections.singletonList(DaoProxyType.MONGO);
}
@Override
public DaoEntity toDaoEntity(NetworkStatus _o)
{
DaoEntity d = new DaoEntity();
d.put("wifi_ips", _o.getWifiIPs());
d.put("ethernet_ips", _o.getEthernetIPs());
d.put("ping_successful", _o.isPingSuccessful());
return d;
}
@Override
public NetworkStatus fromDaoEntity(DaoEntity _d)
{
NetworkStatus o = new NetworkStatus();
o.setWifiIPs(DaoSerializer.getList(_d, "wifi_ips", String.class));
o.setEthernetIPs(DaoSerializer.getList(_d, "ethernet_ips", String.class));
o.setPingSuccessful(DaoSerializer.getBoolean(_d, "ping_successful"));
return o;
}
}

View File

@@ -12,5 +12,6 @@ com.lanternsoftware.datamodel.currentmonitor.dao.BreakerSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.EnergyBlockSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.HubPowerMinuteSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.MeterSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.NetworkStatusSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.SequenceSerializer
com.lanternsoftware.datamodel.currentmonitor.dao.SignupResponseSerializer