32 package com.neuronrobotics.sdk.common;
110 for(
int i = index; i < len+index; i++) {
113 }
catch(IndexOutOfBoundsException e){
114 throw new IndexOutOfBoundsException(
"Attempting from: "+index+
" to: "+len+
" in: "+
data.
size()+
" data: "+
data);
116 return (
byte)(check&0x000000ff);
221 throw new RuntimeException(
"Packet is in use, be sure to use the factory");
247 System.err.println(
"Method was invalid!! Value="+raw.
getUnsigned(7));
256 if((dataLength != raw.
getBytes(11).length-1) && (dataLength != raw.
getBytes(11).length) ) {
263 if(!CheckCRC(raw,
true) ) {
440 return "Empty Packet";
445 str +=
"\tRaw Packet:\t";
448 str += String.format(
"%02x ", x);
451 str +=
"\tRevision: \t" + (int)
REVISION +
'\n';
452 str +=
"\tMAC address: \t" +
getAddress() +
'\n';
453 str +=
"\tMethod: \t" +
getMethod() +
'\n';
454 str +=
"\tDirection: \t";
455 str +=
isUpstream() ?
"Upstream\n" :
"Downstream\n";
457 str +=
"\n\tData Size: \t" + (int)
data.
size() +
'\n';
458 str +=
"\tCRC: \t\t";
459 str += String.format(
"%02x ",
getCrc());
461 str +=
"\n\tD-CRC: \t\t";
465 str +=
"\n\tRPC: \t\t";
467 str +=
"\n\tData: \t\t";
470 str += String.format(
"%02x ", x);
483 static boolean CheckCRC(
ByteList buffer,
boolean checkData) {
485 byte generated,inPacket;
486 generated =
genCrc(buffer);
487 inPacket =
getCRC(buffer);
488 if(generated != inPacket){
489 Log.
error(
"CRC of packet is: "+generated+
" Expected: "+inPacket);
496 if(generated != inPacket){
497 Log.error(
"Data CRC of packet is: "+generated+
" Expected: "+inPacket);
501 }
catch(Exception ex){
502 if(InterruptedException.class.isInstance(ex))
throw new RuntimeException(ex);
503 ex.printStackTrace();
591 throw new RuntimeException(
"This packet has timed out and the data has been cleared marked="+
isFree());
645 this.isPackedAvailibleForLoading =
isFree;
byte getTransactionUpstream()
static byte getCRC(ByteList data)
void setUpstream(boolean upstream)
void setAddress(MACAddress address)
void validate(BowlerDatagramFactory factory)
boolean isPackedAvailibleForLoading
static final int CRC_INDEX
BowlerDatagram(ByteList data, BowlerDatagramFactory factory)
static final byte REVISION
BowlerDatagram(BowlerDatagramFactory factory)
static byte getDataCrc(ByteList data)
void setDataCrc(byte crc)
void setFree(boolean isFree, BowlerDatagramFactory factory)
static void setUseBowlerV4(boolean useBowlerV4)
static final int MAX_PACKET_SIZE
void setNamespaceResolutionID(byte namespaceResolutionID)
static final int HEADER_SIZE
static boolean useBowlerV4
static byte genDataCrc(ByteList data)
void setMethod(BowlerMethod method)
static boolean isUseBowlerV4()
static byte genCRC(int index, int len, ByteList data)
void setRpc(String opCode)
byte namespaceResolutionID
void onTimeout(String message)
static byte genCrc(ByteList data)
byte getNamespaceResolutionID()
synchronized boolean add(byte data)
int getUnsigned(int index)
static void error(String message)
static void warning(String message)
static boolean isPrinting()
long getAmountOfTimeForTimerToRun()
void initialize(long sleepTime, IthreadedTimoutListener listener)
static BowlerMethod get(byte code)