Browse Source

update 信号监控

lmstack 3 years ago
parent
commit
2c47c9596c
1 changed files with 30 additions and 11 deletions
  1. 30 11
      LIB/MIDDLE/SignalMonitor.py

+ 30 - 11
LIB/MIDDLE/SignalMonitor.py

@@ -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