public static GraphWindowProperties Get_CycleGraphicSetup(CANStreamCycle oCycle) { GraphWindowProperties oGraphProps = new GraphWindowProperties(); if (!(oCycle.oCanNodesMap == null)) { oGraphProps.GraphLayoutMode = GraphicWindowLayoutModes.Parallel; foreach (CANMessage oMsg in oCycle.oCanNodesMap.Messages) { if (oMsg.RxTx == CanMsgRxTx.Tx) { foreach (CANParameter oParam in oMsg.Parameters) { oGraphProps.Create_Serie(oParam.Name); GraphSerieProperties oSerieProps = oGraphProps.Get_SerieByName(oParam.Name); if (!(oSerieProps == null)) { oSerieProps.YAxis.AxisTitleVisible = true; } } } } return(oGraphProps); } return(null); }
public Frm_CycleCreation() { InitializeComponent(); oCycle = null; oCanConfig = null; oAssociations = null; oDataFile = null; oSignalLibCollection = new CS_BuiltInSignalLibCollection(); if (File.Exists(CANStreamTools.CsDataPath + "\\BuiltInSignals.xml")) { oSignalLibCollection.LoadLibrariesList(CANStreamTools.CsDataPath + "\\BuiltInSignals.xml"); } }
private void CreateCycle() { #region Pre-checks if (!(Txt_DataFile.Text.Equals(""))) { oDataFile = new ImportDataFile(); if (!(oDataFile.ReadDataFile(Txt_DataFile.Text))) { MessageBox.Show(CANStreamConstants.DataFileReadingErrorText, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { MessageBox.Show("No data file selected !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (Cmb_Association.Text.Equals("")) { MessageBox.Show("No Cycle/Data association file selected !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (Txt_CanConfig.Text.Equals("")) { MessageBox.Show("The CAN configuation file is missing !\nPlease select a new Cycle/Data association file.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (Txt_CycleFile.Text.Equals("")) { MessageBox.Show("Cycle destination file not defined !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } #endregion oCycle = new CANStreamCycle(); ProgressBar.Value = 0; ProgressBar.Visible = true; for (long iTime = (long)(oDataFile.Time[0] * 1000); iTime < (long)(oDataFile.Time[oDataFile.Time.Count - 1] * 1000); iTime++) { List <string> TimeEventMessageIds = GetMessagesForTimeEvent(iTime); if (TimeEventMessageIds.Count > 0) { CycleTimeEvent oTimeEvent = new CycleTimeEvent(); oTimeEvent.TimeEvent = iTime; foreach (string sMsgId in TimeEventMessageIds) { CANMessageData oMessageData = new CANMessageData(); oMessageData = BuildCANMessageData(sMsgId, iTime); if (!(oMessageData == null)) { oTimeEvent.MessagesData.Add(oMessageData); } else { ProgressBar.Visible = false; return; } } if (oTimeEvent.MessagesData.Count > 0) { oCycle.TimeEvents.Add(oTimeEvent); } } int Progress = (int)(iTime * 100 / oDataFile.Time.Count); if (Progress <= 100) { ProgressBar.Value = Progress; } } //oCycle.CANConfigurationFilePath=Txt_CanConfig.Text; oCycle.oCanNodesMap = oCanConfig; oCycle.Comment = rTxt_Comments.Text; oCycle.WriteStreamCycle(Txt_CycleFile.Text); MessageBox.Show("Cycle created !", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); ProgressBar.Visible = false; }
private void ImportTrcFiles(BackgroundWorker Worker, object ImportOptions) { if (!(ImportOptions == null)) { object[] Options = (object[])ImportOptions; if (Options.Length == 3) { string[] TrcFileList = (string[])Options[0]; CANMessagesConfiguration oCanCfg = (CANMessagesConfiguration)Options[1]; string CyclePath = (string)Options[2]; CANStreamCycle oCycle = new CANStreamCycle(); oCycle.oCanNodesMap = oCanCfg; long CycleTime = 0; foreach (string TrcFile in TrcFileList) { PcanTrcFile oTrace = new PcanTrcFile(TrcFile); long TraceTime = 0; int iRecord = 0; int Progress = 0; Worker.ReportProgress(Progress); while (iRecord < oTrace.Records.Count) { CycleTimeEvent oCycleTxEvt = new CycleTimeEvent(); oCycleTxEvt.TimeEvent = CycleTime; while ((long)oTrace.Records[iRecord].TimeOffset == TraceTime) { CANMessageData oMsgData = new CANMessageData(); oMsgData.uMessageId = (uint)(NumberBaseConverter.Hex2Dec(oTrace.Records[iRecord].MessageIdentifier)); oMsgData.byteMessageData = oTrace.Records[iRecord].MessageData; oCycleTxEvt.MessagesData.Add(oMsgData); iRecord++; if (iRecord == oTrace.Records.Count) { break; } } if (oCycleTxEvt.MessagesData.Count > 0) { oCycle.TimeEvents.Add(oCycleTxEvt); } TraceTime++; CycleTime++; Progress = (int)(iRecord * 100 / oTrace.Records.Count); if (Progress > 0) { Worker.ReportProgress(Progress); } } } oCycle.WriteStreamCycle(CyclePath); } } }