logger.addHandler(file) try: config = Config() secret_key = config.read("secret_key") if not secret_key: secret_key = "".join( random.choice(string.ascii_uppercase + string.digits) for _ in range(16)) config.write("secret_key", secret_key) app.secret_key = secret_key Storage().init() sockets = socketio.Server() app.wsgi_app = socketio.Middleware(sockets, app.wsgi_app) sockets.register_namespace(Backend()) if __name__ == "__main__": if not app.debug: def open_in_browser(): logging.info("Application is starting...") url = "http://127.0.0.1:" + str(port) while True: try: request.urlopen(url=url) break except Exception: time.sleep(0.5)
if(speed > MAX_SPEED): limit = MIN_SPEED else: limit = MAX_SPEED steering_angle = float(model.predict(image, batch_size=1)) throttle = 1.0 - steering_angle**2 - (speed/limit)**2 #------------------ only for track 2 ------------------ steering_angle *= 1.5 throttle = np.clip(1.0 - abs(steering_angle) - (speed/limit)**2, -1.0, 1.0) if(speed < 0.4): throttle = - throttle elif(speed < 4): print('ENTROU') throttle = min(throttle + 0.3, 0.9) #------------------ print('{} {} {}'.format(steering_angle, throttle, speed)) send_control(steering_angle, throttle) else: server.emit("manual", data={}, skip_sid=True) if __name__ == '__main__': model = load_model("models/track2_30_epochs_BN.h5") app = socketio.Middleware(server, app) eventlet.wsgi.server(eventlet.listen(('', 4567)), app)
@SIO.on('connect') def on_connect(sid, data): print('user connected ' + sid) @SIO.on('handleLatLng') def on_handleLatLng(sid, data): coordinates = (data.get('lat'), data.get('lng')), location_info = reverse_geocode.search(coordinates)[0] country = location_info.get('country') try: country_info = CountryInfo(country).info() except: country_info = 'Unknow Country' SIO.emit('country_info', { 'country_info': country_info, 'location_info': location_info }, room=sid) @SIO.on('disconnect') def on_disconnect(sid): print('disconnect ' + sid) if __name__ == '__main__': APP = socketio.Middleware(SIO, APP) eventlet.wsgi.server( eventlet.listen((SERVER.get('host'), SERVER.get('port'))), APP)
if not args.nginx: nginx = RemoteComponent(config['NGINX']['address'], config['NGINX']['port'], [Nginx]) manager = Manager(server, nginx, monitor) modules.append(manager) # Create our flask application application = create_app() if args.web: application.register_blueprint(user_bp) application.register_blueprint(admin_bp, url_prefix='/admin') sockio = create_sio() wrap = socketio.Middleware(sockio, application) counts = gevent.spawn(sio_counts, sockio) try: l.info("+------------------------------------------------------+") l.info("| Service running. Use Ctrl-C to terminate gracefully. |") l.info("+------------------------------------------------------+") if args.web: service = wsgi.WSGIServer( (config['REMU']['address'], int(config['REMU']['port'])), wrap, log=None) else: service = wsgi.WSGIServer(
def drive_sim_car(model, path_images_save, set_speed): """ Function wrapper to make script callable. Inputs ---------- model: Keras sequential model Keras model object path_images_save: str Path specifying where recorded images should be saved. set_speed: int Initial speed value for the simulator. Outputs ------- N/A """ sio = socketio.Server() class SimplePIController: def __init__(self, Kp, Ki): self.Kp = Kp self.Ki = Ki self.set_point = 0. self.error = 0. self.integral = 0. def set_desired(self, desired): self.set_point = desired def update(self, measurement): # proportional error self.error = self.set_point - measurement # integral error self.integral += self.error return self.Kp * self.error + self.Ki * self.integral @sio.on('telemetry') def telemetry(sid, data): if data: # The current steering angle of the car steering_angle = data["steering_angle"] # The current throttle of the car throttle = data["throttle"] # The current speed of the car speed = data["speed"] # The current image from the center camera of the car imgString = data["image"] image = Image.open(BytesIO(base64.b64decode(imgString))) image_array = np.asarray(image) # Prepare image for use by a model image_array = prepare_image(image_array) steering_angle = float( model.predict(image_array[None, :, :, :], batch_size=1)) throttle = controller.update(float(speed)) # Slow down on hard turns. if abs(steering_angle) >= 0.55: throttle = 0.1 print(steering_angle, throttle) send_control(steering_angle, throttle) # save frame if path_images_save != '': timestamp = datetime.utcnow().strftime( '%Y_%m_%d_%H_%M_%S_%f')[:-3] image_filename = path_join(path_images_save, timestamp) image.save('{}.jpg'.format(image_filename)) else: # NOTE: DON'T EDIT THIS. sio.emit('manual', data={}, skip_sid=True) @sio.on('connect') def connect(sid, environ): print("connect ", sid) send_control(0, 0) def send_control(steering_angle, throttle): sio.emit("steer", data={ 'steering_angle': steering_angle.__str__(), 'throttle': throttle.__str__() }, skip_sid=True) app = Flask(__name__) controller = SimplePIController(0.1, 0.002) controller.set_desired(set_speed) # Wrap Flask application with engineio's middleware app = socketio.Middleware(sio, app) # Deploy as an eventlet WSGI server eventlet.wsgi.server(eventlet.listen(('', 4567)), app)
def send_control(steering_angle, throttle, cmd=None): if cmd is None: sio.emit("steer", data={ 'steering_angle': str(steering_angle), 'throttle': str(throttle) }, skip_sid=True) else: sio.emit("restart", data={}, skip_sid=True) print('restart') car = Car(control_function=send_control) drive = AutoDrive(car, car_training_data_collector, args.record) @sio.on('telemetry') def telemetry(sid, dashboard): if dashboard: car.on_dashboard(dashboard) else: sio.emit('manual', data={}, skip_sid=True) @sio.on('connect') def connect(sid, environ): # First time connect to car and environment car.control(0, 0) app = socketio.Middleware(sio, Flask(__name__)) eventlet.wsgi.server(eventlet.listen(('', 4567)), app) # vim: set sw=4 ts=4 et :
def run(self): app = Flask(__name__) app.wsgi_app = socketio.Middleware(self._socket, app.wsgi_app) app.run(threaded=True, host=os.environ.get('SOCKET_SERVER_HOST'), port=int(os.environ.get('SOCKET_SERVER_PORT')))
def __setup_app(): """ Setup the flask application handler """ global __app __app = socketio.Middleware(__socketio_app, __flask_app)
SIO.emit("pickup", pickup, skip_sid=True) def exit_handle(): global GAME_ENV ROVER_REPLAY.flush() atexit.register(exit_handle) if __name__ == '__main__': assert len(sys.argv) >= 3, \ 'usage: python drive_rover.py experiment_dir save_replay=[True or False]' EXPERIMENT_DIR = sys.argv[1] if sys.argv[2].lower() == 'true': ROVER_REPLAY = RoverReplay(os.path.join(EXPERIMENT_DIR, 'replay')) config = os.path.join(EXPERIMENT_DIR, 'agent_spec.cfg') config = RoverConfig(config_path=config) WITH_SAMPLE_LOCATION, WITH_MAP = config.with_sample_location, config.with_map ROVER_AGENT = RoverAgent(config, debug=False) FLASK_APP = socketio.Middleware(SIO, FLASK_APP) eventlet.wsgi.server(eventlet.listen(('', 4567)), FLASK_APP)
def __init__(self, config, mongo): self.app = Flask(__name__) self.app.config['yada_config'] = config self.app.config['yada_mongo'] = mongo self.app.debug = True self.app.secret_key = '23ljk2l9a08sd7f09as87df09as87df3k4j' CORS(self.app, supports_credentials=True) endpoints.BaseGraphView.get_base_graph = self.get_base_graph self.app.add_url_rule( '/transaction', view_func=endpoints.TransactionView.as_view('transaction'), methods=['GET', 'POST']) self.app.add_url_rule('/get-graph-info', view_func=endpoints.GraphView.as_view('graph'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-sent-friend-requests', view_func=endpoints.GraphSentFriendRequestsView.as_view( 'graphsentfriendrequests'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-friend-requests', view_func=endpoints.GraphFriendRequestsView.as_view( 'graphfriendrequests'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-friends', view_func=endpoints.GraphFriendsView.as_view('graphfriends'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-posts', view_func=endpoints.GraphPostsView.as_view('graphposts'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-messages', view_func=endpoints.GraphMessagesView.as_view('graphmessages'), methods=['GET', 'POST']) self.app.add_url_rule('/get-graph-new-messages', view_func=endpoints.GraphNewMessagesView.as_view( 'graphnewmessages'), methods=['GET', 'POST']) self.app.add_url_rule( '/get-graph-comments', view_func=endpoints.GraphCommentsView.as_view('get-comments'), methods=['POST']) self.app.add_url_rule( '/get-graph-reacts', view_func=endpoints.GraphReactsView.as_view('get-reacts'), methods=['POST']) self.app.add_url_rule( '/get-graph-wallet', view_func=endpoints.RidWalletView.as_view('get-wallet')) self.app.add_url_rule('/wallet', view_func=endpoints.WalletView.as_view('wallet')) self.app.add_url_rule('/faucet', view_func=endpoints.FaucetView.as_view('faucet')) self.app.add_url_rule( '/pool', view_func=endpoints.MiningPoolView.as_view('pool')) self.app.add_url_rule( '/pool-submit', view_func=endpoints.MiningPoolSubmitView.as_view('poolsubmit'), methods=['GET', 'POST']) self.app.add_url_rule( '/pool-explorer', view_func=endpoints.MiningPoolExplorerView.as_view( 'pool-explorer')) self.app.add_url_rule( '/get-block', view_func=endpoints.GetBlockByHashView.as_view('get-block'), methods=['GET']) self.app.add_url_rule( '/getblockheight', view_func=endpoints.GetBlockHeightView.as_view('get-block-height')) self.app.add_url_rule( '/newtransaction', view_func=endpoints.NewTransactionView.as_view('new-transaction'), methods=['POST']) self.app.add_url_rule( '/newblock', view_func=endpoints.NewBlockView.as_view('new-block'), methods=['POST']) self.app.add_url_rule( '/get-blocks', view_func=endpoints.GetBlocksView.as_view('get-blocks-range')) self.app.add_url_rule( '/create-raw-transaction', view_func=endpoints.CreateRawTransactionView.as_view( 'create-raw-transaction'), methods=['POST']) self.app.add_url_rule( '/sign-raw-transaction', view_func=endpoints.SignRawTransactionView.as_view( 'sign-raw-transaction'), methods=['POST']) self.app.add_url_rule( '/generate-wallet', view_func=endpoints.GenerateWalletView.as_view('generate-wallet')) self.app.add_url_rule( '/generate-child-wallet', view_func=endpoints.GenerateChildWalletView.as_view( 'generate-child-wallet'), methods=['POST']) self.app.add_url_rule( '/explorer-search', view_func=endpoints.ExplorerSearchView.as_view('explorer-search')) self.app.add_url_rule( '/get-latest-block', view_func=endpoints.GetLatestBlockView.as_view('get-latest-block')) self.app.add_url_rule( '/register', view_func=endpoints.RegisterView.as_view('register')) self.app.add_url_rule( '/create-relationship', view_func=endpoints.CreateRelationshipView.as_view( 'create-relationship'), methods=['POST']) self.app.add_url_rule('/post-fastgraph-transaction', view_func=endpoints.PostFastGraphView.as_view( 'post-fastgraph-transaction'), methods=['POST']) self.app.add_url_rule( '/yada_config.json', view_func=endpoints.GetYadaConfigView.as_view('yada-config')) self.app.add_url_rule( '/login', view_func=endpoints.GetSiginCodeView.as_view('login')) self.app.add_url_rule('/', view_func=endpoints.HomeView.as_view('home')) self.app.add_url_rule('/search', view_func=endpoints.SearchView.as_view('search')) self.app.add_url_rule('/react', view_func=endpoints.ReactView.as_view('react'), methods=['POST']) self.app.add_url_rule( '/comment-react', view_func=endpoints.CommentReactView.as_view('comment-react'), methods=['POST']) self.app.add_url_rule('/get-comment-reacts', view_func=endpoints.GetCommentReactsView.as_view( 'get-comment-reacts'), methods=['POST']) self.app.add_url_rule( '/get-comment-reacts-detail', view_func=endpoints.GetCommentReactsDetailView.as_view( 'get-comment-reacts-detail'), methods=['POST']) self.app.add_url_rule( '/comment', view_func=endpoints.CommentView.as_view('comment'), methods=['POST']) sio = socketio.Server(async_mode='gevent') sio.register_namespace(endpoints.BlockchainSocketServer('/chat')) socketio.Middleware(sio, self.app)
angle = float(model.predict(image, batch_size=1)) global speed_limit if speed > speed_limit: speed_limit = min_speed else: speed_limit = max_speed throttle = 1.0 - ((angle**2)*1) - (speed/speed_limit)**2 throttle = throttle * 0.5 print('angle: {} throttle: {} speed: {}'.format(angle, throttle, speed)) send_control(angle, throttle) except Exception as e: print(e) else: socket.emit('manual', data={}, skip_sid=True) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Remote Driving') parser.add_argument('model', type=str, help='path to model h5 file') #parser.add_argument('images', type=str, nargs='?', default='', help='path to images') args = parser.parse_args() model = load_model(args.model) app = socketio.Middleware(socket, app) eventlet.wsgi.server(eventlet.listen(('', 4567)), app)
################################################################################################################## import os import sys import json import time import logging import socketio import eventlet import eventlet.wsgi from flask import Flask, request, Response, render_template sio = socketio.Server(async_mode='eventlet') app = Flask("spheres") app.debug = True app.wsgi_app = socketio.Middleware(sio, app.wsgi_app) thread = None #log = logging.getLogger('werkzeug') #log.disabled = True #app.logger.disabled = True def animate(): global the_spheres global sphere global options global new_sphere global did_split while True: #try:
import socketio from gevent import pywsgi import six import logging logging.basicConfig(level=logging.DEBUG) io = socketio.Server(binary=True) def callback(*args): print "Client responded '%s' to welcome" % args @io.on('connect', namespace='/chat') def connect(sid, *args): io.emit(u'welcome', {'some':'data'}, room=sid, callback=callback, namespace='/chat') @io.on('hello', namespace='/chat') def message(sid, data): print "Received hello with '%s'" % data app = socketio.Middleware(io) pywsgi.WSGIServer(('', 8000), app).serve_forever()
def register(self, app, options, first_registration=False): app.wsgi_app = socketio.Middleware(self.sio, app.wsgi_app, self.socketio_path) super(WebappBlueprint, self).register(app, options, first_registration)
throttle = 1.0 - speed / speed_limit print('{} {} {}'.format(steering_angle, throttle, speed)) send_control( steering_angle, throttle ) #after the prepossing telementory send data to send_control,then send_control sends data to simulator and run the car and send the data to the python environment @sio.on('connect') #message, disconnect def connect(sid, environ): print('connected') send_control(0, 0) def send_control(steering_angle, throttle): #sending the throttle value to simulator sio.emit('steer', data={ 'steering_angle': steering_angle.__str__(), 'throttle': throttle.__str__() }) if __name__ == '__main__': model = load_model('model.h5') app = socketio.Middleware( sio, app) #app is the server,through the server the tunnel will be opened eventlet.wsgi.server( eventlet.listen(('', 4567)), app ) #blank space is IPV4 address(it may change but by default it take 0.0.0.0),4567 is the server port id
nargs='?', default='', help= 'Path to image folder. This is where the images from the run will be saved.' ) args = parser.parse_args() with open(args.model, 'r') as jfile: model = model_from_json(jfile.read()) model.compile("adam", "mse") weights_file = args.model.replace('json', 'h5') model.load_weights(weights_file) if args.image_folder != '': print("Creating image folder at {}".format(args.image_folder)) if not os.path.exists(args.image_folder): os.makedirs(args.image_folder) else: shutil.rmtree(args.image_folder) os.makedirs(args.image_folder) print("RECORDING THIS RUN ...") else: print("NOT RECORDING THIS RUN ...") # wrap Flask application with engineio's middleware app = socketio.Middleware(sio, app) # deploy as an eventlet WSGI server eventlet.wsgi.server(eventlet.listen(('', 4567)), app)
def _socketio_decorator(self, wsgi): sio = socketio.Server(async_mode="eventlet") namespace = self.InfoNamespace(self, "/info") sio.register_namespace(namespace) self.bus["browser/info"] = channels.BrowserChannel(namespace=namespace) return socketio.Middleware(sio, wsgi)