X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fzeroplus-logic-cube%2Fprotocol.h;h=ee710cd3b3c069f69722ed55fcc26dc6d2e19329;hb=d2e0b1fa71b90faf1f7e77b72627868baf5e9135;hp=9710cf30659f56f4067270893528293979523a9b;hpb=6d1161142dfce461c8e54c09d821443c68916df8;p=libsigrok.git diff --git a/hardware/zeroplus-logic-cube/protocol.h b/hardware/zeroplus-logic-cube/protocol.h index 9710cf30..ee710cd3 100644 --- a/hardware/zeroplus-logic-cube/protocol.h +++ b/hardware/zeroplus-logic-cube/protocol.h @@ -21,6 +21,13 @@ #ifndef LIBSIGROK_HARDWARE_ZEROPLUS_LOGIC_CUBE_PROTOCOL_H #define LIBSIGROK_HARDWARE_ZEROPLUS_LOGIC_CUBE_PROTOCOL_H +#include +#include +#include +#include "libsigrok.h" +#include "libsigrok-internal.h" +#include "analyzer.h" + /* Message logging helpers with driver-specific prefix string. */ #define DRIVER_LOG_DOMAIN "zeroplus: " #define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args) @@ -30,4 +37,28 @@ #define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args) #define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args) +/* Private, per-device-instance driver context. */ +struct dev_context { + uint64_t cur_samplerate; + uint64_t max_samplerate; + uint64_t limit_samples; + int num_channels; + int memory_size; + unsigned int max_memory_size; + //uint8_t probe_mask; + //uint8_t trigger_mask[NUM_TRIGGER_STAGES]; + //uint8_t trigger_value[NUM_TRIGGER_STAGES]; + // uint8_t trigger_buffer[NUM_TRIGGER_STAGES]; + int trigger; + unsigned int capture_ratio; + struct sr_usb_dev_inst *usb; + const struct zp_model *prof; +}; + +SR_PRIV unsigned int get_memory_size(int type); +SR_PRIV int zp_set_samplerate(struct dev_context *devc, uint64_t samplerate); +SR_PRIV int set_limit_samples(struct dev_context *devc, uint64_t samples); +SR_PRIV int set_capture_ratio(struct dev_context *devc, uint64_t ratio); +SR_PRIV void set_triggerbar(struct dev_context *devc); + #endif