lmstack 3 years ago
parent
commit
d5f5e5e6b9

+ 0 - 0
LIB/OTHER/algo_param/main.ipynb


+ 20 - 0
LIB/OTHER/bat_info/ca-cert

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPDCCAqWgAwIBAgIJAMRsb0DLM1fsMA0GCSqGSIb3DQEBBQUAMHIxCzAJBgNV
+BAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoTAkFCMRAw
+DgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xpdS5semRA
+YWxpYmFiYS5jb20wIBcNMTcwMzA5MTI1MDUyWhgPMjEwMTAyMTcxMjUwNTJaMHIx
+CzAJBgNVBAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoT
+AkFCMRAwDgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xp
+dS5semRAYWxpYmFiYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALZV
+bbIO1ULQQN853BTBgRfPiRJaAOWf38u8GC0TNp/E9qtI88A+79ywAP17k5WYJ7XS
+wXMOJ3h1qkQT2TYJVetZ6E69CUJq4BsOvNlNRvmnW6eFymh5QZsEz2MTooxJjVjC
+JQPlI2XRDjIrTVYEQWUDxj2JhB8VVPEed+6u4KQVAgMBAAGjgdcwgdQwHQYDVR0O
+BBYEFHFlOoiqQxXanVi2GUoDiKDD33ujMIGkBgNVHSMEgZwwgZmAFHFlOoiqQxXa
+nVi2GUoDiKDD33ujoXakdDByMQswCQYDVQQGEwJDTjELMAkGA1UECBMCSFoxCzAJ
+BgNVBAcTAkhaMQswCQYDVQQKEwJBQjEQMA4GA1UEAxMHS2Fma2FDQTEqMCgGCSqG
+SIb3DQEJARYbemhlbmRvbmdsaXUubHpkQGFsaWJhYmEuY29tggkAxGxvQMszV+ww
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBTSz04p0AJXKl30sHw+UM/
+/k1jGFJzI5p0Z6l2JzKQYPP3PfE/biE8/rmiGYEenNqWNy1ZSniEHwa8L/Ux98ci
+4H0ZSpUrMo2+6bfuNW9X35CFPp5vYYJqftilJBKIJX3C3J1ruOuBR28UxE42xx4K
+pQ70wChNi914c4B+SxkGUg==
+-----END CERTIFICATE-----

+ 0 - 0
LIB/OTHER/hz_kafka_cosumer.ipynb → LIB/OTHER/bat_info/hz_kafka_cosumer.ipynb


+ 0 - 0
LIB/OTHER/hz_kafka_cosumer_packmodel.ipynb → LIB/OTHER/bat_info/hz_kafka_cosumer_packmodel.ipynb


File diff suppressed because it is too large
+ 67 - 0
LIB/OTHER/bat_info/hz_kafka_cosumer_tbox.ipynb


+ 20 - 0
LIB/OTHER/data_to_algo/ca-cert

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPDCCAqWgAwIBAgIJAMRsb0DLM1fsMA0GCSqGSIb3DQEBBQUAMHIxCzAJBgNV
+BAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoTAkFCMRAw
+DgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xpdS5semRA
+YWxpYmFiYS5jb20wIBcNMTcwMzA5MTI1MDUyWhgPMjEwMTAyMTcxMjUwNTJaMHIx
+CzAJBgNVBAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoT
+AkFCMRAwDgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xp
+dS5semRAYWxpYmFiYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALZV
+bbIO1ULQQN853BTBgRfPiRJaAOWf38u8GC0TNp/E9qtI88A+79ywAP17k5WYJ7XS
+wXMOJ3h1qkQT2TYJVetZ6E69CUJq4BsOvNlNRvmnW6eFymh5QZsEz2MTooxJjVjC
+JQPlI2XRDjIrTVYEQWUDxj2JhB8VVPEed+6u4KQVAgMBAAGjgdcwgdQwHQYDVR0O
+BBYEFHFlOoiqQxXanVi2GUoDiKDD33ujMIGkBgNVHSMEgZwwgZmAFHFlOoiqQxXa
+nVi2GUoDiKDD33ujoXakdDByMQswCQYDVQQGEwJDTjELMAkGA1UECBMCSFoxCzAJ
+BgNVBAcTAkhaMQswCQYDVQQKEwJBQjEQMA4GA1UEAxMHS2Fma2FDQTEqMCgGCSqG
+SIb3DQEJARYbemhlbmRvbmdsaXUubHpkQGFsaWJhYmEuY29tggkAxGxvQMszV+ww
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBTSz04p0AJXKl30sHw+UM/
+/k1jGFJzI5p0Z6l2JzKQYPP3PfE/biE8/rmiGYEenNqWNy1ZSniEHwa8L/Ux98ci
+4H0ZSpUrMo2+6bfuNW9X35CFPp5vYYJqftilJBKIJX3C3J1ruOuBR28UxE42xx4K
+pQ70wChNi914c4B+SxkGUg==
+-----END CERTIFICATE-----

+ 632 - 0
LIB/OTHER/data_to_algo/test.ipynb

