X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fkorad-kaxxxxp%2Fprotocol.h;h=c7b393c94ec60fdd9e8e1fc268965372cd50248b;hb=ecd4600bb15fc16d842936c452d4e7d5fb8e12f5;hp=f2f135707f156fa6088b1fd7ee34267d20866073;hpb=8da30037cf8cf0fedb8e87cba9ca56189ed7df5f;p=libsigrok.git diff --git a/src/hardware/korad-kaxxxxp/protocol.h b/src/hardware/korad-kaxxxxp/protocol.h index f2f13570..c7b393c9 100644 --- a/src/hardware/korad-kaxxxxp/protocol.h +++ b/src/hardware/korad-kaxxxxp/protocol.h @@ -2,7 +2,7 @@ * This file is part of the libsigrok project. * * Copyright (C) 2015 Hannu Vuolasaho - * Copyright (C) 2018 Frank Stettner + * Copyright (C) 2018-2019 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 @@ -32,19 +32,29 @@ #define KAXXXXP_POLL_INTERVAL_MS 80 enum { - VELLEMAN_PS3005D, - VELLEMAN_LABPS3005D, KORAD_KA3005P, KORAD_KA3005P_0X01, KORAD_KA3005P_0XBC, - KORAD_KD3005P, + KORAD_KA3005P_V42, + KORAD_KA3005P_V55, + KORAD_KD3005P_V20, KORAD_KD3005P_V20_NOSP, + KORAD_KD3005P_V21_NOSP, + KORAD_KD3005P_V41, + KORAD_KD3005P_V68, + KORAD_KD6005P, + RND_320_KA3005P, + RND_320_KD3005P, RND_320K30PV, + STAMOS_SLS31_V20, + TENMA_72_2535_V21, TENMA_72_2540_V20, TENMA_72_2540_V21, - TENMA_72_2535_V21, - STAMOS_SLS31_V20, - KORAD_KD6005P, + TENMA_72_2540_V52, + TENMA_72_2550_V2, + TENMA_72_2710_V66, + VELLEMAN_LABPS3005D, + VELLEMAN_PS3005D, /* Support for future devices with this protocol. */ }; @@ -55,8 +65,8 @@ struct korad_kaxxxxp_model { const char *name; /**< Model name */ const char *id; /**< Model ID, as delivered by interface */ int channels; /**< Number of channels */ - double voltage[3]; /**< Min, max, step */ - double current[3]; /**< Min, max, step */ + const double *voltage; /**< References: Min, max, step */ + const double *current; /**< References: Min, max, step */ }; /* Reply targets */ @@ -92,6 +102,12 @@ struct dev_context { gboolean ocp_enabled; /**< Output current protection enabled. */ gboolean ovp_enabled; /**< Output voltage protection enabled. */ + gboolean cc_mode_1_changed; /**< CC mode of channel 1 has changed. */ + gboolean cc_mode_2_changed; /**< CC mode of channel 2 has changed. */ + gboolean output_enabled_changed; /**< Output enabled state has changed. */ + gboolean ocp_enabled_changed; /**< OCP enabled state has changed. */ + gboolean ovp_enabled_changed; /**< OVP enabled state has changed. */ + int acquisition_target; /**< What reply to expect. */ int program; /**< Program to store or recall. */ @@ -106,7 +122,7 @@ struct dev_context { SR_PRIV int korad_kaxxxxp_send_cmd(struct sr_serial_dev_inst *serial, const char *cmd); SR_PRIV int korad_kaxxxxp_read_chars(struct sr_serial_dev_inst *serial, - int count, char *buf); + size_t count, char *buf); SR_PRIV int korad_kaxxxxp_set_value(struct sr_serial_dev_inst *serial, int target, struct dev_context *devc); SR_PRIV int korad_kaxxxxp_get_value(struct sr_serial_dev_inst *serial,