diff --git a/DSView/pv/appcontrol.cpp b/DSView/pv/appcontrol.cpp index de318ee1..cd9c4d69 100644 --- a/DSView/pv/appcontrol.cpp +++ b/DSView/pv/appcontrol.cpp @@ -21,8 +21,8 @@ #include "appcontrol.h" -#include "libsigrok.h" -#include "libsigrokdecode.h" +#include +#include #include #include #include diff --git a/DSView/pv/data/analogsnapshot.h b/DSView/pv/data/analogsnapshot.h index 5f3cf246..76a3d17b 100644 --- a/DSView/pv/data/analogsnapshot.h +++ b/DSView/pv/data/analogsnapshot.h @@ -24,8 +24,7 @@ #ifndef DSVIEW_PV_DATA_ANALOGSNAPSHOT_H #define DSVIEW_PV_DATA_ANALOGSNAPSHOT_H -#include "libsigrok.h" - +#include #include "snapshot.h" #include diff --git a/DSView/pv/data/decode/annotation.cpp b/DSView/pv/data/decode/annotation.cpp index 5fc0c606..f26a8bb2 100644 --- a/DSView/pv/data/decode/annotation.cpp +++ b/DSView/pv/data/decode/annotation.cpp @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" +#include #include #include diff --git a/DSView/pv/data/decode/annotationrestable.cpp b/DSView/pv/data/decode/annotationrestable.cpp index 6a863f63..ee382d70 100644 --- a/DSView/pv/data/decode/annotationrestable.cpp +++ b/DSView/pv/data/decode/annotationrestable.cpp @@ -212,8 +212,7 @@ const char* AnnotationResTable::format_to_string(const char *hex_str, int fmt) sprintf(g_number_tmp_64, "%c", (char)lv); return g_number_tmp_64; } - } - char * const wr_buf = g_number_tmp_64; + } g_number_tmp_64[0] = '['; strcpy(g_number_tmp_64 + 1, data); g_number_tmp_64[len+1] = ']'; diff --git a/DSView/pv/data/decode/decoder.cpp b/DSView/pv/data/decode/decoder.cpp index 0abbf846..5692ea18 100644 --- a/DSView/pv/data/decode/decoder.cpp +++ b/DSView/pv/data/decode/decoder.cpp @@ -20,8 +20,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" - +#include #include "decoder.h" #include diff --git a/DSView/pv/data/decode/row.cpp b/DSView/pv/data/decode/row.cpp index 3f0d3f5a..e809df82 100644 --- a/DSView/pv/data/decode/row.cpp +++ b/DSView/pv/data/decode/row.cpp @@ -21,7 +21,7 @@ #include "row.h" -#include "libsigrokdecode.h" +#include #include namespace pv { diff --git a/DSView/pv/data/decodermodel.cpp b/DSView/pv/data/decodermodel.cpp index 26a6bef2..af62d7b9 100644 --- a/DSView/pv/data/decodermodel.cpp +++ b/DSView/pv/data/decodermodel.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" +#include #include "decode/annotation.h" #include "decode/rowdata.h" diff --git a/DSView/pv/data/decoderstack.h b/DSView/pv/data/decoderstack.h index bbee2ba7..8276c59c 100644 --- a/DSView/pv/data/decoderstack.h +++ b/DSView/pv/data/decoderstack.h @@ -23,7 +23,7 @@ #ifndef DSVIEW_PV_DATA_DECODERSTACK_H #define DSVIEW_PV_DATA_DECODERSTACK_H -#include "libsigrokdecode.h" +#include #include #include #include diff --git a/DSView/pv/data/dsosnapshot.h b/DSView/pv/data/dsosnapshot.h index 6b89d88e..fb9b8fff 100644 --- a/DSView/pv/data/dsosnapshot.h +++ b/DSView/pv/data/dsosnapshot.h @@ -27,7 +27,7 @@ #include #include -#include "libsigrok.h" +#include #include "snapshot.h" namespace DsoSnapshotTest { diff --git a/DSView/pv/data/logicsnapshot.h b/DSView/pv/data/logicsnapshot.h index 5860427e..53aeebf7 100644 --- a/DSView/pv/data/logicsnapshot.h +++ b/DSView/pv/data/logicsnapshot.h @@ -24,7 +24,7 @@ #ifndef DSVIEW_PV_DATA_LOGICSNAPSHOT_H #define DSVIEW_PV_DATA_LOGICSNAPSHOT_H -#include "libsigrok.h" +#include #include "snapshot.h" #include #include diff --git a/DSView/pv/device/devinst.h b/DSView/pv/device/devinst.h index c0f235a0..9597eea4 100644 --- a/DSView/pv/device/devinst.h +++ b/DSView/pv/device/devinst.h @@ -23,12 +23,10 @@ #define DSVIEW_PV_DEVICE_DEVINST_H #include - #include #include #include - -#include "libsigrok.h" +#include struct sr_dev_inst; struct sr_channel; diff --git a/DSView/pv/dialogs/decoderoptionsdlg.cpp b/DSView/pv/dialogs/decoderoptionsdlg.cpp index 32987362..9f5571e4 100644 --- a/DSView/pv/dialogs/decoderoptionsdlg.cpp +++ b/DSView/pv/dialogs/decoderoptionsdlg.cpp @@ -20,7 +20,7 @@ */ #include "decoderoptionsdlg.h" -#include "libsigrokdecode.h" +#include #include #include #include diff --git a/DSView/pv/dialogs/deviceoptions.h b/DSView/pv/dialogs/deviceoptions.h index 88ccf0ee..38eadfe1 100644 --- a/DSView/pv/dialogs/deviceoptions.h +++ b/DSView/pv/dialogs/deviceoptions.h @@ -24,6 +24,7 @@ #ifndef DSVIEW_PV_DEVICEOPTIONS_H #define DSVIEW_PV_DEVICEOPTIONS_H +#include #include #include #include @@ -36,9 +37,7 @@ #include #include #include -#include - -#include "libsigrok.h" +#include #include "../device/devinst.h" #include "../prop/binding/deviceoptions.h" #include "../prop/binding/probeoptions.h" diff --git a/DSView/pv/dock/protocoldock.h b/DSView/pv/dock/protocoldock.h index c29bae28..383543e3 100644 --- a/DSView/pv/dock/protocoldock.h +++ b/DSView/pv/dock/protocoldock.h @@ -23,7 +23,7 @@ #ifndef DSVIEW_PV_PROTOCOLDOCK_H #define DSVIEW_PV_PROTOCOLDOCK_H -#include "libsigrokdecode.h" +#include #include #include diff --git a/DSView/pv/dock/triggerdock.cpp b/DSView/pv/dock/triggerdock.cpp index d2cc4c24..bca33960 100644 --- a/DSView/pv/dock/triggerdock.cpp +++ b/DSView/pv/dock/triggerdock.cpp @@ -34,8 +34,7 @@ #include #include #include - -#include "libsigrok.h" +#include namespace pv { namespace dock { diff --git a/DSView/pv/prop/binding/decoderoptions.cpp b/DSView/pv/prop/binding/decoderoptions.cpp index 1ca3d80a..222e34ef 100644 --- a/DSView/pv/prop/binding/decoderoptions.cpp +++ b/DSView/pv/prop/binding/decoderoptions.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" +#include #include "decoderoptions.h" #include diff --git a/DSView/pv/prop/binding/deviceoptions.h b/DSView/pv/prop/binding/deviceoptions.h index 24909e98..5481ba0c 100644 --- a/DSView/pv/prop/binding/deviceoptions.h +++ b/DSView/pv/prop/binding/deviceoptions.h @@ -28,8 +28,7 @@ #include #include - -#include "libsigrok.h" +#include #include "binding.h" namespace pv { diff --git a/DSView/pv/prop/binding/probeoptions.h b/DSView/pv/prop/binding/probeoptions.h index b8c08938..bfedad72 100644 --- a/DSView/pv/prop/binding/probeoptions.h +++ b/DSView/pv/prop/binding/probeoptions.h @@ -27,8 +27,7 @@ #include #include - -#include "libsigrok.h" +#include #include "binding.h" namespace pv { diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index 35d65f2f..3102ea5f 100644 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -21,7 +21,7 @@ */ -#include "libsigrokdecode.h" +#include #include "sigsession.h" #include "mainwindow.h" diff --git a/DSView/pv/sigsession.h b/DSView/pv/sigsession.h index 37e9d2c7..1c6f047b 100644 --- a/DSView/pv/sigsession.h +++ b/DSView/pv/sigsession.h @@ -36,7 +36,7 @@ #include "data/mathstack.h" #include "interface/icallbacks.h" #include "dstimer.h" -#include "libsigrok.h" +#include struct srd_decoder; diff --git a/DSView/pv/storesession.cpp b/DSView/pv/storesession.cpp index 1bfff9f2..2c5caea0 100644 --- a/DSView/pv/storesession.cpp +++ b/DSView/pv/storesession.cpp @@ -55,7 +55,7 @@ #include #endif -#include "libsigrokdecode.h" +#include #include "config/appconfig.h" #include "dsvdef.h" #include "utility/encoding.h" diff --git a/DSView/pv/storesession.h b/DSView/pv/storesession.h index 07f1ffd3..58892322 100644 --- a/DSView/pv/storesession.h +++ b/DSView/pv/storesession.h @@ -27,7 +27,7 @@ #include #include #include -#include "libsigrok.h" +#include #include "interface/icallbacks.h" diff --git a/DSView/pv/toolbars/logobar.h b/DSView/pv/toolbars/logobar.h index 2ec47acc..8a244b4b 100644 --- a/DSView/pv/toolbars/logobar.h +++ b/DSView/pv/toolbars/logobar.h @@ -27,7 +27,7 @@ #include #include #include -#include "libsigrok.h" +#include #include "../sigsession.h" #include "../interface/uicallback.h" diff --git a/DSView/pv/view/decodetrace.cpp b/DSView/pv/view/decodetrace.cpp index 5fe3170b..40ec86b4 100644 --- a/DSView/pv/view/decodetrace.cpp +++ b/DSView/pv/view/decodetrace.cpp @@ -20,10 +20,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" - -#include "../dsvdef.h" - +#include +#include "../dsvdef.h" #include #include #include diff --git a/DSView/pv/view/devmode.h b/DSView/pv/view/devmode.h index 6159ce7b..734afa9f 100644 --- a/DSView/pv/view/devmode.h +++ b/DSView/pv/view/devmode.h @@ -34,7 +34,7 @@ #include #include -#include "libsigrok.h" +#include namespace pv { diff --git a/DSView/pv/view/logicsignal.cpp b/DSView/pv/view/logicsignal.cpp index 1d90f23b..e7853d01 100644 --- a/DSView/pv/view/logicsignal.cpp +++ b/DSView/pv/view/logicsignal.cpp @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" +#include #include #include "logicsignal.h" #include "view.h" diff --git a/DSView/pv/view/signal.h b/DSView/pv/view/signal.h index 75f2b935..3eb1ff33 100644 --- a/DSView/pv/view/signal.h +++ b/DSView/pv/view/signal.h @@ -34,7 +34,7 @@ #include #include -#include "libsigrok.h" +#include #include "trace.h" namespace pv { diff --git a/DSView/pv/view/viewstatus.h b/DSView/pv/view/viewstatus.h index 50426621..1306e06b 100644 --- a/DSView/pv/view/viewstatus.h +++ b/DSView/pv/view/viewstatus.h @@ -26,9 +26,8 @@ #include #include #include -#include - -#include "libsigrok.h" +#include +#include namespace pv { diff --git a/DSView/pv/widgets/decodergroupbox.cpp b/DSView/pv/widgets/decodergroupbox.cpp index b25af709..b68ac6f9 100644 --- a/DSView/pv/widgets/decodergroupbox.cpp +++ b/DSView/pv/widgets/decodergroupbox.cpp @@ -19,8 +19,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" +#include #include "decodergroupbox.h" #include "../data/decoderstack.h" #include "../data/decode/decoder.h" diff --git a/DSView/pv/widgets/decodermenu.cpp b/DSView/pv/widgets/decodermenu.cpp index 4f750859..0072f788 100644 --- a/DSView/pv/widgets/decodermenu.cpp +++ b/DSView/pv/widgets/decodermenu.cpp @@ -19,8 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrokdecode.h" - +#include #include "decodermenu.h" #include diff --git a/lang/cn/dsl.txt b/lang/cn/dsl.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lang/cn/dsl.txt @@ -0,0 +1 @@ + diff --git a/libsigrok4DSL/backend.c b/libsigrok4DSL/backend.c index d892d157..9a03c0ed 100644 --- a/libsigrok4DSL/backend.c +++ b/libsigrok4DSL/backend.c @@ -17,8 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -#include "libsigrok.h" + #include "libsigrok-internal.h" #include #include "config.h" /* Needed for HAVE_LIBUSB_1_0 and others. */ @@ -85,35 +84,7 @@ * * Example for a minimal program using libsigrok: * - * @code{.c} - * #include - * #include - * - * int main(int argc, char **argv) - * { - * int ret; - * struct sr_context *sr_ctx; - * - * if ((ret = sr_init(&sr_ctx)) != SR_OK) { - * printf("Error initializing libsigrok (%s): %s.", - * sr_strerror_name(ret), sr_strerror(ret)); - * return 1; - * } - * - * // Use libsigrok functions here... - * - * if ((ret = sr_exit(sr_ctx)) != SR_OK) { - * printf("Error shutting down libsigrok (%s): %s.", - * sr_strerror_name(ret), sr_strerror(ret)); - * return 1; - * } - * - * return 0; - * } - * @endcode - * - * @{ - */ + /** * Sanity-check all libsigrok drivers. @@ -365,14 +336,12 @@ SR_API int sr_init(struct sr_context **ctx) context->hotplug_tv.tv_sec = 0; context->hotplug_tv.tv_usec = 0; -#ifdef HAVE_LIBUSB_1_0 ret = libusb_init(&context->libusb_ctx); if (LIBUSB_SUCCESS != ret) { sr_err("libusb_init() returned %s.\n", libusb_error_name(ret)); ret = SR_ERR; goto done; } -#endif *ctx = context; context = NULL; @@ -402,10 +371,8 @@ SR_API int sr_exit(struct sr_context *ctx) sr_hw_cleanup_all(); -#ifdef HAVE_LIBUSB_1_0 libusb_exit(ctx->libusb_ctx); -#endif - + g_free(ctx); sr_log_uninit(); //try uninit log diff --git a/libsigrok4DSL/dsdevice.c b/libsigrok4DSL/dsdevice.c index 654410dd..b29dd9e5 100644 --- a/libsigrok4DSL/dsdevice.c +++ b/libsigrok4DSL/dsdevice.c @@ -17,7 +17,6 @@ * along with this program. If not, see . */ -#include "libsigrok.h" #include "libsigrok-internal.h" #include #include @@ -239,8 +238,6 @@ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi) g_free(sdi); } -#ifdef HAVE_LIBUSB_1_0 - /** @private */ SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, uint8_t address, struct libusb_device_handle *hdl) @@ -267,8 +264,6 @@ SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb) /* Nothing to do for this device instance type. */ } -#endif - /** * @private * diff --git a/libsigrok4DSL/hardware/DSL/command.c b/libsigrok4DSL/hardware/DSL/command.c index d87de0eb..46cef034 100644 --- a/libsigrok4DSL/hardware/DSL/command.c +++ b/libsigrok4DSL/hardware/DSL/command.c @@ -17,9 +17,8 @@ * along with this program. If not, see . */ -#include "../../libsigrok.h" -#include "../../libsigrok-internal.h" +#include "../../libsigrok-internal.h" #include "command.h" #include "dsl.h" #include diff --git a/libsigrok4DSL/hardware/DSL/command.h b/libsigrok4DSL/hardware/DSL/command.h index a5647638..53eef7b6 100644 --- a/libsigrok4DSL/hardware/DSL/command.h +++ b/libsigrok4DSL/hardware/DSL/command.h @@ -20,8 +20,7 @@ #ifndef LIBDSL_HARDWARE_COMMAND_H #define LIBDSL_HARDWARE_COMMAND_H -#include -#include "../../libsigrok.h" +#include #include "../../libsigrok-internal.h" /* Protocol commands */ diff --git a/libsigrok4DSL/hardware/DSL/dscope.c b/libsigrok4DSL/hardware/DSL/dscope.c index 40b184dc..beaa1f35 100644 --- a/libsigrok4DSL/hardware/DSL/dscope.c +++ b/libsigrok4DSL/hardware/DSL/dscope.c @@ -18,9 +18,8 @@ * along with this program. If not, see . */ -#include "../../libsigrok.h" -#include "../../libsigrok-internal.h" +#include "../../libsigrok-internal.h" #include "dsl.h" #include "command.h" #include "../../log.h" diff --git a/libsigrok4DSL/hardware/DSL/dsl.c b/libsigrok4DSL/hardware/DSL/dsl.c index f1090900..abbe1e83 100644 --- a/libsigrok4DSL/hardware/DSL/dsl.c +++ b/libsigrok4DSL/hardware/DSL/dsl.c @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -#include "../../libsigrok.h" + #include "../../libsigrok-internal.h" #include "command.h" #include "dsl.h" @@ -27,6 +27,9 @@ #include #include +#undef LOG_PREFIX +#define LOG_PREFIX "DSL Hardware: " + extern struct ds_trigger *trigger; static const int32_t probeOptions[] = { @@ -76,6 +79,18 @@ static struct sr_dev_mode mode_list[] = { {DSO, "Oscilloscope", "示波器", "osc", "osc.svg"}, }; +static const gboolean default_ms_en[] = { + FALSE, /* DSO_MS_BEGIN */ + TRUE, /* DSO_MS_FREQ */ + FALSE, /* DSO_MS_PERD */ + TRUE, /* DSO_MS_VMAX */ + TRUE, /* DSO_MS_VMIN */ + FALSE, /* DSO_MS_VRMS */ + FALSE, /* DSO_MS_VMEA */ + FALSE, /* DSO_MS_VP2P */ +}; + + SR_PRIV void dsl_probe_init(struct sr_dev_inst *sdi) { unsigned int i, j; diff --git a/libsigrok4DSL/hardware/DSL/dsl.h b/libsigrok4DSL/hardware/DSL/dsl.h index 89e2663c..52040db3 100644 --- a/libsigrok4DSL/hardware/DSL/dsl.h +++ b/libsigrok4DSL/hardware/DSL/dsl.h @@ -21,8 +21,7 @@ #ifndef LIBDSL_HARDWARE_DSL_H #define LIBDSL_HARDWARE_DSL_H -#include -#include "../../libsigrok.h" +#include #include "../../libsigrok-internal.h" #include "command.h" @@ -36,15 +35,7 @@ #include #include -#undef min -#define min(a,b) ((a)<(b)?(a):(b)) -#undef max -#define max(a,b) ((a)>(b)?(a):(b)) - -#undef LOG_PREFIX -#define LOG_PREFIX "DSL Hardware: " - - + #define USB_INTERFACE 0 #define USB_CONFIGURATION 1 #define NUM_TRIGGER_STAGES 16 @@ -1052,16 +1043,7 @@ static const struct DSL_profile supported_DSCope[] = { { 0, 0, LIBUSB_SPEED_UNKNOWN, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} }; -static const gboolean default_ms_en[] = { - FALSE, /* DSO_MS_BEGIN */ - TRUE, /* DSO_MS_FREQ */ - FALSE, /* DSO_MS_PERD */ - TRUE, /* DSO_MS_VMAX */ - TRUE, /* DSO_MS_VMIN */ - FALSE, /* DSO_MS_VRMS */ - FALSE, /* DSO_MS_VMEA */ - FALSE, /* DSO_MS_VP2P */ -}; + enum { DSL_ERROR = -1, diff --git a/libsigrok4DSL/hardware/DSL/dslogic.c b/libsigrok4DSL/hardware/DSL/dslogic.c index b2955fca..70a30df3 100644 --- a/libsigrok4DSL/hardware/DSL/dslogic.c +++ b/libsigrok4DSL/hardware/DSL/dslogic.c @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -#include "../../libsigrok.h" + #include "../../libsigrok-internal.h" #include "dsl.h" @@ -28,6 +28,14 @@ #undef LOG_PREFIX #define LOG_PREFIX "dslogic: " +static const char *maxHeights[] = { + "1X", + "2X", + "3X", + "4X", + "5X", +}; + enum { /** Buffer mode */ OP_BUFFER = 0, @@ -87,14 +95,6 @@ static const char *filters[] = { "1 Sample Clock", }; -static const char *maxHeights[] = { - "1X", - "2X", - "3X", - "4X", - "5X", -}; - static const int32_t hwoptions[] = { SR_CONF_OPERATION_MODE, SR_CONF_BUFFER_OPTIONS, diff --git a/libsigrok4DSL/hardware/common/ezusb.c b/libsigrok4DSL/hardware/common/ezusb.c index 1e90f0fa..49a31d0f 100644 --- a/libsigrok4DSL/hardware/common/ezusb.c +++ b/libsigrok4DSL/hardware/common/ezusb.c @@ -20,7 +20,7 @@ /* * Helper functions for the Cypress EZ-USB / FX2 series chips. */ -#include "../../libsigrok.h" + #include "../../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/hardware/common/usb.c b/libsigrok4DSL/hardware/common/usb.c index f85bf7b1..d24b67ed 100644 --- a/libsigrok4DSL/hardware/common/usb.c +++ b/libsigrok4DSL/hardware/common/usb.c @@ -17,7 +17,6 @@ * along with this program. If not, see . */ -#include "../../libsigrok.h" #include "../../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/hardware/demo/demo.c b/libsigrok4DSL/hardware/demo/demo.c index 24e40c64..ed66850d 100644 --- a/libsigrok4DSL/hardware/demo/demo.c +++ b/libsigrok4DSL/hardware/demo/demo.c @@ -21,6 +21,22 @@ */ #include "demo.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#ifdef _WIN32 +#include +#include +#define pipe(fds) _pipe(fds, 4096, _O_BINARY) +#endif + #include "../../log.h" /* Message logging helpers with subsystem-specific prefix string. */ @@ -68,6 +84,97 @@ static const uint8_t probeCoupling[] = { SR_AC_COUPLING, }; +static const char *maxHeights[] = { + "1X", + "2X", + "3X", + "4X", + "5X", +}; + +/* We name the probes 0-7 on our demo driver. */ +static const char *probe_names[] = { + "0", "1", "2", "3", + "4", "5", "6", "7", + "8", "9", "10", "11", + "12", "13", "14", "15", + NULL, +}; + +static const char *probeMapUnits[] = { + "V", + "A", + "°C", + "°F", + "g", + "m", + "m/s", +}; + +static const gboolean default_ms_en[] = { + FALSE, /* DSO_MS_BEGIN */ + TRUE, /* DSO_MS_FREQ */ + FALSE, /* DSO_MS_PERD */ + TRUE, /* DSO_MS_VMAX */ + TRUE, /* DSO_MS_VMIN */ + FALSE, /* DSO_MS_VRMS */ + FALSE, /* DSO_MS_VMEA */ + FALSE, /* DSO_MS_VP2P */ +}; + +static struct sr_dev_mode mode_list[] = { + {LOGIC, "Logic Analyzer", "逻辑分析仪", "la", "la.svg"}, + {ANALOG, "Data Acquisition", "数据记录仪", "daq", "daq.svg"}, + {DSO, "Oscilloscope", "示波器", "osc", "osc.svg"}, +}; + +/* hardware Capabilities */ +#define CAPS_MODE_LOGIC (1 << 0) +#define CAPS_MODE_ANALOG (1 << 1) +#define CAPS_MODE_DSO (1 << 2) + +#define CAPS_FEATURE_NONE 0 +// zero calibration ability +#define CAPS_FEATURE_ZERO (1 << 4) +/* end */ + +static const struct DEMO_profile supported_Demo[] = { + /* + * Demo + */ + {"DreamSourceLab", "Demo Device", NULL, + {CAPS_MODE_LOGIC | CAPS_MODE_ANALOG | CAPS_MODE_DSO, + CAPS_FEATURE_NONE, + (1 << DEMO_LOGIC100x16) | + (1 << DEMO_ANALOG10x2) | + (1 << DEMO_DSO200x2), + SR_Mn(100), + SR_Kn(20), + 0, + vdivs10to2000, + 0, + DEMO_LOGIC100x16, + PATTERN_SINE, + SR_NS(500)} + }, + + { 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} +}; + +static const struct DEMO_channels channel_modes[] = { + // LA Stream + {DEMO_LOGIC100x16, LOGIC, SR_CHANNEL_LOGIC, 16, 1, SR_MHZ(1), SR_Mn(1), + SR_KHZ(10), SR_MHZ(100), "Use 16 Channels (Max 20MHz)"}, + + // DAQ + {DEMO_ANALOG10x2, ANALOG, SR_CHANNEL_ANALOG, 2, 8, SR_MHZ(1), SR_Mn(1), + SR_HZ(10), SR_MHZ(10), "Use Channels 0~1 (Max 10MHz)"}, + + // OSC + {DEMO_DSO200x2, DSO, SR_CHANNEL_DSO, 2, 8, SR_MHZ(100), SR_Kn(10), + SR_HZ(100), SR_MHZ(200), "Use Channels 0~1 (Max 200MHz)"} +}; + /* Private, per-device-instance driver context. */ /* TODO: struct context as with the other drivers. */ diff --git a/libsigrok4DSL/hardware/demo/demo.h b/libsigrok4DSL/hardware/demo/demo.h index 8c472012..bcebe709 100644 --- a/libsigrok4DSL/hardware/demo/demo.h +++ b/libsigrok4DSL/hardware/demo/demo.h @@ -22,47 +22,8 @@ #define LIBDSL_HARDWARE_DEMO_H #include -#include "../../libsigrok.h" #include "../../libsigrok-internal.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#ifdef _WIN32 -#include -#include -#define pipe(fds) _pipe(fds, 4096, _O_BINARY) -#endif - -#undef min -#define min(a,b) ((a)<(b)?(a):(b)) -#undef max -#define max(a,b) ((a)>(b)?(a):(b)) - -/* hardware Capabilities */ -#define CAPS_MODE_LOGIC (1 << 0) -#define CAPS_MODE_ANALOG (1 << 1) -#define CAPS_MODE_DSO (1 << 2) - -#define CAPS_FEATURE_NONE 0 -// zero calibration ability -#define CAPS_FEATURE_ZERO (1 << 4) -/* end */ - -static struct sr_dev_mode mode_list[] = { - {LOGIC, "Logic Analyzer", "逻辑分析仪", "la", "la.svg"}, - {ANALOG, "Data Acquisition", "数据记录仪", "daq", "daq.svg"}, - {DSO, "Oscilloscope", "示波器", "osc", "osc.svg"}, -}; - + /* Supported patterns which we can generate */ enum DEMO_PATTERN { PATTERN_SINE = 0, @@ -135,43 +96,6 @@ struct DEMO_channels { const char *descr; }; -static const struct DEMO_channels channel_modes[] = { - // LA Stream - {DEMO_LOGIC100x16, LOGIC, SR_CHANNEL_LOGIC, 16, 1, SR_MHZ(1), SR_Mn(1), - SR_KHZ(10), SR_MHZ(100), "Use 16 Channels (Max 20MHz)"}, - - // DAQ - {DEMO_ANALOG10x2, ANALOG, SR_CHANNEL_ANALOG, 2, 8, SR_MHZ(1), SR_Mn(1), - SR_HZ(10), SR_MHZ(10), "Use Channels 0~1 (Max 10MHz)"}, - - // OSC - {DEMO_DSO200x2, DSO, SR_CHANNEL_DSO, 2, 8, SR_MHZ(100), SR_Kn(10), - SR_HZ(100), SR_MHZ(200), "Use Channels 0~1 (Max 200MHz)"} -}; - -static const struct DEMO_profile supported_Demo[] = { - /* - * Demo - */ - {"DreamSourceLab", "Demo Device", NULL, - {CAPS_MODE_LOGIC | CAPS_MODE_ANALOG | CAPS_MODE_DSO, - CAPS_FEATURE_NONE, - (1 << DEMO_LOGIC100x16) | - (1 << DEMO_ANALOG10x2) | - (1 << DEMO_DSO200x2), - SR_Mn(100), - SR_Kn(20), - 0, - vdivs10to2000, - 0, - DEMO_LOGIC100x16, - PATTERN_SINE, - SR_NS(500)} - }, - - { 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} -}; - struct demo_context { const struct DEMO_profile *profile; @@ -246,43 +170,7 @@ static const uint64_t samplerates[] = { SR_GHZ(10), }; -static const char *probeMapUnits[] = { - "V", - "A", - "°C", - "°F", - "g", - "m", - "m/s", -}; -/* We name the probes 0-7 on our demo driver. */ -static const char *probe_names[] = { - "0", "1", "2", "3", - "4", "5", "6", "7", - "8", "9", "10", "11", - "12", "13", "14", "15", - NULL, -}; - -static const gboolean default_ms_en[] = { - FALSE, /* DSO_MS_BEGIN */ - TRUE, /* DSO_MS_FREQ */ - FALSE, /* DSO_MS_PERD */ - TRUE, /* DSO_MS_VMAX */ - TRUE, /* DSO_MS_VMIN */ - FALSE, /* DSO_MS_VRMS */ - FALSE, /* DSO_MS_VMEA */ - FALSE, /* DSO_MS_VP2P */ -}; - -static const char *maxHeights[] = { - "1X", - "2X", - "3X", - "4X", - "5X", -}; static const int const_dc = 1.95 / 10 * 255; static const int sinx[] = { diff --git a/libsigrok4DSL/hwdriver.c b/libsigrok4DSL/hwdriver.c index cd922bc4..5c1ae180 100644 --- a/libsigrok4DSL/hwdriver.c +++ b/libsigrok4DSL/hwdriver.c @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -#include "libsigrok.h" + #include "libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/input/in_binary.c b/libsigrok4DSL/input/in_binary.c index 9cfd9023..28bf7c07 100644 --- a/libsigrok4DSL/input/in_binary.c +++ b/libsigrok4DSL/input/in_binary.c @@ -17,7 +17,6 @@ * along with this program. If not, see . */ -#include "../libsigrok.h" #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/input/in_vcd.c b/libsigrok4DSL/input/in_vcd.c index 2ba0ed95..4cfdeb76 100644 --- a/libsigrok4DSL/input/in_vcd.c +++ b/libsigrok4DSL/input/in_vcd.c @@ -57,7 +57,7 @@ /* */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/input/in_wav.c b/libsigrok4DSL/input/in_wav.c index dee0f292..fba8b4ca 100644 --- a/libsigrok4DSL/input/in_wav.c +++ b/libsigrok4DSL/input/in_wav.c @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/input/input.c b/libsigrok4DSL/input/input.c index bcfb6576..942819d4 100644 --- a/libsigrok4DSL/input/input.c +++ b/libsigrok4DSL/input/input.c @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" /** diff --git a/libsigrok4DSL/libsigrok-internal.h b/libsigrok4DSL/libsigrok-internal.h index a935f9cf..628860b2 100644 --- a/libsigrok4DSL/libsigrok-internal.h +++ b/libsigrok4DSL/libsigrok-internal.h @@ -23,12 +23,8 @@ //#include #include #include "config.h" /* Needed for HAVE_LIBUSB_1_0 and others. */ -#ifdef HAVE_LIBUSB_1_0 #include -#endif - -// firmware binary file directory, endswith letter '/' -extern char DS_RES_PATH[500]; +#include "libsigrok.h" /** * @file @@ -46,23 +42,28 @@ extern char DS_RES_PATH[500]; #define ARRAY_AND_SIZE(a) (a), ARRAY_SIZE(a) #endif +#undef min +#define min(a,b) ((a)<(b)?(a):(b)) +#undef max +#define max(a,b) ((a)>(b)?(a):(b)) + + +// firmware binary file directory, endswith letter '/' +extern char DS_RES_PATH[500]; + struct sr_context { -#ifdef HAVE_LIBUSB_1_0 libusb_context *libusb_ctx; libusb_hotplug_callback_handle hotplug_handle; hotplug_event_callback hotplug_callback; void *hotplug_user_data; struct timeval hotplug_tv; -#endif }; -#ifdef HAVE_LIBUSB_1_0 struct sr_usb_dev_inst { uint8_t bus; uint8_t address; struct libusb_device_handle *devhdl; }; -#endif #define SERIAL_PARITY_NONE 0 #define SERIAL_PARITY_EVEN 1 @@ -80,6 +81,28 @@ struct drv_context { }; +/* + * Oscilloscope + */ +#define MAX_TIMEBASE SR_SEC(10) +#define MIN_TIMEBASE SR_NS(10) + + +struct ds_trigger { + uint16_t trigger_en; + uint16_t trigger_mode; + uint16_t trigger_pos; + uint16_t trigger_stages; + unsigned char trigger_logic[TriggerStages+1]; + unsigned char trigger0_inv[TriggerStages+1]; + unsigned char trigger1_inv[TriggerStages+1]; + char trigger0[TriggerStages+1][MaxTriggerProbes]; + char trigger1[TriggerStages+1][MaxTriggerProbes]; + uint32_t trigger0_count[TriggerStages+1]; + uint32_t trigger1_count[TriggerStages+1]; +}; + + /*--- device.c --------------------------------------------------------------*/ SR_PRIV struct sr_channel *sr_channel_new(uint16_t index, int type, @@ -91,13 +114,11 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int mode, int index, int status, const char *vendor, const char *model, const char *version); SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi); -#ifdef HAVE_LIBUSB_1_0 /* USB-specific instances */ SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, uint8_t address, struct libusb_device_handle *hdl); SR_PRIV GSList *sr_usb_find_usbtmc(libusb_context *usb_ctx); SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb); -#endif /* Serial-specific instances */ SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port, @@ -174,21 +195,17 @@ SR_PRIV int serial_stream_detect(struct sr_serial_dev_inst *serial, /*--- hardware/common/ezusb.c -----------------------------------------------*/ -#ifdef HAVE_LIBUSB_1_0 + SR_PRIV int ezusb_reset(struct libusb_device_handle *hdl, int set_clear); SR_PRIV int ezusb_install_firmware(libusb_device_handle *hdl, const char *filename); SR_PRIV int ezusb_upload_firmware(libusb_device *dev, int configuration, const char *filename); -#endif /*--- hardware/common/usb.c -------------------------------------------------*/ -#ifdef HAVE_LIBUSB_1_0 SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn); SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb); -#endif - #endif diff --git a/libsigrok4DSL/libsigrok.h b/libsigrok4DSL/libsigrok.h index 14c120a8..52eef142 100644 --- a/libsigrok4DSL/libsigrok.h +++ b/libsigrok4DSL/libsigrok.h @@ -21,12 +21,12 @@ #define LIBSIGROK_SIGROK_H #include - #include #include #include #include #include +//#include "version.h" #ifdef __cplusplus extern "C" { @@ -81,6 +81,23 @@ enum { */ }; +#define SR_MAX_PROBENAME_LEN 32 +#define DS_MAX_ANALOG_PROBES_NUM 4 +#define DS_MAX_DSO_PROBES_NUM 2 + +#define TriggerStages 16 +#define TriggerProbes 16 +#define MaxTriggerProbes 32 +#define TriggerCountBits 16 +#define STriggerDataStage 3 +#define DS_MAX_TRIG_PERCENT 90 + +#define DS_CONF_DSO_HDIVS 10 +#define DS_CONF_DSO_VDIVS 10 + +#define SAMPLES_ALIGN 1023ULL + + /* Handy little macros */ #define SR_HZ(n) (n) #define SR_KHZ(n) ((n) * (uint64_t)(1000ULL)) @@ -111,28 +128,7 @@ enum { #define SR_V(n) ((n) * (uint64_t)(1000ULL)) #define SR_KV(n) ((n) * (uint64_t)(1000000ULL)) #define SR_MV(n) ((n) * (uint64_t)(1000000000ULL)) - -#define SR_MAX_PROBENAME_LEN 32 -#define DS_MAX_ANALOG_PROBES_NUM 4 -#define DS_MAX_DSO_PROBES_NUM 2 -#define TriggerStages 16 -#define TriggerProbes 16 -#define MaxTriggerProbes 32 -#define TriggerCountBits 16 -#define STriggerDataStage 3 - -#define DS_CONF_DSO_HDIVS 10 -#define DS_CONF_DSO_VDIVS 10 - -#define DS_MAX_TRIG_PERCENT 90 - -#define SAMPLES_ALIGN 1023ULL -/* - * Oscilloscope - */ -#define MAX_TIMEBASE SR_SEC(10) -#define MIN_TIMEBASE SR_NS(10) - + /* * Use SR_API to mark public API symbols, and SR_PRIV for private symbols. * @@ -1258,20 +1254,6 @@ enum { DSO_TRIGGER_FALLING, }; -struct ds_trigger { - uint16_t trigger_en; - uint16_t trigger_mode; - uint16_t trigger_pos; - uint16_t trigger_stages; - unsigned char trigger_logic[TriggerStages+1]; - unsigned char trigger0_inv[TriggerStages+1]; - unsigned char trigger1_inv[TriggerStages+1]; - char trigger0[TriggerStages+1][MaxTriggerProbes]; - char trigger1[TriggerStages+1][MaxTriggerProbes]; - uint32_t trigger0_count[TriggerStages+1]; - uint32_t trigger1_count[TriggerStages+1]; -}; - struct ds_trigger_pos { uint32_t check_id; uint32_t real_pos; @@ -1283,9 +1265,181 @@ struct ds_trigger_pos { typedef int (*sr_receive_data_callback_t)(int fd, int revents, const struct sr_dev_inst *sdi); -#include "proto.h" -#include "version.h" +#include + +/** + * @file + * + * Header file containing API function prototypes. + */ + +/*--- backend.c -------------------------------------------------------------*/ + +//@event, 1:attach, 2:left +typedef void (*hotplug_event_callback)(void *context,void *device, int event, void *userdata); + +SR_API int sr_init(struct sr_context **ctx); +SR_API int sr_exit(struct sr_context *ctx); +SR_API int sr_listen_hotplug(struct sr_context *ctx, hotplug_event_callback callback, void *userdata); +SR_API int sr_close_hotplug(struct sr_context *ctx); +SR_API void sr_hotplug_wait_timout(struct sr_context *ctx); + +/*--- log.c -----------------------------------------------------------------*/ + +/** + * Use a shared context, and drop the private log context + */ +SR_API void sr_log_set_context(xlog_context *ctx); + +/** + * Set the private log context level + */ +SR_API void sr_log_level(int level); + +/*--- device.c --------------------------------------------------------------*/ + +SR_API int sr_dev_probe_name_set(const struct sr_dev_inst *sdi, + int probenum, const char *name); +SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, + gboolean state); +SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, uint16_t probenum, + const char *trigger); +SR_API GSList *sr_dev_list(const struct sr_dev_driver *driver); +SR_API const GSList *sr_dev_mode_list(const struct sr_dev_inst *sdi); +SR_API int sr_dev_clear(const struct sr_dev_driver *driver); +SR_API int sr_dev_open(struct sr_dev_inst *sdi); +SR_API int sr_dev_close(struct sr_dev_inst *sdi); + +/*--- hwdriver.c ------------------------------------------------------------*/ + +SR_API struct sr_dev_driver **sr_driver_list(void); +SR_API int sr_driver_init(struct sr_context *ctx, + struct sr_dev_driver *driver); +SR_API GSList *sr_driver_scan(struct sr_dev_driver *driver, GSList *options); +SR_API int sr_config_get(const struct sr_dev_driver *driver, + const struct sr_dev_inst *sdi, + const struct sr_channel *ch, + const struct sr_channel_group *cg, + int key, GVariant **data); +SR_API int sr_config_set(struct sr_dev_inst *sdi, + struct sr_channel *ch, + struct sr_channel_group *cg, + int key, GVariant *data); +SR_API int sr_config_list(const struct sr_dev_driver *driver, + const struct sr_dev_inst *sdi, + const struct sr_channel_group *cg, + int key, GVariant **data); +SR_API const struct sr_config_info *sr_config_info_get(int key); +SR_API const struct sr_config_info *sr_config_info_name_get(const char *optname); +SR_API int sr_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, gboolean prg); +SR_API struct sr_config *sr_config_new(int key, GVariant *data); +SR_API void sr_config_free(struct sr_config *src); + +//SR_API void sr_test_usb_api(); + +/*--------------------session.c----------------*/ +typedef void (*sr_datafeed_callback_t)(const struct sr_dev_inst *sdi, + const struct sr_datafeed_packet *packet, void *cb_data); + + +SR_API void sr_set_firmware_resource_dir(const char *dir); + + +/* Session setup */ +SR_API int sr_session_load(const char *filename); +SR_API struct sr_session *sr_session_new(void); +SR_API int sr_session_destroy(void); +SR_API int sr_session_dev_remove_all(void); +SR_API int sr_session_dev_add(struct sr_dev_inst *sdi); +SR_API int sr_session_dev_list(GSList **devlist); + +/* Datafeed setup */ +SR_API int sr_session_datafeed_callback_remove_all(void); +SR_API int sr_session_datafeed_callback_add(sr_datafeed_callback_t cb, + void *cb_data); + +/* Session control */ +SR_API int sr_session_start(void); +SR_API int sr_session_run(void); +SR_API int sr_session_stop(void); + +SR_API int sr_session_source_add(int fd, int events, int timeout, + sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); +SR_API int sr_session_source_add_pollfd(GPollFD *pollfd, int timeout, + sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); +SR_API int sr_session_source_add_channel(GIOChannel *channel, int events, + int timeout, sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); +SR_API int sr_session_source_remove(int fd); +SR_API int sr_session_source_remove_pollfd(GPollFD *pollfd); +SR_API int sr_session_source_remove_channel(GIOChannel *channel); + +//0:ok, 1:error +SR_API int sr_check_session_start_before(); + +/*--- input/input.c ---------------------------------------------------------*/ + +SR_API struct sr_input_format **sr_input_list(void); + +/*--- output/output.c -------------------------------------------------------*/ + +SR_API const struct sr_output_module **sr_output_list(void); + +/*--- strutil.c -------------------------------------------------------------*/ + +SR_API char *sr_si_string_u64(uint64_t x, const char *unit); +SR_API char *sr_iec_string_u64(uint64_t x, const char *unit); +SR_API char *sr_samplerate_string(uint64_t samplerate); +SR_API char *sr_samplecount_string(uint64_t samplecount); +SR_API char *sr_period_string(uint64_t frequency); +SR_API char *sr_time_string(uint64_t time); +SR_API char *sr_voltage_string(uint64_t v_p, uint64_t v_q); +SR_API int sr_parse_sizestring(const char *sizestring, uint64_t *size); +SR_API uint64_t sr_parse_timestring(const char *timestring); +SR_API gboolean sr_parse_boolstring(const char *boolstring); +SR_API int sr_parse_period(const char *periodstr, uint64_t *p, uint64_t *q); +SR_API int sr_parse_voltage(const char *voltstr, uint64_t *p, uint64_t *q); + +/*--- version.c -------------------------------------------------------------*/ + +SR_API int sr_package_version_major_get(void); +SR_API int sr_package_version_minor_get(void); +SR_API int sr_package_version_micro_get(void); +SR_API const char *sr_package_version_string_get(void); + +SR_API int sr_lib_version_current_get(void); +SR_API int sr_lib_version_revision_get(void); +SR_API int sr_lib_version_age_get(void); +SR_API const char *sr_lib_version_string_get(void); + +/*--- error.c ---------------------------------------------------------------*/ + +SR_API const char *sr_strerror(int error_code); +SR_API const char *sr_strerror_name(int error_code); + +/*--- trigger.c ------------------------------------------------------------*/ +SR_API int ds_trigger_init(void); +SR_API int ds_trigger_destroy(void); +SR_API struct ds_trigger *ds_trigger_get(void); +SR_API int ds_trigger_stage_set_value(uint16_t stage, uint16_t probes, char *trigger0, char *trigger1); +SR_API int ds_trigger_stage_set_logic(uint16_t stage, uint16_t probes, unsigned char trigger_logic); +SR_API int ds_trigger_stage_set_inv(uint16_t stage, uint16_t probes, unsigned char trigger0_inv, unsigned char trigger1_inv); +SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint32_t trigger0_count, uint32_t trigger1_count); +SR_API int ds_trigger_probe_set(uint16_t probe, unsigned char trigger0, unsigned char trigger1); +SR_API int ds_trigger_set_stage(uint16_t stages); +SR_API int ds_trigger_set_pos(uint16_t position); +SR_API uint16_t ds_trigger_get_pos(); +SR_API int ds_trigger_set_en(uint16_t enable); +SR_API uint16_t ds_trigger_get_en(); +SR_API int ds_trigger_set_mode(uint16_t mode); + +SR_PRIV uint16_t ds_trigger_get_mask0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); +SR_PRIV uint16_t ds_trigger_get_value0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); +SR_PRIV uint16_t ds_trigger_get_edge0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); +SR_PRIV uint16_t ds_trigger_get_mask1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); +SR_PRIV uint16_t ds_trigger_get_value1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); +SR_PRIV uint16_t ds_trigger_get_edge1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); + #ifdef __cplusplus } #endif diff --git a/libsigrok4DSL/output/csv.c b/libsigrok4DSL/output/csv.c index 28fccda1..6aa851d8 100644 --- a/libsigrok4DSL/output/csv.c +++ b/libsigrok4DSL/output/csv.c @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/output/gnuplot.c b/libsigrok4DSL/output/gnuplot.c index 7da3888d..c2cdc843 100644 --- a/libsigrok4DSL/output/gnuplot.c +++ b/libsigrok4DSL/output/gnuplot.c @@ -18,7 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "../libsigrok.h" #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/output/output.c b/libsigrok4DSL/output/output.c index 91ca35dc..62001b03 100644 --- a/libsigrok4DSL/output/output.c +++ b/libsigrok4DSL/output/output.c @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" #include #include "../log.h" diff --git a/libsigrok4DSL/output/srzip.c b/libsigrok4DSL/output/srzip.c index d51c01c1..fe32333d 100755 --- a/libsigrok4DSL/output/srzip.c +++ b/libsigrok4DSL/output/srzip.c @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -#include "libsigrok.h" + #include "libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/output/vcd.c b/libsigrok4DSL/output/vcd.c index 5db2dd13..a7a8e7d4 100644 --- a/libsigrok4DSL/output/vcd.c +++ b/libsigrok4DSL/output/vcd.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "../libsigrok.h" + #include "../libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/proto.h b/libsigrok4DSL/proto.h deleted file mode 100644 index 6a9e72d7..00000000 --- a/libsigrok4DSL/proto.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - * This file is part of the libsigrok project. - * - * Copyright (C) 2013 Bert Vermeulen - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef LIBSIGROK_SIGROK_PROTO_H -#define LIBSIGROK_SIGROK_PROTO_H - -#include - -/** - * @file - * - * Header file containing API function prototypes. - */ - -/*--- backend.c -------------------------------------------------------------*/ - -//@event, 1:attach, 2:left -typedef void (*hotplug_event_callback)(void *context,void *device, int event, void *userdata); - -SR_API int sr_init(struct sr_context **ctx); -SR_API int sr_exit(struct sr_context *ctx); -SR_API int sr_listen_hotplug(struct sr_context *ctx, hotplug_event_callback callback, void *userdata); -SR_API int sr_close_hotplug(struct sr_context *ctx); -SR_API void sr_hotplug_wait_timout(struct sr_context *ctx); - -/*--- log.c -----------------------------------------------------------------*/ - -/** - * Use a shared context, and drop the private log context - */ -SR_API void sr_log_set_context(xlog_context *ctx); - -/** - * Set the private log context level - */ -SR_API void sr_log_level(int level); - -/*--- device.c --------------------------------------------------------------*/ - -SR_API int sr_dev_probe_name_set(const struct sr_dev_inst *sdi, - int probenum, const char *name); -SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, - gboolean state); -SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, uint16_t probenum, - const char *trigger); -SR_API GSList *sr_dev_list(const struct sr_dev_driver *driver); -SR_API const GSList *sr_dev_mode_list(const struct sr_dev_inst *sdi); -SR_API int sr_dev_clear(const struct sr_dev_driver *driver); -SR_API int sr_dev_open(struct sr_dev_inst *sdi); -SR_API int sr_dev_close(struct sr_dev_inst *sdi); - -/*--- hwdriver.c ------------------------------------------------------------*/ - -SR_API struct sr_dev_driver **sr_driver_list(void); -SR_API int sr_driver_init(struct sr_context *ctx, - struct sr_dev_driver *driver); -SR_API GSList *sr_driver_scan(struct sr_dev_driver *driver, GSList *options); -SR_API int sr_config_get(const struct sr_dev_driver *driver, - const struct sr_dev_inst *sdi, - const struct sr_channel *ch, - const struct sr_channel_group *cg, - int key, GVariant **data); -SR_API int sr_config_set(struct sr_dev_inst *sdi, - struct sr_channel *ch, - struct sr_channel_group *cg, - int key, GVariant *data); -SR_API int sr_config_list(const struct sr_dev_driver *driver, - const struct sr_dev_inst *sdi, - const struct sr_channel_group *cg, - int key, GVariant **data); -SR_API const struct sr_config_info *sr_config_info_get(int key); -SR_API const struct sr_config_info *sr_config_info_name_get(const char *optname); -SR_API int sr_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, gboolean prg); -SR_API struct sr_config *sr_config_new(int key, GVariant *data); -SR_API void sr_config_free(struct sr_config *src); - -//SR_API void sr_test_usb_api(); - -/*--------------------session.c----------------*/ -typedef void (*sr_datafeed_callback_t)(const struct sr_dev_inst *sdi, - const struct sr_datafeed_packet *packet, void *cb_data); - - -SR_API void sr_set_firmware_resource_dir(const char *dir); - - -/* Session setup */ -SR_API int sr_session_load(const char *filename); -SR_API struct sr_session *sr_session_new(void); -SR_API int sr_session_destroy(void); -SR_API int sr_session_dev_remove_all(void); -SR_API int sr_session_dev_add(struct sr_dev_inst *sdi); -SR_API int sr_session_dev_list(GSList **devlist); - -/* Datafeed setup */ -SR_API int sr_session_datafeed_callback_remove_all(void); -SR_API int sr_session_datafeed_callback_add(sr_datafeed_callback_t cb, - void *cb_data); - -/* Session control */ -SR_API int sr_session_start(void); -SR_API int sr_session_run(void); -SR_API int sr_session_stop(void); - -SR_API int sr_session_source_add(int fd, int events, int timeout, - sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); -SR_API int sr_session_source_add_pollfd(GPollFD *pollfd, int timeout, - sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); -SR_API int sr_session_source_add_channel(GIOChannel *channel, int events, - int timeout, sr_receive_data_callback_t cb, const struct sr_dev_inst *sdi); -SR_API int sr_session_source_remove(int fd); -SR_API int sr_session_source_remove_pollfd(GPollFD *pollfd); -SR_API int sr_session_source_remove_channel(GIOChannel *channel); - -//0:ok, 1:error -SR_API int sr_check_session_start_before(); - -/*--- input/input.c ---------------------------------------------------------*/ - -SR_API struct sr_input_format **sr_input_list(void); - -/*--- output/output.c -------------------------------------------------------*/ - -SR_API const struct sr_output_module **sr_output_list(void); - -/*--- strutil.c -------------------------------------------------------------*/ - -SR_API char *sr_si_string_u64(uint64_t x, const char *unit); -SR_API char *sr_iec_string_u64(uint64_t x, const char *unit); -SR_API char *sr_samplerate_string(uint64_t samplerate); -SR_API char *sr_samplecount_string(uint64_t samplecount); -SR_API char *sr_period_string(uint64_t frequency); -SR_API char *sr_time_string(uint64_t time); -SR_API char *sr_voltage_string(uint64_t v_p, uint64_t v_q); -SR_API int sr_parse_sizestring(const char *sizestring, uint64_t *size); -SR_API uint64_t sr_parse_timestring(const char *timestring); -SR_API gboolean sr_parse_boolstring(const char *boolstring); -SR_API int sr_parse_period(const char *periodstr, uint64_t *p, uint64_t *q); -SR_API int sr_parse_voltage(const char *voltstr, uint64_t *p, uint64_t *q); - -/*--- version.c -------------------------------------------------------------*/ - -SR_API int sr_package_version_major_get(void); -SR_API int sr_package_version_minor_get(void); -SR_API int sr_package_version_micro_get(void); -SR_API const char *sr_package_version_string_get(void); - -SR_API int sr_lib_version_current_get(void); -SR_API int sr_lib_version_revision_get(void); -SR_API int sr_lib_version_age_get(void); -SR_API const char *sr_lib_version_string_get(void); - -/*--- error.c ---------------------------------------------------------------*/ - -SR_API const char *sr_strerror(int error_code); -SR_API const char *sr_strerror_name(int error_code); - -/*--- trigger.c ------------------------------------------------------------*/ -SR_API int ds_trigger_init(void); -SR_API int ds_trigger_destroy(void); -SR_API struct ds_trigger *ds_trigger_get(void); -SR_API int ds_trigger_stage_set_value(uint16_t stage, uint16_t probes, char *trigger0, char *trigger1); -SR_API int ds_trigger_stage_set_logic(uint16_t stage, uint16_t probes, unsigned char trigger_logic); -SR_API int ds_trigger_stage_set_inv(uint16_t stage, uint16_t probes, unsigned char trigger0_inv, unsigned char trigger1_inv); -SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint32_t trigger0_count, uint32_t trigger1_count); -SR_API int ds_trigger_probe_set(uint16_t probe, unsigned char trigger0, unsigned char trigger1); -SR_API int ds_trigger_set_stage(uint16_t stages); -SR_API int ds_trigger_set_pos(uint16_t position); -SR_API uint16_t ds_trigger_get_pos(); -SR_API int ds_trigger_set_en(uint16_t enable); -SR_API uint16_t ds_trigger_get_en(); -SR_API int ds_trigger_set_mode(uint16_t mode); - -SR_PRIV uint16_t ds_trigger_get_mask0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); -SR_PRIV uint16_t ds_trigger_get_value0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); -SR_PRIV uint16_t ds_trigger_get_edge0(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); -SR_PRIV uint16_t ds_trigger_get_mask1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); -SR_PRIV uint16_t ds_trigger_get_value1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); -SR_PRIV uint16_t ds_trigger_get_edge1(uint16_t stage, uint16_t msc, uint16_t lsc, gboolean qutr_mode, gboolean half_mode); - - -#endif diff --git a/libsigrok4DSL/session.c b/libsigrok4DSL/session.c index 831867f9..60026478 100644 --- a/libsigrok4DSL/session.c +++ b/libsigrok4DSL/session.c @@ -17,7 +17,6 @@ * along with this program. If not, see . */ -#include "libsigrok.h" #include "libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/session_driver.c b/libsigrok4DSL/session_driver.c index 313e6e7b..76b51678 100644 --- a/libsigrok4DSL/session_driver.c +++ b/libsigrok4DSL/session_driver.c @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -#include "libsigrok.h" + #include "libsigrok-internal.h" #include #include @@ -50,6 +49,7 @@ static const char *maxHeights[] = { "4X", "5X", }; + static const uint64_t vdivs[] = { SR_mV(10), SR_mV(20), diff --git a/libsigrok4DSL/session_file.c b/libsigrok4DSL/session_file.c index 906ab8f5..fe8990b9 100644 --- a/libsigrok4DSL/session_file.c +++ b/libsigrok4DSL/session_file.c @@ -17,7 +17,6 @@ * along with this program. If not, see . */ -#include "libsigrok.h" #include "libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/std.c b/libsigrok4DSL/std.c index 40bb7223..82bc8f66 100644 --- a/libsigrok4DSL/std.c +++ b/libsigrok4DSL/std.c @@ -18,7 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrok.h" #include "libsigrok-internal.h" #include #include "log.h" @@ -207,11 +206,7 @@ SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver, if (sdi->conn) { if (sdi->inst_type == SR_INST_USB) -#if HAVE_LIBUSB_1_0 sr_usb_dev_inst_free(sdi->conn); -#else - ; -#endif else if (sdi->inst_type == SR_INST_SERIAL) sr_serial_dev_inst_free(sdi->conn); } diff --git a/libsigrok4DSL/strutil.c b/libsigrok4DSL/strutil.c index 137cd1d2..5f785bd6 100644 --- a/libsigrok4DSL/strutil.c +++ b/libsigrok4DSL/strutil.c @@ -18,9 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrok.h" #include "libsigrok-internal.h" -#include #include #include #include diff --git a/libsigrok4DSL/tests/check_core.c b/libsigrok4DSL/tests/check_core.c index 8bc1d5ae..fae7b24a 100644 --- a/libsigrok4DSL/tests/check_core.c +++ b/libsigrok4DSL/tests/check_core.c @@ -20,7 +20,7 @@ #include #include -#include "../libsigrok.h" +#include /* * Check various basic init related things. diff --git a/libsigrok4DSL/tests/check_driver_all.c b/libsigrok4DSL/tests/check_driver_all.c index d15daaa6..099013a9 100644 --- a/libsigrok4DSL/tests/check_driver_all.c +++ b/libsigrok4DSL/tests/check_driver_all.c @@ -20,7 +20,7 @@ #include #include -#include "../libsigrok.h" +#include #include "lib.h" struct sr_context *sr_ctx; diff --git a/libsigrok4DSL/tests/check_main.c b/libsigrok4DSL/tests/check_main.c index e07a6b88..45de83c4 100644 --- a/libsigrok4DSL/tests/check_main.c +++ b/libsigrok4DSL/tests/check_main.c @@ -20,7 +20,7 @@ #include #include -#include "../libsigrok.h" +#include Suite *suite_core(void); Suite *suite_strutil(void); diff --git a/libsigrok4DSL/tests/check_strutil.c b/libsigrok4DSL/tests/check_strutil.c index a439d6e1..815ceb91 100644 --- a/libsigrok4DSL/tests/check_strutil.c +++ b/libsigrok4DSL/tests/check_strutil.c @@ -19,7 +19,7 @@ */ #include -#include "../libsigrok.h" +#include struct sr_context *sr_ctx; diff --git a/libsigrok4DSL/tests/lib.c b/libsigrok4DSL/tests/lib.c index f8a973aa..296f7b08 100644 --- a/libsigrok4DSL/tests/lib.c +++ b/libsigrok4DSL/tests/lib.c @@ -21,7 +21,7 @@ #include #include #include -#include "../libsigrok.h" +#include /* Get a libsigrok driver by name. */ struct sr_dev_driver *srtest_driver_get(const char *drivername) diff --git a/libsigrok4DSL/tests/lib.h b/libsigrok4DSL/tests/lib.h index beaa0f53..c48ce1e8 100644 --- a/libsigrok4DSL/tests/lib.h +++ b/libsigrok4DSL/tests/lib.h @@ -21,7 +21,7 @@ #ifndef LIBSIGROK_TESTS_LIB_H #define LIBSIGROK_TESTS_LIB_H -#include "../libsigrok.h" +#include struct sr_dev_driver *srtest_driver_get(const char *drivername); void srtest_driver_init(struct sr_context *sr_ctx, struct sr_dev_driver *driver); diff --git a/libsigrok4DSL/trigger.c b/libsigrok4DSL/trigger.c index 5cd9ddb8..a4ba6fdf 100644 --- a/libsigrok4DSL/trigger.c +++ b/libsigrok4DSL/trigger.c @@ -18,7 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libsigrok.h" #include "libsigrok-internal.h" #include #include diff --git a/libsigrok4DSL/version.c b/libsigrok4DSL/version.c index 3da0c173..f5fe8d84 100644 --- a/libsigrok4DSL/version.c +++ b/libsigrok4DSL/version.c @@ -19,6 +19,7 @@ */ #include "libsigrok.h" +#include "version.h" /** * @file