add sigrok_period_string(), MAX_NUM_PROBES
This commit is contained in:
parent
5e2ddeb098
commit
2a3f9541a4
|
@ -58,3 +58,42 @@ char *sigrok_samplerate_string(uint64_t samplerate)
|
|||
|
||||
return o;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert a numeric samplerate value to the "natural" string representation
|
||||
* of its period.
|
||||
*
|
||||
* E.g. a value of 3000000 would be converted to "3 µs", 20000 to "50 ms".
|
||||
*
|
||||
* @param frequency The frequency in Hz.
|
||||
* @return A malloc()ed string representation of the frequency value,
|
||||
* or NULL upon errors. The caller is responsible to free() the memory.
|
||||
*/
|
||||
char *sigrok_period_string(uint64_t frequency)
|
||||
{
|
||||
char *o;
|
||||
int r;
|
||||
|
||||
o = malloc(30 + 1); /* Enough for a uint64_t as string + " ms". */
|
||||
if (o == NULL)
|
||||
return NULL;
|
||||
|
||||
if (frequency >= GHZ(1))
|
||||
r = snprintf(o, 30, "%" PRIu64 " ns", frequency / 1000000000);
|
||||
else if (frequency >= MHZ(1))
|
||||
r = snprintf(o, 30, "%" PRIu64 " µs", frequency / 1000000);
|
||||
else if (frequency >= KHZ(1))
|
||||
r = snprintf(o, 30, "%" PRIu64 " ms", frequency / 1000);
|
||||
else
|
||||
r = snprintf(o, 30, "%" PRIu64 " s", frequency);
|
||||
|
||||
if (r < 0) {
|
||||
/* Something went wrong... */
|
||||
free(o);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
7
sigrok.h
7
sigrok.h
|
@ -49,6 +49,11 @@
|
|||
#define SIGROK_ERR_MALLOC -2 /* Malloc/calloc/realloc error */
|
||||
#define SIGROK_ERR_SAMPLERATE -3 /* Incorrect samplerate */
|
||||
|
||||
/* limited by uint64_t */
|
||||
#define MAX_NUM_PROBES 64
|
||||
#define MAX_PROBENAME_LEN 32
|
||||
|
||||
|
||||
/* Handy little macros */
|
||||
#define KHZ(n) ((n) * 1000)
|
||||
#define MHZ(n) ((n) * 1000000)
|
||||
|
@ -153,6 +158,7 @@ int filter_probes(int in_unitsize, int out_unitsize, int *probelist,
|
|||
uint64_t *length_out);
|
||||
|
||||
char *sigrok_samplerate_string(uint64_t samplerate);
|
||||
char *sigrok_period_string(uint64_t frequency);
|
||||
|
||||
/*--- analyzer.c ------------------------------------------------------------*/
|
||||
|
||||
|
@ -210,7 +216,6 @@ struct device {
|
|||
struct datastore *datastore;
|
||||
};
|
||||
|
||||
#define MAX_PROBENAME_LEN 32
|
||||
struct probe {
|
||||
int index;
|
||||
gboolean enabled;
|
||||
|
|
Loading…
Reference in New Issue