|
@@ -108,8 +108,12 @@ class SignalMonitor():
|
|
|
LineState = 2
|
|
|
|
|
|
if LineState > 0:
|
|
|
- df_res = df_res.append({'sn':sn[0], 'PackState':PackState_new*16+PackState_old, 'LineState':LineState, 'StartTime':Timestamp_old,
|
|
|
- 'EndTime':Timestamp_new, 'OfflineTime':delta_time, 'latitude':lat, 'longitude':long}, ignore_index=True)
|
|
|
+ if mode == 'BMS':
|
|
|
+ df_res = df_res.append({'sn':sn[0], 'PackState':PackState_new*16+PackState_old, 'LineState':LineState, 'StartTime':Timestamp_old,
|
|
|
+ 'EndTime':Timestamp_new, 'OfflineTime':delta_time}, ignore_index=True)
|
|
|
+ elif mode == 'GPS':
|
|
|
+ df_res = df_res.append({'sn':sn[0], 'PackState':PackState_new*16+PackState_old, 'LineState':LineState, 'StartTime':Timestamp_old,
|
|
|
+ 'EndTime':Timestamp_new, 'OfflineTime':delta_time, 'latitude':lat, 'longitude':long}, ignore_index=True)
|
|
|
return LineState, df_res
|
|
|
|
|
|
@staticmethod
|
|
@@ -119,20 +123,35 @@ class SignalMonitor():
|
|
|
df_state.loc[0,'LineState'] = 0
|
|
|
while index < len(df_state)-1:
|
|
|
index = index + 1
|
|
|
- LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
- df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], df_state.loc[index-1, 'latitude'], df_state.loc[index-1, 'longitude'],
|
|
|
- df_res, mode=mode)
|
|
|
+ if mode == 'BMS':
|
|
|
+ LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
+ df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], None, None,
|
|
|
+ df_res, mode=mode)
|
|
|
+ elif mode == 'GPS':
|
|
|
+ LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
+ df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], df_state.loc[index-1, 'latitude'], df_state.loc[index-1, 'longitude'],
|
|
|
+ df_res, mode=mode)
|
|
|
df_state.loc[index, 'LineState'] = LineState
|
|
|
else:
|
|
|
df_last_info = df_last_state.loc[len(df_last_state) - 1]
|
|
|
- df_state.loc[0,'LineState'], df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[0, 'PackState'], df_last_info['PackState'],
|
|
|
- df_state.loc[0, 'Timestamp'], df_last_info['Timestamp'], df_state.loc[0, 'latitude'], df_state.loc[0, 'longitude'],
|
|
|
- df_res, mode=mode)
|
|
|
+ if mode == 'BMS':
|
|
|
+ df_state.loc[0,'LineState'], df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[0, 'PackState'], df_last_info['PackState'],
|
|
|
+ df_state.loc[0, 'Timestamp'], df_last_info['Timestamp'], None, None,
|
|
|
+ df_res, mode=mode)
|
|
|
+ elif mode == 'GPS':
|
|
|
+ df_state.loc[0,'LineState'], df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[0, 'PackState'], df_last_info['PackState'],
|
|
|
+ df_state.loc[0, 'Timestamp'], df_last_info['Timestamp'], df_state.loc[0, 'latitude'], df_state.loc[0, 'longitude'],
|
|
|
+ df_res, mode=mode)
|
|
|
while index < len(df_state)-1:
|
|
|
index = index + 1
|
|
|
- LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
- df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], df_state.loc[index-1, 'latitude'], df_state.loc[index-1, 'longitude'],
|
|
|
- df_res, mode=mode)
|
|
|
+ if mode == 'BMS':
|
|
|
+ LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
+ df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], None, None,
|
|
|
+ df_res, mode=mode)
|
|
|
+ elif mode == 'GPS':
|
|
|
+ LineState, df_res = SignalMonitor._judge_offline_state_between_messages(sn, df_state.loc[index, 'PackState'], df_state.loc[index-1, 'PackState'],
|
|
|
+ df_state.loc[index, 'Timestamp'], df_state.loc[index-1, 'Timestamp'], df_state.loc[index-1, 'latitude'], df_state.loc[index-1, 'longitude'],
|
|
|
+ df_res, mode=mode)
|
|
|
df_state.loc[index, 'LineState'] = LineState
|
|
|
# SignalMonitor._file_write(r'D:\result_03.xls', df_state)
|
|
|
return df_res
|