view target-utils/libcommon/hexstrings.c @ 751:5dd748850f2b

fc-shell help: batt command: better documentation The semantic meaning of the two bytes carried in the MMI_BATTERY_IND primitive depends on the firmware version. Update the documentation to describe what these two bytes mean in current FC Tourmaline firmware.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Nov 2020 19:30:14 +0000
parents 0da2cf5a999c
children
line wrap: on
line source

/*
 * The decode_hex_digits() function contained in this module
 * will be used by the XRAM and flash loading commands
 * which take SREC-like long hex string arguments.
 */

#include <ctype.h>
#include "types.h"

decode_hex_digits(str, ndigits, valp)
	char *str;
	int ndigits;
	u32 *valp;
{
	u32 accum;
	int i, c;

	accum = 0;
	for (i = 0; i < ndigits; i++) {
		c = *str++;
		if (!isxdigit(c))
			return(-1);
		accum <<= 4;
		if (isdigit(c))
			accum += c - '0';
		else if (islower(c))
			accum += c - 'a' + 10;
		else
			accum += c - 'A' + 10;
	}
	*valp = accum;
	return(0);
}