コード例 #1
0
        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);
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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);
                }
            }
        }