/**
* @author Stefan Kaintoch
* @version $Id: ByteHelper.java 3 2007-10-30 19:40:04Z ramack $
*/
package org.kaintoch.gps.globalsat.dg100;
/**
* @author skaintoch
*
*/
public class ByteHelper
{
/**
*
* @param src
* @param startS
* @param len
* @param dest
* @param startD
* @return
*/
public static int copyByteArr2ByteArr(byte src[], int startS, int len, byte dest[], int startD)
{
for (int ii = 0 ;
ii < len && startD < dest.length && startS < src.length && startD >= 0 && startS >= 0;
++ii, ++startD, ++startS)
{
dest[startD] = src[startS];
}
return startD;
}
/**
*
* @param byt
* @return
*/
public static int byte2IntUnsigned(byte byt)
{
return ((byt >= 0) ? byt : 256 + byt);
}
/**
*
* @param nibble
*/
private static char nibble2Char(int nibble)
{
char chr = '*';
nibble = nibble & 0xF;
switch (nibble)
{
case 0: chr = '0'; break;
case 1: chr = '1'; break;
case 2: chr = '2'; break;
case 3: chr = '3'; break;
case 4: chr = '4'; break;
case 5: chr = '5'; break;
case 6: chr = '6'; break;
case 7: chr = '7'; break;
case 8: chr = '8'; break;
case 9: chr = '9'; break;
case 10: chr = 'A'; break;
case 11: chr = 'B'; break;
case 12: chr = 'C'; break;
case 13: chr = 'D'; break;
case 14: chr = 'E'; break;
case 15: chr = 'F'; break;
}
return chr;
}
/**
*
* @return
*/
public static String byte2StringUnsigned(byte byt)
{
StringBuffer buf = new StringBuffer(4);
int bb = byte2IntUnsigned(byt);
//buf.append("0x");
buf.append(nibble2Char(bb / 16));
buf.append(nibble2Char(bb % 16));
return buf.toString();
}
/**
*
* @param byt
*/
public static String byteArray2String(byte byt[])
{
return byteArray2String(byt, byt.length);
}
/**
*
* @param byt
* @param cnt
*/
public static String byteArray2String(byte byt[], int cnt)
{
StringBuffer buf = new StringBuffer(cnt * 5);
for (int ii = 0 ; ii < cnt && ii < byt.length ; ++ii)
{
if (ii > 0) {buf.append(" ");}
buf.append(byte2StringUnsigned(byt[ii]));
}
return buf.toString();
}
}