package org.myrobotlab.codec.serial;
import org.myrobotlab.service.interfaces.LoggingSink;
public class HexCodec extends Codec {
String coloumnDelimiter = " ";
String rowDelimiter = "\n";
int byteCount = 0;
int width = 16;
public HexCodec(LoggingSink myService) {
super(myService);
}
@Override
final public String decodeImpl(int data) {
return String.format("%02x%s%s", data & 0xff, coloumnDelimiter, ((byteCount % width == 0) ? rowDelimiter : ""));
}
@Override
public String decode(int[] msgs) {
// TODO Auto-generated method stub
return null;
}
@Override
public int[] encode(String data) {
// TODO Auto-generated method stub
return new int[0];
}
@Override
public String getCodecExt() {
return getKey();
}
@Override
public String getKey() {
return "hex";
}
public byte[] parse(byte[] data, String format) {
// ArrayList<Byte> bytes = new ArrayList<Byte>();
if ("hex".equals(format)) {
// int charCount = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < data.length; ++i) {
byte b = data[i];
if (b == ' ') {
continue;
}
sb.append((char) data[i]);
++i;
sb.append((char) data[i]);
// Integer.parseInt(b.toString());
sb.setLength(0);
}
}
// return bytes.toArray(byte[]);
return data;
}
}