// CHar -> Hex, Used for reading length
unsigned long char_to_hex(const char *str)
{
int strlength = strlen(str);
int i = 0;
unsigned long dst = 0;
for( i = 0; i < strlength; i++ )
{
if(*(str + i) >= '0' && *(str + i) <= '9')
{
if(0 != i )
dst = (dst << 4);
dst += *(str + i) - '0';
}
else if(*(str + i) >= 'a' && *(str + i) <= 'f')
{
if(0 != i )
dst = (dst << 4);
dst += *(str + i) - 'a' + 10;
}
else if(*(str + i) >= 'A' && *(str + i) <= 'F')
{
if(0 != i )
dst = (dst << 4);
dst += *(str + i) - 'A' + 10;
}
}
return dst;
}
// Hex -> Char, Used for gtk_entry_set_text Display
void hex_to_char(unsigned char *dst, unsigned int src)
{
UCHAR temp[10];
int i = 0,j = 0;
memset(temp, 0, sizeof(UCHAR) *10);
while(1)
{
if( 0 == src )
break;
if((src & 0x0f) >= 0 && (src & 0x0f) <= 9)
temp[i++] = (src & 0xf) + '0';
else
temp[i++] = ((src & 0xf) - 10) + 'a';
src = src >> 4;
}
for(j = 0; j < i; j++)
{
*(dst + j) = *(temp + (i-1-j));
}
return;
}
//String -> Char
void string_to_char(const unsigned char *str, unsigned char *dst)
{
int strlength = strlen(str);
unsigned char temp[MAX_LENGTH];
int i, j = 0;
memset(temp, 0, sizeof(unsigned char) * MAX_LENGTH);
for(i = 0; i < strlength; i++)
{
if(*(str + i) >= '0' && *(str + i) <= '9')
{
temp[i] = *(str + i) -'0';
}
else if(*(str + i) >= 'a' && *(str + i) <= 'f')
{
temp[i] = *(str + i) -'a' + 10;
}
else if(*(str + i) >= 'A' && *(str + i) <= 'F')
{
temp[i] = *(str + i) -'A' + 10;
}
}
for(i= 0; i < strlength; i++)
{
dst[j++] = temp[i] * 16 + temp[++i];
}
return;
}
//Char -> String, Used for gtk_entry_set_text display
void char_to_string(unsigned char *str, char *dst, unsigned long mLen)
{
int strlength = mLen;
unsigned char temp[MAX_LENGTH * 3];
int i, j = 0;
memset(temp, 0,MAX_LENGTH * 3);
memset(dst, 0,MAX_LENGTH * 3);
for( i = 0; i < strlength; i++ )
{
temp[j++] = str[i] / 16;
temp[j++] = str[i] % 16;
temp[j++] = ' ';
}
strlength = j - 1;
for( j = 0; j < strlength; j++ )
{
if( temp[j] == 0x20 )
{
dst[j] = temp[j];
continue;
}
if(temp[j] >= 0 && temp[j] <= 9)
dst[j] = temp[j] + '0';
else
dst[j] = temp[j] - 10 + 'a';
}
return;
}