X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fkorad-kaxxxxp%2Fprotocol.h;h=362c73f2773039970d5ae630d53956306854d8aa;hb=27a9b6639e1bd6530bf8f4304677dc127e343001;hp=2423ce99a8e4f672d8d1aa0296546711d8f9afe5;hpb=ca314e060f653e6a0b5ec0f58914bac4d426217f;p=libsigrok.git diff --git a/src/hardware/korad-kaxxxxp/protocol.h b/src/hardware/korad-kaxxxxp/protocol.h index 2423ce99..362c73f2 100644 --- a/src/hardware/korad-kaxxxxp/protocol.h +++ b/src/hardware/korad-kaxxxxp/protocol.h @@ -2,6 +2,7 @@ * This file is part of the libsigrok project. * * Copyright (C) 2015 Hannu Vuolasaho + * Copyright (C) 2018 Frank Stettner * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,6 +36,12 @@ enum { VELLEMAN_LABPS3005D, KORAD_KA3005P, KORAD_KA3005P_0X01, + KORAD_KD3005P, + KORAD_KD3005P_V20_NOSP, + RND_320K30PV, + TENMA_72_2540_V20, + TENMA_72_2540_V21, + STAMOS_SLS31_V20, /* Support for future devices with this protocol. */ }; @@ -69,7 +76,7 @@ struct dev_context { struct sr_sw_limits limits; int64_t req_sent_at; - gboolean reply_pending; + GMutex rw_mutex; float current; /**< Last current value [A] read from device. */ float current_max; /**< Output current set. */ @@ -82,9 +89,8 @@ struct dev_context { gboolean ocp_enabled; /**< Output current protection enabled. */ gboolean ovp_enabled; /**< Output voltage protection enabled. */ - int target; /**< What reply to expect. */ + int acquisition_target; /**< What reply to expect. */ int program; /**< Program to store or recall. */ - char reply[6]; }; SR_PRIV int korad_kaxxxxp_send_cmd(struct sr_serial_dev_inst *serial, @@ -92,11 +98,9 @@ SR_PRIV int korad_kaxxxxp_send_cmd(struct sr_serial_dev_inst *serial, SR_PRIV int korad_kaxxxxp_read_chars(struct sr_serial_dev_inst *serial, int count, char *buf); SR_PRIV int korad_kaxxxxp_set_value(struct sr_serial_dev_inst *serial, - struct dev_context *devc); -SR_PRIV int korad_kaxxxxp_query_value(struct sr_serial_dev_inst *serial, - struct dev_context *devc); -SR_PRIV int korad_kaxxxxp_get_reply(struct sr_serial_dev_inst *serial, - struct dev_context *devc); + int target, struct dev_context *devc); +SR_PRIV int korad_kaxxxxp_get_value(struct sr_serial_dev_inst *serial, + int target, struct dev_context *devc); SR_PRIV int korad_kaxxxxp_get_all_values(struct sr_serial_dev_inst *serial, struct dev_context *devc); SR_PRIV int korad_kaxxxxp_receive_data(int fd, int revents, void *cb_data);