Python Forum
wbserver roundSlider widget doesn't start/update audio tone program
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
wbserver roundSlider widget doesn't start/update audio tone program
#2
I have a "dial tone" python program that is imported into a Falsk webserver, and I have an html embedded roundSlider widget that I am trying to use to update the sample rate variable values inside dial tone program. Once I run the webserver and start dragging the slider, visually the value of the slider does update/change when dragging it, but there is no tone, the tone program doesn't start!

Please, I need your help to figure this out.

Here is my flask app.py:

from flask import Flask, render_template, jsonify, request,redirect,url_for
    from random import randint
    from top_block_22 import top_block_22
      
    app = Flask(__name__)
    # def test():
    #     print("its working") 
    @app.route('/')
    def slide_func():
        return render_template("index.html")
        print(slide_val)
        return(slide_val)
    def test():
        print("its working")
    
    @app.route('/valueofslider')
    def slide():
        slide_val = request.args.get('slide_val')
        return main(slide_val)   
    
    def main(slide_val):
    
        tb = top_block_22()
        tb.start()
        samp_rate = int(slide_val) + 100
        print(samp_rate)
        return(slide_val)  
        app.debug = True
    if __name__ == '__main__':
        app.run(debug=True)
Main dial tone code:

from gnuradio import analog
from gnuradio import audio

    from gnuradio import blocks
    from gnuradio import eng_notation
    from gnuradio import gr
    from gnuradio.eng_option import eng_option
    from gnuradio.filter import firdes
    from optparse import OptionParser
    from flask import Flask, render_template, jsonify, request, redirect, url_for
    from random import randint
    #from app import *
    
       
    
    
    
    class top_block_22(gr.top_block):
    
        def __init__(self, samp_rate):

            gr.top_block.__init__(self, "Top Block 22")        
            ##################################################
            # Variables
            ##################################################
            self.samp_rate = samp_rate = 32000
    
            ##################################################
            # Blocks
            ##################################################
            self.blocks_add_xx = blocks.add_vff(1)
            self.audio_sink = audio.sink(32000, '', True)
            self.analog_sig_source_x_1 = analog.sig_source_f(samp_rate, analog.GR_COS_WAVE, 440, 0.4, 0)
            self.analog_sig_source_x_0 = analog.sig_source_f(samp_rate, analog.GR_COS_WAVE, 350, 0.4, 0)
            self.analog_noise_source_x_0 = analog.noise_source_f(analog.GR_GAUSSIAN, 0.005, -42)
    
            ##################################################
            # Connections
            ##################################################
            self.connect((self.analog_noise_source_x_0, 0), (self.blocks_add_xx, 2))
            self.connect((self.analog_sig_source_x_0, 0), (self.blocks_add_xx, 0))
            self.connect((self.analog_sig_source_x_1, 0), (self.blocks_add_xx, 1))
            self.connect((self.blocks_add_xx, 0), (self.audio_sink, 0))
    
       
    
    def main(top_block_cls=top_block_22, options=None):
       
     
        tb = top_block_22('samp_rate')
        
        tb.start()
        try:
            raw_input('Press Enter to quit: ')
        except EOFError:
            pass
        tb.stop()
        tb.wait()
    
    
    if __name__ == '__main__':
            main()
index.html script:

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>jQuery roundSlider - JS Bin</title>
      <link rel="icon" href="data:,">
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <link href="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.3.2/roundslider.min.css" rel="stylesheet" />
      <script src="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.3.2/roundslider.min.js"></script>
    </head>
    <body>
      <!-- Only html needed   -->
    <form class="form-inline" method="POST" action="{{ url_for('slide') }}">
      <div id="slider"></div>
    
      <script>
        var val;
        $("#slider").roundSlider({
          radius: 215,
            min: 0,
            max: 100000,
           change: function () {
    
            var obj1 = $("#slider").data("roundSlider");
            val = obj1.getValue();
            value: 10
            $.getJSON('/valueofslider', {
              slide_val: val
            });
          }
        });
      </script>
    </body>
    </html>
Here is an image of the slider when its updating its values:

[Image: MEc6Qv.png]
Reply


Messages In This Thread
wbserver roundSlider widget doesn't start/update audio tone program - by Hadad - Aug-01-2019, 03:06 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020