+ struct sr_dev_inst *sdi;
+ struct dev_context *devc;
+ struct channel_group_context *cgc;
+ size_t idx, nr;
+ struct sr_channel_group *cg;
+ char cg_name[24];
+
+ /*
+ * The device cannot get identified by means of SCPI queries.
+ * Neither shall non-SCPI requests get emitted before reliable
+ * identification of the device. Assume that we only get here
+ * when user specs led us to believe it's safe to communicate
+ * to the expected kind of device.
+ */
+
+ sdi = g_malloc0(sizeof(*sdi));
+ sdi->vendor = g_strdup("Hewlett-Packard");
+ sdi->model = g_strdup("59306A");
+ sdi->conn = scpi;
+ sdi->driver = &hp_59306a_driver_info;
+ sdi->inst_type = SR_INST_SCPI;
+ if (sr_scpi_connection_id(scpi, &sdi->connection_id) != SR_OK) {
+ g_free(sdi->connection_id);
+ sdi->connection_id = NULL;
+ }
+
+ devc = g_malloc0(sizeof(*devc));
+ sdi->priv = devc;
+
+ devc->channel_count = 6;
+ for (idx = 0; idx < devc->channel_count; idx++) {
+ nr = idx + 1;
+ snprintf(cg_name, sizeof(cg_name), "R%zu", nr);
+ cgc = g_malloc0(sizeof(*cgc));
+ cgc->number = nr;
+ cg = sr_channel_group_new(sdi, cg_name, cgc);
+ (void)cg;
+ }