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;
|
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_MALLOC -2 /* Malloc/calloc/realloc error */
|
||||||
#define SIGROK_ERR_SAMPLERATE -3 /* Incorrect samplerate */
|
#define SIGROK_ERR_SAMPLERATE -3 /* Incorrect samplerate */
|
||||||
|
|
||||||
|
/* limited by uint64_t */
|
||||||
|
#define MAX_NUM_PROBES 64
|
||||||
|
#define MAX_PROBENAME_LEN 32
|
||||||
|
|
||||||
|
|
||||||
/* Handy little macros */
|
/* Handy little macros */
|
||||||
#define KHZ(n) ((n) * 1000)
|
#define KHZ(n) ((n) * 1000)
|
||||||
#define MHZ(n) ((n) * 1000000)
|
#define MHZ(n) ((n) * 1000000)
|
||||||
|
@ -153,6 +158,7 @@ int filter_probes(int in_unitsize, int out_unitsize, int *probelist,
|
||||||
uint64_t *length_out);
|
uint64_t *length_out);
|
||||||
|
|
||||||
char *sigrok_samplerate_string(uint64_t samplerate);
|
char *sigrok_samplerate_string(uint64_t samplerate);
|
||||||
|
char *sigrok_period_string(uint64_t frequency);
|
||||||
|
|
||||||
/*--- analyzer.c ------------------------------------------------------------*/
|
/*--- analyzer.c ------------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -210,7 +216,6 @@ struct device {
|
||||||
struct datastore *datastore;
|
struct datastore *datastore;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_PROBENAME_LEN 32
|
|
||||||
struct probe {
|
struct probe {
|
||||||
int index;
|
int index;
|
||||||
gboolean enabled;
|
gboolean enabled;
|
||||||
|
|
Loading…
Reference in New Issue