X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;h=de54630ffabe74c16f06f5b481aed1b1b07f2509;hb=6ad2fbaad2722f0aa18c3600cdbdddf812784b2d;hp=b1ab7a5bd6f6e04a06607c80017e8fc0d9473f73;hpb=c5d081f721a0d99e726596d4f8afe72cf803a576;p=libsigrok.git diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp index b1ab7a5b..de54630f 100644 --- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp +++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp @@ -283,7 +283,7 @@ public: /** Create an analog packet. */ shared_ptr create_analog_packet( vector > channels, - float *data_pointer, unsigned int num_samples, const Quantity *mq, + const float *data_pointer, unsigned int num_samples, const Quantity *mq, const Unit *unit, vector mqflags); /** Load a saved session. * @param filename File name string. */ @@ -333,7 +333,7 @@ public: set config_capabilities(const ConfigKey *key) const; /** Check whether a configuration capability is supported for a given key. * @param key ConfigKey to check. - * @param capability Capability to check for. */ + * @param capability Capability to check for. */ bool config_check(const ConfigKey *key, const Capability *capability) const; protected: Configurable( @@ -758,6 +758,8 @@ private: const struct sr_datafeed_logic *_structure; friend class Packet; + friend class Analog; + friend struct std::default_delete; }; /** Payload of a datafeed packet with analog data */ @@ -803,6 +805,34 @@ public: const Unit *unit() const; /** Measurement flags associated with the samples in this packet. */ vector mq_flags() const; + /** + * Provides a Logic packet that contains a conversion of the analog + * data using a simple threshold. + * + * @param threshold Threshold to use. + * @param data_ptr Pointer to num_samples() bytes where the logic + * samples are stored. When nullptr, memory for + * logic->data_pointer() will be allocated and must + * be freed by the caller. + */ + shared_ptr get_logic_via_threshold(float threshold, + uint8_t *data_ptr=nullptr) const; + /** + * Provides a Logic packet that contains a conversion of the analog + * data using a Schmitt-Trigger. + * + * @param lo_thr Low threshold to use (anything below this is low). + * @param hi_thr High threshold to use (anything above this is high). + * @param state Points to a byte that contains the current state of the + * converter. For best results, set to value of logic + * sample n-1. + * @param data_ptr Pointer to num_samples() bytes where the logic + * samples are stored. When nullptr, memory for + * logic->data_pointer() will be allocated and must be + * freed by the caller. + */ + shared_ptr get_logic_via_schmitt_trigger(float lo_thr, + float hi_thr, uint8_t *state, uint8_t *data_ptr=nullptr) const; private: explicit Analog(const struct sr_datafeed_analog *structure); ~Analog(); @@ -845,7 +875,7 @@ public: /** Description of this input format. */ string description() const; /** A list of preferred file name extensions for this file format. - * @note This list is a recommendation only. */ + * @note This list is a recommendation only. */ vector extensions() const; /** Options supported by this input format. */ map > options(); @@ -917,6 +947,8 @@ public: Glib::VariantBase default_value() const; /** Possible values for this option, if a limited set. */ vector values() const; + /** Parse a string argument into the appropriate type for this option. */ + Glib::VariantBase parse_string(string value); private: Option(const struct sr_option *structure, shared_ptr structure_array); @@ -939,7 +971,7 @@ public: /** Description of this output format. */ string description() const; /** A list of preferred file name extensions for this file format. - * @note This list is a recommendation only. */ + * @note This list is a recommendation only. */ vector extensions() const; /** Options supported by this output format. */ map > options();