X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Fzketech-ebd-usb%2Fprotocol.h;h=0d8ebecf6d0236020ccd4406cd192c7524a801a8;hp=004ce5fb25385bc3f3dcfc7edf9825eb350536d6;hb=ab3e9c8af67b5919dd7cfb3119081bfd5858cc81;hpb=84fe94bd277a8250fc6119f3681b0ca1b23d09ae diff --git a/src/hardware/zketech-ebd-usb/protocol.h b/src/hardware/zketech-ebd-usb/protocol.h index 004ce5fb..0d8ebecf 100644 --- a/src/hardware/zketech-ebd-usb/protocol.h +++ b/src/hardware/zketech-ebd-usb/protocol.h @@ -2,6 +2,7 @@ * This file is part of the libsigrok project. * * Copyright (C) 2018 Sven Bursch-Osewold + * Copyright (C) 2019 King Kévin * * 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 @@ -27,34 +28,34 @@ #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