![]() |
libsigrok
0.2.0
sigrok hardware access and backend library
|
Helper functions for handling or converting libsigrok-related strings. More...
Functions | |
char * | sr_si_string_u64 (uint64_t x, const char *unit) |
Convert a numeric value value to its "natural" string representation. More... | |
char * | sr_samplerate_string (uint64_t samplerate) |
Convert a numeric samplerate value to its "natural" string representation. More... | |
char * | sr_period_string (uint64_t frequency) |
Convert a numeric frequency value to the "natural" string representation of its period. More... | |
char * | sr_voltage_string (uint64_t v_p, uint64_t v_q) |
Convert a numeric voltage value to the "natural" string representation of its voltage value. More... | |
char ** | sr_parse_triggerstring (const struct sr_dev_inst *sdi, const char *triggerstring) |
Parse a trigger specification string. More... | |
int | sr_parse_sizestring (const char *sizestring, uint64_t *size) |
Convert a "natural" string representation of a size value to uint64_t. More... | |
uint64_t | sr_parse_timestring (const char *timestring) |
Convert a "natural" string representation of a time value to an uint64_t value in milliseconds. More... | |
gboolean | sr_parse_boolstring (const char *boolstr) |
int | sr_parse_period (const char *periodstr, uint64_t *p, uint64_t *q) |
int | sr_parse_voltage (const char *voltstr, uint64_t *p, uint64_t *q) |
Helper functions for handling or converting libsigrok-related strings.
int sr_parse_period | ( | const char * | periodstr, |
uint64_t * | p, | ||
uint64_t * | q | ||
) |
Definition at line 397 of file strutil.c.
References SR_ERR_ARG, and SR_OK.
int sr_parse_sizestring | ( | const char * | sizestring, |
uint64_t * | size | ||
) |
Convert a "natural" string representation of a size value to uint64_t.
E.g. a value of "3k" or "3 K" would be converted to 3000, a value of "15M" would be converted to 15000000.
Value representations other than decimal (such as hex or octal) are not supported. Only 'k' (kilo), 'm' (mega), 'g' (giga) suffixes are supported. Spaces (but not other whitespace) between value and suffix are allowed.
sizestring | A string containing a (decimal) size value. |
size | Pointer to uint64_t which will contain the string's size value. |
Definition at line 301 of file strutil.c.
References SR_ERR, SR_GHZ, SR_KHZ, SR_MHZ, and SR_OK.
Referenced by sr_session_load().
uint64_t sr_parse_timestring | ( | const char * | timestring | ) |
Convert a "natural" string representation of a time value to an uint64_t value in milliseconds.
E.g. a value of "3s" or "3 s" would be converted to 3000, a value of "15ms" would be converted to 15.
Value representations other than decimal (such as hex or octal) are not supported. Only lower-case "s" and "ms" time suffixes are supported. Spaces (but not other whitespace) between value and suffix are allowed.
timestring | A string containing a (decimal) time value. |
Add support for "m" (minutes) and others.
Add support for picoseconds?
Allow both lower-case and upper-case? If no, document it.
char** sr_parse_triggerstring | ( | const struct sr_dev_inst * | sdi, |
const char * | triggerstring | ||
) |
Parse a trigger specification string.
sdi | The device instance for which the trigger specification is intended. Must not be NULL. Also, sdi->driver and sdi->driver->info_get must not be NULL. |
triggerstring | The string containing the trigger specification for one or more probes of this device. Entries for multiple probes are comma-separated. Triggers are specified in the form key=value, where the key is a probe number (or probe name) and the value is the requested trigger type. Valid trigger types currently include 'r' (rising edge), 'f' (falling edge), 'c' (any pin value change), '0' (low value), or '1' (high value). Example: "1=r,sck=f,miso=0,7=c" |
Definition at line 216 of file strutil.c.
References sr_dev_driver::config_list, sr_dev_inst::driver, sr_probe::enabled, sr_probe::index, sr_probe::name, sr_dev_inst::probes, SR_CONF_TRIGGER_TYPE, sr_err, SR_OK, and sr_probe::trigger.
int sr_parse_voltage | ( | const char * | voltstr, |
uint64_t * | p, | ||
uint64_t * | q | ||
) |
Definition at line 430 of file strutil.c.
References SR_ERR_ARG, and SR_OK.
char* sr_period_string | ( | uint64_t | frequency | ) |
Convert a numeric frequency value to the "natural" string representation of its period.
E.g. a value of 3000000 would be converted to "3 us", 20000 to "50 ms".
frequency | The frequency in Hz. |
char* sr_samplerate_string | ( | uint64_t | samplerate | ) |
Convert a numeric samplerate value to its "natural" string representation.
E.g. a value of 3000000 would be converted to "3 MHz", 20000 to "20 kHz", 31500 would become "31.5 kHz".
samplerate | The samplerate in Hz. |
Definition at line 107 of file strutil.c.
References sr_si_string_u64().
Referenced by sr_session_save().
char* sr_si_string_u64 | ( | uint64_t | x, |
const char * | unit | ||
) |
Convert a numeric value value to its "natural" string representation.
in SI units
E.g. a value of 3000000, with units set to "W", would be converted to "3 MW", 20000 to "20 kW", 31500 would become "31.5 kW".
x | The value to convert. |
unit | The unit to append to the string, or NULL if the string has no units. |
Definition at line 65 of file strutil.c.
References sr_err, SR_GHZ, SR_KHZ, and SR_MHZ.
Referenced by sr_samplerate_string().
char* sr_voltage_string | ( | uint64_t | v_p, |
uint64_t | v_q | ||
) |
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".
v_p | The voltage numerator. |
v_q | The voltage denominator. |
Definition at line 167 of file strutil.c.
References sr_err.