]> sigrok.org Git - libsigrok.git/blobdiff - hardware/manson-hcs-3xxx/protocol.h
manson-hcs-3xxx: Initial driver implementation.
[libsigrok.git] / hardware / manson-hcs-3xxx / protocol.h
index e5fdeeee356e7b2a7b224850583e067ae4468bde..572d92740d383102fd8233c736bf9f56821fccbc 100644 (file)
 #define LIBSIGROK_HARDWARE_MANSON_HCS_3XXX_PROTOCOL_H
 
 #include <stdint.h>
+#include <string.h>
+#include <math.h>
 #include <glib.h>
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
 #define LOG_PREFIX "manson-hcs-3xxx"
 
+enum {
+       MANSON_HCS_3200,
+       MANSON_HCS_3202,
+       MANSON_HCS_3204,
+};
+
+struct hcs_model {
+       int model_id;
+       char *name;
+       double voltage[3]; /* Min, max, step */
+       double current[3]; /* Min, max, step */
+};
+
 /** Private, per-device-instance driver context. */
 struct dev_context {
+       struct hcs_model *model;
+
+       uint64_t limit_samples;
+       uint64_t limit_msec;
+       uint64_t num_samples;
+       int64_t starttime;
+       int64_t req_sent_at;
+       gboolean reply_pending;
+
+       void *cb_data;
+
+       float voltage;
+       float current;
+       gboolean cc_mode;
+
+       char buf[50];
+       int buflen;
 };
 
-SR_PRIV int manson_hcs_3xxx_receive_data(int fd, int revents, void *cb_data);
+SR_PRIV int hcs_receive_data(int fd, int revents, void *cb_data);
 
 #endif