X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Ficstation-usbrelay%2Fprotocol.h;h=bcf9dd07021593e64d2b90aa9c55704acb9fcf66;hb=48385ca229bee3e267108b7cc8ab3c99edaf77a4;hp=3c8319d600723f1092a16c7c946c736e59f736f8;hpb=dfa92ad4118c63a703e5433a89b26fb8c3b69c40;p=libsigrok.git diff --git a/src/hardware/icstation-usbrelay/protocol.h b/src/hardware/icstation-usbrelay/protocol.h index 3c8319d6..bcf9dd07 100644 --- a/src/hardware/icstation-usbrelay/protocol.h +++ b/src/hardware/icstation-usbrelay/protocol.h @@ -1,7 +1,7 @@ /* * This file is part of the libsigrok project. * - * Copyright (C) 2021 Frank Stettner + * Copyright (C) 2021-2023 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 @@ -20,16 +20,43 @@ #ifndef LIBSIGROK_HARDWARE_ICSTATION_USBRELAY_PROTOCOL_H #define LIBSIGROK_HARDWARE_ICSTATION_USBRELAY_PROTOCOL_H -#include #include #include +#include + #include "libsigrok-internal.h" #define LOG_PREFIX "icstation-usbrelay" +/* Known models. */ +enum icstation_model { + ICSE012A = 1, + ICSE013A, + ICSE014A, +}; + +/* Supported device profiles */ +struct ics_usbrelay_profile { + enum icstation_model model; + uint8_t id; + const char *modelname; + size_t nb_channels; +}; + struct dev_context { + size_t relay_count; + uint8_t relay_mask; + uint8_t relay_state; +}; + +struct channel_group_context { + size_t index; }; -SR_PRIV int icstation_usbrelay_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int icstation_usbrelay_identify(struct sr_serial_dev_inst *serial, + uint8_t *id); +SR_PRIV int icstation_usbrelay_start(const struct sr_dev_inst *sdi); +SR_PRIV int icstation_usbrelay_switch_cg(const struct sr_dev_inst *sdi, + const struct sr_channel_group *cg, gboolean on); #endif