|
@@ -23,44 +23,46 @@ class BMSReportError:
|
|
|
def __init__(self):
|
|
|
pass
|
|
|
def main(sn,bms_info,df_Diag_Ram_in,FactoryType,errorcode_map ):
|
|
|
- df_Diag_Ram_BMS=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('B')].copy()
|
|
|
- df_Diag_Ram_Cloud=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('C')].copy()
|
|
|
- df_bms=bms_info[['时间戳','故障等级','故障代码']]
|
|
|
- newCode=[]
|
|
|
- for i in range (0,len(df_bms)):
|
|
|
- #拆解故障码,PK专用
|
|
|
- if FactoryType ==1:
|
|
|
- code=df_bms.loc[i,'故障代码']
|
|
|
- newCode=[]
|
|
|
- if code>2:
|
|
|
- num=math.log(code)/math.log(2)
|
|
|
- power=int(num)
|
|
|
- nCode=int(math.pow(2,power))
|
|
|
- newCode.append(nCode)
|
|
|
- code=code-nCode
|
|
|
- while(code>0):
|
|
|
- num=float(math.log(code)/math.log(2))
|
|
|
- power=int(num)
|
|
|
- nCode=int(math.pow(2,power))
|
|
|
- newCode.append(nCode)
|
|
|
- code=code-nCode
|
|
|
+ if len(df_Diag_Ram_in):
|
|
|
+ df_Diag_Ram_BMS=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('B')].copy()
|
|
|
+ df_Diag_Ram_Cloud=df_Diag_Ram_in[df_Diag_Ram_in['code'].str.contains('C')].copy()
|
|
|
+ if len(bms_info):
|
|
|
+ df_bms=bms_info[['时间戳','故障等级','故障代码']]
|
|
|
+ newCode=[]
|
|
|
+ for i in range (0,len(df_bms)):
|
|
|
+ #拆解故障码,PK专用
|
|
|
+ if FactoryType ==1:
|
|
|
+ code=df_bms.loc[i,'故障代码']
|
|
|
+ newCode=[]
|
|
|
+ if len(code):
|
|
|
+ if code>2:
|
|
|
+ num=math.log(code)/math.log(2)
|
|
|
+ power=int(num)
|
|
|
+ nCode=int(math.pow(2,power))
|
|
|
+ newCode.append(nCode)
|
|
|
+ code=code-nCode
|
|
|
+ while(code>0):
|
|
|
+ num=float(math.log(code)/math.log(2))
|
|
|
+ power=int(num)
|
|
|
+ nCode=int(math.pow(2,power))
|
|
|
+ newCode.append(nCode)
|
|
|
+ code=code-nCode
|
|
|
+ else:
|
|
|
+ newCode=newCode.append(nCode)
|
|
|
+ else:
|
|
|
+ pass
|
|
|
else:
|
|
|
- newCode=newCode.append(nCode)
|
|
|
- else:
|
|
|
- newCode=df_bms.loc[i,'故障代码']
|
|
|
-
|
|
|
+ newCode=df_bms.loc[i,'故障代码']
|
|
|
# 数据库配置
|
|
|
|
|
|
if len(newCode):
|
|
|
for j in range(0,len(newCode)):
|
|
|
-
|
|
|
-
|
|
|
code = newCode[j] # 终端故障码
|
|
|
- platform_code = errorcode_map[(errorcode_map['protocol']==FactoryType)&(errorcode_map['end_errorcode']==str(code))]['platform_errorcode']
|
|
|
- newCode[j]=platform_code.values[0]
|
|
|
- if pd.isnull(platform_code.values[0]):
|
|
|
+ platform_code = errorcode_map[(errorcode_map['protocol']==FactoryType)&(errorcode_map['end_errorcode']==str(code))]['platform_errorcode']
|
|
|
+ if len(platform_code) == 0:
|
|
|
pass
|
|
|
else:
|
|
|
+ newCode[j]=platform_code.values[0]
|
|
|
if not platform_code.values[0] in df_Diag_Ram_BMS['code'].values.tolist():
|
|
|
df_Diag_Ram_BMS.loc[len(df_Diag_Ram_BMS)]=[df_bms.loc[i,'时间戳'],'0000-00-00 00:00:00',sn,platform_code.values[0],df_bms.loc[i,'故障等级'],'']
|
|
|
else:
|