sr_voltage_string(): deprecate struct sr_rational
This commit is contained in:
parent
8386096f01
commit
e0e150672a
2
proto.h
2
proto.h
|
@ -122,7 +122,7 @@ SR_API struct sr_output_format **sr_output_list(void);
|
|||
SR_API char *sr_si_string_u64(uint64_t x, const char *unit);
|
||||
SR_API char *sr_samplerate_string(uint64_t samplerate);
|
||||
SR_API char *sr_period_string(uint64_t frequency);
|
||||
SR_API char *sr_voltage_string(struct sr_rational *voltage);
|
||||
SR_API char *sr_voltage_string(uint64_t v_p, uint64_t v_q);
|
||||
SR_API char **sr_parse_triggerstring(const struct sr_dev_inst *sdi,
|
||||
const char *triggerstring);
|
||||
SR_API int sr_parse_sizestring(const char *sizestring, uint64_t *size);
|
||||
|
|
21
strutil.c
21
strutil.c
|
@ -151,19 +151,20 @@ SR_API char *sr_period_string(uint64_t frequency)
|
|||
}
|
||||
|
||||
/**
|
||||
* Convert a numeric frequency value to the "natural" string representation
|
||||
* of its voltage value.
|
||||
* Convert a numeric voltage value to the "natural" string representation
|
||||
* of its voltage value. The voltage is specified as a rational number's
|
||||
* numerator and denominator.
|
||||
*
|
||||
* E.g. a value of 300000 would be converted to "300mV", 2 to "2V".
|
||||
*
|
||||
* @param voltage The voltage represented as a rational number, with the
|
||||
* denominator a divisor of 1V.
|
||||
* @param v_p The voltage numerator.
|
||||
* @param v_q The voltage denominator.
|
||||
*
|
||||
* @return A g_try_malloc()ed string representation of the voltage value,
|
||||
* or NULL upon errors. The caller is responsible to g_free() the
|
||||
* memory.
|
||||
*/
|
||||
SR_API char *sr_voltage_string(struct sr_rational *voltage)
|
||||
SR_API char *sr_voltage_string(uint64_t v_p, uint64_t v_q)
|
||||
{
|
||||
int r;
|
||||
char *o;
|
||||
|
@ -173,12 +174,12 @@ SR_API char *sr_voltage_string(struct sr_rational *voltage)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (voltage->q == 1000)
|
||||
r = snprintf(o, 30, "%" PRIu64 "mV", voltage->p);
|
||||
else if (voltage->q == 1)
|
||||
r = snprintf(o, 30, "%" PRIu64 "V", voltage->p);
|
||||
if (v_q == 1000)
|
||||
r = snprintf(o, 30, "%" PRIu64 "mV", v_p);
|
||||
else if (v_q == 1)
|
||||
r = snprintf(o, 30, "%" PRIu64 "V", v_p);
|
||||
else
|
||||
r = snprintf(o, 30, "%gV", (float)voltage->p / (float)voltage->q);
|
||||
r = snprintf(o, 30, "%gV", (float)v_p / (float)v_q);
|
||||
|
||||
if (r < 0) {
|
||||
/* Something went wrong... */
|
||||
|
|
Loading…
Reference in New Issue