#include "libsigrok.h"
#include "libsigrok-internal.h"
+/**
+ * @file
+ *
+ * Helper functions for handling or converting libsigrok-related strings.
+ */
+
+/**
+ * @defgroup grp_strutil String utilities
+ *
+ * Helper functions for handling or converting libsigrok-related strings.
+ *
+ * @{
+ */
+
/**
* Convert a numeric value value to its "natural" string representation.
* in SI units
/**
* Parse a trigger specification string.
*
- * @param dev The device for which the trigger specification is intended.
+ * @param 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.
* @param 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,
tokens = g_strsplit(triggerstring, ",", max_probes);
for (i = 0; tokens[i]; i++) {
- if (tokens[i][0] < '0' || tokens[i][0] > '9') {
- /* Named probe */
- probenum = 0;
- for (l = sdi->probes; l; l = l->next) {
- probe = (struct sr_probe *)l->data;
- if (probe->enabled
- && !strncmp(probe->name, tokens[i],
- strlen(probe->name))) {
- probenum = probe->index;
- break;
- }
+ probenum = -1;
+ for (l = sdi->probes; l; l = l->next) {
+ probe = (struct sr_probe *)l->data;
+ if (probe->enabled
+ && !strncmp(probe->name, tokens[i],
+ strlen(probe->name))) {
+ probenum = probe->index;
+ break;
}
- } else {
- probenum = strtol(tokens[i], NULL, 10);
}
if (probenum < 0 || probenum >= max_probes) {
- sr_err("strutil: Invalid probe (%d).", probenum);
+ sr_err("strutil: Invalid probe.");
error = TRUE;
break;
}
* @param timestring A string containing a (decimal) time value.
* @return The string's time value as uint64_t, in milliseconds.
*
- * TODO: Error handling.
- * TODO: Add support for "m" (minutes) and others.
- * TODO: picoseconds?
- * TODO: Allow both lower-case and upper-case.
+ * @todo Add support for "m" (minutes) and others.
+ * @todo Add support for picoseconds?
+ * @todo Allow both lower-case and upper-case? If no, document it.
*/
SR_API uint64_t sr_parse_timestring(const char *timestring)
{
uint64_t time_msec;
char *s;
+ /* TODO: Error handling, logging. */
+
time_msec = strtoull(timestring, &s, 10);
if (time_msec == 0 && s == timestring)
return 0;
return SR_OK;
}
-
+/** @} */