The GRC start button is disabled if validation on blocks and connections
fails. You could force validation to fail by requiring a certain condition
in a yml file. For example, you can specify that a field is non-zero. It is
possible you could wire some expression related to student progress into a
block with a dependent variable ... as long as the student doesn't just
disable the block doing the validation.

There's a PR to add a hyperlink to the doc tab on the block properties
dialog. It doesn't seem like it would be too hard to put a field somewhere
in a Note block. GRC doesn't know that a Note is different than any other
block. How would you have it work? Clicks are used for all kinds of things,
so it can't just be a click on the block.

Your ideas are great, not pushy! Sometimes there's an easier way to do
things than to change the app, and GRC only gets a fraction of a developer
worth of time. It's largely due to GRC (and distro packaging) that so many
new users are trying out GNU Radio.

On Sat, Nov 14, 2020 at 2:54 PM Kristoff <krist...@skypro.be> wrote:

> Hi Jeff,
>
>
>
>
>
>
> For item 1 and 2.
>
> Yep. I just did some more tests and I agree. I think I will just create
> one giant tarball with all the GRCs, i/q files and perhaps other stuff,
> and then run grc with the names of all the *grc-files. That should do
> the trick.
>
> Good idea. Thx!
>
>
>
> For item 3, well I did say that was probably the most difficult thing,
> didn't I? :-)
>
> I got my idea based on how the 'start' button operates in GRC.
> That button is only enabled if the flow meets certain criteria. There
> seams to be some kind of test that is done every time you change the
> flowgraph, which enables or disabled the start button,
>
>
> I do not know the coding logic behind gnuradio-companion, not what gtk
> can provide for this, but I was wondering if this idea could also be
> applied the same logic to a complete tab: do a test and -if it fails-
> disable the flowgraph in that tab. (i.e. hide or disable all blocks)
>
>
> But, I guess this would require two additional elements:
> - the test will need to be based on rules that are provided by the
> flowgraph
> - the test should be able to access resources from tabs. (e.g. the test
> for "tab2" could be "tab1.var.sampl_rate.value == 1200")
>
> As said, I have never worked with gtk, so I have no idea if this is
> possible.
>
>
> Just out of interest.
> How to the test to determine if the 'start' button is enabled actually
> work?
> I guess there must be some mechanism that parses the structure of the
> flow-graph and then perform some tests on that to check if it is ok?
>
>
>
> Note, please do not  get me wrong. I do not want to be 'pushy'. I'm just
> trying to view this from an "education" point of view.
>
> I have now given a number of GNU Radio demo's. I started out with
> "standard" presentation: I-as presenter-  demonstrate a GNU Radio flow
> and that the audience just needs to "watch and understand".
> All very nice, except that, ... most people had already forgotten almost
> everything 5 minutes after the demonstration had ended. If people do not
> need to do or think themself, they are simply not sufficient engaged and
> -although they do get an idea of GNU Radio can do- the actual process of
> creating a flow-graph does not stick.
> That is why I started looking into CTFs and now also this
> "getting-started" workshop.
>
> So, let's then conciser a "howto" or a "workshop" that people can do by
> themself by downloading it from the web, things become even more
> difficult as there is not even a teacher to help them.
> If you create a "howto" and just provide people with a number of
> flow-graphs, even a separate GRC for every step, I see very little
> incentive for people not immediately go to the final GRC and try at the
> end-result as soon as they hits a snag.
> For that reason, I am more a fan of the model of -say- jupyter notebooks
> where people are forced to follow the complete flow of the training,
> step by step,  and cannot just jump to the end of the training.
>
> So, in fact,  I am trying to figure out who to create the forced
> step-by-step learning model of a jupyter notebook, using GRC.
>
>
>
>
> Concerning item 4:
> Is it possible in gtk that, if a part of the text in a note-block is a
> URL (https://...), that GRC would starts a web browser if people click
> on it?
>
> It would be nice to be able to incorporate external references (e.g. a
> video) in the notes of a flow-graph.
>
>
>
> 73
> kristoff - ON1ARF
>
>
>
> On 14/11/2020 17:21, Jeff Long wrote:
> > Looking for the simplest (maybe not the best) solution:
> >
> > Item1 - A shell/batch script could run gnuradio-companion 1.grc 2.grc
> > 3.grc
> >
> > Item 2 - files can be relative, e.g, ./sample.iq <http://sample.iq>.
> > So, if you tar or zip the grc files and the sample files, everything
> > should be runnable from a single directory, no searching around required.
> >
> > Item 3 - I think this is pretty far out of scope for GRC.
> >
> > On Sat, Nov 14, 2020 at 11:15 AM Kristoff <krist...@skypro.be
> > <mailto:krist...@skypro.be>> wrote:
> >
> >     HI all,
> >
> >     Yesterday-evening, we did a small workshop 'getting started to GNU
> >     Radio
> >     for CTFs', to 'kickstart' some people using GNU Radio.
> >
> >
> >     Afterwards, I was thinking that workshops do take up quite a bit of
> >     time, and not every student has time to do a workshop during the
> >     timeslot that is there is a teacher available; so perhaps we can
> >     also do
> >     this in another way.
> >
> >     One thing -I think- would help for this, is the possibility to create
> >     'interactive getting started guides' for GR. That way, we should
> >     be able
> >     to reach more people.
> >
> >     The idea I have in mind is to create 'interactive learning-flows'. To
> >     allow people to learn GNU Radio -step by step- how to use GRC, how to
> >     analyse a CTF, how to create signals, ...
> >
> >
> >     The model is a 'learning-flow', a course is divided into multiple GRC
> >     flow-graphs, and where every 'tab' on GRC is the next step in
> >     process to
> >     build/ explain/ ... a GRC flow-graph.
> >     - GRC tab 1: option-block + 'samp_rate' var block + file source
> >     - GRC tab 2: option-block + 'samp_rate' var block + file source +
> >     throttle-block
> >     - GRC tab 3: option-block + 'samp_rate' var block + file source +
> >     throttle-block + QT time sink
> >     - GRC tab 3: option-block + 'samp_rate' var block + file source +
> >     throttle-block + complex-to-amp2 + QT time sink
> >     (...)
> >
> >
> >
> >     So, my question. Could it be possible to change / enhance  GRC a
> >     little
> >     it to make it better suited for creating this kind of interactive
> >     learning courses?
> >
> >     (Perhaps some of the things noted below are already possible. So
> >     please
> >     excuse my ignorance)
> >
> >
> >     Find below  some 'feature-requests' for GRC that I think would
> >     help to
> >     make this possible (or at least, more easy):
> >
> >     1. GRC has the ability to use tabs, multiple flowgraphs loaded
> >     into GRC.
> >     However, every flowgraph is independent, and you can can load/save
> >     every
> >     one of them independently.
> >
> >     Would it be possible to create the concept of a 'flowgraph
> >     bundle', i.e.
> >     a number of flowgraphs that are groups together, and that are
> >     combined
> >     in one file.
> >
> >     When you load the 'bundle', all flow-graphs will be loaded at
> >     different
> >     tabs of GRC, in a predefined order as documented in the bundle.
> >
> >
> >
> >     2. Most workshops / how-tos use files. (e.g. i/q files)
> >
> >     Currently, this means that you must distribute that i/q file
> >     separately,
> >     and you must tell the user 'now point the file-sink block to the i/q
> >     file you have downloaded. It can be in Downloads, or in documents,
> >     or in
> >     your home-folder so look around if you do not find it immediately'.
> >
> >     This is kind-of OK in a real 'live' workshop, but -I think- not
> >     what you
> >     would want in a learning-project somebody has downloaded from the
> >     internet and doing this without the 'live' aid of a teacher.
> >
> >
> >     So, considering the bundles mentioned about, would it be possible to
> >     have them also include -say- an i/q  files?
> >     When the user loads a bundle into GRC, this should then also place
> >     that
> >     the i/q file in a predefined location on the computer of the student.
> >
> >     - The goal would be to be able to pre-configure the file-source block
> >     in such a way that it will find that I/q file, no matter what the
> >     directory-structure of the user's computer might be.
> >     - And it would make distributing a learning-flow a lot easier as you
> >     only have to distribute one single file.
> >
> >
> >     3/ (This is probably a lot more difficult)
> >     To create a real 'step by step' flow, it would be interesting that
> >     the
> >     student can only access a certain tab (i.e. a step in the learning
> >     path), when the flow-graph of the previous tab has been 'finished'
> >
> >     To give an example:
> >
> >       Tab 1: options block, variable block 'samp-rate' and file-source
> >     block
> >     + a "note" block with this text:
> >
> >     - "when loading a file into GRC, the data-type of the file-source
> >     output
> >     port should  corresponds to the signal in the file.
> >     The example-file has the extension 'iq', so the datatype is
> >     'complex'.
> >     Change the datatype of the file-source block to the correct setting"
> >
> >     - "One of the most important features of a stream is it
> >     sample-rate. The
> >     example-file is called file1_48000sps.iq <http://file1_48000sps.iq>
> >     What is the sample-rate of the signal in that file. Set the variable
> >     samp_rate to the correct value"
> >
> >
> >     Only when those two conditions are met, then the student should be
> >     able
> >     to access the 2nd tab.
> >
> >
> >     Tab 2:
> >
> >     Comment block "When creating a GRC without any actual hardware,
> >     you need
> >     to add a throttle-block. If not, GRC will use all CPU-cycles of your
> >     computer when run. Please add a throttle-block after the file-source
> >     block, connect these two blocks and then go to tab3."
> >
> >     ...
> >
> >     (But I guess that this kind of requirement is a lot harder then
> >     points 1
> >     and 2 above).
> >
> >
> >     4/ Can you please make the 'note' block larger, and to allow multiple
> >     lines of text?
> >
> >     Currently, it is quite small, so it is not really possible to add the
> >     kind of comments (see 3/ above) to the graph.
> >
> >     What would also be nice is the ability to add URLs in the note
> blocks.
> >     This would allow the note to link to -say- a video: " Change the
> >     datatype of the file-source block to the correct setting. Click
> >     here for
> >     a video on the different data-types used in GNU Radio"
> >
> >
> >
> >     I know that some of these feature-requests are probably not that
> easy.
> >     But as the quite steep learning-curve of GNU Radio is the main reason
> >     people are scared away from GR, I do think that providing a good
> >     learning-tool can be one of the best ways to get the, over that
> >     hurdle.
> >
> >
> >
> >     73
> >
> >     kristoff - ON1ARF
> >
> >
>
>
>

Reply via email to