+ struct dev_context *devc;
+ struct sr_serial_dev_inst *serial;
+ struct sr_dev_inst *sdi;
+ struct sr_probe *probe;
+ GSList *devices = NULL, *l;
+ const char *conn = NULL, *serialcomm = NULL;
+ uint8_t buf[50];
+ size_t len = sizeof(buf);
+
+ for (l = options; l; l = l->next) {
+ struct sr_config *src = l->data;
+ switch (src->key) {
+ case SR_CONF_CONN:
+ conn = g_variant_get_string(src->data, NULL);
+ break;
+ case SR_CONF_SERIALCOMM:
+ serialcomm = g_variant_get_string(src->data, NULL);
+ break;
+ }
+ }
+ if (!conn)
+ return NULL;
+ if (!serialcomm)
+ serialcomm = "9600/8n1";
+
+ if (!(serial = sr_serial_dev_inst_new(conn, serialcomm)))
+ return NULL;
+ if (serial_open(serial, SERIAL_RDONLY | SERIAL_NONBLOCK) != SR_OK)
+ return NULL;