114 lines
3.9 KiB
Plaintext
114 lines
3.9 KiB
Plaintext
|
|
{
|
||
|
|
"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 = \"<who>\\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 != \"<optimizer>\\n\":\n",
|
||
|
|
" print(f'Received wrong data: {line!r}')\n",
|
||
|
|
" self.initialized = False\n",
|
||
|
|
" break\n",
|
||
|
|
" \n",
|
||
|
|
" if line == \"<optimizer>\\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
|
||
|
|
}
|