X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Fzketech-ebd-usb%2Fprotocol.h;h=d0c8389ce170d752917f8958227853ff04dfeb50;hp=9f750b7753b7ef62b7eb9c66a593b71551cd2025;hb=4df6f1743a9f0d27b954eb3b43c43a4ef38235cb;hpb=9890fb1f08ff399c5ea6cf0e99226f23dddcaf8c diff --git a/src/hardware/zketech-ebd-usb/protocol.h b/src/hardware/zketech-ebd-usb/protocol.h index 9f750b77..d0c8389c 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,44 +28,39 @@ #define LOG_PREFIX "zketech-ebd-usb" -#define MSGLEN 19 -#define MSGCHECKSUMPOS 17 -#define MSGFRAMEBEGIN 0xfa -#define MSGFRAMEBEGINPOS 0 -#define MSGFRAMEEND 0xf8 -#define MSGFRAMEENDPOS 18 +#define MSG_MAX_LEN 19 +#define MSG_FRAME_BEGIN 0xfa +#define MSG_FRAME_END 0xf8 struct dev_context { struct sr_sw_limits limits; GMutex rw_mutex; float current_limit; + float uvc_threshold; gboolean running; gboolean load_activated; }; -SR_PRIV float zketech_ebd_usb_value_decode(uint8_t b1, uint8_t b2, float divisor); -SR_PRIV void zketech_ebd_usb_value_encode(float voltage, uint8_t *b1, uint8_t *b2, float divisor); - /* Communication via serial. */ -SR_PRIV int zketech_ebd_usb_send(struct sr_serial_dev_inst *serial, uint8_t buf[], size_t count); -SR_PRIV int zketech_ebd_usb_sendcfg(struct sr_serial_dev_inst *serial, struct dev_context *devc); -SR_PRIV int zketech_ebd_usb_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, size_t length, + uint8_t *buf); /* Commands. */ -SR_PRIV int zketech_ebd_usb_init(struct sr_serial_dev_inst *serial, struct dev_context *devc); -SR_PRIV int zketech_ebd_usb_loadstart(struct sr_serial_dev_inst *serial, struct dev_context *devc); -SR_PRIV int zketech_ebd_usb_receive_data(int fd, int revents, void *cb_data); -SR_PRIV int zketech_ebd_usb_stop(struct sr_serial_dev_inst *serial, struct dev_context *devc); -SR_PRIV int zketech_ebd_usb_loadstop(struct sr_serial_dev_inst *serial, struct dev_context *devc); +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_loadtoggle(struct sr_serial_dev_inst *serial, + struct dev_context *devc); /* Configuration. */ -SR_PRIV int zketech_ebd_usb_get_current_limit(const struct sr_dev_inst *sdi, - float *current); -SR_PRIV int zketech_ebd_usb_set_current_limit(const struct sr_dev_inst *sdi, - float current); -SR_PRIV gboolean zketech_ebd_usb_current_is0(struct dev_context *devc); - -SR_PRIV void zketech_ebd_usb_buffer_debug(const char *message, uint8_t buf[], size_t count); +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_uvc_threshold(const struct sr_dev_inst *sdi, float *voltage); +SR_PRIV int ebd_set_uvc_threshold(const struct sr_dev_inst *sdi, float voltage); +SR_PRIV gboolean ebd_current_is0(struct dev_context *devc); #endif