On Fri, Aug 28, 2015 at 12:49 PM, Washbourne, Logan <
lwas...@ostatemail.okstate.edu> wrote:

> Hello All,
>
> I recently rewrote the Chat Sanitize and Chat Receiver blocks from the
> Tutorial module(Example 5) in C++. I did this because I wanted to add an
> acknowledgment feature into the blocks in order to add some robustness to
> it(I'm not sure yet if the chat example will lend itself to being robust
> but it was the starting point I chose). The problem arose when I added an
> input port to the Text Sanitize block and added an output to the Chat
> Receiver block and connected them together. Instead of a linear program I
> now had a loop of a program. I did something wrong because now the Text
> Sanitize block wasn't outputting anything, so I commented out the input
> code for Text Sanitize and the output code for Chat Receiver. I went to
> retest the program to see if it behaved just like Example 5(which it was
> before I started adding on the acknowledgment bits) but now Text Sanitize
> wasn't outputting anything still.
>
> I tried putting some cout's in the general _work function where the
> message publishing code is and I have determined that it's not even
> entering the general_work function.
>
> Does anyone have any thoughts on the matter? I must have changed something
> when I commented out the input portion of the Text_Sanitize code but for
> the life of me I can't figure out what it is. I have even since made two
> new blocks to try and redo the functionality of Text Sanitize but the same
> problem still persists.
>


So this will be a good lesson in using git! It's good to keep small,
quantified changes in git so that you know where you are versus where you
started when making a change. "git diff" is your friend here. Lots of ways
to use this tool to help in your development cycle.

(Also, looking at your git repo, you've checked in the '~' temp files from
your editor [emacs I assume]. You don't want any temp or auto-generated
files in a git repository; just stuff that you've created that needs to be
tracked.)

The problem is that this block is designed only to output messages, not a
data stream. You can see in the constructor that the io_signature is using
(0, 0, 0) for both inputs and outputs. The scheduler doesn't recognize this
block in the stream and so never things to call the general_work. The
original blocks you are referring to only have message interfaces.

Hope this helps get you in the right direction.


Tom




> My code can be found at: https://github.com/loganwashbourne/Thesis.git
>
> The juicy files are in the Thesis/OOT/gr-ACK/lib folder.
>
> There might be some profanity in the commit messages, it was a stressful
> day.
>
> I appreciate your time,
>
> Logan Washbourne
> Electrical Engineering Graduate Student
> (Electromagnetics)
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to