/** * Write signed/unsigned 32 bit integer value in specific base to the result * @param context * @param val * @param base * @param sign * @return */ static size_t resultUInt32BaseSign(scpi_t * context, uint32_t val, int8_t base, scpi_bool_t sign) { char buffer[32+1]; const char * basePrefix; size_t result = 0; size_t len; len = UInt32ToStrBaseSign(val, buffer, sizeof (buffer), base, sign); basePrefix = getBasePrefix(base); result += writeDelimiter(context); if (basePrefix != NULL) { result += writeData(context, basePrefix, 2); } result += writeData(context, buffer, len); context->output_count++; return result; }
/** * Converts unsigned 32 bit integer value to string in specific base * @param val integer value * @param str converted textual representation * @param len string buffer length * @param base output base * @return number of bytes written to str (without '\0') */ size_t SCPI_UInt32ToStrBase(uint32_t val, char * str, size_t len, int8_t base) { return UInt32ToStrBaseSign(val, str, len, base, FALSE); }
/** * Converts signed 32 bit integer value to string * @param val integer value * @param str converted textual representation * @param len string buffer length * @return number of bytes written to str (without '\0') */ size_t SCPI_Int32ToStr(int32_t val, char * str, size_t len) { return UInt32ToStrBaseSign((uint32_t) val, str, len, 10, TRUE); }