Initial project commit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
package com.eveningoutpost.dexdrip.G5Model;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
// created by jamorham
|
||||
|
||||
public class SessionStartRxMessage extends BaseMessage {
|
||||
public static final byte opcode = 0x27;
|
||||
final byte length = 17;
|
||||
|
||||
private byte status = (byte) 0xFF;
|
||||
private byte info = (byte) 0xFF;
|
||||
final String transmitterId;
|
||||
int sessionStartTime = 0;
|
||||
int requestedStartTime = 0;
|
||||
int transitterTime = 0;
|
||||
|
||||
boolean valid = false;
|
||||
|
||||
public SessionStartRxMessage(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();
|
||||
info = data.get();
|
||||
requestedStartTime = data.getInt();
|
||||
sessionStartTime = data.getInt();
|
||||
transitterTime = data.getInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean isValid() {
|
||||
return valid;
|
||||
}
|
||||
|
||||
boolean isOkay() {
|
||||
return isValid() && status == 0x00 && (info == 0x01 || info == 0x05) && sessionStartTime != INVALID_TIME;
|
||||
}
|
||||
|
||||
// beyond hope?
|
||||
boolean isFubar() {
|
||||
return info == 0x04;
|
||||
}
|
||||
|
||||
long getSessionStart() {
|
||||
if (isOkay() && sessionStartTime > 0) {
|
||||
return DexTimeKeeper.fromDexTime(transmitterId, sessionStartTime);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
long getRequestedStart() {
|
||||
if (isOkay() && requestedStartTime > 0) {
|
||||
return DexTimeKeeper.fromDexTime(transmitterId, requestedStartTime);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
long getTransmitterTime() {
|
||||
if (isOkay() && transitterTime > 0) {
|
||||
return DexTimeKeeper.fromDexTime(transmitterId, transitterTime);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
String message() {
|
||||
switch (info) {
|
||||
case 0x01:
|
||||
return "OK";
|
||||
case 0x02:
|
||||
return "Already started";
|
||||
case 0x03:
|
||||
return "Invalid";
|
||||
case 0x04:
|
||||
return "Clock not synchronized or other error"; // probably
|
||||
case 0x05:
|
||||
return "OK G6"; // probably
|
||||
default:
|
||||
return "Unknown code: " + info;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user