Hi, This is AJAX to flask server project. For more info about this project I have a couple postings about it here, please see link-1 <https://python-forum.io/Thread-How-to-control-frequency-sampling-rate-my-dial-tone-through-AJAX-to-flask-server#message> link-2 <https://python-forum.io/Thread-I-am-having-a-problem-with-my-Slider>
When I run the python code in the terminal I get the TypeError: 'top_block_22' object is not callable error. The program starts running without problems, but once I start moving the slider the program will give that error. More details: This is AJAX to flask server project. I created a 'Slider' folder inside Flask directory : /home/fit-pc/my_flask_app/virtualenv/Slider. In this folder I have Templates and Static folders. Inside Templates folder I have my index.html file (see below). This index.html file had the script for the roundSlider widget that I am trying to use to control some variable value inside my python code 'top_block_22.py'. My main python code is in the main Slider folder. Static folder is just empty. Please, I need your help to solve this problem. error log: fit-pc@fitpc-fitlet2:~$ python /home/fit-pc/my_flask_app/virtualenv/Slider/ top_block_22.py * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 269-962-008 127.0.0.1 - - [26/Jul/2019 11:20:11] "GET / HTTP/1.1" 200 - gr::log :INFO: audio source - Audio sink arch: alsa 127.0.0.1 - - [26/Jul/2019 11:20:15] "GET /valueofslider?slide_val=903 HTTP/1.1" 500 - Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1997, in __call__ return self.wsgi_app(environ, start_response) File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1985, in wsgi_app response = self.handle_exception(e) File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1540, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1615, in full_dispatch_request return self.finalize_request(rv) File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1630, in finalize_request response = self.make_response(rv) File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1740, in make_response rv = self.response_class.force_type(rv, request.environ) File "/usr/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 921, in force_type response = BaseResponse(*_run_wsgi_app(response, environ)) File "/usr/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 59, in _run_wsgi_app return _run_wsgi_app(*args) File "/usr/lib/python2.7/dist-packages/werkzeug/test.py", line 923, in run_wsgi_app app_rv = app(environ, start_response) TypeError: 'top_block_22' object is not callable And here is the Python 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 class top_block_22(gr.top_block): def __init__(self, slide_val): self.slide_val = slide_val 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)) app = Flask(__name__) @app.route('/') def hex_color(): return render_template("index.html") @app.route('/valueofslider') def slide(): slide_val = request.args.get('slide_val') return top_block_22(slide_val) def main(top_block_cls=top_block_22, options=None): tb = top_block_cls() tb.start() try: raw_input('Press Enter to quit: ') except EOFError: pass tb.stop() tb.wait() samp_rate = int(slide_val) + 100 print(samp_rate) return(slide_val) # Still need to return or get TypeError if __name__ == '__main__': app.run(debug=True) And this is the index.html script: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery roundSlider - JS Bin</title> <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 --> <div id="slider"></div> <script> var val; $("#slider").roundSlider({ radius: 215, min: 0, max: 40000, change: function () { var obj1 = $("#slider").data("roundSlider"); val = obj1.getValue(); value: 1 $.getJSON('/valueofslider', { slide_val: val }); } }); </script> </body> -- https://mail.python.org/mailman/listinfo/python-list