cli: support --continuous option for continuous sampling

This commit is contained in:
Bert Vermeulen 2011-01-10 22:17:52 +01:00
parent 8a839354c1
commit 74b9b43836
2 changed files with 23 additions and 21 deletions

View File

@ -26,26 +26,26 @@
#include <sigrok.h> #include <sigrok.h>
#include "config.h" #include "config.h"
#define USB_VENDOR 0x0925 #define USB_VENDOR 0x0925
#define USB_PRODUCT 0x3881 #define USB_PRODUCT 0x3881
#define USB_VENDOR_NAME "Saleae" #define USB_VENDOR_NAME "Saleae"
#define USB_MODEL_NAME "Logic" #define USB_MODEL_NAME "Logic"
#define USB_MODEL_VERSION "" #define USB_MODEL_VERSION ""
#define USB_INTERFACE 0 #define USB_INTERFACE 0
#define USB_CONFIGURATION 1 #define USB_CONFIGURATION 1
#define NUM_PROBES 8 #define NUM_PROBES 8
#define NUM_TRIGGER_STAGES 4 #define NUM_TRIGGER_STAGES 4
#define TRIGGER_TYPES "01" #define TRIGGER_TYPES "01"
#define FIRMWARE FIRMWARE_DIR "/saleae-logic.fw" #define FIRMWARE FIRMWARE_DIR "/saleae-logic.fw"
/* delay in ms */ /* delay in ms */
#define FIRMWARE_RENUM_DELAY 2000 #define FIRMWARE_RENUM_DELAY 2000
#define NUM_SIMUL_TRANSFERS 10 #define NUM_SIMUL_TRANSFERS 10
#define MAX_EMPTY_TRANSFERS (NUM_SIMUL_TRANSFERS * 2) #define MAX_EMPTY_TRANSFERS (NUM_SIMUL_TRANSFERS * 2)
/* Software trigger implementation: positive values indicate trigger stage. */ /* Software trigger implementation: positive values indicate trigger stage. */
#define TRIGGER_FIRED -1 #define TRIGGER_FIRED -1
/* There is only one model Saleae Logic, and this is what it supports: */ /* There is only one model Saleae Logic, and this is what it supports: */
static int capabilities[] = { static int capabilities[] = {
@ -54,6 +54,7 @@ static int capabilities[] = {
/* These are really implemented in the driver, not the hardware. */ /* These are really implemented in the driver, not the hardware. */
HWCAP_LIMIT_SAMPLES, HWCAP_LIMIT_SAMPLES,
HWCAP_CONTINUOUS,
0, 0,
}; };
@ -654,7 +655,7 @@ void receive_transfer(struct libusb_transfer *transfer)
g_free(cur_buf); g_free(cur_buf);
num_samples += cur_buflen; num_samples += cur_buflen;
if ((unsigned int)num_samples > limit_samples) { if (limit_samples && (unsigned int) num_samples > limit_samples) {
hw_stop_acquisition(-1, user_data); hw_stop_acquisition(-1, user_data);
} }
} else { } else {

View File

@ -211,13 +211,14 @@ extern GSList *devices;
/* Hardware plugin capabilities */ /* Hardware plugin capabilities */
enum { enum {
HWCAP_DUMMY, /* Used to terminate lists */ HWCAP_DUMMY, /* Used to terminate lists */
HWCAP_LOGIC_ANALYZER, HWCAP_LOGIC_ANALYZER,
HWCAP_SAMPLERATE, /* Change samplerate */ HWCAP_SAMPLERATE, /* Change samplerate */
HWCAP_PROBECONFIG, /* Configure probe mask */ HWCAP_PROBECONFIG, /* Configure probe mask */
HWCAP_CAPTURE_RATIO, /* Set pre/post-trigger capture ratio */ HWCAP_CAPTURE_RATIO, /* Set pre/post-trigger capture ratio */
HWCAP_LIMIT_MSEC, /* Set a time limit for sample acquisition */ HWCAP_LIMIT_MSEC, /* Set a time limit for sample acquisition */
HWCAP_LIMIT_SAMPLES, /* Set a limit on number of samples */ HWCAP_LIMIT_SAMPLES, /* Set a limit on number of samples */
HWCAP_CONTINUOUS,
}; };
struct hwcap_option { struct hwcap_option {