{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from io import *\n", "import asyncio\n", "import ast\n", "import nest_asyncio\n", "nest_asyncio.apply()\n", "\n", "class Optimizer():\n", " \n", " def __init__(self, server, port, enable):\n", " \n", " self.server = server\n", " self.port = port\n", " self.enable = enable\n", " self.initialized = False\n", " self.conn = None\n", " self.optreader = None\n", " self.optwriter = None\n", " loop = asyncio.get_event_loop()\n", " loop.run_until_complete(self.connect())\n", " \n", " \n", " async def connect(self):\n", " \n", " if self.enable != \"true\":\n", " print(\"Optimizer Server cant not be contacted according to configurations.\")\n", " return\n", " elif self.initialized:\n", " print(\"Connection to Optimizer Server is already stablished.\")\n", " return\n", " elif self.enable == \"true\" and self.initialized == False:\n", " print(\"Starting the connection...\")\n", " self.conn = asyncio.open_connection(self.server, int(self.port))\n", " self.optreader, self.optwriter = await asyncio.wait_for(self.conn, timeout = 10)\n", " \n", " message = \"\\n\"\n", " while True:\n", " self.optwriter.write(message.encode(\"utf-8\"))\n", " await self.optwriter.drain()\n", " \n", " print(\"Message sent to optserver...\")\n", " print(message.encode(\"utf-8\"))\n", " \n", " print(\"wants to read from optserver...\")\n", " line = await self.optreader.readline()\n", " print(\"read from optserver...\")\n", " \n", " line = line.decode(\"utf-8\")\n", " print(f'Received: {line!r}')\n", " \n", " if not line:\n", " print(\"No response from Server!\")\n", " self.initialized = False\n", " break\n", " \n", " if line != \"\\n\":\n", " print(f'Received wrong data: {line!r}')\n", " self.initialized = False\n", " break\n", " \n", " if line == \"\\n\":\n", " #print(f'Received: {line!r}')\n", " self.initialized = True\n", " print(\"Connection to Optimizer stablished...\")\n", " break\n", " \n", " print(self.initialized)\n", " \n", " def get_opt_conn(self):\n", " if self.conn:\n", " return self.conn\n", " else:\n", " print(\"Connection Error!\")\n", " return None\n", " \n", " def get_opt_streams(self):\n", " if self.optreader and self.optwriter:\n", " return self.optreader, self.optwriter\n", " else:\n", " print(\"Connection Error, Streams not connected!\")\n", " return None" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }