var FIELDS = [
	'rtsOpen',
	'rtsShorted',
	'rtsDisconnected',
	'heatsinkTempSensorOpen',
	'heatsinkTempSensorShorted',
	'heatsinkTempLimit',
	'inductorTempSensorOpen',
	'inductorTempSensorShorted',
	'inductorTempLimit',
	'currentLimit',
	'currentMeasurementError',
	'batterySenseOutOfRange',
	'batterySenseDisconnected',
	'uncalibrated',
	'tb5v',
	'fp10SupplyOutOfRange',
	'unused',
	'mosfetOpen',
	'arrayCurrentOffset',
	'loadCurrentOffset',
	'p33SupplyOutOfRange',
	'p12SupplyOutOfRange',
	'hightInputVoltageLimit',
	'controllerReset',
	'loadLvd',
	'logTimeout',
	'eepromAccessFailure'
];

var flags = parseInt(value.replace(/\x20/g, ''), 16),
	result = [];

for (var i = 0, f = 1 << 31 >>> 0, l = FIELDS.length; i < l; i++, f >>>= 1) {
	if (flags & f) {
		result.push(FIELDS[i]);
	}
}

return result.length ? result.join('\n') : 'No alarms';