X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Farachnid-labs-re-load-pro%2Fprotocol.c;h=dd0ad409508ffc37a4376e8d3d890f49d77c028e;hb=2ea1fdf12113311cbe1a4316e9e2efe4d8ac40f0;hp=1f2e0dd4ecd212493ff1a2213efec26a8a75d4a5;hpb=8501448cfe508de842c0e2206232a7a832837294;p=libsigrok.git diff --git a/src/hardware/arachnid-labs-re-load-pro/protocol.c b/src/hardware/arachnid-labs-re-load-pro/protocol.c index 1f2e0dd4..dd0ad409 100644 --- a/src/hardware/arachnid-labs-re-load-pro/protocol.c +++ b/src/hardware/arachnid-labs-re-load-pro/protocol.c @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, see . */ #include @@ -159,11 +158,17 @@ static void handle_packet(const struct sr_dev_inst *sdi) devc = sdi->priv; if (g_str_has_prefix((const char *)devc->buf, "overtemp")) { - sr_dbg("Overtemperature condition!"); + sr_warn("Overtemperature condition!"); devc->otp_active = TRUE; return; } + if (g_str_has_prefix((const char *)devc->buf, "undervolt")) { + sr_warn("Undervoltage condition!"); + devc->uvc_active = TRUE; + return; + } + if (!g_str_has_prefix((const char *)devc->buf, "read ")) { sr_dbg("Unknown packet: '%s'.", devc->buf); return; @@ -212,7 +217,7 @@ static void handle_packet(const struct sr_dev_inst *sdi) packet.payload = NULL; sr_session_send(sdi, &packet); - devc->num_samples++; + sr_sw_limits_update_samples_read(&devc->limits, 1); } static void handle_new_data(const struct sr_dev_inst *sdi) @@ -246,7 +251,6 @@ SR_PRIV int reloadpro_receive_data(int fd, int revents, void *cb_data) { struct sr_dev_inst *sdi; struct dev_context *devc; - int64_t t; (void)fd; @@ -258,20 +262,8 @@ SR_PRIV int reloadpro_receive_data(int fd, int revents, void *cb_data) handle_new_data(sdi); - if (devc->limit_samples && (devc->num_samples >= devc->limit_samples)) { - sr_info("Requested number of samples reached."); - sdi->driver->dev_acquisition_stop(sdi, cb_data); - return TRUE; - } - - if (devc->limit_msec) { - t = (g_get_monotonic_time() - devc->starttime) / 1000; - if (t > (int64_t)devc->limit_msec) { - sr_info("Requested time limit reached."); - sdi->driver->dev_acquisition_stop(sdi, cb_data); - return TRUE; - } - } + if (sr_sw_limits_check(&devc->limits)) + sdi->driver->dev_acquisition_stop(sdi); return TRUE; }