X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fmicrochip-pickit2%2Fprotocol.h;h=500964730980b5b392bc0f01cec6f897a475c963;hb=d32120c4c30650c30720d04eaf88dcf7b76a1e9f;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..50096473 100644 --- a/src/hardware/microchip-pickit2/protocol.h +++ b/src/hardware/microchip-pickit2/protocol.h @@ -20,16 +20,42 @@ #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 { + 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