Ok a correction
I declared it like this inside the constellations.h , now I am waiting for
the compilation to finish
class DIGITAL_API constellation_bpsk : public constellation
{
public:
typedef boost::shared_ptr<constellation_bpsk> sptr;
// public constructor
static sptr make();
~constellation_bpsk();
unsigned int decision_maker(const gr_complex *sample);
* float decision_maker_soft(const gr_complex *sample);*
protected:
constellation_bpsk();
};
On 19 January 2018 at 15:08, sumit kumar <[email protected]> wrote:
> Ok, so shall I do like this :
>
> In the file /gnuradio/gr-digital/include/gnuradio/digital/constellations.h
> under public section I declare my function as follows
>
> *class DIGITAL_API constellation*
> * : public boost::enable_shared_from_this<constellation>*
> * {*
> * public:*
>
> *float decision_maker_soft(const gr_complex *sample) = 0;*
>
> *}*
>
> and In the file /gnuradio/gr-digital/lib/constellations.cc I add this
>
> * float*
> * constellation_bpsk::decision_maker_soft(const gr_complex *sample)*
> * {*
> * return (-4*real(*sample)); // LLR for BPSK*
> * }*
>
>
> After this I recompile gnuradio and then recompile gr-ieee-80211.. right ?
>
> On 19 January 2018 at 14:51, Michael Dickens <[email protected]>
> wrote:
>
>> The GR constellation programming uses a base class that defines the API
>> that will be SWIG-ified back into Python. So the base class must contain
>> your "*decision_maker_soft" *method. Then you overload it for any
>> inheriting class such as "constellation_bpsk". Hope this helps! - MLD
>>
>> On Fri, Jan 19, 2018, at 8:43 AM, sumit kumar wrote:
>>
>> Actually I have to test it in a interference limited environment, I guess
>> the soft demodulate will be needed. I saw your blog post about how you
>> cleverly used your won constellations https://www.bas
>> tibl.net/constellation-objects/
>>
>> However when I try doing something like that, I get errors.
>>
>> For example, I defined my own function decision_maker_soft inside
>> constellations_impl.h as follows
>>
>> class constellation_bpsk_impl : public constellation_bpsk
>> {
>> public:
>> constellation_bpsk_impl();
>> ~constellation_bpsk_impl();
>>
>> unsigned int decision_maker(const gr_complex *sample);
>> *float decision_maker_soft(const gr_complex *sample);*
>> };
>>
>> and then defined it in constellation_impl.cc as
>>
>> float
>> constellation_bpsk_impl::decision_maker_soft(const gr_complex *sample) {
>> return (-4*real(*sample));
>> }
>>
>> But when I call my function like this
>>
>> mod->decision_maker_soft from ls.cc (least square equalizer cc file), it
>> says mod object has no member decision_maker_soft
>>
>> Why does *mod* object not look my decision_maker_soft as it is a method
>> of constellation_bpsk_impl ??
>>
>> What am I missing here ?
>>
>> I thought that mod object is looking your decision_maker inside
>> constellations_impl, it shud see mine too...
>>
>>
>>
>
>
> --
> Sumit Kumar
>
>
>
--
Sumit Kumar
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio