package nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV; public class Ephemeris { public static final int id = 0x1f; public static class OperatorData { public static final int id = 0x01; public static class OperatorIncomingRequest extends HuaweiPacket { public byte operationInfo; public int operationTime; public OperatorIncomingRequest(ParamsProvider paramsProvider) { super(paramsProvider); } @Override public void parseTlv() throws ParseException { //TODO: can contain many elements. //List subContainers = container.getObjects(0x81); HuaweiTLV subTlv = this.tlv.getObject(0x81); this.operationInfo = subTlv.getByte(0x02); this.operationTime = subTlv.getInteger(0x03); } } public static class OperatorResponse extends HuaweiPacket { public OperatorResponse(ParamsProvider paramsProvider, int responseCode) { super(paramsProvider); this.serviceId = Ephemeris.id; this.commandId = id; this.tlv = new HuaweiTLV().put(0x7f, responseCode); this.complete = true; } } } public static class ParameterConsult { public static final byte id = 0x02; public static class Request extends HuaweiPacket { public Request(ParamsProvider paramsProvider) { super(paramsProvider); this.serviceId = Ephemeris.id; this.commandId = id; this.tlv = new HuaweiTLV().put(0x81); } } public static class Response extends HuaweiPacket { public int consultDeviceTime; public byte downloadVersion; public String downloadTag; public Response (ParamsProvider paramsProvider) { super(paramsProvider); } @Override public void parseTlv() throws HuaweiPacket.ParseException { //TODO: can contain many elements. //List subContainers = container.getObjects(0x81); HuaweiTLV subTlv = this.tlv.getObject(0x81); this.consultDeviceTime = subTlv.getByte(0x04) * 1000; this.downloadVersion = subTlv.getByte(0x05); this.downloadTag = subTlv.getString(0x06); } } } public static class FileStatus { public static final byte id = 0x03; public static class Request extends HuaweiPacket { public Request(ParamsProvider paramsProvider, byte status) { super(paramsProvider); this.serviceId = Ephemeris.id; this.commandId = id; this.tlv = new HuaweiTLV().put(0x1, status); } } public static class Response extends HuaweiPacket { public int responseCode; public Response (ParamsProvider paramsProvider) { super(paramsProvider); } @Override public void parseTlv() throws HuaweiPacket.ParseException { this.responseCode = this.tlv.getInteger(0x7f); } } } }