{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "import sys\n",
    "\n",
    "# https://github.com/fzinfz/flask-DLT645\n",
    "sys.path.append(\"/data_nfs/flask-DLT645/lib\")\n",
    "from read import *\n",
    "\n",
    "%run /data_nfs/conf/flask-DLT645/dev.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Tag</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Addr</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>010128318569</th>\n",
       "      <td>UPS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000080853040</th>\n",
       "      <td>市电</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Tag\n",
       "Addr             \n",
       "010128318569  UPS\n",
       "000080853040   市电"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "devices = Meters(meter_list_str)\n",
    "df_meters = devices.df\n",
    "df_meters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Serial<id=0x7f37b4b80670, open=True>(port='/dev/ttyUSB0', baudrate=2400, bytesize=8, parity='E', stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False)\n",
      "\n",
      " ===== ['010128318569', 'UPS'] =====\n",
      "{'功率-瞬时总有功': ('89.80', 'W'), '电能-组合有功总-当前': (8.87, 'kWh')}\n",
      "\n",
      " ===== ['000080853040', '市电'] =====\n",
      "{'功率-瞬时总有功': ('49.60', 'W'), '电能-组合有功总-当前': (3286.75, 'kWh')}\n"
     ]
    }
   ],
   "source": [
    "result = devices.read_meters(chn, level=2, verbose=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Tag</th>\n",
       "      <th>功率-瞬时总有功</th>\n",
       "      <th>电能-组合有功总-当前</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Addr</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>010128318569</th>\n",
       "      <td>UPS</td>\n",
       "      <td>89.80</td>\n",
       "      <td>8.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000080853040</th>\n",
       "      <td>市电</td>\n",
       "      <td>49.60</td>\n",
       "      <td>3286.75</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Tag 功率-瞬时总有功  电能-组合有功总-当前\n",
       "Addr                                   \n",
       "010128318569  UPS    89.80         8.87\n",
       "000080853040   市电    49.60      3286.75"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import copy\n",
    "result_list = copy.deepcopy(result)\n",
    "\n",
    "for k,v in result_list.items():\n",
    "    v['Addr'] = k, ''\n",
    "\n",
    "for m in result_list.values():\n",
    "    for k in m.keys():\n",
    "        m[k] = m[k][0]\n",
    "\n",
    "df = pd.DataFrame(result_list.values()).set_index('Addr')\n",
    "df = df_meters[['Tag']].merge(df, on='Addr')\n",
    "df"
   ]
  }
 ],
 "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.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}