]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/zketech-ebd-usb/protocol.h
zketech-ebd-usb: Multiple fixes and upgrades.
[libsigrok.git] / src / hardware / zketech-ebd-usb / protocol.h
index 004ce5fb25385bc3f3dcfc7edf9825eb350536d6..0d8ebecf6d0236020ccd4406cd192c7524a801a8 100644 (file)
@@ -2,6 +2,7 @@
  * This file is part of the libsigrok project.
  *
  * Copyright (C) 2018 Sven Bursch-Osewold <sb_git@bursch.com>
+ * Copyright (C) 2019 King Kévin <kingkevin@cuvoodoo.info>
  *
  * 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
 
 #define LOG_PREFIX "zketech-ebd-usb"
 
-#define MSG_LEN 19
-#define MSG_CHECKSUM_POS 17
+#define MSG_MAX_LEN 19
 #define MSG_FRAME_BEGIN 0xfa
-#define MSG_FRAME_BEGIN_POS 0
 #define MSG_FRAME_END 0xf8
-#define MSG_FRAME_END_POS 18
 
 struct dev_context {
        struct sr_sw_limits limits;
        GMutex rw_mutex;
        float current_limit;
+       float voltage_limit;
        gboolean running;
        gboolean load_activated;
 };
 
 /* Communication via serial. */
-SR_PRIV int ebd_read_chars(struct sr_serial_dev_inst *serial, int count, uint8_t *buf);
+SR_PRIV int ebd_read_message(struct sr_serial_dev_inst *serial, int length, uint8_t *buf);
 
 /* Commands. */
 SR_PRIV int ebd_init(struct sr_serial_dev_inst *serial, struct dev_context *devc);
 SR_PRIV int ebd_loadstart(struct sr_serial_dev_inst *serial, struct dev_context *devc);
 SR_PRIV int ebd_receive_data(int fd, int revents, void *cb_data);
 SR_PRIV int ebd_stop(struct sr_serial_dev_inst *serial, struct dev_context *devc);
-SR_PRIV int ebd_loadstop(struct sr_serial_dev_inst *serial, struct dev_context *devc);
+SR_PRIV int ebd_loadtoggle(struct sr_serial_dev_inst *serial, struct dev_context *devc);
 
 /* Configuration. */
 SR_PRIV int ebd_get_current_limit(const struct sr_dev_inst *sdi, float *current);
 SR_PRIV int ebd_set_current_limit(const struct sr_dev_inst *sdi, float current);
+SR_PRIV int ebd_get_voltage_limit(const struct sr_dev_inst *sdi, float *voltage);
+SR_PRIV int ebd_set_voltage_limit(const struct sr_dev_inst *sdi, float voltage);
 SR_PRIV gboolean ebd_current_is0(struct dev_context *devc);
 
 #endif