소스 검색

增加数据获取字段,更新结果数据组织方式

lmstack 3 년 전
부모
커밋
73ca3b3408
5개의 변경된 파일117개의 추가작업 그리고 140개의 파일을 삭제
  1. 55 24
      LIB/BACKEND/DBManager.py
  2. 4 6
      LIB/BACKEND/Tools.py
  3. 38 92
      demo.ipynb
  4. 17 8
      函数说明/DBManager.html
  5. 3 10
      函数说明/Tools.html

+ 55 - 24
LIB/BACKEND/DBManager.py

@@ -116,10 +116,16 @@ class DBManager():
                     data['ffBatteryStatus']['chargeState'],data['ffBatteryStatus']['heatState'],data['ffBatteryStatus']['cellVoltageDiff']
                     ,data['ffBatteryStatus']['soc'],data['ffBatteryStatus']['soh'],data['ffBatteryStatus']['cellVolBalance']]).reshape(1,data_len)
         elif mode == 1:
-            data_len = 7
+            data_len = 11
             data_block = np.array([data['info']['obdTime'],data['ffBatteryStatus']['rssi']
-            ,data['ffBatteryStatus']['current'],data['ffBatteryStatus']['voltageInner'],data['ffBatteryStatus']['chargeState']
-            ,data['ffBatteryStatus']['soc'],data['ffBatteryStatus']['soh']]).reshape(1,data_len)
+            ,data['ffBatteryStatus']['errorLevel'],data['ffBatteryStatus']['errorCode'],data['ffBatteryStatus']['switchState']
+            ,data['ffBatteryStatus']['current'],data['ffBatteryStatus']['voltageInner'],data['ffBatteryStatus']['chargeState'],
+            data['ffBatteryStatus']['cellVoltageDiff'],data['ffBatteryStatus']['soc'],data['ffBatteryStatus']['soh']]).reshape(1,data_len)
+        elif mode == 2:
+            data_len = 9
+            data_block = np.array([data['info']['obdTime'],data['ffBatteryStatus']['rssi'],data['ffBatteryStatus']['switchState']
+            ,data['ffBatteryStatus']['current'],data['ffBatteryStatus']['voltageInner'],data['ffBatteryStatus']['chargeState'],
+            data['ffBatteryStatus']['cellVoltageDiff'],data['ffBatteryStatus']['soc'],data['ffBatteryStatus']['soh']]).reshape(1,data_len)
         data_block = np.append(data_block,CellU)
         data_block = np.append(data_block,CellT)
         data_block = np.append(data_block,OtherT)
@@ -139,10 +145,15 @@ class DBManager():
                 df = pd.DataFrame(
                     columns=['时间戳','定位类型', '卫星数','纬度','经度','速度[km/h]','海拔','航向'])
         if mode == 1:
