X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fscpi-pps%2Fprotocol.h;h=7699ac844ad6382eec3d015d27417e45e47a28c1;hb=fd2433153a3e2c2681d637f715c19f2b6f40fcc9;hp=b4336593cf3643d8d80944d738e5eac5b2bf4ef7;hpb=49a468ed8bbd4d8f70cedc8fea205fba45e2e552;p=libsigrok.git diff --git a/src/hardware/scpi-pps/protocol.h b/src/hardware/scpi-pps/protocol.h index b4336593..7699ac84 100644 --- a/src/hardware/scpi-pps/protocol.h +++ b/src/hardware/scpi-pps/protocol.h @@ -2,7 +2,7 @@ * This file is part of the libsigrok project. * * Copyright (C) 2014 Bert Vermeulen - * Copyright (C) 2017 Frank Stettner + * Copyright (C) 2017,2019 Frank Stettner * * 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 @@ -53,6 +53,7 @@ enum pps_scpi_cmds { SCPI_CMD_GET_OVER_TEMPERATURE_PROTECTION, SCPI_CMD_SET_OVER_TEMPERATURE_PROTECTION_ENABLE, SCPI_CMD_SET_OVER_TEMPERATURE_PROTECTION_DISABLE, + SCPI_CMD_GET_OVER_TEMPERATURE_PROTECTION_ACTIVE, SCPI_CMD_GET_OVER_VOLTAGE_PROTECTION_ENABLED, SCPI_CMD_SET_OVER_VOLTAGE_PROTECTION_ENABLE, SCPI_CMD_SET_OVER_VOLTAGE_PROTECTION_DISABLE, @@ -67,6 +68,14 @@ enum pps_scpi_cmds { SCPI_CMD_SET_OVER_CURRENT_PROTECTION_THRESHOLD, }; +/* Defines the SCPI dialect */ +enum pps_scpi_dialect { + SCPI_DIALECT_UNKNOWN = 1, + SCPI_DIALECT_HP_COMP, + SCPI_DIALECT_HP_66XXB, + SCPI_DIALECT_PHILIPS, +}; + /* * These are bit values denoting features a device can have either globally, * in scpi_pps.features, or on a per-channel-group basis in @@ -84,6 +93,7 @@ enum pps_features { struct scpi_pps { const char *vendor; const char *model; + const enum pps_scpi_dialect dialect; uint64_t features; const uint32_t *devopts; unsigned int num_devopts; @@ -97,6 +107,8 @@ struct scpi_pps { int (*probe_channels) (struct sr_dev_inst *sdi, struct sr_scpi_hw_info *hwinfo, struct channel_spec **channels, unsigned int *num_channels, struct channel_group_spec **channel_groups, unsigned int *num_channel_groups); + int (*init_acquisition) (const struct sr_dev_inst *sdi); + int (*update_status) (const struct sr_dev_inst *sdi); }; struct channel_spec { @@ -114,10 +126,13 @@ struct channel_group_spec { const char *name; uint64_t channel_index_mask; uint64_t features; + /* The mqflags will only be applied to voltage and current channels! */ + enum sr_mqflag mqflags; }; struct pps_channel { enum sr_mq mq; + enum sr_mqflag mqflags; unsigned int hw_output_idx; const char *hwname; int digits; @@ -147,6 +162,7 @@ struct dev_context { struct channel_group_spec *channel_groups; struct sr_channel *cur_acquisition_channel; + struct sr_sw_limits limits; }; SR_PRIV extern unsigned int num_pps_profiles;