@@ -0,0 +1,632 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import oss2\n",
+    "from itertools import islice\n",
+    "import pandas as pd\n",
+    "columns = [\"id\",\"VIN\",\"VehModel\",\"VehState\",\"Time\",\"CellVoltage\",\"PackVoltage\",'CellMaxVolNum',\"CellMinVolNum\",'CellTemp','CellMaxTempNum','CellMinTempNum','PackCrnt','VehRmnRng','VehOdo','FltCode',\n",
+    "'FltLvl','VehSpd','PedalAngle','PackSoc','MotorPwr','EnmTemp','InsulationRss','ChrgSta','GPS_lon','GPS_lat','GPS_alt',\n",
+    "  'PowerAlreadyTime','BMSSta','ACSta','OncCmState','HVILSta','OfcAccumTime','OncAccumTime','BmsOncChgCp','BmsOfcPileOutputVol','BmsOfcPileOutputCur','BmsOfcCc','BmsOfcAllowed',\n",
+    "  'OncOutCurrent','OncOutVoltage','OfcStationMaxOutVolt','OfcStationMinOutVolt','OfcStationMaxOutCrnt','OfcStationMinOutCrnt','BmsOfcgVoltageRequest','BmsOfcType','BmsOfcCurrentRequest',\n",
+    "  'BmsOncChgRequest','BmsRequestOutputCurrent','BmsRequestOutputVoltage','BmsOncCc','BmsS2State','HvUpState','HvDownState','CellMaxVol','CellMinVol','CellMaxTemp','CellMinTemp','Tripmeter',\n",
+    "  'VehAccX','VehAccY','StringAngle','PTCSta','PTCPwr','PosRlySta','NegRlySta','OfcPreRlySta','OfcRlySta','OfcPosChrgerTemp','OfcNegChrgerTemp','OncPosChrgerTemp','OncNegChrgerTemp',\n",
+    "  'InstPwrCmsmtion','AvgPwrCmsmtion','SubPwrCmsmtion','BmsCellVoltDiff','DriveMode','BmsBatTempDiff','BmsClmThermalSts','BmsBatteryTotalCapacity','BmsBatteryAvaiCapacity',\n",
+    "  'BmsOncChgCpConn','CellVoltRecTime','CellVoltTotalCount','CellVoltFrameNo','CellVoltFrameCount','CellTempTotalCount','SN','BatteryModel']\n",
+    "auth = oss2.Auth('LTAI4FyoDnXMjqd78rdRDFHN', 'sdFl6vjM9l2rvWiUTzuFQb2xqjUoY5')\n",
+    "bucket = oss2.Bucket(auth, \"https://oss-cn-hangzhou.aliyuncs.com\", 'ff-hezhong')\n",
+    "df_data = pd.DataFrame(columns = columns)       \n",
+    "for b in oss2.ObjectIterator(bucket,'alg/LUZAGAAA1MA038075/202202251410/'):\n",
+    "    bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "    df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "    df_data = pd.concat([df_data,df])\n",
+    "df_data = df_data.reset_index(drop=True)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "b'{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n"
+     ]
+    },
+    {
+     "ename": "FileNotFoundError",
+     "evalue": "[Errno 2] No such file or directory: '{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"华鼎国联动力电池有限公司\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"华鼎国联动力电池有限公司\"}.csv'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
+      "\u001b[1;32m<ipython-input-1-752dc97aae1a>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     67\u001b[0m             \u001b[0mdf_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdf_data\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     68\u001b[0m       \u001b[0mdf_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdf_data\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset_index\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdrop\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 69\u001b[1;33m       \u001b[0mdf_data\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'utf-8'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;34m'.csv'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     70\u001b[0m       \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_data\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     71\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
+      "\u001b[1;32mD:\\Common\\software\\anaconda\\envs\\ana_py36\\lib\\site-packages\\pandas\\core\\generic.py\u001b[0m in \u001b[0;36mto_csv\u001b[1;34m(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, line_terminator, chunksize, date_format, doublequote, escapechar, decimal, errors)\u001b[0m\n\u001b[0;32m   3168\u001b[0m             \u001b[0mdecimal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdecimal\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3169\u001b[0m         )\n\u001b[1;32m-> 3170\u001b[1;33m         \u001b[0mformatter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msave\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   3171\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3172\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mpath_or_buf\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+      "\u001b[1;32mD:\\Common\\software\\anaconda\\envs\\ana_py36\\lib\\site-packages\\pandas\\io\\formats\\csvs.py\u001b[0m in \u001b[0;36msave\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    188\u001b[0m                 \u001b[0mencoding\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mencoding\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    189\u001b[0m                 \u001b[0merrors\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 190\u001b[1;33m                 \u001b[0mcompression\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompression_args\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompression\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    191\u001b[0m             )\n\u001b[0;32m    192\u001b[0m             \u001b[0mclose\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+      "\u001b[1;32mD:\\Common\\software\\anaconda\\envs\\ana_py36\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors)\u001b[0m\n\u001b[0;32m    491\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mencoding\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    492\u001b[0m             \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 493\u001b[1;33m             \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath_or_buf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnewline\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    494\u001b[0m         \u001b[1;32melif\u001b[0m \u001b[0mis_text\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    495\u001b[0m             \u001b[1;31m# No explicit encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+      "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"华鼎国联动力电池有限公司\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"华鼎国联动力电池有限公司\"}.csv'"
+     ]
+    }
+   ],
+   "source": [
+    "import ssl\n",
+    "from kafka import KafkaProducer, KafkaConsumer\n",
+    "from kafka.errors import kafka_errors\n",
+    "import traceback\n",
+    "import json\n",
+    "import pdb\n",
+    "import os\n",
+    "import pandas as pd\n",
+    "import oss2\n",
+    "from itertools import islice\n",
+    "import pandas as pd\n",
+    "context = ssl.create_default_context()\n",
+    "context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n",
+    "## The new python(2.7.8+) may cannot ignore the hostname check,\n",
+    "## you could set to ssl.CERT_NONE to walk around the problem,\n",
+    "## or you can change the client to confluent-python-demo \n",
+    "\n",
+    "# context.verify_mode = ssl.CERT_NONE\n",
+    "context.verify_mode = ssl.CERT_REQUIRED\n",
+    "topic = 'toAlgSn' # toAlg, toAlgSn\n",
+    "# context.check_hostname = True\n",
+    "context.load_verify_locations(\"ca-cert\")\n",
+    "consumer = KafkaConsumer(topic, bootstrap_servers=['alikafka-pre-cn-8ed2kw57901x-1.alikafka.aliyuncs.com:9093',\n",
+    "                                            'alikafka-pre-cn-8ed2kw57901x-2.alikafka.aliyuncs.com:9093',\n",
+    "                                            'alikafka-pre-cn-8ed2kw57901x-3.alikafka.aliyuncs.com:9093'],\n",
+    "                         sasl_mechanism=\"PLAIN\",\n",
+    "                         ssl_context=context,\n",
+    "                         security_protocol='SASL_SSL',\n",
+    "                         api_version = (2,2),\n",
+    "                         sasl_plain_username='alikafka_pre-cn-8ed2kw57901x',\n",
+    "                         sasl_plain_password='hlQsApgUUdUxcWEr1uQoM9BeuF8t8vMF',\n",
+    "                         consumer_timeout_ms= 100000000, # 如果10秒内kafka中没有可供消费的数据,自动退出\n",
+    "                         client_id='consumer-python3',\n",
+    "                         auto_offset_reset='earliest',# 消费kafka中最近的数据,如果设置为earliest则消费最早的数据,不管这些数据是否消费\n",
+    "                         enable_auto_commit=True, # 自动提交消费者的offset\n",
+    "                         auto_commit_interval_ms=3000, ## 自动提交消费者offset的时间间隔,\n",
+    "\n",
+    ")\n",
+    "\n",
+    "columns = [\"id\",\"VIN\",\"VehModel\",\"VehState\",\"Time\",\"CellVoltage\",\"PackVoltage\",'CellMaxVolNum',\"CellMinVolNum\",'CellTemp','CellMaxTempNum','CellMinTempNum','PackCrnt','VehRmnRng','VehOdo','FltCode',\n",
+    "'FltLvl','VehSpd','PedalAngle','PackSoc','MotorPwr','EnmTemp','InsulationRss','ChrgSta','GPS_lon','GPS_lat','GPS_alt',\n",
+    "  'PowerAlreadyTime','BMSSta','ACSta','OncCmState','HVILSta','OfcAccumTime','OncAccumTime','BmsOncChgCp','BmsOfcPileOutputVol','BmsOfcPileOutputCur','BmsOfcCc','BmsOfcAllowed',\n",
+    "  'OncOutCurrent','OncOutVoltage','OfcStationMaxOutVolt','OfcStationMinOutVolt','OfcStationMaxOutCrnt','OfcStationMinOutCrnt','BmsOfcgVoltageRequest','BmsOfcType','BmsOfcCurrentRequest',\n",
+    "  'BmsOncChgRequest','BmsRequestOutputCurrent','BmsRequestOutputVoltage','BmsOncCc','BmsS2State','HvUpState','HvDownState','CellMaxVol','CellMinVol','CellMaxTemp','CellMinTemp','Tripmeter',\n",
+    "  'VehAccX','VehAccY','StringAngle','PTCSta','PTCPwr','PosRlySta','NegRlySta','OfcPreRlySta','OfcRlySta','OfcPosChrgerTemp','OfcNegChrgerTemp','OncPosChrgerTemp','OncNegChrgerTemp',\n",
+    "  'InstPwrCmsmtion','AvgPwrCmsmtion','SubPwrCmsmtion','BmsCellVoltDiff','DriveMode','BmsBatTempDiff','BmsClmThermalSts','BmsBatteryTotalCapacity','BmsBatteryAvaiCapacity',\n",
+    "  'BmsOncChgCpConn','CellVoltRecTime','CellVoltTotalCount','CellVoltFrameNo','CellVoltFrameCount','CellTempTotalCount','SN','BatteryModel']\n",
+    "auth = oss2.Auth('LTAI4FyoDnXMjqd78rdRDFHN', 'sdFl6vjM9l2rvWiUTzuFQb2xqjUoY5')\n",
+    "bucket = oss2.Bucket(auth, \"https://oss-cn-hangzhou.aliyuncs.com\", 'ff-hezhong')\n",
+    "   \n",
+    "\n",
+    "for message in consumer:\n",
+    "      print(message.value)\n",
+    "      # 读取vin数据\n",
+    "      # df_data = pd.DataFrame(columns = columns)    \n",
+    "      # for b in oss2.ObjectIterator(bucket,'alg/'+str(message.value,'utf-8').replace(\"_\",\"/\")):\n",
+    "      #       bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "      #       df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "      #       df_data = pd.concat([df_data,df])\n",
+    "      # df_data = df_data.reset_index(drop=True)\n",
+    "      # df_data.to_csv(str(message.value,'utf-8')+'.csv')\n",
+    "      \n",
+    "      # 读取sn数据\n",
+    "      df_data = pd.DataFrame(columns = columns)    \n",
+    "      for b in oss2.ObjectIterator(bucket,'alg/'+json.loads(str(message.value,'utf-8'))['key'].replace(\"_\",\"/\")):\n",
+    "            bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "            df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "            df_data = pd.concat([df_data,df])\n",
+    "      df_data = df_data.reset_index(drop=True)\n",
+    "      df_data.to_csv(str(message.value,'utf-8')+'.csv')\n",
+    "      print(str(len(df_data)))\n",
+    "      \n",
+    "    \n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'0CZPE007DN0111B4K0000084_202202271605'"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "json.loads(str(message.value,'utf-8'))['key']"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df_data['Time'] = pd.to_datetime(df['Time'],unit='ms')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "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>id</th>\n",
+       "      <th>VIN</th>\n",
+       "      <th>VehModel</th>\n",
+       "      <th>VehState</th>\n",
+       "      <th>Time</th>\n",
+       "      <th>CellVoltage</th>\n",
+       "      <th>PackVoltage</th>\n",
+       "      <th>CellMaxVolNum</th>\n",
+       "      <th>CellMinVolNum</th>\n",
+       "      <th>CellTemp</th>\n",
+       "      <th>...</th>\n",
+       "      <th>BmsBatteryTotalCapacity</th>\n",
+       "      <th>BmsBatteryAvaiCapacity</th>\n",
+       "      <th>BmsOncChgCpConn</th>\n",
+       "      <th>CellVoltRecTime</th>\n",
+       "      <th>CellVoltTotalCount</th>\n",
+       "      <th>CellVoltFrameNo</th>\n",
+       "      <th>CellVoltFrameCount</th>\n",
+       "      <th>CellTempTotalCount</th>\n",
+       "      <th>SN</th>\n",
+       "      <th>BatteryModel</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621153</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.654</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621122</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.685</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621106</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.701</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621092</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.715</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621081</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.726</td>\n",
+       "      <td>4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...</td>\n",
+       "      <td>389.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171093000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1293</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615845</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.962</td>\n",
+       "      <td>4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157910000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1294</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157687000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1295</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157336000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1296</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...</td>\n",
+       "      <td>391.7</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641153388000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1297</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...</td>\n",
+       "      <td>392.0</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641152216000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>1298 rows × 90 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                                    id                VIN  \\\n",
+       "0     1803242740_LUZAGAAA5MA009680_9223370390905621153  LUZAGAAA5MA009680   \n",
+       "1     1803242740_LUZAGAAA5MA009680_9223370390905621122  LUZAGAAA5MA009680   \n",
+       "2     1803242740_LUZAGAAA5MA009680_9223370390905621106  LUZAGAAA5MA009680   \n",
+       "3     1803242740_LUZAGAAA5MA009680_9223370390905621092  LUZAGAAA5MA009680   \n",
+       "4     1803242740_LUZAGAAA5MA009680_9223370390905621081  LUZAGAAA5MA009680   \n",
+       "...                                                ...                ...   \n",
+       "1293  1803242740_LUZAGAAA5MA009680_9223370390905615845  LUZAGAAA5MA009680   \n",
+       "1294  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1295  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1296  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "1297  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "\n",
+       "     VehModel VehState                    Time  \\\n",
+       "0        EP12        2 2022-02-27 08:05:54.654   \n",
+       "1        EP12        2 2022-02-27 08:05:54.685   \n",
+       "2        EP12        2 2022-02-27 08:05:54.701   \n",
+       "3        EP12        2 2022-02-27 08:05:54.715   \n",
+       "4        EP12        2 2022-02-27 08:05:54.726   \n",
+       "...       ...      ...                     ...   \n",
+       "1293     EP12        2 2022-02-27 08:05:59.962   \n",
+       "1294     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1295     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1296     EP12        2 2022-02-27 08:05:59.964   \n",
+       "1297     EP12        2 2022-02-27 08:05:59.964   \n",
+       "\n",
+       "                                            CellVoltage  PackVoltage  \\\n",
+       "0     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "1     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "2     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "3     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "4     4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...        389.5   \n",
+       "...                                                 ...          ...   \n",
+       "1293  4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...        390.5   \n",
+       "1294  4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1295  4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1296  4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...        391.7   \n",
+       "1297  4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...        392.0   \n",
+       "\n",
+       "     CellMaxVolNum CellMinVolNum  \\\n",
+       "0               26            84   \n",
+       "1               18            84   \n",
+       "2               26            84   \n",
+       "3               18            84   \n",
+       "4               25            84   \n",
+       "...            ...           ...   \n",
+       "1293            25            84   \n",
+       "1294            25            84   \n",
+       "1295            25            84   \n",
+       "1296            26            84   \n",
+       "1297            25            84   \n",
+       "\n",
+       "                                               CellTemp  ...  \\\n",
+       "0     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "1     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "2     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "3     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "4     19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...  ...   \n",
+       "...                                                 ...  ...   \n",
+       "1293  18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...  ...   \n",
+       "1294  18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...  ...   \n",
+       "1295  18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...  ...   \n",
+       "1296  14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...  ...   \n",
+       "1297  14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...  ...   \n",
+       "\n",
+       "     BmsBatteryTotalCapacity BmsBatteryAvaiCapacity  BmsOncChgCpConn  \\\n",
+       "0               4.294967e+09           4.294967e+09              255   \n",
+       "1               4.294967e+09           4.294967e+09              255   \n",
+       "2               4.294967e+09           4.294967e+09              255   \n",
+       "3               4.294967e+09           4.294967e+09              255   \n",
+       "4               4.294967e+09           4.294967e+09              255   \n",
+       "...                      ...                    ...              ...   \n",
+       "1293            4.294967e+09           4.294967e+09              255   \n",
+       "1294            4.294967e+09           4.294967e+09              255   \n",
+       "1295            4.294967e+09           4.294967e+09              255   \n",
+       "1296            4.294967e+09           4.294967e+09              255   \n",
+       "1297            4.294967e+09           4.294967e+09              255   \n",
+       "\n",
+       "      CellVoltRecTime  CellVoltTotalCount  CellVoltFrameNo CellVoltFrameCount  \\\n",
+       "0       1641150270000                  96                1                 96   \n",
+       "1       1641171313000                  96                1                 96   \n",
+       "2       1641150270000                  96                1                 96   \n",
+       "3       1641171313000                  96                1                 96   \n",
+       "4       1641171093000                  96                1                 96   \n",
+       "...               ...                 ...              ...                ...   \n",
+       "1293    1641157910000                  96                1                 96   \n",
+       "1294    1641157687000                  96                1                 96   \n",
+       "1295    1641157336000                  96                1                 96   \n",
+       "1296    1641153388000                  96                1                 96   \n",
+       "1297    1641152216000                  96                1                 96   \n",
+       "\n",
+       "      CellTempTotalCount                        SN  BatteryModel  \n",
+       "0                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "2                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "3                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "4                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "...                  ...                       ...           ...  \n",
+       "1293                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1294                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1295                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1296                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1297                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "\n",
+       "[1298 rows x 90 columns]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "df_data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "5ac93a79b26608c768d42fbd754dd4f69161017bfc4d38cb4b18d60e5198dbca"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.6.2 ('ana_py36')",
+   "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"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 0 - 183
LIB/OTHER/hz_kafka_cosumer_tbox.ipynb

@@ -1,183 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      " 14901存储成功储成功190存储成功192存储成功398存储成功450存储成功476存储成功858存储成功938存储成功1006存储成功1123存储成功1150存储成功1397存储成功1890存储成功2224存储成功2320存储成功2368存储成功2516存储成功2679存储成功2798存储成功3379存储成功3426存储成功3590存储成功3934存储成功4153存储成功4360存储成功4990存储成功5340存储成功5461存储成功5470存储成功5579存储成功5667存储成功6201存储成功6202存储成功6613存储成功7014存储成功7057存储成功7440存储成功7504存储成功7562存储成功7947存储成功7965存储成功8273存储成功8553存储成功8696存储成功8887存储成功8888存储成功9148存储成功9259存储成功9433存储成功10072存储成功10073存储成功10299存储成功10485存储成功10513存储成功10834存储成功10870存储成功11058存储成功11311存储成功11517存储成功11587存储成功11700存储成功11757存储成功12391存储成功12591存储成功12888存储成功12943存储成功13051存储成功13067存储成功13667存储成功14073存储成功14127存储成功14533存储成功14593存储成功"
-     ]
-    }
-   ],
-   "source": [
-    "import ssl\n",
-    "from kafka import KafkaProducer, KafkaConsumer\n",
-    "from kafka.errors import kafka_errors\n",
-    "import traceback\n",
-    "import json\n",
-    "import pdb\n",
-    "import os\n",
-    "import pandas as pd\n",
-    "context = ssl.create_default_context()\n",
-    "context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n",
-    "## The new python(2.7.8+) may cannot ignore the hostname check,\n",
-    "## you could set to ssl.CERT_NONE to walk around the problem,\n",
-    "## or you can change the client to confluent-python-demo \n",
-    "\n",
-    "# context.verify_mode = ssl.CERT_NONE\n",
-    "context.verify_mode = ssl.CERT_REQUIRED\n",
-    "topic = 's_kafka_tbox_analysis_hh_delta_ext_topic'\n",
-    "# context.check_hostname = True\n",
-    "context.load_verify_locations(\"ca-cert\")\n",
-    "consumer = KafkaConsumer(topic, bootstrap_servers=['alikafka-pre-cn-8ed2kw57901x-1.alikafka.aliyuncs.com:9093',\n",
-    "                                            'alikafka-pre-cn-8ed2kw57901x-2.alikafka.aliyuncs.com:9093',\n",
-    "                                            'alikafka-pre-cn-8ed2kw57901x-3.alikafka.aliyuncs.com:9093'],\n",
-    "                         sasl_mechanism=\"PLAIN\",\n",
-    "                         ssl_context=context,\n",
-    "                         security_protocol='SASL_SSL',\n",
-    "                         api_version = (2,2),\n",
-    "                         sasl_plain_username='alikafka_pre-cn-8ed2kw57901x',\n",
-    "                         sasl_plain_password='hlQsApgUUdUxcWEr1uQoM9BeuF8t8vMF',\n",
-    "                         consumer_timeout_ms= 100000000, # 如果10秒内kafka中没有可供消费的数据,自动退出\n",
-    "                         client_id='consumer-python3',\n",
-    "                         auto_offset_reset='earliest',# 消费kafka中最近的数据,如果设置为earliest则消费最早的数据,不管这些数据是否消费\n",
-    "                         enable_auto_commit=True, # 自动提交消费者的offset\n",
-    "                         auto_commit_interval_ms=3000, ## 自动提交消费者offset的时间间隔,\n",
-    "\n",
-    ")\n",
-    "\n",
-    "i = 1\n",
-    "for message in consumer:\n",
-    "    if i == 1:\n",
-    "        i = i + 1\n",
-    "        continue\n",
-    "    if topic+'.csv' not in os.listdir():\n",
-    "        pd.DataFrame(json.loads(str(message.value,'utf-8')),index=[0]).to_csv(topic+'.csv', index=False)\n",
-    "    else:\n",
-    "        pd.DataFrame(json.loads(str(message.value,'utf-8')),index=[0]).to_csv(topic+'.csv', mode='a', index=False, header=None)\n",
-    "    i = i + 1\n",
-    "    print(\"\\r\",str(i)+\"存储成功\",end=\"\",flush=True)\n",
-    "    "
-   ]
-  },
-  {
-   "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>code</th>\n",
-       "      <th>create_time</th>\n",
-       "      <th>id</th>\n",
-       "      <th>model_id</th>\n",
-       "      <th>vin</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>0CZPE007DN0111B2P0000010</td>\n",
-       "      <td>2021-03-31 16:05:38</td>\n",
-       "      <td>000038a9f8c745a19da116d82085e54c</td>\n",
-       "      <td>2101TAB</td>\n",
-       "      <td>LUZAGAAA4MA008178</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "                       code          create_time  \\\n",
-       "0  0CZPE007DN0111B2P0000010  2021-03-31 16:05:38   \n",
-       "\n",
-       "                                 id model_id                vin  \n",
-       "0  000038a9f8c745a19da116d82085e54c  2101TAB  LUZAGAAA4MA008178  "
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "pd.DataFrame(json.loads(str(message.value,'utf-8')),index=[0]).to_csv(topic+'.csv', index=False)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "ConsumerRecord(topic='sys_battery_pack_entity_storage_topic', partition=0, offset=1, timestamp=1645586299071, timestamp_type=0, key=None, value=b'{\"code\":\"0CZPE007DN0111B2P0000010\",\"create_time\":\"2021-03-31 16:05:38\",\"id\":\"000038a9f8c745a19da116d82085e54c\",\"model_id\":\"2101TAB\",\"vin\":\"LUZAGAAA4MA008178\"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=158, serialized_header_size=-1)"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "message"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "interpreter": {
-   "hash": "5ac93a79b26608c768d42fbd754dd4f69161017bfc4d38cb4b18d60e5198dbca"
-  },
-  "kernelspec": {
-   "display_name": "Python 3.6.2 ('ana_py36')",
-   "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"
-  },
-  "orig_nbformat": 4
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}

+ 20 - 0
LIB/OTHER/oridata_sort/ca-cert

@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPDCCAqWgAwIBAgIJAMRsb0DLM1fsMA0GCSqGSIb3DQEBBQUAMHIxCzAJBgNV
+BAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoTAkFCMRAw
+DgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xpdS5semRA
+YWxpYmFiYS5jb20wIBcNMTcwMzA5MTI1MDUyWhgPMjEwMTAyMTcxMjUwNTJaMHIx
+CzAJBgNVBAYTAkNOMQswCQYDVQQIEwJIWjELMAkGA1UEBxMCSFoxCzAJBgNVBAoT
+AkFCMRAwDgYDVQQDEwdLYWZrYUNBMSowKAYJKoZIhvcNAQkBFht6aGVuZG9uZ2xp
+dS5semRAYWxpYmFiYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALZV
+bbIO1ULQQN853BTBgRfPiRJaAOWf38u8GC0TNp/E9qtI88A+79ywAP17k5WYJ7XS
+wXMOJ3h1qkQT2TYJVetZ6E69CUJq4BsOvNlNRvmnW6eFymh5QZsEz2MTooxJjVjC
+JQPlI2XRDjIrTVYEQWUDxj2JhB8VVPEed+6u4KQVAgMBAAGjgdcwgdQwHQYDVR0O
+BBYEFHFlOoiqQxXanVi2GUoDiKDD33ujMIGkBgNVHSMEgZwwgZmAFHFlOoiqQxXa
+nVi2GUoDiKDD33ujoXakdDByMQswCQYDVQQGEwJDTjELMAkGA1UECBMCSFoxCzAJ
+BgNVBAcTAkhaMQswCQYDVQQKEwJBQjEQMA4GA1UEAxMHS2Fma2FDQTEqMCgGCSqG
+SIb3DQEJARYbemhlbmRvbmdsaXUubHpkQGFsaWJhYmEuY29tggkAxGxvQMszV+ww
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBTSz04p0AJXKl30sHw+UM/
+/k1jGFJzI5p0Z6l2JzKQYPP3PfE/biE8/rmiGYEenNqWNy1ZSniEHwa8L/Ux98ci
+4H0ZSpUrMo2+6bfuNW9X35CFPp5vYYJqftilJBKIJX3C3J1ruOuBR28UxE42xx4K
+pQ70wChNi914c4B+SxkGUg==
+-----END CERTIFICATE-----

File diff suppressed because it is too large
+ 11 - 0
LIB/OTHER/oridata_sort/consumer.ipynb


File diff suppressed because it is too large
+ 8710 - 0
LIB/OTHER/oridata_sort/producer.ipynb


+ 111 - 0
LIB/OTHER/oridata_sort/signal_producer_ali.py

@@ -0,0 +1,111 @@
+import json
+from time import sleep
+from kafka import KafkaProducer
+import os
+import pandas as pd
+import ssl
+
+context = ssl.create_default_context()
+context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
+context.verify_mode = ssl.CERT_REQUIRED
+context.load_verify_locations("ca-cert")
+
+# producer = KafkaProducer(bootstrap_servers=['alikafka-pre-cn-2r42ktle800a-1.alikafka.aliyuncs.com:9093',
+#                        'alikafka-pre-cn-2r42ktle800a-2.alikafka.aliyuncs.com:9093',
+#                        'alikafka-pre-cn-2r42ktle800a-3.alikafka.aliyuncs.com:9093'],
+#                         sasl_mechanism="PLAIN",
+#                         ssl_context=context,
+#                         security_protocol='SASL_SSL',
+#                         api_version = (2,2),
+#                         retries=5,
+#                         sasl_plain_username='alikafka_pre-cn-2r42ktle800a',
+#                         sasl_plain_password='y0qn8KOIasc007M5xXFLOhB7MNrnIt29')
+
+producer = KafkaProducer(bootstrap_servers=['alikafka-pre-cn-8ed2kw57901x-1.alikafka.aliyuncs.com:9093','alikafka-pre-cn-8ed2kw57901x-2.alikafka.aliyuncs.com:9093','alikafka-pre-cn-8ed2kw57901x-3.alikafka.aliyuncs.com:9093'],
+                        sasl_mechanism="PLAIN",
+                        ssl_context=context,
+                        security_protocol='SASL_SSL',
+                        api_version = (2,2),
+                        retries=5,
+                        sasl_plain_username='alikafka_pre-cn-8ed2kw57901x',
+                        sasl_plain_password='hlQsApgUUdUxcWEr1uQoM9BeuF8t8vMF')
+
+#producer = KafkaProducer(bootstrap_servers="192.168.0.41:9092")
+topic = "s_kafka_tbox_analysis_hh_delta_ext_topic"
+path = "/Users/liuzezhong/new/hzdata/hz"
+sleepInterval = 0.1
+
+headers = None
+
+
+for line in open(os.path.join(path,"signal_header.csv")):
+    headers = line[:-1].split(",")
+
+headers = [h[1:-1] for h in headers]
+
+# print(headers,len(headers))
+df = pd.read_csv('s_kafka_tbox_analysis_hh_delta_ext_topic.csv')
+
+    for index, row in readResult.iterrows():
+        print("-----", dataPath, index, len(row))
+        print("*********", len(row))
+        dataPart = {}
+        for j in range(len(row)):
+            if pd.isnull(row[j]):
+                continue
+            dataPart[headers[j]] = row[j]
+        print(dataPart)
+        dataPartStr = json.dumps(dataPart)
+        producer.send(topic, dataPartStr.encode("utf-8"))
+        sleep(sleepInterval)
+
+        # for line in open(dataPath):
+        #     row = line[:-1].split(",")
+        #     dataPart={}
+        #     for j in range(len(headers)):
+        #         rowj = row[j]
+        #         if rowj.startswith("\"") and rowj.endswith("\""):
+        #             rowj = rowj[1:-1] 
+        #         dataPart[headers[j]]=rowj
+        #     print(dataPart, len(dataPart))
+            # dataPartStr = json.dumps(dataPart)
+            # print(dataPartStr)
+            # producer.send(topic, dataPartStr.encode("utf-8"))
+            # sleep(sleepInterval)
+
+# path = "./s_kafka_tbox_analysis_hh_delta_ext_202202071438.csv"
+
+# headers = None
+# data = []
+
+# splitNo = 0
+
+
+# for line in open(path):
+#     headers = line
+#     break
+
+# with open("./hz/signal_header.csv","w") as f:
+#     f.write(headers)
+
+# i=0
+# index = 0
+# data = []
+# part = 0
+# for line in open(path):
+#     if i == 0:
+#         i+=1
+#         continue
+#     else:
+#         data.append(line)
+#         i+=1
+#         index+=1
+#     if index >= 10000:
+#         print("writing part",part)
+#         with open("./hz/signal_data_"+str(part)+".csv","w") as f:
+#             for row in data:
+#                 f.write(row)
+#         part+=1
+#         data=[]
+#         index=0
+#     print("line",i,"done")

+ 651 - 0
LIB/OTHER/oridata_sort/test.ipynb

@@ -0,0 +1,651 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import oss2\n",
+    "from itertools import islice\n",
+    "import pandas as pd\n",
+    "columns = [\"id\",\"VIN\",\"VehModel\",\"VehState\",\"Time\",\"CellVoltage\",\"PackVoltage\",'CellMaxVolNum',\"CellMinVolNum\",'CellTemp','CellMaxTempNum','CellMinTempNum','PackCrnt','VehRmnRng','VehOdo','FltCode',\n",
+    "'FltLvl','VehSpd','PedalAngle','PackSoc','MotorPwr','EnmTemp','InsulationRss','ChrgSta','GPS_lon','GPS_lat','GPS_alt',\n",
+    "  'PowerAlreadyTime','BMSSta','ACSta','OncCmState','HVILSta','OfcAccumTime','OncAccumTime','BmsOncChgCp','BmsOfcPileOutputVol','BmsOfcPileOutputCur','BmsOfcCc','BmsOfcAllowed',\n",
+    "  'OncOutCurrent','OncOutVoltage','OfcStationMaxOutVolt','OfcStationMinOutVolt','OfcStationMaxOutCrnt','OfcStationMinOutCrnt','BmsOfcgVoltageRequest','BmsOfcType','BmsOfcCurrentRequest',\n",
+    "  'BmsOncChgRequest','BmsRequestOutputCurrent','BmsRequestOutputVoltage','BmsOncCc','BmsS2State','HvUpState','HvDownState','CellMaxVol','CellMinVol','CellMaxTemp','CellMinTemp','Tripmeter',\n",
+    "  'VehAccX','VehAccY','StringAngle','PTCSta','PTCPwr','PosRlySta','NegRlySta','OfcPreRlySta','OfcRlySta','OfcPosChrgerTemp','OfcNegChrgerTemp','OncPosChrgerTemp','OncNegChrgerTemp',\n",
+    "  'InstPwrCmsmtion','AvgPwrCmsmtion','SubPwrCmsmtion','BmsCellVoltDiff','DriveMode','BmsBatTempDiff','BmsClmThermalSts','BmsBatteryTotalCapacity','BmsBatteryAvaiCapacity',\n",
+    "  'BmsOncChgCpConn','CellVoltRecTime','CellVoltTotalCount','CellVoltFrameNo','CellVoltFrameCount','CellTempTotalCount','SN','BatteryModel']\n",
+    "auth = oss2.Auth('LTAI4FyoDnXMjqd78rdRDFHN', 'sdFl6vjM9l2rvWiUTzuFQb2xqjUoY5')\n",
+    "bucket = oss2.Bucket(auth, \"https://oss-cn-hangzhou.aliyuncs.com\", 'ff-hezhong')\n",
+    "df_data = pd.DataFrame(columns = columns)       \n",
+    "for b in oss2.ObjectIterator(bucket,'alg/LUZAGAAA1MA038075/202202251410/'):\n",
+    "    bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "    df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "    df_data = pd.concat([df_data,df])\n",
+    "df_data = df_data.reset_index(drop=True)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "b'{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE005FA0111B8L0000059\",\"key\":\"09SPE005FA0111B8L0000059_202202271605\",\"module_model_code\":\"MODULE_2.64kWh_177Ah_1P4S\",\"pack_series_parallerl\":\"1P104S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TW\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"174\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001A8D0100014\",\"key\":\"001PB047000001A8D0100014_202202271605\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B990000050\",\"key\":\"0CZPE007DN0111B990000050_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B800000064\",\"key\":\"0CZPE007DN0111B800000064_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001AA70100148\",\"key\":\"001PB047000001AA70100148_202202271605\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8S0000045\",\"key\":\"0CZPE007DN0111B8S0000045_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE006DA0111A9K0000014\",\"key\":\"09SPE006DA0111A9K0000014_202202271605\",\"module_model_code\":\"MEAFG\",\"pack_series_parallerl\":\"1P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TZ\",\"module_manufactory\":\"\\xe6\\xb1\\x9f\\xe8\\x8b\\x8f\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"110\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8T0000051\",\"key\":\"0CZPE007DN0111B8T0000051_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B990000050\",\"key\":\"0CZPE007DN0111B990000050_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8S0000045\",\"key\":\"0CZPE007DN0111B8S0000045_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001A8D0100014\",\"key\":\"001PB047000001A8D0100014_202202271606\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8T0000051\",\"key\":\"0CZPE007DN0111B8T0000051_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001AA70100148\",\"key\":\"001PB047000001AA70100148_202202271606\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE006DA0111A9K0000014\",\"key\":\"09SPE006DA0111A9K0000014_202202271606\",\"module_model_code\":\"MEAFG\",\"pack_series_parallerl\":\"1P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TZ\",\"module_manufactory\":\"\\xe6\\xb1\\x9f\\xe8\\x8b\\x8f\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"110\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B800000064\",\"key\":\"0CZPE007DN0111B800000064_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE005FA0111B8L0000059\",\"key\":\"09SPE005FA0111B8L0000059_202202271606\",\"module_model_code\":\"MODULE_2.64kWh_177Ah_1P4S\",\"pack_series_parallerl\":\"1P104S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TW\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"174\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n"
+     ]
+    }
+   ],
+   "source": [
+    "import ssl\n",
+    "from kafka import KafkaProducer, KafkaConsumer\n",
+    "from kafka.errors import kafka_errors\n",
+    "import traceback\n",
+    "import json\n",
+    "import pdb\n",
+    "import os\n",
+    "import pandas as pd\n",
+    "import oss2\n",
+    "from itertools import islice\n",
+    "import pandas as pd\n",
+    "context = ssl.create_default_context()\n",
+    "context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n",
+    "## The new python(2.7.8+) may cannot ignore the hostname check,\n",
+    "## you could set to ssl.CERT_NONE to walk around the problem,\n",
+    "## or you can change the client to confluent-python-demo \n",
+    "\n",
+    "# context.verify_mode = ssl.CERT_NONE\n",
+    "context.verify_mode = ssl.CERT_REQUIRED\n",
+    "topic = 'toAlgSn' # toAlg, toAlgSn\n",
+    "# context.check_hostname = True\n",
+    "context.load_verify_locations(\"ca-cert\")\n",
+    "consumer = KafkaConsumer(topic, bootstrap_servers=['alikafka-pre-cn-8ed2kw57901x-1.alikafka.aliyuncs.com:9093',\n",
+    "                                            'alikafka-pre-cn-8ed2kw57901x-2.alikafka.aliyuncs.com:9093',\n",
+    "                                            'alikafka-pre-cn-8ed2kw57901x-3.alikafka.aliyuncs.com:9093'],\n",
+    "                         sasl_mechanism=\"PLAIN\",\n",
+    "                         ssl_context=context,\n",
+    "                         security_protocol='SASL_SSL',\n",
+    "                         api_version = (2,2),\n",
+    "                         sasl_plain_username='alikafka_pre-cn-8ed2kw57901x',\n",
+    "                         sasl_plain_password='hlQsApgUUdUxcWEr1uQoM9BeuF8t8vMF',\n",
+    "                         consumer_timeout_ms= 100000000, # 如果10秒内kafka中没有可供消费的数据,自动退出\n",
+    "                         client_id='consumer-python3',\n",
+    "                         auto_offset_reset='earliest',# 消费kafka中最近的数据,如果设置为earliest则消费最早的数据,不管这些数据是否消费\n",
+    "                         enable_auto_commit=True, # 自动提交消费者的offset\n",
+    "                         auto_commit_interval_ms=3000, ## 自动提交消费者offset的时间间隔,\n",
+    "\n",
+    ")\n",
+    "\n",
+    "columns = [\"id\",\"VIN\",\"VehModel\",\"VehState\",\"Time\",\"CellVoltage\",\"PackVoltage\",'CellMaxVolNum',\"CellMinVolNum\",'CellTemp','CellMaxTempNum','CellMinTempNum','PackCrnt','VehRmnRng','VehOdo','FltCode',\n",
+    "'FltLvl','VehSpd','PedalAngle','PackSoc','MotorPwr','EnmTemp','InsulationRss','ChrgSta','GPS_lon','GPS_lat','GPS_alt',\n",
+    "  'PowerAlreadyTime','BMSSta','ACSta','OncCmState','HVILSta','OfcAccumTime','OncAccumTime','BmsOncChgCp','BmsOfcPileOutputVol','BmsOfcPileOutputCur','BmsOfcCc','BmsOfcAllowed',\n",
+    "  'OncOutCurrent','OncOutVoltage','OfcStationMaxOutVolt','OfcStationMinOutVolt','OfcStationMaxOutCrnt','OfcStationMinOutCrnt','BmsOfcgVoltageRequest','BmsOfcType','BmsOfcCurrentRequest',\n",
+    "  'BmsOncChgRequest','BmsRequestOutputCurrent','BmsRequestOutputVoltage','BmsOncCc','BmsS2State','HvUpState','HvDownState','CellMaxVol','CellMinVol','CellMaxTemp','CellMinTemp','Tripmeter',\n",
+    "  'VehAccX','VehAccY','StringAngle','PTCSta','PTCPwr','PosRlySta','NegRlySta','OfcPreRlySta','OfcRlySta','OfcPosChrgerTemp','OfcNegChrgerTemp','OncPosChrgerTemp','OncNegChrgerTemp',\n",
+    "  'InstPwrCmsmtion','AvgPwrCmsmtion','SubPwrCmsmtion','BmsCellVoltDiff','DriveMode','BmsBatTempDiff','BmsClmThermalSts','BmsBatteryTotalCapacity','BmsBatteryAvaiCapacity',\n",
+    "  'BmsOncChgCpConn','CellVoltRecTime','CellVoltTotalCount','CellVoltFrameNo','CellVoltFrameCount','CellTempTotalCount','SN','BatteryModel']\n",
+    "auth = oss2.Auth('LTAI4FyoDnXMjqd78rdRDFHN', 'sdFl6vjM9l2rvWiUTzuFQb2xqjUoY5')\n",
+    "bucket = oss2.Bucket(auth, \"https://oss-cn-hangzhou.aliyuncs.com\", 'ff-hezhong')\n",
+    "   \n",
+    "\n",
+    "for message in consumer:\n",
+    "      print(message.value)\n",
+    "      # 读取vin数据\n",
+    "      # df_data = pd.DataFrame(columns = columns)    \n",
+    "      # for b in oss2.ObjectIterator(bucket,'alg/'+str(message.value,'utf-8').replace(\"_\",\"/\")):\n",
+    "      #       bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "      #       df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "      #       df_data = pd.concat([df_data,df])\n",
+    "      # df_data = df_data.reset_index(drop=True)\n",
+    "      \n",
+    "      # 读取sn数据\n",
+    "      df_data = pd.DataFrame(columns = columns)    \n",
+    "      for b in oss2.ObjectIterator(bucket,'alg/'+str(message.value,'utf-8').replace(\"_\",\"/\")):\n",
+    "            bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "            df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "            df_data = pd.concat([df_data,df])\n",
+    "      df_data = df_data.reset_index(drop=True)\n",
+    "      print(str(len(df_data)))\n",
+    "      \n",
+    "    \n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'LUZAGAAA5MA009680/202202271606'"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "str(message.value,'utf-8').replace(\"_\",\"/\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df_data['Time'] = pd.to_datetime(df['Time'],unit='ms')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "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>id</th>\n",
+       "      <th>VIN</th>\n",
+       "      <th>VehModel</th>\n",
+       "      <th>VehState</th>\n",
+       "      <th>Time</th>\n",
+       "      <th>CellVoltage</th>\n",
+       "      <th>PackVoltage</th>\n",
+       "      <th>CellMaxVolNum</th>\n",
+       "      <th>CellMinVolNum</th>\n",
+       "      <th>CellTemp</th>\n",
+       "      <th>...</th>\n",
+       "      <th>BmsBatteryTotalCapacity</th>\n",
+       "      <th>BmsBatteryAvaiCapacity</th>\n",
+       "      <th>BmsOncChgCpConn</th>\n",
+       "      <th>CellVoltRecTime</th>\n",
+       "      <th>CellVoltTotalCount</th>\n",
+       "      <th>CellVoltFrameNo</th>\n",
+       "      <th>CellVoltFrameCount</th>\n",
+       "      <th>CellTempTotalCount</th>\n",
+       "      <th>SN</th>\n",
+       "      <th>BatteryModel</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621153</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.654</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621122</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.685</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621106</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.701</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621092</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.715</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621081</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.726</td>\n",
+       "      <td>4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...</td>\n",
+       "      <td>389.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171093000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1293</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615845</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.962</td>\n",
+       "      <td>4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157910000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1294</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157687000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1295</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157336000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1296</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...</td>\n",
+       "      <td>391.7</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641153388000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1297</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...</td>\n",
+       "      <td>392.0</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641152216000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>1298 rows × 90 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                                    id                VIN  \\\n",
+       "0     1803242740_LUZAGAAA5MA009680_9223370390905621153  LUZAGAAA5MA009680   \n",
+       "1     1803242740_LUZAGAAA5MA009680_9223370390905621122  LUZAGAAA5MA009680   \n",
+       "2     1803242740_LUZAGAAA5MA009680_9223370390905621106  LUZAGAAA5MA009680   \n",
+       "3     1803242740_LUZAGAAA5MA009680_9223370390905621092  LUZAGAAA5MA009680   \n",
+       "4     1803242740_LUZAGAAA5MA009680_9223370390905621081  LUZAGAAA5MA009680   \n",
+       "...                                                ...                ...   \n",
+       "1293  1803242740_LUZAGAAA5MA009680_9223370390905615845  LUZAGAAA5MA009680   \n",
+       "1294  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1295  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1296  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "1297  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "\n",
+       "     VehModel VehState                    Time  \\\n",
+       "0        EP12        2 2022-02-27 08:05:54.654   \n",
+       "1        EP12        2 2022-02-27 08:05:54.685   \n",
+       "2        EP12        2 2022-02-27 08:05:54.701   \n",
+       "3        EP12        2 2022-02-27 08:05:54.715   \n",
+       "4        EP12        2 2022-02-27 08:05:54.726   \n",
+       "...       ...      ...                     ...   \n",
+       "1293     EP12        2 2022-02-27 08:05:59.962   \n",
+       "1294     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1295     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1296     EP12        2 2022-02-27 08:05:59.964   \n",
+       "1297     EP12        2 2022-02-27 08:05:59.964   \n",
+       "\n",
+       "                                            CellVoltage  PackVoltage  \\\n",
+       "0     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "1     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "2     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "3     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "4     4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...        389.5   \n",
+       "...                                                 ...          ...   \n",
+       "1293  4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...        390.5   \n",
+       "1294  4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1295  4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1296  4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...        391.7   \n",
+       "1297  4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...        392.0   \n",
+       "\n",
+       "     CellMaxVolNum CellMinVolNum  \\\n",
+       "0               26            84   \n",
+       "1               18            84   \n",
+       "2               26            84   \n",
+       "3               18            84   \n",
+       "4               25            84   \n",
+       "...            ...           ...   \n",
+       "1293            25            84   \n",
+       "1294            25            84   \n",
+       "1295            25            84   \n",
+       "1296            26            84   \n",
+       "1297            25            84   \n",
+       "\n",
+       "                                               CellTemp  ...  \\\n",
+       "0     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "1     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "2     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "3     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "4     19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...  ...   \n",
+       "...                                                 ...  ...   \n",
+       "1293  18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...  ...   \n",
+       "1294  18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...  ...   \n",
+       "1295  18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...  ...   \n",
+       "1296  14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...  ...   \n",
+       "1297  14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...  ...   \n",
+       "\n",
+       "     BmsBatteryTotalCapacity BmsBatteryAvaiCapacity  BmsOncChgCpConn  \\\n",
+       "0               4.294967e+09           4.294967e+09              255   \n",
+       "1               4.294967e+09           4.294967e+09              255   \n",
+       "2               4.294967e+09           4.294967e+09              255   \n",
+       "3               4.294967e+09           4.294967e+09              255   \n",
+       "4               4.294967e+09           4.294967e+09              255   \n",
+       "...                      ...                    ...              ...   \n",
+       "1293            4.294967e+09           4.294967e+09              255   \n",
+       "1294            4.294967e+09           4.294967e+09              255   \n",
+       "1295            4.294967e+09           4.294967e+09              255   \n",
+       "1296            4.294967e+09           4.294967e+09              255   \n",
+       "1297            4.294967e+09           4.294967e+09              255   \n",
+       "\n",
+       "      CellVoltRecTime  CellVoltTotalCount  CellVoltFrameNo CellVoltFrameCount  \\\n",
+       "0       1641150270000                  96                1                 96   \n",
+       "1       1641171313000                  96                1                 96   \n",
+       "2       1641150270000                  96                1                 96   \n",
+       "3       1641171313000                  96                1                 96   \n",
+       "4       1641171093000                  96                1                 96   \n",
+       "...               ...                 ...              ...                ...   \n",
+       "1293    1641157910000                  96                1                 96   \n",
+       "1294    1641157687000                  96                1                 96   \n",
+       "1295    1641157336000                  96                1                 96   \n",
+       "1296    1641153388000                  96                1                 96   \n",
+       "1297    1641152216000                  96                1                 96   \n",
+       "\n",
+       "      CellTempTotalCount                        SN  BatteryModel  \n",
+       "0                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "2                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "3                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "4                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "...                  ...                       ...           ...  \n",
+       "1293                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1294                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1295                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1296                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1297                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "\n",
+       "[1298 rows x 90 columns]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "df_data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "5ac93a79b26608c768d42fbd754dd4f69161017bfc4d38cb4b18d60e5198dbca"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.6.2 ('ana_py36')",
+   "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"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

+ 488 - 11
LIB/OTHER/test.ipynb

@@ -29,9 +29,52 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 11,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "b'{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE005FA0111B8L0000059\",\"key\":\"09SPE005FA0111B8L0000059_202202271605\",\"module_model_code\":\"MODULE_2.64kWh_177Ah_1P4S\",\"pack_series_parallerl\":\"1P104S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TW\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"174\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001A8D0100014\",\"key\":\"001PB047000001A8D0100014_202202271605\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B990000050\",\"key\":\"0CZPE007DN0111B990000050_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B800000064\",\"key\":\"0CZPE007DN0111B800000064_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001AA70100148\",\"key\":\"001PB047000001AA70100148_202202271605\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8S0000045\",\"key\":\"0CZPE007DN0111B8S0000045_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE006DA0111A9K0000014\",\"key\":\"09SPE006DA0111A9K0000014_202202271605\",\"module_model_code\":\"MEAFG\",\"pack_series_parallerl\":\"1P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TZ\",\"module_manufactory\":\"\\xe6\\xb1\\x9f\\xe8\\x8b\\x8f\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"110\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8T0000051\",\"key\":\"0CZPE007DN0111B8T0000051_202202271605\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B4K0000084\",\"key\":\"0CZPE007DN0111B4K0000084_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B990000050\",\"key\":\"0CZPE007DN0111B990000050_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8S0000045\",\"key\":\"0CZPE007DN0111B8S0000045_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001A8D0100014\",\"key\":\"001PB047000001A8D0100014_202202271606\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B8T0000051\",\"key\":\"0CZPE007DN0111B8T0000051_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"001PB047000001AA70100148\",\"key\":\"001PB047000001AA70100148_202202271606\",\"module_model_code\":\"CB350\",\"pack_series_parallerl\":\"1P112S\",\"cell_battery_type\":\"B\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TS\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"87\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE006DA0111A9K0000014\",\"key\":\"09SPE006DA0111A9K0000014_202202271606\",\"module_model_code\":\"MEAFG\",\"pack_series_parallerl\":\"1P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TZ\",\"module_manufactory\":\"\\xe6\\xb1\\x9f\\xe8\\x8b\\x8f\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"110\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"0CZPE007DN0111B800000064\",\"key\":\"0CZPE007DN0111B800000064_202202271606\",\"module_model_code\":\"J9\",\"pack_series_parallerl\":\"2P96S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"3\",\"pack_model_code\":\"2101TAB\",\"module_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"122\",\"cell_manufactory\":\"\\xe5\\x8d\\x8e\\xe9\\xbc\\x8e\\xe5\\x9b\\xbd\\xe8\\x81\\x94\\xe5\\x8a\\xa8\\xe5\\x8a\\x9b\\xe7\\x94\\xb5\\xe6\\xb1\\xa0\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n",
+      "b'{\"sn\":\"09SPE005FA0111B8L0000059\",\"key\":\"09SPE005FA0111B8L0000059_202202271606\",\"module_model_code\":\"MODULE_2.64kWh_177Ah_1P4S\",\"pack_series_parallerl\":\"1P104S\",\"cell_battery_type\":\"E\",\"cell_dict_shape\":\"1\",\"pack_model_code\":\"2101TW\",\"module_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\",\"pack_capacity\":\"174\",\"cell_manufactory\":\"\\xe5\\xae\\x81\\xe5\\xbe\\xb7\\xe6\\x97\\xb6\\xe4\\xbb\\xa3\\xe6\\x96\\xb0\\xe8\\x83\\xbd\\xe6\\xba\\x90\\xe7\\xa7\\x91\\xe6\\x8a\\x80\\xe8\\x82\\xa1\\xe4\\xbb\\xbd\\xe6\\x9c\\x89\\xe9\\x99\\x90\\xe5\\x85\\xac\\xe5\\x8f\\xb8\"}'\n",
+      "0\n"
+     ]
+    }
+   ],
    "source": [
     "import ssl\n",
     "from kafka import KafkaProducer, KafkaConsumer\n",
@@ -52,7 +95,7 @@
     "\n",
     "# context.verify_mode = ssl.CERT_NONE\n",
     "context.verify_mode = ssl.CERT_REQUIRED\n",
-    "topic = 'toAlg'\n",
+    "topic = 'toAlgSn' # toAlg, toAlgSn\n",
     "# context.check_hostname = True\n",
     "context.load_verify_locations(\"ca-cert\")\n",
     "consumer = KafkaConsumer(topic, bootstrap_servers=['alikafka-pre-cn-8ed2kw57901x-1.alikafka.aliyuncs.com:9093',\n",
@@ -86,13 +129,22 @@
     "\n",
     "for message in consumer:\n",
     "      print(message.value)\n",
+    "      # 读取vin数据\n",
     "      # df_data = pd.DataFrame(columns = columns)    \n",
     "      # for b in oss2.ObjectIterator(bucket,'alg/'+str(message.value,'utf-8').replace(\"_\",\"/\")):\n",
     "      #       bucket.get_object_to_file(b.key, 'test.txt')\n",
     "      #       df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
     "      #       df_data = pd.concat([df_data,df])\n",
     "      # df_data = df_data.reset_index(drop=True)\n",
-    "      # print(str(message.value) + str(len(df_data)))\n",
+    "      \n",
+    "      # 读取sn数据\n",
+    "      df_data = pd.DataFrame(columns = columns)    \n",
+    "      for b in oss2.ObjectIterator(bucket,'alg/'+str(message.value,'utf-8').replace(\"_\",\"/\")):\n",
+    "            bucket.get_object_to_file(b.key, 'test.txt')\n",
+    "            df = pd.read_csv('test.txt', names=columns, sep=' ')\n",
+    "            df_data = pd.concat([df_data,df])\n",
+    "      df_data = df_data.reset_index(drop=True)\n",
+    "      print(str(len(df_data)))\n",
     "      \n",
     "    \n",
     "\n"
@@ -100,16 +152,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "'LUZAGAAA9MA036462/202202251746'"
+       "'LUZAGAAA5MA009680/202202271606'"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -120,22 +172,447 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df_data['Time'] = pd.to_datetime(df['Time'],unit='ms')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
    "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>id</th>\n",
+       "      <th>VIN</th>\n",
+       "      <th>VehModel</th>\n",
+       "      <th>VehState</th>\n",
+       "      <th>Time</th>\n",
+       "      <th>CellVoltage</th>\n",
+       "      <th>PackVoltage</th>\n",
+       "      <th>CellMaxVolNum</th>\n",
+       "      <th>CellMinVolNum</th>\n",
+       "      <th>CellTemp</th>\n",
+       "      <th>...</th>\n",
+       "      <th>BmsBatteryTotalCapacity</th>\n",
+       "      <th>BmsBatteryAvaiCapacity</th>\n",
+       "      <th>BmsOncChgCpConn</th>\n",
+       "      <th>CellVoltRecTime</th>\n",
+       "      <th>CellVoltTotalCount</th>\n",
+       "      <th>CellVoltFrameNo</th>\n",
+       "      <th>CellVoltFrameCount</th>\n",
+       "      <th>CellTempTotalCount</th>\n",
+       "      <th>SN</th>\n",
+       "      <th>BatteryModel</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621153</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.654</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621122</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.685</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621106</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.701</td>\n",
+       "      <td>4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...</td>\n",
+       "      <td>392.2</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641150270000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621092</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.715</td>\n",
+       "      <td>4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...</td>\n",
+       "      <td>390.0</td>\n",
+       "      <td>18</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171313000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905621081</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:54.726</td>\n",
+       "      <td>4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...</td>\n",
+       "      <td>389.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641171093000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1293</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615845</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.962</td>\n",
+       "      <td>4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157910000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1294</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157687000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1295</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615844</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.963</td>\n",
+       "      <td>4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...</td>\n",
+       "      <td>390.5</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641157336000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1296</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...</td>\n",
+       "      <td>391.7</td>\n",
+       "      <td>26</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641153388000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1297</th>\n",
+       "      <td>1803242740_LUZAGAAA5MA009680_9223370390905615843</td>\n",
+       "      <td>LUZAGAAA5MA009680</td>\n",
+       "      <td>EP12</td>\n",
+       "      <td>2</td>\n",
+       "      <td>2022-02-27 08:05:59.964</td>\n",
+       "      <td>4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...</td>\n",
+       "      <td>392.0</td>\n",
+       "      <td>25</td>\n",
+       "      <td>84</td>\n",
+       "      <td>14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>4.294967e+09</td>\n",
+       "      <td>255</td>\n",
+       "      <td>1641152216000</td>\n",
+       "      <td>96</td>\n",
+       "      <td>1</td>\n",
+       "      <td>96</td>\n",
+       "      <td>32</td>\n",
+       "      <td>0CZPE007DN0111B4K0000084</td>\n",
+       "      <td>NaN</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>1298 rows × 90 columns</p>\n",
+       "</div>"
+      ],
       "text/plain": [
-       "1419264"
+       "                                                    id                VIN  \\\n",
+       "0     1803242740_LUZAGAAA5MA009680_9223370390905621153  LUZAGAAA5MA009680   \n",
+       "1     1803242740_LUZAGAAA5MA009680_9223370390905621122  LUZAGAAA5MA009680   \n",
+       "2     1803242740_LUZAGAAA5MA009680_9223370390905621106  LUZAGAAA5MA009680   \n",
+       "3     1803242740_LUZAGAAA5MA009680_9223370390905621092  LUZAGAAA5MA009680   \n",
+       "4     1803242740_LUZAGAAA5MA009680_9223370390905621081  LUZAGAAA5MA009680   \n",
+       "...                                                ...                ...   \n",
+       "1293  1803242740_LUZAGAAA5MA009680_9223370390905615845  LUZAGAAA5MA009680   \n",
+       "1294  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1295  1803242740_LUZAGAAA5MA009680_9223370390905615844  LUZAGAAA5MA009680   \n",
+       "1296  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "1297  1803242740_LUZAGAAA5MA009680_9223370390905615843  LUZAGAAA5MA009680   \n",
+       "\n",
+       "     VehModel VehState                    Time  \\\n",
+       "0        EP12        2 2022-02-27 08:05:54.654   \n",
+       "1        EP12        2 2022-02-27 08:05:54.685   \n",
+       "2        EP12        2 2022-02-27 08:05:54.701   \n",
+       "3        EP12        2 2022-02-27 08:05:54.715   \n",
+       "4        EP12        2 2022-02-27 08:05:54.726   \n",
+       "...       ...      ...                     ...   \n",
+       "1293     EP12        2 2022-02-27 08:05:59.962   \n",
+       "1294     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1295     EP12        2 2022-02-27 08:05:59.963   \n",
+       "1296     EP12        2 2022-02-27 08:05:59.964   \n",
+       "1297     EP12        2 2022-02-27 08:05:59.964   \n",
+       "\n",
+       "                                            CellVoltage  PackVoltage  \\\n",
+       "0     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "1     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "2     4.084,4.084,4.085,4.085,4.087,4.087,4.088,4.08...        392.2   \n",
+       "3     4.061,4.063,4.064,4.064,4.064,4.064,4.065,4.06...        390.0   \n",
+       "4     4.057,4.058,4.058,4.060,4.060,4.060,4.061,4.06...        389.5   \n",
+       "...                                                 ...          ...   \n",
+       "1293  4.067,4.069,4.069,4.070,4.070,4.070,4.071,4.07...        390.5   \n",
+       "1294  4.068,4.070,4.070,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1295  4.069,4.070,4.071,4.071,4.071,4.071,4.071,4.07...        390.5   \n",
+       "1296  4.083,4.084,4.085,4.084,4.085,4.085,4.087,4.08...        391.7   \n",
+       "1297  4.083,4.084,4.085,4.085,4.085,4.087,4.088,4.08...        392.0   \n",
+       "\n",
+       "     CellMaxVolNum CellMinVolNum  \\\n",
+       "0               26            84   \n",
+       "1               18            84   \n",
+       "2               26            84   \n",
+       "3               18            84   \n",
+       "4               25            84   \n",
+       "...            ...           ...   \n",
+       "1293            25            84   \n",
+       "1294            25            84   \n",
+       "1295            25            84   \n",
+       "1296            26            84   \n",
+       "1297            25            84   \n",
+       "\n",
+       "                                               CellTemp  ...  \\\n",
+       "0     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "1     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "2     14,15,14,14,14,14,13,13,12,12,12,12,11,12,11,1...  ...   \n",
+       "3     19,20,19,20,18,19,18,19,16,17,17,18,16,16,16,1...  ...   \n",
+       "4     19,20,19,20,18,19,18,19,16,17,18,18,16,16,17,1...  ...   \n",
+       "...                                                 ...  ...   \n",
+       "1293  18,18,18,18,17,18,17,18,16,16,16,17,15,16,15,1...  ...   \n",
+       "1294  18,19,18,18,18,18,17,18,16,17,17,17,16,16,15,1...  ...   \n",
+       "1295  18,19,18,19,18,18,17,18,16,17,17,17,16,16,16,1...  ...   \n",
+       "1296  14,14,13,14,13,13,12,12,11,12,11,11,10,11,10,1...  ...   \n",
+       "1297  14,14,14,14,13,13,12,13,12,12,11,12,11,11,10,1...  ...   \n",
+       "\n",
+       "     BmsBatteryTotalCapacity BmsBatteryAvaiCapacity  BmsOncChgCpConn  \\\n",
+       "0               4.294967e+09           4.294967e+09              255   \n",
+       "1               4.294967e+09           4.294967e+09              255   \n",
+       "2               4.294967e+09           4.294967e+09              255   \n",
+       "3               4.294967e+09           4.294967e+09              255   \n",
+       "4               4.294967e+09           4.294967e+09              255   \n",
+       "...                      ...                    ...              ...   \n",
+       "1293            4.294967e+09           4.294967e+09              255   \n",
+       "1294            4.294967e+09           4.294967e+09              255   \n",
+       "1295            4.294967e+09           4.294967e+09              255   \n",
+       "1296            4.294967e+09           4.294967e+09              255   \n",
+       "1297            4.294967e+09           4.294967e+09              255   \n",
+       "\n",
+       "      CellVoltRecTime  CellVoltTotalCount  CellVoltFrameNo CellVoltFrameCount  \\\n",
+       "0       1641150270000                  96                1                 96   \n",
+       "1       1641171313000                  96                1                 96   \n",
+       "2       1641150270000                  96                1                 96   \n",
+       "3       1641171313000                  96                1                 96   \n",
+       "4       1641171093000                  96                1                 96   \n",
+       "...               ...                 ...              ...                ...   \n",
+       "1293    1641157910000                  96                1                 96   \n",
+       "1294    1641157687000                  96                1                 96   \n",
+       "1295    1641157336000                  96                1                 96   \n",
+       "1296    1641153388000                  96                1                 96   \n",
+       "1297    1641152216000                  96                1                 96   \n",
+       "\n",
+       "      CellTempTotalCount                        SN  BatteryModel  \n",
+       "0                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "2                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "3                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "4                     32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "...                  ...                       ...           ...  \n",
+       "1293                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1294                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1295                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1296                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "1297                  32  0CZPE007DN0111B4K0000084           NaN  \n",
+       "\n",
+       "[1298 rows x 90 columns]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "len(df_data)"
+    "df_data"
    ]
   },
   {

Some files were not shown because too many files changed in this diff