-                data_block = np.array([data['info']['obdTime'],data['ffGps']['latitude'],data['ffGps']['longitude']
-                    ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,5)
+                data_block = np.array([data['info']['obdTime'],data['ffGps']['locationType'],data['ffGps']['latitude'],data['ffGps']['longitude']
+                    ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,6)
                 df = pd.DataFrame(
-                    columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
+                    columns=['时间戳','定位类型', '纬度','经度','速度[km/h]','有效位'],data=data_block)
+        if mode == 2:
+            data_block = np.array([data['info']['obdTime'],data['ffGps']['locationType'],data['ffGps']['latitude'],data['ffGps']['longitude']
+            ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,6)
+            df = pd.DataFrame(
+            columns=['时间戳','定位类型', '纬度','经度','速度[km/h]','有效位'],data=data_block)
         return df
 
     
@@ -156,12 +167,10 @@ class DBManager():
                                     data['ffSystemInfo']['gpsInterval']]).reshape(1,7)
             df = pd.DataFrame(
                 columns=['时间戳','加热目标温度', '加热超时','租赁开始时间','租赁天数','bms上传周期','gps上传周期'],data=data_block)
-
         if mode == 1:
-                data_block = np.array([data['info']['obdTime'],data['ffGps']['latitude'],data['ffGps']['longitude']
-                    ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,5)
-                df = pd.DataFrame(
-                    columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
+                df = pd.DataFrame()
+        if mode == 2:
+                df = pd.DataFrame()
         return df
     
     @staticmethod
@@ -177,10 +186,17 @@ class DBManager():
                                                '累计高温充电电量', '累计高温充电能量'],data=data_block)
 
         if mode == 1:
-                data_block = np.array([data['info']['obdTime'],data['ffGps']['latitude'],data['ffGps']['longitude']
-                    ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,5)
+                data_block = np.array([data['info']['obdTime'], data['ffBatteryAccum']['CHG_AHaccum'],
+                                    data['ffBatteryAccum']['CHG_PHaccum'], data['ffBatteryAccum']['DSG_AHaccum'],
+                                    data['ffBatteryAccum']['DSG_PHaccum'],data['ffBatteryAccum']['totalMileage']]).reshape(1,6)
                 df = pd.DataFrame(
-                    columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
+                    columns=['时间戳','累计充电电量','累计充电能量','累计放电电量','累计放电能量', '累积里程'],data=data_block)
+        if mode == 2:
+            data_block = np.array([data['info']['obdTime'], data['ffBatteryAccum']['CHG_AHaccum'],
+                                data['ffBatteryAccum']['CHG_PHaccum'], data['ffBatteryAccum']['DSG_AHaccum'],
+                                data['ffBatteryAccum']['DSG_PHaccum'],data['ffBatteryAccum']['totalMileage']]).reshape(1,6)
+            df = pd.DataFrame(
+                columns=['时间戳','累计充电电量','累计充电能量','累计放电电量','累计放电能量', '累积里程'],data=data_block)
         return df
     
     @staticmethod
@@ -190,7 +206,9 @@ class DBManager():
                 name_const = ['时间戳','GSM信号','故障等级','故障代码','总电流[A]','总电压[V]', '外电压', '总输出状态', '上锁状态', '充电状态','加热状态',
                               '单体压差', 'SOC[%]','SOH[%]','单体均衡状态']
             elif mode == 1:
-                name_const = ['时间戳','GSM信号','总电流[A]','总电压[V]','充电状态','SOC[%]','SOH[%]']
+                name_const = ['时间戳','GSM信号','故障等级', '故障代码','开关状态', '总电流[A]','总电压[V]','充电状态', '单体压差', 'SOC[%]','SOH[%]']
+            elif mode == 2:
+                name_const = ['时间戳','GSM信号','开关状态', '总电流[A]','总电压[V]','充电状态', '单体压差', 'SOC[%]','SOH[%]']
             i=0
             CellUNum = 0
             CellTNum = 0
@@ -218,27 +236,34 @@ class DBManager():
             if i==0:
                 data_blocks = []
             df_all = pd.DataFrame(columns=columns_name,data=data_blocks)
-            df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
+            if not df_all.empty:
+                df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
             return df_all
         elif type_name =='gps':
             if mode == 0:
                 df_all = pd.DataFrame(columns=['时间戳','定位类型', '卫星数','纬度','经度','速度[km/h]','海拔','航向'])
             elif mode == 1:
-                df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
+                df_all = pd.DataFrame(columns=['时间戳','定位类型', '纬度','经度','速度[km/h]','有效位'])
+            elif mode == 2:
+                df_all = pd.DataFrame(columns=['时间戳','定位类型', '纬度','经度','速度[km/h]','有效位'])
             for line in DBManager._download_json_data(urls):
                 df_add = DBManager._convert_to_dataframe_gps(line, mode)
                 df_all = df_all.append(df_add,ignore_index=True)
-            df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
+            if not df_all.empty:
+                df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
             return df_all
         elif type_name =='system':
             if mode == 0:
                 df_all = pd.DataFrame(columns=['时间戳','加热目标温度', '加热超时','租赁开始时间','租赁天数','bms上传周期','gps上传周期'])
             elif mode == 1:
-                df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
+                df_all = pd.DataFrame()
+            elif mode == 2:
+                df_all = pd.DataFrame()    
             for line in DBManager._download_json_data(urls):
                 df_add = DBManager._convert_to_dataframe_system(line, mode)
                 df_all = df_all.append(df_add,ignore_index=True)
-            df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
+            if not df_all.empty:
+                df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
             return df_all
         
         elif type_name =='accum':
@@ -246,11 +271,14 @@ class DBManager():
                 df_all = pd.DataFrame(columns=['时间戳','SOH未标定时间', '累计充电电量','累计充电能量','累计放电电量','累计放电能量',
                                                '累计高温充电电量', '累计高温充电能量'])
             elif mode == 1:
-                df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
+                df_all = pd.DataFrame(columns=['时间戳','累计充电电量','累计充电能量','累计放电电量','累计放电能量', '累积里程'])
+            elif mode == 2:
+                df_all = pd.DataFrame(columns=['时间戳','累计充电电量','累计充电能量','累计放电电量','累计放电能量', '累积里程'])
             for line in DBManager._download_json_data(urls):
                 df_add = DBManager._convert_to_dataframe_accum(line, mode)
                 df_all = df_all.append(df_add,ignore_index=True)
-            df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
+            if not df_all.empty:
+                df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
             return df_all
     def get_data(self, url='http://172.16.126.13/store/load?dataType={}&limit=0&sn={}', sn='', start_time='', end_time='', 
                  data_groups=['bms', 'gps']):
@@ -277,8 +305,11 @@ class DBManager():
         if len(set(data_groups) - (set(data_groups) and set(['bms', 'gps', 'system', 'accum']))) > 0:
             raise Exception("data_groups 参数错误")
         
+        
         # mode: 0:正常取数; 1:7255 取数
-        if sn[0:2] == 'MG' or sn[0:2] == 'UD':
+        if sn[0:2] == 'UD':
+            mode = 2
+        elif sn[0:2] == 'MG':
             mode = 1
         else:
             mode = 0
@@ -293,7 +324,7 @@ class DBManager():
             timefrom = datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")+ datetime.timedelta(days=j)
             timeto = datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")+ datetime.timedelta(days=j+1)
             #滴滴的数据sub=0
-            if timefrom.strftime('%Y-%m-%d %H:%M:%S') > end_time:
+            if timefrom.strftime('%Y-%m-%d %H:%M:%S') >= end_time:
                 break
             elif timeto.strftime('%Y-%m-%d %H:%M:%S') > end_time:
                 timeto = datetime.datetime.strptime(end_time, '%Y-%m-%d %H:%M:%S')

+ 4 - 6
LIB/BACKEND/Tools.py

@@ -24,7 +24,7 @@ class Tools():
         pass
 
     # 数据下载
-    def data_download(self, write_path='', sn='', start_time='', end_time='', gps_switch=True, mode=0):
+    def data_download(self, write_path='', sn='', start_time='', end_time='', data_groups=['bms', 'gps']):
         '''
         数据下载函数
         --------------输入参数------------
@@ -41,11 +41,9 @@ class Tools():
         '''
         dbManager = DBManager.DBManager()
         print('downloading......')
-        df_bms, df_gps = dbManager.get_data(sn=sn, start_time=start_time, 
-                        end_time=end_time, gps_switch=gps_switch, mode=mode)
-        df_bms.to_csv(os.path.join(write_path, 'BMS_{}_from_{}_to_{}.csv'.format(sn, start_time[0:10], end_time[0:10])), index=False, encoding='GB2312')
-        if gps_switch:
-            df_gps.to_csv(os.path.join(write_path, 'GPS_{}_from_{}_to_{}.csv'.format(sn, start_time[0:10], end_time[0:10])), index=False, encoding='GB2312')
+        df_data = dbManager.get_data(sn=sn, start_time=start_time, end_time=end_time, data_groups=data_groups)
+        for data_group in data_groups:
+            df_data[data_group].to_csv(os.path.join(write_path, '{}_{}_from_{}_to_{}.csv'.format(data_group, sn, start_time[0:10], end_time[0:10])), index=False, encoding='GB2312')
         print('downloading success!')
 
     # 根据经纬度计算距离

+ 38 - 92
demo.ipynb

@@ -2,17 +2,19 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "### start to get data PK50201A000002140 from 2021-06-29 12:00:00 to 2021-06-30 00:00:00\n",
-      "# get data from 2021-06-29 12:00:00 to 2021-06-30 00:00:00......... \n",
-      "Server Error, retry 1...... \n",
-      "all data-getting done, bms_count is 0, gps_count is 0, system_count is 0, accum_count is 3 \n",
+      "### start to get data PK504B10100004410 from 2021-06-29 00:00:00 to 2021-06-30 00:00:00\n",
+      "# get data from 2021-06-29 00:00:00 to 2021-06-30 00:00:00......... \n",
+      "Server Error, retry 0...... \n",
+      "# get data from 2021-06-30 00:00:00 to 2021-06-30 00:00:00......... \n",
+      "Server Error, retry 0...... \n",
+      "all data-getting done, bms_count is 4052, gps_count is 1676, system_count is 86, accum_count is 511 \n",
       "\n"
      ]
     }
