X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fjuntek-jds6600%2Fprotocol.h;fp=src%2Fhardware%2Fjuntek-jds6600%2Fprotocol.h;h=1a7a1469c5fd2e4f07c30bf066e3704081ed6fe0;hb=18baeeed7bb99f5470f04caa60e1b624207728b7;hp=ab5dff7dd2b980f6250d7bfe3787b50c0e0d9636;hpb=b1fa9aac740d8fb2d6aaad8974e06680a817524c;p=libsigrok.git diff --git a/src/hardware/juntek-jds6600/protocol.h b/src/hardware/juntek-jds6600/protocol.h index ab5dff7d..1a7a1469 100644 --- a/src/hardware/juntek-jds6600/protocol.h +++ b/src/hardware/juntek-jds6600/protocol.h @@ -20,16 +20,59 @@ #ifndef LIBSIGROK_HARDWARE_JUNTEK_JDS6600_PROTOCOL_H #define LIBSIGROK_HARDWARE_JUNTEK_JDS6600_PROTOCOL_H -#include #include #include +#include + #include "libsigrok-internal.h" #define LOG_PREFIX "juntek-jds6600" +#define MAX_GEN_CHANNELS 2 + struct dev_context { + struct devc_dev { + unsigned int device_type; + char *serial_number; + uint64_t max_output_frequency; + size_t channel_count_gen; + } device; + struct devc_wave { + size_t builtin_count; + size_t arbitrary_count; + size_t names_count; + const char **names; + uint32_t *fw_codes; + } waveforms; + struct devc_chan { + gboolean enabled; + uint32_t waveform_code; + size_t waveform_index; + double output_frequency; + double amplitude, offset; + double dutycycle; + } channel_config[MAX_GEN_CHANNELS]; + double channels_phase; + GString *quick_req; }; -SR_PRIV int juntek_jds6600_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int jds6600_identify(struct sr_dev_inst *sdi); +SR_PRIV int jds6600_setup_devc(struct sr_dev_inst *sdi); + +SR_PRIV int jds6600_get_chans_enable(const struct sr_dev_inst *sdi); +SR_PRIV int jds6600_get_waveform(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_get_frequency(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_get_amplitude(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_get_offset(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_get_dutycycle(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_get_phase_chans(const struct sr_dev_inst *sdi); + +SR_PRIV int jds6600_set_chans_enable(const struct sr_dev_inst *sdi); +SR_PRIV int jds6600_set_waveform(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_set_frequency(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_set_amplitude(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_set_offset(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_set_dutycycle(const struct sr_dev_inst *sdi, size_t ch_idx); +SR_PRIV int jds6600_set_phase_chans(const struct sr_dev_inst *sdi); #endif