private static void AddFrameGroupID(AnalysisSignal dbcSignal) { if (!frameIdList.Contains(dbcSignal.DataAddress)) { frameIdList.Add(dbcSignal.DataAddress); } }
// Use this for initialization void Start() { scoreUtil.init(); string xmlPath = Application.streamingAssetsPath + "/" + PlayerPrefs.GetString("selectedLevel") + ".xml"; midi = Midi.getMidi(xmlPath); midiPlayer.StopAll(); midiPlayer.Play(PlayerPrefs.GetString("selectedLevel") + ".mid"); analysisSignal = new AnalysisSignal(); analysisSignal.midiStart(0); midikeycode = new MidiKeyCode(); midichordcode = new ChordKeycode(); }
private static List <AnalysisSignal> DbcDataToSignal(GridViewData listData, RadGridView gridView) { if (listData.DbcCheckIndex.Count < 1) { return(null); } List <AnalysisSignal> analysisSignalList = new List <AnalysisSignal>(); for (int i = 0; i < listData.DbcCheckIndex.Count; i++) { AnalysisSignal analysisSignal = new AnalysisSignal(); analysisSignal.Name = gridView.Rows[listData.DbcCheckIndex[i]].Cells[1].Value.ToString(); var describle = gridView.Rows[listData.DbcCheckIndex[i]].Cells[2].Value.ToString().Replace('"', ' ').Trim(); if (describle.Length >= 12) { describle = describle.Substring(0, 12); //describle = "\"" + describle + "\""; } analysisSignal.Describle = describle; analysisSignal.Unit = gridView.Rows[listData.DbcCheckIndex[i]].Cells[3].Value.ToString(); analysisSignal.SaveDataType = (SaveDataTypeEnum)Enum.Parse(typeof(SaveDataTypeEnum), gridView.Rows[listData.DbcCheckIndex[i]].Cells[4].Value.ToString()); analysisSignal.SaveDataLen = int.Parse(gridView.Rows[listData.DbcCheckIndex[i]].Cells[5].Value.ToString()); analysisSignal.IsMotorola = int.Parse(gridView.Rows[listData.DbcCheckIndex[i]].Cells[6].Value.ToString()); analysisSignal.StartIndex = int.Parse(gridView.Rows[listData.DbcCheckIndex[i]].Cells[7].Value.ToString()); analysisSignal.DataBitLen = int.Parse(gridView.Rows[listData.DbcCheckIndex[i]].Cells[8].Value.ToString()); analysisSignal.DataAddress = gridView.Rows[listData.DbcCheckIndex[i]].Cells[9].Value.ToString(); analysisSignal.Factor = gridView.Rows[listData.DbcCheckIndex[i]].Cells[10].Value.ToString(); analysisSignal.OffSet = gridView.Rows[listData.DbcCheckIndex[i]].Cells[11].Value.ToString(); analysisSignalList.Add(analysisSignal); AddFrameGroupID(analysisSignal); //添加分组ID acturalDBCList.Add(analysisSignal); //添加实际保存数据 } return(analysisSignalList); }
/// <summary> /// 合并a2l 与dbc数据,统一格式 /// </summary> public static AnalysisData UnionXcpDbc(FileType fileType, XcpData xcpData, DBCData dbcData, string baudRateDbc) { ////name + describle+unit+dataType+dataLen+IsMotorola+startIndex+dataBitLen+dataAddress+factor+offset AnalysisData analysisData = new AnalysisData(); if (fileType == FileType.A2L) { analysisData.AgreeMentXCP = xcpData.AgreeMentType; } analysisData.BaudRateDbc = baudRateDbc.Trim(); try { switch (fileType) { case FileType.A2L: var measureList = xcpData.MeasureData; if (measureList == null) { LogHelper.Log.Info("XCP_DATA_MeasureData为空!"); return(null); } var metholdList = xcpData.MetholdData; if (metholdList == null) { LogHelper.Log.Info("XCP_DATA_METHOLD_LIST为空!"); return(null); } var propertyList = xcpData.PropertyData; if (propertyList == null) { LogHelper.Log.Info("XCP_DATA_PROPERTY_LIST为空!"); return(null); } analysisData.AnalysisiXcpDataList = new List <AnalysisSignal>(); for (int i = 0; i < measureList.Count; i++) { AnalysisSignal analysisSignal = new AnalysisSignal(); analysisSignal.OrderId = i + 1; analysisSignal.Name = measureList[i].Name; analysisSignal.Describle = measureList[i].Describle; ///查询函数值 var mdList = metholdList.Find(tm => tm.name == measureList[i].ReferenceMethod); if (mdList == null) { //LogHelper.Log.Info("查询metholdList失败,查询结果为空!空ID号为"+i+" 方法名为"+measureList[i].ReferenceMethod); //B_TRUE 查询不到 continue; } analysisSignal.Unit = mdList.unit; DataTypeEnum dataTypeEnum = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), measureList[i].Type.ToUpper()); SaveDataTypeEnum svType = TypeConvert.AnalysisTypeToSaveType(dataTypeEnum); analysisSignal.SaveDataType = svType; analysisSignal.SaveDataLen = TypeConvert.AnalysisTypeToLength(dataTypeEnum); analysisSignal.IsMotorola = (int)propertyList[0].byteOrder; analysisSignal.StartIndex = 0; analysisSignal.DataBitLen = 0; analysisSignal.DataAddress = measureList[i].EcuAddress; analysisSignal.Factor = mdList.Factor; analysisSignal.OffSet = mdList.OffSet; analysisData.AnalysisiXcpDataList.Add(analysisSignal); //if (i == 1000) // break; } break; case FileType.DBC: var dbcmsgList = dbcData.DBCMessageList; var dbcsigList = dbcData.DBCSignalList; analysisData.AnalysisDbcDataList = new List <AnalysisSignal>(); int count = 0; LogHelper.Log.Info(" start :" + dbcmsgList.Count + " " + dbcsigList.Count); for (int i = 0; i < dbcmsgList.Count; i++) { var dbcList = dbcsigList.FindAll(msg => msg.FrameID == dbcmsgList[i].FrameID); for (int j = 0; j < dbcList.Count; j++) { AnalysisSignal signal = new AnalysisSignal(); signal.OrderId = count + 1; signal.Name = dbcList[j].SignalName; signal.Describle = dbcmsgList[i].FrameName; signal.Unit = dbcList[j].Unit; if (dbcList[j].SymbolType == "+") { signal.SaveDataType = SaveDataTypeEnum.V_UINT; } else if (dbcList[j].SymbolType == "-") { signal.SaveDataType = SaveDataTypeEnum.V_INT; } //signal.SaveDataLen = dbcmsgList[i].MessageLen; //len = (bitLen+7)/len signal.SaveDataLen = (dbcList[j].BitLength + 7) / 8; signal.IsMotorola = (int)dbcList[j].ByteOrder; signal.StartIndex = dbcList[j].StartBitIndex; signal.DataBitLen = dbcList[j].BitLength; signal.DataAddress = dbcmsgList[i].FrameID; signal.Factor = dbcList[j].Factor; signal.OffSet = dbcList[j].Offset; analysisData.AnalysisDbcDataList.Add(signal); count++; } } break; } } catch (Exception e) { LogHelper.Log.Error("a2l dbc数据整合失败!失败原因:" + e.Message + e.StackTrace); } return(analysisData); }