X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fteleinfo%2Fprotocol.h;h=f95c50eba16e69ced766a583b762c0b6974c1a32;hb=3544f848e0d7f67af8e11ce7ec344b34cd797df3;hp=3485d1068967800892b717cb17451e8a2f25c900;hpb=8e796cb438a80c6bcab5d44afaae0c74d757b673;p=libsigrok.git diff --git a/hardware/teleinfo/protocol.h b/hardware/teleinfo/protocol.h index 3485d106..f95c50eb 100644 --- a/hardware/teleinfo/protocol.h +++ b/hardware/teleinfo/protocol.h @@ -25,27 +25,37 @@ #include "libsigrok.h" #include "libsigrok-internal.h" -/* Message logging helpers with subsystem-specific prefix string. */ -#define LOG_PREFIX "teleinfo: " -#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args) -#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args) -#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args) -#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args) -#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args) -#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args) +#define LOG_PREFIX "teleinfo" + +enum optarif { + OPTARIF_NONE, + OPTARIF_BASE, + OPTARIF_HC, + OPTARIF_EJP, + OPTARIF_BBR, +}; + +#define TELEINFO_BUF_SIZE 256 /** Private, per-device-instance driver context. */ struct dev_context { - /* Model-specific information */ - /* Acquisition settings */ + uint64_t limit_samples; /**< The sampling limit (in number of samples). */ + uint64_t limit_msec; /**< The time limit (in milliseconds). */ + void *session_cb_data; /**< Opaque pointer passed in by the frontend. */ /* Operational state */ + enum optarif optarif; /**< The device mode (which mesures are reported) */ + uint64_t num_samples; /**< The number of already received samples. */ + int64_t start_time; /**< The time at which sampling started. */ /* Temporary state across callbacks */ - + uint8_t buf[TELEINFO_BUF_SIZE]; + int buf_len; }; +SR_PRIV gboolean teleinfo_packet_valid(const uint8_t *buf); SR_PRIV int teleinfo_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int teleinfo_get_optarif(const uint8_t *buf); #endif