]> sigrok.org Git - libsigrok.git/blobdiff - hardware/asix-sigma/asix-sigma.c
Enforce open device before config_set()/dev_acquisition_start()
[libsigrok.git] / hardware / asix-sigma / asix-sigma.c
index e6cb602b580d448f1f27d41a211093e1ce1d3bdc..cfd95a1115e924ba431d61f275e24ec6118ba0e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
  *
  * Copyright (C) 2010-2012 Håvard Espeland <gus@ping.uio.no>,
  * Copyright (C) 2010 Martin Stensgård <mastensg@ping.uio.no>
@@ -778,7 +778,7 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi)
                        return SR_ERR;
                break;
        default:
-               return SR_ERR_ARG;
+               return SR_ERR_NA;
        }
 
        return SR_OK;
@@ -789,6 +789,9 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
        struct dev_context *devc;
        int ret;
 
+       if (sdi->status != SR_ST_ACTIVE)
+               return SR_ERR_DEV_CLOSED;
+
        devc = sdi->priv;
 
        if (id == SR_CONF_SAMPLERATE) {
@@ -806,7 +809,7 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
                else
                        ret = SR_OK;
        } else {
-               ret = SR_ERR;
+               ret = SR_ERR_NA;
        }
 
        return ret;
@@ -835,7 +838,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
                *data = g_variant_new_string(TRIGGER_TYPE);
                break;
        default:
-               return SR_ERR_ARG;
+               return SR_ERR_NA;
        }
 
        return SR_OK;
@@ -1271,6 +1274,9 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
        struct triggerinout triggerinout_conf;
        struct triggerlut lut;
 
+       if (sdi->status != SR_ST_ACTIVE)
+               return SR_ERR_DEV_CLOSED;
+
        devc = sdi->priv;
 
        if (configure_probes(sdi) != SR_OK) {