62 lines
1.6 KiB
Java
62 lines
1.6 KiB
Java
package com.eveningoutpost.dexdrip.G5Model;
|
|
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteOrder;
|
|
|
|
import lombok.Getter;
|
|
|
|
// created by jamorham
|
|
|
|
public class SessionStopRxMessage extends BaseMessage {
|
|
|
|
public static final byte opcode = 0x29;
|
|
final byte length = 17;
|
|
@Getter
|
|
private byte status = (byte)0xFF;
|
|
private byte received = (byte)0xFF;
|
|
final String transmitterId;
|
|
int sessionStartTime=0;
|
|
int sessionStopTime =0;
|
|
int transitterTime=0;
|
|
boolean valid = false;
|
|
|
|
public SessionStopRxMessage(byte[] packet,String transmitterId) {
|
|
this.transmitterId = transmitterId;
|
|
if (packet.length == length) {
|
|
data = ByteBuffer.wrap(packet).order(ByteOrder.LITTLE_ENDIAN);
|
|
if ((data.get() == opcode) && checkCRC(packet)) {
|
|
valid = true;
|
|
status = data.get();
|
|
received = data.get();
|
|
sessionStopTime = data.getInt();
|
|
sessionStartTime = data.getInt();
|
|
transitterTime = data.getInt();
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
boolean isValid() {
|
|
return valid;
|
|
}
|
|
|
|
boolean isOkay() {
|
|
return isValid() && status == 0x00;
|
|
}
|
|
|
|
long getSessionStart() {
|
|
if (isOkay() && sessionStartTime > 0) {
|
|
return DexTimeKeeper.fromDexTime(transmitterId, sessionStartTime);
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
long getSessionStop() {
|
|
if (isOkay() && sessionStopTime > 0) {
|
|
return DexTimeKeeper.fromDexTime(transmitterId, sessionStopTime);
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
}
|