{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## TESTS 20190410"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import serial\n",
    "import time\n",
    "import datetime\n",
    "import pandas as pd\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('seaborn-deep')\n",
    "import numpy as np\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test Notes\n",
    "\n",
    "### Configuration ###\n",
    "\n",
    "* NAL Power: `External 28VDC`\n",
    "* NAL Serial GND: `Connected to External B-`\n",
    "* CPF Power: `Off`\n",
    "* CPF Electronics: `In housing`\n",
    "\n",
    "\n",
    "\n",
    "### Log ###\n",
    "* `2019-04-10T14:07` Started test, just baselining repeat of tests A and B\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def print_msg(filename, in_msg):\n",
    "    if len(in_msg.decode('utf-8').rstrip()) is 0: \n",
    "        return\n",
    "    now = datetime.datetime.now()\n",
    "    line = f\"MSG {now.strftime('%Y%m%d')} {now.strftime('%H%M%S')} {in_msg.decode('utf-8').rstrip()}\\n\"\n",
    "    with open(filename, 'a') as f:\n",
    "        f.write(line)\n",
    "        print(line.rstrip())\n",
    "        \n",
    "\n",
    "def print_csq(filename, in_msg):\n",
    "    if len(in_msg.decode('utf-8').rstrip()) is 0: \n",
    "        return\n",
    "    now = datetime.datetime.now()\n",
    "    line = f\"CSQ {now.strftime('%Y%m%d')} {now.strftime('%H%M%S')} {in_msg[5:6].decode('utf-8').rstrip()}\\n\"\n",
    "    with open(filename,'a') as f:\n",
    "        f.write(line)\n",
    "        print(line.rstrip())\n",
    "\n",
    "def print_cier(filename, in_msg):\n",
    "    if len(in_msg.decode('utf-8').rstrip()) is 0: \n",
    "        return\n",
    "    now = datetime.datetime.now()\n",
    "    line = f\"CIEV {now.strftime('%Y%m%d')} {now.strftime('%H%M%S')} {in_msg[8:9].decode('utf-8').rstrip()}\\n\"\n",
    "    with open(filename,'a') as f:\n",
    "        f.write(line)\n",
    "        print(line.rstrip())\n",
    "        \n",
    "def serial_exchange(num_tries=10):\n",
    "    MAX_RETRIES = 1\n",
    "    with serial.Serial('COM4', \n",
    "                       baudrate=19200,\n",
    "                       bytesize=serial.EIGHTBITS, \n",
    "                       stopbits=serial.STOPBITS_ONE, \n",
    "                       parity=serial.PARITY_NONE, \n",
    "                       timeout=5) as ser:\n",
    "        \n",
    "        filename = datetime.datetime.now().strftime(\"%Y%m%dT%H%M%S_csqlog.txt\")  \n",
    "        out_message = ser.write(b'ATEN\\r')\n",
    "        in_message = ser.readline()\n",
    "        print_msg(filename, in_message)\n",
    "        in_message = ser.readline()\n",
    "        print_msg(filename, in_message)\n",
    "        \n",
    "        out_message = ser.write(b'AT+CIER=1,1,0\\r')\n",
    "        in_message = ser.readline()\n",
    "        print_msg(filename, in_message)\n",
    "        in_message = ser.readline()\n",
    "        print_msg(filename, in_message)\n",
    "        \n",
    "        #Get a bunch of CSQs\n",
    "        last_len = 0;\n",
    "        req_new_csq = True\n",
    "        df = pd.DataFrame(columns=['date','csq', 'cier'])\n",
    "        \n",
    "        \n",
    "        while True:\n",
    "          \n",
    "            if req_new_csq is True:\n",
    "                ser.write(b'AT+CSQ\\r')\n",
    "                req_new_csq = False\n",
    "                num_tries -= 1\n",
    "          \n",
    "            in_message = ser.readline()\n",
    "            print_msg(filename, in_message)\n",
    "          \n",
    "            if len(in_message) is 0: \n",
    "                last_len+=1\n",
    "            else:\n",
    "                last_len = 0\n",
    "            #figure out if its a CSQ or CIEV:0 message\n",
    "            if len(in_message) >= 4:\n",
    "                if in_message[0:5] == b'+CSQ:':\n",
    "                    print_csq(filename, in_message)\n",
    "                    now = datetime.datetime.now()\n",
    "                    row = {'date':now,'csq':int(in_message[5:6].decode('utf-8'))}\n",
    "                    df = df.append(row, ignore_index=True)\n",
    "                    df.to_csv(filename[:-3]+'csv',index=False)\n",
    "                    req_new_csq = True;\n",
    "                if in_message[0:8] == b'+CIEV:0,':\n",
    "                    print_cier(filename, in_message)\n",
    "                    now = datetime.datetime.now()\n",
    "                    row = {'date':now,'cier':int(in_message[8:9].decode('utf-8'))}\n",
    "                    df = df.append(row, ignore_index=True)\n",
    "                    df.to_csv(filename[:-3]+'csv',index=False)\n",
    "                    \n",
    "                    \n",
    "            if last_len > MAX_RETRIES:\n",
    "                break;\n",
    "            if num_tries < 0: \n",
    "                break;\n",
    "        \n",
    "        return df\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSG 20190410 140813 OK\n",
      "MSG 20190410 140813 OK\n",
      "MSG 20190410 140813 +CIEV:0,5\n",
      "CIEV 20190410 140813 5\n",
      "MSG 20190410 140821 +CSQ:4\n",
      "CSQ 20190410 140821 4\n",
      "MSG 20190410 140821 OK\n",
      "MSG 20190410 140821 +CIEV:0,4\n",
      "CIEV 20190410 140821 4\n",
      "MSG 20190410 140825 +CSQ:4\n",
      "CSQ 20190410 140825 4\n",
      "MSG 20190410 140825 OK\n",
      "MSG 20190410 140830 +CSQ:5\n",
      "CSQ 20190410 140830 5\n",
      "MSG 20190410 140830 OK\n",
      "MSG 20190410 140830 +CIEV:0,5\n",
      "CIEV 20190410 140830 5\n",
      "MSG 20190410 140834 +CSQ:5\n",
      "CSQ 20190410 140834 5\n",
      "MSG 20190410 140834 OK\n",
      "MSG 20190410 140840 +CSQ:5\n",
      "CSQ 20190410 140840 5\n",
      "MSG 20190410 140840 OK\n",
      "MSG 20190410 140843 +CSQ:5\n",
      "CSQ 20190410 140843 5\n",
      "MSG 20190410 140843 OK\n",
      "MSG 20190410 140848 +CSQ:5\n",
      "CSQ 20190410 140848 5\n",
      "MSG 20190410 140848 OK\n",
      "MSG 20190410 140852 +CSQ:5\n",
      "CSQ 20190410 140852 5\n",
      "MSG 20190410 140852 OK\n",
      "MSG 20190410 140857 +CSQ:5\n",
      "CSQ 20190410 140857 5\n",
      "MSG 20190410 140857 OK\n",
      "MSG 20190410 140901 +CSQ:5\n",
      "CSQ 20190410 140901 5\n",
      "MSG 20190410 140901 OK\n",
      "MSG 20190410 140906 +CSQ:5\n",
      "CSQ 20190410 140906 5\n",
      "MSG 20190410 140906 OK\n",
      "MSG 20190410 140909 +CSQ:5\n",
      "CSQ 20190410 140909 5\n",
      "MSG 20190410 140909 OK\n",
      "MSG 20190410 140916 +CSQ:5\n",
      "CSQ 20190410 140916 5\n",
      "MSG 20190410 140916 OK\n",
      "MSG 20190410 140918 +CSQ:5\n",
      "CSQ 20190410 140918 5\n",
      "MSG 20190410 140918 OK\n",
      "MSG 20190410 140924 +CSQ:3\n",
      "CSQ 20190410 140924 3\n",
      "MSG 20190410 140924 OK\n",
      "MSG 20190410 140924 +CIEV:0,3\n",
      "CIEV 20190410 140924 3\n",
      "MSG 20190410 140927 +CSQ:3\n",
      "CSQ 20190410 140927 3\n",
      "MSG 20190410 140927 OK\n",
      "MSG 20190410 140933 +CSQ:5\n",
      "CSQ 20190410 140933 5\n",
      "MSG 20190410 140933 OK\n",
      "MSG 20190410 140933 +CIEV:0,5\n",
      "CIEV 20190410 140933 5\n",
      "MSG 20190410 140936 +CSQ:5\n",
      "CSQ 20190410 140936 5\n",
      "MSG 20190410 140936 OK\n",
      "MSG 20190410 140942 +CSQ:5\n",
      "CSQ 20190410 140942 5\n",
      "MSG 20190410 140942 OK\n",
      "MSG 20190410 140944 +CSQ:5\n",
      "CSQ 20190410 140944 5\n",
      "MSG 20190410 140944 OK\n",
      "MSG 20190410 140950 +CSQ:5\n",
      "CSQ 20190410 140950 5\n",
      "MSG 20190410 140950 OK\n",
      "MSG 20190410 140953 +CSQ:5\n",
      "CSQ 20190410 140953 5\n",
      "MSG 20190410 140953 OK\n",
      "MSG 20190410 140959 +CSQ:4\n",
      "CSQ 20190410 140959 4\n",
      "MSG 20190410 140959 OK\n",
      "MSG 20190410 140959 +CIEV:0,4\n",
      "CIEV 20190410 140959 4\n",
      "MSG 20190410 141002 +CSQ:5\n",
      "CSQ 20190410 141002 5\n",
      "MSG 20190410 141002 OK\n",
      "MSG 20190410 141002 +CIEV:0,5\n",
      "CIEV 20190410 141002 5\n",
      "MSG 20190410 141010 +CSQ:5\n",
      "CSQ 20190410 141010 5\n",
      "MSG 20190410 141010 OK\n",
      "MSG 20190410 141019 +CSQ:5\n",
      "CSQ 20190410 141019 5\n",
      "MSG 20190410 141019 OK\n",
      "MSG 20190410 141027 +CSQ:5\n",
      "CSQ 20190410 141027 5\n",
      "MSG 20190410 141027 OK\n",
      "MSG 20190410 141036 +CSQ:5\n",
      "CSQ 20190410 141036 5\n",
      "MSG 20190410 141036 OK\n",
      "MSG 20190410 141045 +CSQ:5\n",
      "CSQ 20190410 141045 5\n",
      "MSG 20190410 141045 OK\n",
      "MSG 20190410 141045 +CSQ:5\n",
      "CSQ 20190410 141045 5\n",
      "MSG 20190410 141045 OK\n",
      "MSG 20190410 141053 +CSQ:4\n",
      "CSQ 20190410 141053 4\n",
      "MSG 20190410 141053 OK\n",
      "MSG 20190410 141053 +CIEV:0,4\n",
      "CIEV 20190410 141053 4\n",
      "MSG 20190410 141102 +CSQ:5\n",
      "CSQ 20190410 141102 5\n",
      "MSG 20190410 141102 OK\n",
      "MSG 20190410 141102 +CIEV:0,5\n",
      "CIEV 20190410 141102 5\n",
      "MSG 20190410 141111 +CSQ:4\n",
      "CSQ 20190410 141111 4\n",
      "MSG 20190410 141111 OK\n",
      "MSG 20190410 141111 +CIEV:0,4\n",
      "CIEV 20190410 141111 4\n",
      "MSG 20190410 141119 +CSQ:4\n",
      "CSQ 20190410 141119 4\n",
      "MSG 20190410 141119 OK\n",
      "MSG 20190410 141126 +CSQ:5\n",
      "CSQ 20190410 141126 5\n",
      "MSG 20190410 141126 OK\n",
      "MSG 20190410 141126 +CIEV:0,5\n",
      "CIEV 20190410 141126 5\n",
      "MSG 20190410 141128 +CSQ:5\n",
      "CSQ 20190410 141128 5\n",
      "MSG 20190410 141128 OK\n",
      "MSG 20190410 141134 +CSQ:5\n",
      "CSQ 20190410 141134 5\n",
      "MSG 20190410 141135 OK\n",
      "MSG 20190410 141137 +CSQ:5\n",
      "CSQ 20190410 141137 5\n",
      "MSG 20190410 141137 OK\n",
      "MSG 20190410 141143 +CSQ:5\n",
      "CSQ 20190410 141143 5\n",
      "MSG 20190410 141143 OK\n",
      "MSG 20190410 141145 +CSQ:5\n",
      "CSQ 20190410 141145 5\n",
      "MSG 20190410 141145 OK\n",
      "MSG 20190410 141152 +CSQ:5\n",
      "CSQ 20190410 141152 5\n",
      "MSG 20190410 141152 OK\n",
      "MSG 20190410 141154 +CSQ:4\n",
      "CSQ 20190410 141154 4\n",
      "MSG 20190410 141154 OK\n",
      "MSG 20190410 141154 +CIEV:0,4\n",
      "CIEV 20190410 141154 4\n",
      "MSG 20190410 141203 +CSQ:4\n",
      "CSQ 20190410 141203 4\n",
      "MSG 20190410 141203 OK\n",
      "MSG 20190410 141211 +CSQ:5\n",
      "CSQ 20190410 141211 5\n",
      "MSG 20190410 141211 OK\n",
      "MSG 20190410 141211 +CIEV:0,5\n",
      "CIEV 20190410 141211 5\n",
      "MSG 20190410 141220 +CSQ:4\n",
      "CSQ 20190410 141220 4\n",
      "MSG 20190410 141220 OK\n",
      "MSG 20190410 141220 +CIEV:0,4\n",
      "CIEV 20190410 141220 4\n",
      "MSG 20190410 141228 +CSQ:3\n",
      "CSQ 20190410 141228 3\n",
      "MSG 20190410 141228 OK\n",
      "MSG 20190410 141228 +CIEV:0,3\n",
      "CIEV 20190410 141228 3\n",
      "MSG 20190410 141237 +CSQ:3\n",
      "CSQ 20190410 141237 3\n",
      "MSG 20190410 141237 OK\n",
      "MSG 20190410 141237 +CSQ:3\n",
      "CSQ 20190410 141237 3\n",
      "MSG 20190410 141237 OK\n",
      "MSG 20190410 141246 +CSQ:5\n",
      "CSQ 20190410 141246 5\n",
      "MSG 20190410 141246 OK\n",
      "MSG 20190410 141246 +CIEV:0,5\n",
      "CIEV 20190410 141246 5\n",
      "MSG 20190410 141246 +CSQ:5\n",
      "CSQ 20190410 141246 5\n",
      "MSG 20190410 141246 OK\n",
      "MSG 20190410 141254 +CSQ:4\n",
      "CSQ 20190410 141254 4\n",
      "MSG 20190410 141254 OK\n",
      "MSG 20190410 141254 +CIEV:0,4\n",
      "CIEV 20190410 141254 4\n",
      "MSG 20190410 141254 +CSQ:4\n",
      "CSQ 20190410 141254 4\n",
      "MSG 20190410 141254 OK\n",
      "MSG 20190410 141303 +CSQ:3\n",
      "CSQ 20190410 141303 3\n",
      "MSG 20190410 141303 OK\n",
      "MSG 20190410 141303 +CIEV:0,3\n",
      "CIEV 20190410 141303 3\n",
      "MSG 20190410 141303 +CSQ:3\n",
      "CSQ 20190410 141303 3\n",
      "MSG 20190410 141303 OK\n",
      "MSG 20190410 141309 +CSQ:5\n",
      "CSQ 20190410 141309 5\n",
      "MSG 20190410 141309 OK\n",
      "MSG 20190410 141309 +CIEV:0,5\n",
      "CIEV 20190410 141309 5\n",
      "MSG 20190410 141311 +CSQ:5\n",
      "CSQ 20190410 141311 5\n",
      "MSG 20190410 141312 OK\n",
      "MSG 20190410 141318 +CSQ:5\n",
      "CSQ 20190410 141318 5\n",
      "MSG 20190410 141318 OK\n",
      "MSG 20190410 141320 +CSQ:5\n",
      "CSQ 20190410 141320 5\n",
      "MSG 20190410 141320 OK\n",
      "MSG 20190410 141327 +CSQ:5\n",
      "CSQ 20190410 141327 5\n",
      "MSG 20190410 141327 OK\n",
      "MSG 20190410 141329 +CSQ:5\n",
      "CSQ 20190410 141329 5\n",
      "MSG 20190410 141329 OK\n",
      "MSG 20190410 141335 +CSQ:3\n",
      "CSQ 20190410 141335 3\n",
      "MSG 20190410 141335 OK\n",
      "MSG 20190410 141335 +CIEV:0,3\n",
      "CIEV 20190410 141335 3\n",
      "MSG 20190410 141344 +CSQ:5\n",
      "CSQ 20190410 141344 5\n",
      "MSG 20190410 141344 OK\n",
      "MSG 20190410 141344 +CIEV:0,5\n",
      "CIEV 20190410 141344 5\n",
      "MSG 20190410 141345 +CSQ:5\n",
      "CSQ 20190410 141345 5\n",
      "MSG 20190410 141345 OK\n",
      "MSG 20190410 141353 +CSQ:5\n",
      "CSQ 20190410 141353 5\n",
      "MSG 20190410 141353 OK\n",
      "MSG 20190410 141354 +CSQ:5\n",
      "CSQ 20190410 141354 5\n",
      "MSG 20190410 141354 OK\n",
      "MSG 20190410 141401 +CSQ:3\n",
      "CSQ 20190410 141401 3\n",
      "MSG 20190410 141401 OK\n",
      "MSG 20190410 141401 +CIEV:0,3\n",
      "CIEV 20190410 141401 3\n",
      "MSG 20190410 141408 +CSQ:4\n",
      "CSQ 20190410 141408 4\n",
      "MSG 20190410 141408 OK\n",
      "MSG 20190410 141408 +CIEV:0,4\n",
      "CIEV 20190410 141408 4\n",
      "MSG 20190410 141410 +CSQ:4\n",
      "CSQ 20190410 141410 4\n",
      "MSG 20190410 141410 OK\n",
      "MSG 20190410 141417 +CSQ:5\n",
      "CSQ 20190410 141417 5\n",
      "MSG 20190410 141417 OK\n",
      "MSG 20190410 141417 +CIEV:0,5\n",
      "CIEV 20190410 141417 5\n",
      "MSG 20190410 141420 +CSQ:5\n",
      "CSQ 20190410 141420 5\n",
      "MSG 20190410 141420 OK\n",
      "MSG 20190410 141426 +CSQ:5\n",
      "CSQ 20190410 141426 5\n",
      "MSG 20190410 141426 OK\n",
      "MSG 20190410 141429 +CSQ:5\n",
      "CSQ 20190410 141429 5\n",
      "MSG 20190410 141429 OK\n",
      "MSG 20190410 141437 +CSQ:5\n",
      "CSQ 20190410 141437 5\n",
      "MSG 20190410 141437 OK\n",
      "MSG 20190410 141446 +CSQ:3\n",
      "CSQ 20190410 141446 3\n",
      "MSG 20190410 141446 OK\n",
      "MSG 20190410 141446 +CIEV:0,3\n",
      "CIEV 20190410 141446 3\n",
      "MSG 20190410 141446 +CSQ:4\n",
      "CSQ 20190410 141446 4\n",
      "MSG 20190410 141446 OK\n",
      "MSG 20190410 141446 +CIEV:0,4\n",
      "CIEV 20190410 141446 4\n",
      "MSG 20190410 141454 +CSQ:2\n",
      "CSQ 20190410 141454 2\n",
      "MSG 20190410 141454 OK\n",
      "MSG 20190410 141454 +CIEV:0,2\n",
      "CIEV 20190410 141454 2\n",
      "MSG 20190410 141455 +CSQ:2\n",
      "CSQ 20190410 141455 2\n",
      "MSG 20190410 141455 OK\n",
      "MSG 20190410 141503 +CSQ:2\n",
      "CSQ 20190410 141503 2\n",
      "MSG 20190410 141503 OK\n",
      "MSG 20190410 141504 +CSQ:2\n",
      "CSQ 20190410 141504 2\n",
      "MSG 20190410 141504 OK\n",
      "MSG 20190410 141512 +CSQ:4\n",
      "CSQ 20190410 141512 4\n",
      "MSG 20190410 141512 OK\n",
      "MSG 20190410 141512 +CIEV:0,4\n",
      "CIEV 20190410 141512 4\n",
      "MSG 20190410 141512 +CSQ:4\n",
      "CSQ 20190410 141512 4\n",
      "MSG 20190410 141512 OK\n",
      "MSG 20190410 141520 +CSQ:0\n",
      "CSQ 20190410 141520 0\n",
      "MSG 20190410 141520 OK\n",
      "MSG 20190410 141520 +CIEV:0,0\n",
      "CIEV 20190410 141520 0\n",
      "MSG 20190410 141521 +CSQ:0\n",
      "CSQ 20190410 141521 0\n",
      "MSG 20190410 141521 OK\n",
      "MSG 20190410 141529 +CSQ:5\n",
      "CSQ 20190410 141529 5\n",
      "MSG 20190410 141529 OK\n",
      "MSG 20190410 141529 +CIEV:0,5\n",
      "CIEV 20190410 141529 5\n",
      "MSG 20190410 141538 +CSQ:5\n",
      "CSQ 20190410 141538 5\n",
      "MSG 20190410 141538 OK\n",
      "MSG 20190410 141538 +CSQ:5\n",
      "CSQ 20190410 141538 5\n",
      "MSG 20190410 141538 OK\n",
      "MSG 20190410 141545 +CSQ:5\n",
      "CSQ 20190410 141545 5\n",
      "MSG 20190410 141546 OK\n",
      "MSG 20190410 141547 +CSQ:5\n",
      "CSQ 20190410 141547 5\n",
      "MSG 20190410 141547 OK\n",
      "MSG 20190410 141554 +CSQ:5\n",
      "CSQ 20190410 141554 5\n",
      "MSG 20190410 141554 OK\n",
      "MSG 20190410 141555 +CSQ:5\n",
      "CSQ 20190410 141555 5\n",
      "MSG 20190410 141555 OK\n",
      "MSG 20190410 141603 +CSQ:5\n",
      "CSQ 20190410 141603 5\n",
      "MSG 20190410 141603 OK\n",
      "MSG 20190410 141604 +CSQ:5\n",
      "CSQ 20190410 141604 5\n",
      "MSG 20190410 141604 OK\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSG 20190410 141611 +CSQ:5\n",
      "CSQ 20190410 141611 5\n",
      "MSG 20190410 141611 OK\n",
      "MSG 20190410 141613 +CSQ:5\n",
      "CSQ 20190410 141613 5\n",
      "MSG 20190410 141613 OK\n",
      "MSG 20190410 141620 +CSQ:5\n",
      "CSQ 20190410 141620 5\n",
      "MSG 20190410 141620 OK\n",
      "MSG 20190410 141621 +CSQ:5\n",
      "CSQ 20190410 141621 5\n",
      "MSG 20190410 141621 OK\n",
      "MSG 20190410 141629 +CSQ:5\n",
      "CSQ 20190410 141629 5\n",
      "MSG 20190410 141629 OK\n",
      "MSG 20190410 141630 +CSQ:4\n",
      "CSQ 20190410 141630 4\n",
      "MSG 20190410 141630 OK\n",
      "MSG 20190410 141630 +CIEV:0,4\n",
      "CIEV 20190410 141630 4\n",
      "MSG 20190410 141637 +CSQ:3\n",
      "CSQ 20190410 141637 3\n",
      "MSG 20190410 141637 OK\n",
      "MSG 20190410 141637 +CIEV:0,3\n",
      "CIEV 20190410 141637 3\n",
      "MSG 20190410 141639 +CSQ:5\n",
      "CSQ 20190410 141639 5\n",
      "MSG 20190410 141639 OK\n",
      "MSG 20190410 141639 +CIEV:0,5\n",
      "CIEV 20190410 141639 5\n",
      "MSG 20190410 141646 +CSQ:5\n",
      "CSQ 20190410 141646 5\n",
      "MSG 20190410 141646 OK\n",
      "MSG 20190410 141647 +CSQ:5\n",
      "CSQ 20190410 141647 5\n",
      "MSG 20190410 141647 OK\n",
      "MSG 20190410 141655 +CSQ:2\n",
      "CSQ 20190410 141655 2\n",
      "MSG 20190410 141655 OK\n",
      "MSG 20190410 141655 +CIEV:0,2\n",
      "CIEV 20190410 141655 2\n",
      "MSG 20190410 141656 +CSQ:2\n",
      "CSQ 20190410 141656 2\n",
      "MSG 20190410 141656 OK\n",
      "MSG 20190410 141703 +CSQ:4\n",
      "CSQ 20190410 141703 4\n",
      "MSG 20190410 141703 OK\n",
      "MSG 20190410 141703 +CIEV:0,4\n",
      "CIEV 20190410 141703 4\n",
      "MSG 20190410 141704 +CSQ:4\n",
      "CSQ 20190410 141704 4\n",
      "MSG 20190410 141705 OK\n",
      "MSG 20190410 141712 +CSQ:4\n",
      "CSQ 20190410 141712 4\n",
      "MSG 20190410 141712 OK\n",
      "MSG 20190410 141713 +CSQ:4\n",
      "CSQ 20190410 141713 4\n",
      "MSG 20190410 141713 OK\n",
      "MSG 20190410 141721 +CSQ:3\n",
      "CSQ 20190410 141721 3\n",
      "MSG 20190410 141721 OK\n",
      "MSG 20190410 141721 +CIEV:0,3\n",
      "CIEV 20190410 141721 3\n",
      "MSG 20190410 141722 +CSQ:3\n",
      "CSQ 20190410 141722 3\n",
      "MSG 20190410 141722 OK\n",
      "MSG 20190410 141722 +CIEV:0,0\n",
      "CIEV 20190410 141722 0\n",
      "MSG 20190410 141722 +CSQ:0\n",
      "CSQ 20190410 141722 0\n",
      "MSG 20190410 141722 OK\n",
      "MSG 20190410 141726 +CSQ:1\n",
      "CSQ 20190410 141726 1\n",
      "MSG 20190410 141726 OK\n",
      "MSG 20190410 141726 +CIEV:0,1\n",
      "CIEV 20190410 141726 1\n",
      "MSG 20190410 141730 +CSQ:2\n",
      "CSQ 20190410 141730 2\n",
      "MSG 20190410 141730 OK\n",
      "MSG 20190410 141730 +CIEV:0,2\n",
      "CIEV 20190410 141730 2\n",
      "MSG 20190410 141730 +CIEV:0,0\n",
      "CIEV 20190410 141730 0\n",
      "MSG 20190410 141730 +CSQ:0\n",
      "CSQ 20190410 141730 0\n",
      "MSG 20190410 141730 OK\n",
      "MSG 20190410 141735 +CSQ:3\n",
      "CSQ 20190410 141735 3\n",
      "MSG 20190410 141735 OK\n",
      "MSG 20190410 141735 +CIEV:0,3\n",
      "CIEV 20190410 141735 3\n",
      "MSG 20190410 141739 +CSQ:5\n",
      "CSQ 20190410 141739 5\n",
      "MSG 20190410 141739 OK\n",
      "MSG 20190410 141739 +CIEV:0,5\n",
      "CIEV 20190410 141739 5\n",
      "MSG 20190410 141744 +CSQ:5\n",
      "CSQ 20190410 141744 5\n",
      "MSG 20190410 141744 OK\n",
      "MSG 20190410 141748 +CSQ:5\n",
      "CSQ 20190410 141748 5\n",
      "MSG 20190410 141748 OK\n",
      "MSG 20190410 141753 +CSQ:3\n",
      "CSQ 20190410 141753 3\n",
      "MSG 20190410 141753 OK\n",
      "MSG 20190410 141753 +CIEV:0,3\n",
      "CIEV 20190410 141753 3\n",
      "MSG 20190410 141756 +CSQ:3\n",
      "CSQ 20190410 141756 3\n",
      "MSG 20190410 141756 OK\n",
      "MSG 20190410 141802 +CSQ:4\n",
      "CSQ 20190410 141802 4\n",
      "MSG 20190410 141802 OK\n",
      "MSG 20190410 141802 +CIEV:0,4\n",
      "CIEV 20190410 141802 4\n",
      "MSG 20190410 141805 +CSQ:4\n",
      "CSQ 20190410 141805 4\n",
      "MSG 20190410 141805 OK\n",
      "MSG 20190410 141810 +CSQ:4\n",
      "CSQ 20190410 141810 4\n",
      "MSG 20190410 141810 OK\n",
      "MSG 20190410 141814 +CSQ:4\n",
      "CSQ 20190410 141814 4\n",
      "MSG 20190410 141814 OK\n",
      "MSG 20190410 141819 +CSQ:5\n",
      "CSQ 20190410 141819 5\n",
      "MSG 20190410 141819 OK\n",
      "MSG 20190410 141819 +CIEV:0,5\n",
      "CIEV 20190410 141819 5\n",
      "MSG 20190410 141823 +CSQ:5\n",
      "CSQ 20190410 141823 5\n",
      "MSG 20190410 141823 OK\n",
      "MSG 20190410 141828 +CSQ:5\n",
      "CSQ 20190410 141828 5\n",
      "MSG 20190410 141828 OK\n",
      "MSG 20190410 141831 +CSQ:5\n",
      "CSQ 20190410 141831 5\n",
      "MSG 20190410 141831 OK\n",
      "MSG 20190410 141840 +CSQ:5\n",
      "CSQ 20190410 141840 5\n",
      "MSG 20190410 141840 OK\n",
      "MSG 20190410 141841 +CSQ:5\n",
      "CSQ 20190410 141841 5\n",
      "MSG 20190410 141841 OK\n",
      "MSG 20190410 141849 +CSQ:5\n",
      "CSQ 20190410 141849 5\n",
      "MSG 20190410 141849 OK\n",
      "MSG 20190410 141857 +CSQ:5\n",
      "CSQ 20190410 141857 5\n",
      "MSG 20190410 141857 OK\n",
      "MSG 20190410 141906 +CSQ:5\n",
      "CSQ 20190410 141906 5\n",
      "MSG 20190410 141906 OK\n",
      "MSG 20190410 141914 +CSQ:5\n",
      "CSQ 20190410 141914 5\n",
      "MSG 20190410 141914 OK\n",
      "MSG 20190410 141923 +CSQ:5\n",
      "CSQ 20190410 141923 5\n",
      "MSG 20190410 141923 OK\n",
      "MSG 20190410 141924 +CSQ:5\n",
      "CSQ 20190410 141924 5\n",
      "MSG 20190410 141924 OK\n",
      "MSG 20190410 141932 +CSQ:5\n",
      "CSQ 20190410 141932 5\n",
      "MSG 20190410 141932 OK\n",
      "MSG 20190410 141932 +CSQ:5\n",
      "CSQ 20190410 141932 5\n",
      "MSG 20190410 141932 OK\n",
      "MSG 20190410 141938 +CSQ:5\n",
      "CSQ 20190410 141938 5\n",
      "MSG 20190410 141938 OK\n",
      "MSG 20190410 141940 +CSQ:5\n",
      "CSQ 20190410 141940 5\n",
      "MSG 20190410 141940 OK\n",
      "MSG 20190410 141947 +CSQ:5\n",
      "CSQ 20190410 141947 5\n",
      "MSG 20190410 141947 OK\n",
      "MSG 20190410 141949 +CSQ:5\n",
      "CSQ 20190410 141949 5\n",
      "MSG 20190410 141949 OK\n",
      "MSG 20190410 141955 +CSQ:5\n",
      "CSQ 20190410 141955 5\n",
      "MSG 20190410 141955 OK\n",
      "MSG 20190410 141958 +CSQ:5\n",
      "CSQ 20190410 141958 5\n",
      "MSG 20190410 141958 OK\n",
      "MSG 20190410 142004 +CSQ:5\n",
      "CSQ 20190410 142004 5\n",
      "MSG 20190410 142004 OK\n",
      "MSG 20190410 142006 +CSQ:5\n",
      "CSQ 20190410 142006 5\n",
      "MSG 20190410 142006 OK\n",
      "MSG 20190410 142013 +CSQ:5\n",
      "CSQ 20190410 142013 5\n",
      "MSG 20190410 142013 OK\n",
      "MSG 20190410 142015 +CSQ:5\n",
      "CSQ 20190410 142015 5\n",
      "MSG 20190410 142015 OK\n",
      "MSG 20190410 142021 +CSQ:5\n",
      "CSQ 20190410 142021 5\n",
      "MSG 20190410 142021 OK\n",
      "MSG 20190410 142024 +CSQ:5\n",
      "CSQ 20190410 142024 5\n",
      "MSG 20190410 142024 OK\n",
      "MSG 20190410 142030 +CSQ:5\n",
      "CSQ 20190410 142030 5\n",
      "MSG 20190410 142030 OK\n",
      "MSG 20190410 142032 +CSQ:5\n",
      "CSQ 20190410 142032 5\n",
      "MSG 20190410 142032 OK\n",
      "MSG 20190410 142039 +CSQ:5\n",
      "CSQ 20190410 142039 5\n",
      "MSG 20190410 142039 OK\n",
      "MSG 20190410 142041 +CSQ:5\n",
      "CSQ 20190410 142041 5\n",
      "MSG 20190410 142041 OK\n",
      "MSG 20190410 142047 +CSQ:5\n",
      "CSQ 20190410 142047 5\n",
      "MSG 20190410 142047 OK\n",
      "MSG 20190410 142050 +CSQ:5\n",
      "CSQ 20190410 142050 5\n",
      "MSG 20190410 142050 OK\n",
      "MSG 20190410 142056 +CSQ:5\n",
      "CSQ 20190410 142056 5\n",
      "MSG 20190410 142056 OK\n",
      "MSG 20190410 142058 +CSQ:5\n",
      "CSQ 20190410 142058 5\n",
      "MSG 20190410 142058 OK\n",
      "MSG 20190410 142105 +CSQ:5\n",
      "CSQ 20190410 142105 5\n",
      "MSG 20190410 142105 OK\n",
      "MSG 20190410 142107 +CSQ:5\n",
      "CSQ 20190410 142107 5\n",
      "MSG 20190410 142107 OK\n",
      "MSG 20190410 142107 +CIEV:0,0\n",
      "CIEV 20190410 142107 0\n",
      "MSG 20190410 142107 +CSQ:0\n",
      "CSQ 20190410 142107 0\n",
      "MSG 20190410 142107 OK\n",
      "MSG 20190410 142111 +CSQ:5\n",
      "CSQ 20190410 142111 5\n",
      "MSG 20190410 142111 OK\n",
      "MSG 20190410 142111 +CIEV:0,5\n",
      "CIEV 20190410 142111 5\n",
      "MSG 20190410 142115 +CSQ:5\n",
      "CSQ 20190410 142116 5\n",
      "MSG 20190410 142116 OK\n",
      "MSG 20190410 142116 +CIEV:0,0\n",
      "CIEV 20190410 142116 0\n",
      "MSG 20190410 142116 +CSQ:0\n",
      "CSQ 20190410 142116 0\n",
      "MSG 20190410 142116 OK\n",
      "MSG 20190410 142120 +CSQ:5\n",
      "CSQ 20190410 142120 5\n",
      "MSG 20190410 142120 OK\n",
      "MSG 20190410 142120 +CIEV:0,5\n",
      "CIEV 20190410 142120 5\n",
      "MSG 20190410 142124 +CSQ:5\n",
      "CSQ 20190410 142124 5\n",
      "MSG 20190410 142124 OK\n",
      "MSG 20190410 142124 +CIEV:0,0\n",
      "CIEV 20190410 142124 0\n",
      "MSG 20190410 142124 +CSQ:0\n",
      "CSQ 20190410 142124 0\n",
      "MSG 20190410 142124 OK\n",
      "MSG 20190410 142129 +CSQ:5\n",
      "CSQ 20190410 142129 5\n",
      "MSG 20190410 142129 OK\n",
      "MSG 20190410 142129 +CIEV:0,5\n",
      "CIEV 20190410 142129 5\n",
      "MSG 20190410 142133 +CSQ:5\n",
      "CSQ 20190410 142133 5\n",
      "MSG 20190410 142133 OK\n",
      "MSG 20190410 142141 +CSQ:5\n",
      "CSQ 20190410 142141 5\n",
      "MSG 20190410 142141 OK\n",
      "MSG 20190410 142141 +CSQ:5\n",
      "CSQ 20190410 142141 5\n",
      "MSG 20190410 142141 OK\n",
      "MSG 20190410 142141 +CIEV:0,0\n",
      "CIEV 20190410 142141 0\n",
      "MSG 20190410 142141 +CSQ:0\n",
      "CSQ 20190410 142141 0\n",
      "MSG 20190410 142141 OK\n",
      "MSG 20190410 142146 +CSQ:4\n",
      "CSQ 20190410 142146 4\n",
      "MSG 20190410 142146 OK\n",
      "MSG 20190410 142146 +CIEV:0,4\n",
      "CIEV 20190410 142146 4\n",
      "MSG 20190410 142150 +CSQ:4\n",
      "CSQ 20190410 142150 4\n",
      "MSG 20190410 142150 OK\n",
      "MSG 20190410 142150 +CIEV:0,0\n",
      "CIEV 20190410 142150 0\n",
      "MSG 20190410 142150 +CSQ:0\n",
      "CSQ 20190410 142150 0\n",
      "MSG 20190410 142150 OK\n",
      "MSG 20190410 142154 +CSQ:4\n",
      "CSQ 20190410 142154 4\n",
      "MSG 20190410 142154 OK\n",
      "MSG 20190410 142154 +CIEV:0,4\n",
      "CIEV 20190410 142154 4\n",
      "MSG 20190410 142159 +CSQ:4\n",
      "CSQ 20190410 142159 4\n",
      "MSG 20190410 142159 OK\n",
      "MSG 20190410 142207 +CSQ:2\n",
      "CSQ 20190410 142207 2\n",
      "MSG 20190410 142207 OK\n",
      "MSG 20190410 142207 +CIEV:0,2\n",
      "CIEV 20190410 142207 2\n",
      "MSG 20190410 142207 +CSQ:2\n",
      "CSQ 20190410 142207 2\n",
      "MSG 20190410 142207 OK\n",
      "MSG 20190410 142216 +CSQ:2\n",
      "CSQ 20190410 142216 2\n",
      "MSG 20190410 142216 OK\n",
      "MSG 20190410 142216 +CSQ:2\n",
      "CSQ 20190410 142216 2\n",
      "MSG 20190410 142216 OK\n",
      "MSG 20190410 142224 +CSQ:3\n",
      "CSQ 20190410 142224 3\n",
      "MSG 20190410 142224 OK\n",
      "MSG 20190410 142224 +CIEV:0,3\n",
      "CIEV 20190410 142224 3\n",
      "MSG 20190410 142225 +CSQ:3\n",
      "CSQ 20190410 142225 3\n",
      "MSG 20190410 142225 OK\n",
      "MSG 20190410 142233 +CSQ:5\n",
      "CSQ 20190410 142233 5\n",
      "MSG 20190410 142233 OK\n",
      "MSG 20190410 142233 +CIEV:0,5\n",
      "CIEV 20190410 142233 5\n",
      "MSG 20190410 142233 +CSQ:5\n",
      "CSQ 20190410 142233 5\n",
      "MSG 20190410 142233 OK\n",
      "MSG 20190410 142242 +CSQ:5\n",
      "CSQ 20190410 142242 5\n",
      "MSG 20190410 142242 OK\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSG 20190410 142250 +CSQ:2\n",
      "CSQ 20190410 142250 2\n",
      "MSG 20190410 142250 OK\n",
      "MSG 20190410 142250 +CIEV:0,2\n",
      "CIEV 20190410 142250 2\n",
      "MSG 20190410 142259 +CSQ:4\n",
      "CSQ 20190410 142259 4\n",
      "MSG 20190410 142259 OK\n",
      "MSG 20190410 142259 +CIEV:0,4\n",
      "CIEV 20190410 142259 4\n",
      "MSG 20190410 142304 +CSQ:5\n",
      "CSQ 20190410 142304 5\n",
      "MSG 20190410 142304 OK\n",
      "MSG 20190410 142304 +CIEV:0,5\n",
      "CIEV 20190410 142304 5\n",
      "MSG 20190410 142308 +CSQ:5\n",
      "CSQ 20190410 142308 5\n",
      "MSG 20190410 142308 OK\n",
      "MSG 20190410 142313 +CSQ:5\n",
      "CSQ 20190410 142313 5\n",
      "MSG 20190410 142313 OK\n",
      "MSG 20190410 142316 +CSQ:5\n",
      "CSQ 20190410 142316 5\n",
      "MSG 20190410 142316 OK\n",
      "MSG 20190410 142321 +CSQ:5\n",
      "CSQ 20190410 142322 5\n",
      "MSG 20190410 142322 OK\n",
      "MSG 20190410 142324 +CSQ:5\n",
      "CSQ 20190410 142324 5\n",
      "MSG 20190410 142324 OK\n",
      "MSG 20190410 142330 +CSQ:5\n",
      "CSQ 20190410 142330 5\n",
      "MSG 20190410 142330 OK\n",
      "MSG 20190410 142334 +CSQ:5\n",
      "CSQ 20190410 142334 5\n",
      "MSG 20190410 142334 OK\n",
      "MSG 20190410 142339 +CSQ:5\n",
      "CSQ 20190410 142339 5\n",
      "MSG 20190410 142339 OK\n",
      "MSG 20190410 142342 +CSQ:5\n",
      "CSQ 20190410 142342 5\n",
      "MSG 20190410 142342 OK\n",
      "MSG 20190410 142347 +CSQ:5\n",
      "CSQ 20190410 142347 5\n",
      "MSG 20190410 142347 OK\n",
      "MSG 20190410 142351 +CSQ:5\n",
      "CSQ 20190410 142351 5\n",
      "MSG 20190410 142351 OK\n",
      "MSG 20190410 142359 +CSQ:5\n",
      "CSQ 20190410 142359 5\n",
      "MSG 20190410 142359 OK\n",
      "MSG 20190410 142400 +CSQ:5\n",
      "CSQ 20190410 142400 5\n",
      "MSG 20190410 142400 OK\n",
      "MSG 20190410 142407 +CSQ:5\n",
      "CSQ 20190410 142407 5\n",
      "MSG 20190410 142407 OK\n",
      "MSG 20190410 142408 +CSQ:5\n",
      "CSQ 20190410 142408 5\n",
      "MSG 20190410 142408 OK\n",
      "MSG 20190410 142416 +CSQ:5\n",
      "CSQ 20190410 142416 5\n",
      "MSG 20190410 142416 OK\n",
      "MSG 20190410 142417 +CSQ:5\n",
      "CSQ 20190410 142417 5\n",
      "MSG 20190410 142417 OK\n",
      "MSG 20190410 142425 +CSQ:5\n",
      "CSQ 20190410 142425 5\n",
      "MSG 20190410 142425 OK\n",
      "MSG 20190410 142425 +CSQ:5\n",
      "CSQ 20190410 142425 5\n",
      "MSG 20190410 142425 OK\n",
      "MSG 20190410 142433 +CSQ:5\n",
      "CSQ 20190410 142433 5\n",
      "MSG 20190410 142433 OK\n",
      "MSG 20190410 142434 +CSQ:5\n",
      "CSQ 20190410 142434 5\n",
      "MSG 20190410 142434 OK\n",
      "MSG 20190410 142442 +CSQ:5\n",
      "CSQ 20190410 142442 5\n",
      "MSG 20190410 142442 OK\n",
      "MSG 20190410 142443 +CSQ:5\n",
      "CSQ 20190410 142443 5\n",
      "MSG 20190410 142443 OK\n",
      "MSG 20190410 142451 +CSQ:5\n",
      "CSQ 20190410 142451 5\n",
      "MSG 20190410 142451 OK\n",
      "MSG 20190410 142451 +CSQ:5\n",
      "CSQ 20190410 142451 5\n",
      "MSG 20190410 142451 OK\n",
      "MSG 20190410 142459 +CSQ:5\n",
      "CSQ 20190410 142459 5\n",
      "MSG 20190410 142459 OK\n",
      "MSG 20190410 142500 +CSQ:5\n",
      "CSQ 20190410 142500 5\n",
      "MSG 20190410 142500 OK\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-16-960cf35f5d7f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mserial_exchange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m500\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32m<ipython-input-15-37c6cf7eaaf3>\u001b[0m in \u001b[0;36mserial_exchange\u001b[1;34m(num_tries)\u001b[0m\n\u001b[0;32m     62\u001b[0m                 \u001b[0mnum_tries\u001b[0m \u001b[1;33m-=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     63\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 64\u001b[1;33m             \u001b[0min_message\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mser\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     65\u001b[0m             \u001b[0mprint_msg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0min_message\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     66\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\program files (x86)\\python36-32\\lib\\site-packages\\serial\\serialwin32.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self, size)\u001b[0m\n\u001b[0;32m    288\u001b[0m                     \u001b[0mctypes\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbyref\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_overlapped_read\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    289\u001b[0m                     \u001b[0mctypes\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbyref\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 290\u001b[1;33m                     True)\n\u001b[0m\u001b[0;32m    291\u001b[0m                 \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mresult_ok\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    292\u001b[0m                     \u001b[1;32mif\u001b[0m \u001b[0mwin32\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetLastError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0mwin32\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mERROR_OPERATION_ABORTED\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "df = serial_exchange(500)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load the CSV\n",
    "test_letter = 'M'\n",
    "filename = '20190410T140813_csqlog.csv'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = pd.read_csv(filename)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 277 entries, 0 to 276\n",
      "Data columns (total 3 columns):\n",
      "date    277 non-null object\n",
      "csq     216 non-null float64\n",
      "cier    61 non-null float64\n",
      "dtypes: float64(2), object(1)\n",
      "memory usage: 5.4+ KB\n"
     ]
    }
   ],
   "source": [
    "df2.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bins = np.arange(7)-0.5\n",
    "\n",
    "fig = df2.csq.hist(figsize=(10,5), align='mid', bins=bins, edgecolor=\"black\")\n",
    "bins = np.arange(7)-0.5\n",
    "fig.set_xlabel(\"CSQ REPLY (RSSI)\")\n",
    "fig.set_ylabel(\"COUNT\")\n",
    "fig.set_title(f\"Test {test_letter}: Housing Closed, CPF Off, Serial Ground Connected\")\n",
    "#Determine Test Length\n",
    "date_str = f\"Test Start: {df2.date[0]}\\nTest End: {df2.date.iloc[-1]} \"\n",
    "plt.text(0,250,date_str);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Time')"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Plot CSQ over time\n",
    "import matplotlib.dates as mdates\n",
    "ax = df2.plot(kind='line',x='date',y='csq', figsize=(10,5))\n",
    "ax.xaxis.set_major_locator(plt.MaxNLocator(4))\n",
    "ax.set_title(f\"Test {test_letter} Time Series\")\n",
    "ax.set_ylabel(\"CSQ (RSSI)\")\n",
    "ax.set_xlabel(\"Time\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
