char parseHexField(char c, unsigned char * ptr_val, unsigned char * ptr_count) { if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) { (*ptr_val) = (*ptr_val) << 4; if(c < 'A') { (*ptr_val) += c - '0' ; } else { (*ptr_val) += c - ('A') + 10; } (*ptr_count) = (*ptr_count) + 1 ; return 0; } else if ( ((c == '\n') || (c == '\r')) && ( (*ptr_count) ==2) ) { (*ptr_count) = 0; return 1; } else { (*ptr_count) = 0; return -1; } }