]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hp-59306a/protocol.c
hp-59306a: Enable/disable all outputs at once.
[libsigrok.git] / src / hardware / hp-59306a / protocol.c
index 737ffde49931823f419b93a3f5610cdd7ac3af46..69af3610d590f5c89d0f72600ee97ba175d5c7f0 100644 (file)
  */
 
 #include <config.h>
+#include "scpi.h"
 #include "protocol.h"
 
-SR_PRIV int hp_59306a_receive_data(int fd, int revents, void *cb_data)
+SR_PRIV int hp_59306a_switch_cg(const struct sr_dev_inst *sdi,
+       const struct sr_channel_group *cg, gboolean enabled)
 {
-       const struct sr_dev_inst *sdi;
-       struct dev_context *devc;
+       char *cmd;
+       struct channel_group_context *cgc;
+       struct sr_scpi_dev_inst *scpi;
+       int ret;
 
-       (void)fd;
-
-       if (!(sdi = cb_data))
-               return TRUE;
-
-       if (!(devc = sdi->priv))
-               return TRUE;
-
-       if (revents == G_IO_IN) {
-               /* TODO */
+       if (!cg) {
+               if (enabled)
+                       cmd = g_strdup("A123456");
+               else
+                       cmd = g_strdup("B123456");
+       } else {
+               cgc = cg->priv;
+               if (enabled)
+                       cmd = g_strdup_printf("A%zu", cgc->number);
+               else
+                       cmd = g_strdup_printf("B%zu", cgc->number);
        }
 
-       return TRUE;
+       scpi = sdi->conn;
+       ret = sr_scpi_send(scpi, cmd);
+       g_free(cmd);
+
+       return ret;
 }