@@ -24,104 +26,48 @@
     "sys.path.append(PathSetting.backend_path)\r\n",
     "import DBManager\r\n",
     "\r\n",
+    "sn = \"PK504B10100004410\"\r\n",
+    "start_time = \"2021-06-29 00:00:00\"\r\n",
+    "end_time = \"2021-06-30 00:00:00\"\r\n",
+    "\r\n",
     "dbManager = DBManager.DBManager()\r\n",
-    "df_data = dbManager.get_data(sn='PK50201A000002140', start_time='2021-06-29 12:00:00', \r\n",
-    "    end_time='2021-06-30 00:00:00', data_groups=['accum'])"
+    "df_data = dbManager.get_data(sn=sn, start_time=start_time, end_time=end_time, data_groups=['bms', 'gps', 'accum', 'system'])"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 3,
    "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>时间戳</th>\n",
-       "      <th>SOH未标定时间</th>\n",
-       "      <th>累计充电电量</th>\n",
-       "      <th>累计充电能量</th>\n",
-       "      <th>累计放电电量</th>\n",
-       "      <th>累计放电能量</th>\n",
-       "      <th>累计高温充电电量</th>\n",
-       "      <th>累计高温充电能量</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>2021-06-29 13:00:59</td>\n",
-       "      <td>165.0</td>\n",
-       "      <td>1064.9</td>\n",
-       "      <td>55301.9</td>\n",
-       "      <td>1004.5</td>\n",
-       "      <td>52806.7</td>\n",
-       "      <td>0.0</td>\n",
-       "      <td>0.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>2021-06-29 17:06:47</td>\n",
-       "      <td>150.0</td>\n",
-       "      <td>1064.9</td>\n",
-       "      <td>55301.9</td>\n",
-       "      <td>1004.5</td>\n",
-       "      <td>52806.7</td>\n",
-       "      <td>0.0</td>\n",
-       "      <td>0.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>2021-06-29 23:16:05</td>\n",
-       "      <td>165.0</td>\n",
-       "      <td>1064.9</td>\n",
-       "      <td>55301.9</td>\n",
-       "      <td>1004.5</td>\n",
-       "      <td>52806.7</td>\n",
-       "      <td>0.0</td>\n",
-       "      <td>0.0</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "                   时间戳  SOH未标定时间  累计充电电量   累计充电能量  累计放电电量   累计放电能量  累计高温充电电量  \\\n",
-       "0  2021-06-29 13:00:59     165.0  1064.9  55301.9  1004.5  52806.7       0.0   \n",
-       "1  2021-06-29 17:06:47     150.0  1064.9  55301.9  1004.5  52806.7       0.0   \n",
-       "2  2021-06-29 23:16:05     165.0  1064.9  55301.9  1004.5  52806.7       0.0   \n",
-       "\n",
-       "   累计高温充电能量  \n",
-       "0       0.0  \n",
-       "1       0.0  \n",
-       "2       0.0  "
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "downloading......\n",
+      "### start to get data PK50201A000002140 from 2021-06-29 00:00:00 to 2021-06-30 00:00:00\n",
+      "# get data from 2021-06-29 00:00:00 to 2021-06-30 00:00:00......... \n",
+      "# get data from 2021-06-30 00:00:00 to 2021-06-30 00:00:00......... \n",
+      "Server Error, retry 0...... \n",
+      "Server Error, retry 0...... \n",
+      "all data-getting done, bms_count is 77, gps_count is 0, system_count is 10, accum_count is 8 \n",
+      "\n",
+      "downloading success!\n"
+     ]
     }
    ],
    "source": [
-    "df_data['accum']"
+    "# 下载数据 \r\n",
+    "import sys\r\n",
+    "import CONFIGURE.PathSetting as PathSetting\r\n",
+    "sys.path.append(PathSetting.backend_path)\r\n",
+    "import Tools\r\n",
+    "\r\n",
+    "tools = Tools.Tools()\r\n",
+    "write_path = r''\r\n",
+    "sn = \"PK504B10100004410\"\r\n",
+    "start_time = \"2021-06-29 00:00:00\"\r\n",
+    "end_time = \"2021-06-30 00:00:00\"\r\n",
+    "tools.data_download(write_path=write_path, sn=sn, start_time=start_time, end_time=end_time, data_groups=['bms', 'gps', 'accum', 'system'])"
    ]
   },
   {

+ 17 - 8
函数说明/DBManager.html

@@ -8,7 +8,7 @@
 <td valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>DBManager</strong></big></big></font></td
 ><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:d%3A%5Cplatform%5Cplatform%5Cbackend%5Cdbmanager.py">d:\platform\platform\backend\dbmanager.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:f%3A%5Cwork%5Cqx%5Cdata_analyze_platform%5Clib%5Cbackend%5Cdbmanager.py">f:\work\qx\data_analyze_platform\lib\backend\dbmanager.py</a></font></td></tr></table>
     <p><tt>暂时采用http方式获取历史数据。<br>
 &nbsp;<br>
 预留:后期若改用通过访问数据库的形式进行数据的获取,则本文件负责数据库的连接,sql指令的执行,数据获取等功能。</tt></p>
@@ -67,21 +67,23 @@
 
 <dl><dt><a name="DBManager-connect"><strong>connect</strong></a>(self)</dt></dl>
 
-<dl><dt><a name="DBManager-get_data"><strong>get_data</strong></a>(self, bms_url='http://172.16.126.13/store/load?dataType=12&amp;limit=0&amp;sn=', gps_url='http://172.16.126.13/store/load?dataType=16&amp;subType=1&amp;limit=0&amp;sn=', sn='', start_time='', end_time='', gps_switch=True, mode=0)</dt><dd><tt>获取指定&nbsp;sn&nbsp;和起止日期的bms和gps数据.<br>
+<dl><dt><a name="DBManager-get_data"><strong>get_data</strong></a>(self, url='http://172.16.126.13/store/load?dataType={}&amp;limit=0&amp;sn={}', sn='', start_time='', end_time='', data_groups=['bms', 'gps'])</dt><dd><tt>获取指定&nbsp;sn&nbsp;和起止日期的bms和gps数据.<br>
 添加了重试机制。<br>
 &nbsp;<br>
 --------------输入参数------------<br>
-bms_url:bms&nbsp;数据url,&nbsp;可采用默认值<br>
-gps_url:&nbsp;gps&nbsp;数据url,&nbsp;可采用默认值<br>
+url:数据获取url,&nbsp;可采用默认值<br>
 sn:&nbsp;str,&nbsp;电池sn号<br>
 start_time:&nbsp;str,&nbsp;开始时间<br>
 end_time:&nbsp;str,&nbsp;结束时间<br>
-gps_switch:&nbsp;True:获取gps数据;&nbsp;False:不获取gps数据<br>
-mode:&nbsp;0:正常取数;&nbsp;1:7255&nbsp;取数<br>
+data_groups:&nbsp;&nbsp;选择需要获取的数据组,可填入多个字符串(默认只获取bms和gps数据)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bms:&nbsp;bms数据<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gps:gps数据<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system:system数据<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accum:accum数据<br>
+&nbsp;<br>
 &nbsp;<br>
 --------------输出参数------------<br>
-bms_data:&nbsp;获取到的bms数据<br>
-gps_data:&nbsp;获取到的gps数据</tt></dd></dl>
+df_data:&nbsp;{'bms':dataframe,&nbsp;'gps':dataframe,&nbsp;'system':dataframe,&nbsp;;accum':dataframe}</tt></dd></dl>
 
 <hr>
 Data descriptors defined here:<br>
@@ -93,6 +95,13 @@ Data descriptors defined here:<br>
 </dl>
 </td></tr></table></td></tr></table><p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#55aa55">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
+    
+<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%"><strong>S</strong> = &lt;RegexFlag.DOTALL: 16&gt;</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#7799ee">
 <td colspan=3 valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>

+ 3 - 10
函数说明/Tools.html

@@ -8,7 +8,7 @@
 <td valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>Tools</strong></big></big></font></td
 ><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:d%3A%5Cplatform%5Cplatform%5Cbackend%5Ctools.py">d:\platform\platform\backend\tools.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:f%3A%5Cwork%5Cqx%5Cdata_analyze_platform%5Clib%5Cbackend%5Ctools.py">f:\work\qx\data_analyze_platform\lib\backend\tools.py</a></font></td></tr></table>
     <p><tt>工具类</tt></p>
 <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -18,7 +18,7 @@
     
 <tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="DBManager.html">DBManager</a><br>
-<a href="PathSetting.html">PathSetting</a><br>
+<a href="CONFIGURE.PathSetting.html">CONFIGURE.PathSetting</a><br>
 <a href="datetime.html">datetime</a><br>
 </td><td width="25%" valign=top><a href="math.html">math</a><br>
 <a href="numpy.html">numpy</a><br>
@@ -54,7 +54,7 @@
 
 <dl><dt><a name="Tools-cal_distance"><strong>cal_distance</strong></a>(self, latitude1, longitude1, latitude2, longitude2, radius=6371)</dt><dd><tt>输入两个地点的经纬度,输出两点间的距离</tt></dd></dl>
 
-<dl><dt><a name="Tools-data_download"><strong>data_download</strong></a>(self, write_path='', sn='', start_time='', end_time='', gps_switch=True, mode=0)</dt><dd><tt>数据下载函数<br>
+<dl><dt><a name="Tools-data_download"><strong>data_download</strong></a>(self, write_path='', sn='', start_time='', end_time='', data_groups=['bms', 'gps'])</dt><dd><tt>数据下载函数<br>
 --------------输入参数------------<br>
 write_path:&nbsp;文件保存路径,不需要指定文件名<br>
 sn:&nbsp;str,&nbsp;电池sn号<br>
@@ -77,13 +77,6 @@ Data descriptors defined here:<br>
 </dl>
 </td></tr></table></td></tr></table><p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>CONF_PATH</strong> = r'D:\Platform\platform\CONFIGURE\'</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#7799ee">
 <td colspan=3 valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>