X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fopenbench-logic-sniffer%2Fprotocol.c;h=0041b21a3b744144252e611d8ee8a9bb6c15089d;hb=be15c51ed49fcd5b725e1174247c92ee295b2b3b;hp=15f1b3c03e9ff42b27569ed6b0010cc880e9b925;hpb=695dc859c15ba4190f5c1aa2e1a6e2dc6a6e5845;p=libsigrok.git diff --git a/src/hardware/openbench-logic-sniffer/protocol.c b/src/hardware/openbench-logic-sniffer/protocol.c index 15f1b3c0..0041b21a 100644 --- a/src/hardware/openbench-logic-sniffer/protocol.c +++ b/src/hardware/openbench-logic-sniffer/protocol.c @@ -20,8 +20,6 @@ #include #include "protocol.h" -extern SR_PRIV struct sr_dev_driver ols_driver_info; - SR_PRIV int send_shortcommand(struct sr_serial_dev_inst *serial, uint8_t command) { @@ -59,6 +57,18 @@ SR_PRIV int send_longcommand(struct sr_serial_dev_inst *serial, return SR_OK; } +SR_PRIV int ols_send_reset(struct sr_serial_dev_inst *serial) +{ + unsigned int i; + + for (i = 0; i < 5; i++) { + if (send_shortcommand(serial, CMD_RESET) != SR_OK) + return SR_ERR; + } + + return SR_OK; +} + /* Configures the channel mask based on which channels are enabled. */ SR_PRIV void ols_channel_mask(const struct sr_dev_inst *sdi) { @@ -131,7 +141,6 @@ SR_PRIV struct dev_context *ols_dev_new(void) /* Acquisition settings */ devc->limit_samples = devc->capture_ratio = 0; devc->trigger_at = -1; - devc->channel_mask = 0xffffffff; devc->flag_reg = 0; return devc; @@ -149,7 +158,6 @@ SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial) sdi = g_malloc0(sizeof(struct sr_dev_inst)); sdi->status = SR_ST_INACTIVE; - sdi->driver = &ols_driver_info; devc = ols_dev_new(); sdi->priv = devc; @@ -320,7 +328,7 @@ SR_PRIV void abort_acquisition(const struct sr_dev_inst *sdi) serial = sdi->conn; serial_source_remove(sdi->session, serial); - std_session_send_df_end(sdi, LOG_PREFIX); + std_session_send_df_end(sdi); } SR_PRIV int ols_receive_data(int fd, int revents, void *cb_data) @@ -357,7 +365,7 @@ SR_PRIV int ols_receive_data(int fd, int revents, void *cb_data) } num_ols_changrp = 0; - for (i = NUM_CHANNELS; i > 0x02; i /= 2) { + for (i = 0x20; i > 0x02; i >>= 1) { if ((devc->flag_reg & i) == 0) { num_ols_changrp++; }