|
@@ -84,19 +84,23 @@ class DBManager():
|
|
|
i = 0
|
|
|
while 1:
|
|
|
try:
|
|
|
- r = requests.get(url, stream=True, timeout=100, headers={'Connection':'close'})
|
|
|
+ r = requests.get(url, stream=True, timeout=(0.1, 1000), headers={'Connection':'keep-alive', 'Accept':'*/*', 'Accept-Encoding':'gzip,deflate,br'})
|
|
|
break
|
|
|
except requests.exceptions.RequestException as e:
|
|
|
if (i == 0):
|
|
|
print()
|
|
|
print('\r' + 'Server Error, retry {}......'.format(str(i)), end=" ")
|
|
|
- time.sleep(5)
|
|
|
+ time.sleep(0.1)
|
|
|
i+=1
|
|
|
# print(r.content)
|
|
|
- # pdb.set_trace()
|
|
|
+ # pdb.set_trace()
|
|
|
+ data = []
|
|
|
for line in r.iter_lines():
|
|
|
+
|
|
|
if line:
|
|
|
- yield json.loads(line)
|
|
|
+ data.append(json.loads(line))
|
|
|
+ # yield json.loads(line)
|
|
|
+ return data
|
|
|
|
|
|
@staticmethod
|
|
|
def _convert_to_dataframe_bms(data, mode=0):
|
|
@@ -198,6 +202,7 @@ class DBManager():
|
|
|
|
|
|
@staticmethod
|
|
|
def _get_data(urls,type_name,mode=0):
|
|
|
+ data = DBManager._download_json_data(urls)
|
|
|
if type_name == 'bms':
|
|
|
if mode == 0:
|
|
|
name_const = ['时间戳','GSM信号','故障等级','故障代码','总电流[A]','总电压[V]', '外电压', '总输出状态', '上锁状态', '充电状态','加热状态',
|
|
@@ -209,7 +214,8 @@ class DBManager():
|
|
|
CellTNum = 0
|
|
|
OtherTNumm = 0
|
|
|
st = time.time()
|
|
|
- for line in DBManager._download_json_data(urls):
|
|
|
+
|
|
|
+ for line in data:
|
|
|
et = time.time()
|
|
|
try:
|
|
|
if i==0:
|
|
@@ -251,7 +257,7 @@ class DBManager():
|
|
|
elif mode == 1:
|
|
|
df_all = pd.DataFrame(columns=['时间戳','定位类型', '纬度','经度','速度[km/h]','有效位'])
|
|
|
|
|
|
- for line in DBManager._download_json_data(urls):
|
|
|
+ for line in data:
|
|
|
df_add = DBManager._convert_to_dataframe_gps(line, mode)
|
|
|
df_all = df_all.append(df_add,ignore_index=True)
|
|
|
if not df_all.empty:
|
|
@@ -262,7 +268,7 @@ class DBManager():
|
|
|
df_all = pd.DataFrame(columns=['时间戳','加热目标温度', '加热超时','租赁开始时间','租赁天数','bms上传周期','gps上传周期'])
|
|
|
elif mode == 1:
|
|
|
df_all = pd.DataFrame()
|
|
|
- for line in DBManager._download_json_data(urls):
|
|
|
+ for line in data:
|
|
|
df_add = DBManager._convert_to_dataframe_system(line, mode)
|
|
|
df_all = df_all.append(df_add,ignore_index=True)
|
|
|
if not df_all.empty:
|
|
@@ -275,13 +281,13 @@ class DBManager():
|
|
|
'累计高温充电电量', '累计高温充电能量'])
|
|
|
elif mode == 1:
|
|
|
df_all = pd.DataFrame(columns=['时间戳','累计充电电量','累计充电能量','累计放电电量','累计放电能量', '累积里程'])
|
|
|
- for line in DBManager._download_json_data(urls):
|
|
|
+ for line in data:
|
|
|
df_add = DBManager._convert_to_dataframe_accum(line, mode)
|
|
|
df_all = df_all.append(df_add,ignore_index=True)
|
|
|
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='',
|
|
|
+ def get_data(self, url='http://172.16.121.236/store/load?dataType={}&limit=0&sn={}', sn='', start_time='', end_time='',
|
|
|
data_groups=['bms', 'gps']):
|
|
|
'''
|
|
|
获取指定 sn 和起止日期的bms和gps数据.
|