X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fmicrochip-pickit2%2Fprotocol.h;h=28b152f00ea1f9ef3cdd12be1972556c148f9907;hb=35280a96184cdf8781728a2a315e5d560aaf7654;hp=d531b52c49c624253c60aa0566f02ef43d649433;hpb=a5c0259c4ab9d3f7807e8d748551ae209ae69e4e;p=libsigrok.git diff --git a/src/hardware/microchip-pickit2/protocol.h b/src/hardware/microchip-pickit2/protocol.h index d531b52c..28b152f0 100644 --- a/src/hardware/microchip-pickit2/protocol.h +++ b/src/hardware/microchip-pickit2/protocol.h @@ -20,16 +20,43 @@ #ifndef LIBSIGROK_HARDWARE_MICROCHIP_PICKIT2_PROTOCOL_H #define LIBSIGROK_HARDWARE_MICROCHIP_PICKIT2_PROTOCOL_H -#include #include +#include +#include #include #include "libsigrok-internal.h" #define LOG_PREFIX "microchip-pickit2" +#define PICKIT2_CHANNEL_COUNT 3 +#define PICKIT2_SAMPLE_COUNT 1024 +#define PICKIT2_SAMPLE_RAWLEN (4 * 128) + +enum pickit_state { + STATE_IDLE, + STATE_CONF, + STATE_WAIT, + STATE_DATA, +}; + struct dev_context { + char **channel_names; + enum pickit_state state; + const uint64_t *samplerates; + size_t num_samplerates; + size_t curr_samplerate_idx; + const uint64_t *captureratios; + size_t num_captureratios; + size_t curr_captureratio_idx; + struct sr_sw_limits sw_limits; + gboolean detached_kernel_driver; + int32_t triggers[PICKIT2_CHANNEL_COUNT]; /**@< see @ref SR_TRIGGER_ZERO et al */ + size_t trigpos; + uint8_t samples_raw[PICKIT2_SAMPLE_RAWLEN]; + uint8_t samples_conv[PICKIT2_SAMPLE_COUNT]; }; +SR_PRIV int microchip_pickit2_setup_trigger(const struct sr_dev_inst *sdi); SR_PRIV int microchip_pickit2_receive_data(int fd, int revents, void *cb_data); #endif