예제 #1
0
파일: PageLogCan.cs 프로젝트: Omybot/GoBot
        private void btnDisplay_Click(object sender, EventArgs e)
        {
            if (_displayTimer == null || !_displayTimer.Enabled)
            {
                _log                   = new FramesLog();
                _displayTimer          = new System.Windows.Forms.Timer();
                _displayTimer.Interval = 1000;
                _displayTimer.Tick    += displayTimer_Tick;
                _displayTimer.Start();

                Connections.ConnectionCan.FrameReceived += new CanConnection.NewFrameDelegate((frame) => _log.AddFrame(frame, true));
                Connections.ConnectionCan.FrameSend     += new CanConnection.NewFrameDelegate((frame) => _log.AddFrame(frame, false));

                btnReplayAll.Enabled      = false;
                btnReplaySelected.Enabled = false;
                btnLoad.Enabled           = false;
                btnDisplay.Text           = "Arrêter la surveillance";
                btnDisplay.Image          = Properties.Resources.GlassPause48;
            }
            else
            {
                _displayTimer.Stop();


                Connections.ConnectionCan.FrameReceived -= new CanConnection.NewFrameDelegate((frame) => _log.AddFrame(frame, true));
                Connections.ConnectionCan.FrameSend     -= new CanConnection.NewFrameDelegate((frame) => _log.AddFrame(frame, false));

                btnReplayAll.Enabled      = true;
                btnReplaySelected.Enabled = true;
                btnLoad.Enabled           = true;
                btnDisplay.Text           = "Lancer la surveillance";
                btnDisplay.Image          = Properties.Resources.GlassStart48;
            }
        }
예제 #2
0
파일: PageLogUdp.cs 프로젝트: Omybot/GoBot
        public void LoadLog(String file)
        {
            FramesLog log = new FramesLog();

            log.Import(file);

            foreach (TimedFrame t in log.Frames)
            {
                _log.Frames.Add(t);
            }
        }
예제 #3
0
파일: PageLogUdp.cs 프로젝트: Omybot/GoBot
        private FramesLog CreateLogFromSelection()
        {
            FramesLog logSelection = new FramesLog();

            foreach (DataGridViewRow line in dgvLog.SelectedRows)
            {
                TimedFrame trameReplay = GetFrameFromLine(line);
                logSelection.AddFrame(trameReplay.Frame, trameReplay.IsInputFrame, trameReplay.Date);
            }

            return(logSelection);
        }
예제 #4
0
파일: PageLogUdp.cs 프로젝트: Omybot/GoBot
 private void ReplayLog(FramesLog log)
 {
     _thReplay = new Thread(_log.ReplayInputFrames);
     _thReplay.Start();
 }
예제 #5
0
파일: PageLogUdp.cs 프로젝트: Omybot/GoBot
        public PageLogUdp()
        {
            InitializeComponent();

            _loading = true;

            dgvLog.Columns.Add("ID", "ID");
            dgvLog.Columns[0].Width = 40;
            dgvLog.Columns.Add("Heure", "Heure");
            dgvLog.Columns[1].Width = 80;
            dgvLog.Columns.Add("Expediteur", "Expediteur");
            dgvLog.Columns[2].Width = 70;
            dgvLog.Columns.Add("Destinataire", "Destinataire");
            dgvLog.Columns[3].Width = 70;
            dgvLog.Columns.Add("Message", "Message");
            dgvLog.Columns[4].Width = 300;
            dgvLog.Columns.Add("Trame", "Trame");
            dgvLog.Columns[5].Width = dgvLog.Width - 18 - dgvLog.Columns[0].Width - dgvLog.Columns[1].Width - dgvLog.Columns[2].Width - dgvLog.Columns[3].Width - dgvLog.Columns[4].Width;

            _boardColor = new Dictionary <Board, Color>();
            _boardColor.Add(Board.PC, Color.FromArgb(180, 245, 245));
            _boardColor.Add(Board.RecMove, Color.FromArgb(143, 255, 143));
            _boardColor.Add(Board.RecIO, Color.FromArgb(210, 254, 211));
            _boardColor.Add(Board.RecCan, Color.FromArgb(254, 244, 188));

            _boxLists = new List <CheckedListBox>();
            _boxLists.Add(lstSender);
            _boxLists.Add(lstReceiver);
            _boxLists.Add(lstRecIOFunctions);
            _boxLists.Add(lstRecMoveFunctions);
            _boxLists.Add(lstRecGoBotFunctions);
            _boxLists.Add(lstRecCanFunctions);

            if (Config.CurrentConfig.LogsFonctionsMove == null)
            {
                Config.CurrentConfig.LogsFonctionsMove = new SerializableDictionary <UdpFrameFunction, bool>();
            }
            if (Config.CurrentConfig.LogsFonctionsIO == null)
            {
                Config.CurrentConfig.LogsFonctionsIO = new SerializableDictionary <UdpFrameFunction, bool>();
            }
            if (Config.CurrentConfig.LogsFonctionsGB == null)
            {
                Config.CurrentConfig.LogsFonctionsGB = new SerializableDictionary <UdpFrameFunction, bool>();
            }
            if (Config.CurrentConfig.LogsFonctionsCan == null)
            {
                Config.CurrentConfig.LogsFonctionsCan = new SerializableDictionary <UdpFrameFunction, bool>();
            }
            if (Config.CurrentConfig.LogsExpediteurs == null)
            {
                Config.CurrentConfig.LogsExpediteurs = new SerializableDictionary <Board, bool>();
            }
            if (Config.CurrentConfig.LogsDestinataires == null)
            {
                Config.CurrentConfig.LogsDestinataires = new SerializableDictionary <Board, bool>();
            }

            _configFunctions = new Dictionary <CheckedListBox, Dictionary <UdpFrameFunction, bool> >();
            _configFunctions.Add(lstRecIOFunctions, Config.CurrentConfig.LogsFonctionsIO);
            _configFunctions.Add(lstRecMoveFunctions, Config.CurrentConfig.LogsFonctionsMove);
            _configFunctions.Add(lstRecGoBotFunctions, Config.CurrentConfig.LogsFonctionsGB);
            _configFunctions.Add(lstRecCanFunctions, Config.CurrentConfig.LogsFonctionsCan);

            _lstFunctions = new Dictionary <Board, CheckedListBox>();
            _lstFunctions.Add(Board.RecIO, lstRecIOFunctions);
            _lstFunctions.Add(Board.RecMove, lstRecMoveFunctions);
            _lstFunctions.Add(Board.RecCan, lstRecCanFunctions);

            foreach (CheckedListBox lst in _configFunctions.Keys)
            {
                // L'ajout de champs déclenche le SetCheck event qui ajoute les éléments automatiquement dans le dictionnaire
                foreach (UdpFrameFunction func in Enum.GetValues(typeof(UdpFrameFunction)))
                {
                    if (!_configFunctions[lst].ContainsKey(func))
                    {
                        _configFunctions[lst].Add(func, true);
                    }

                    lst.Items.Add(func.ToString(), _configFunctions[lst][func]);
                }
            }

            foreach (Board board in Enum.GetValues(typeof(Board)))
            {
                if (!Config.CurrentConfig.LogsExpediteurs.ContainsKey(board))
                {
                    Config.CurrentConfig.LogsExpediteurs.Add(board, true);
                }
                lstSender.Items.Add(board.ToString(), Config.CurrentConfig.LogsExpediteurs[board]);

                if (!Config.CurrentConfig.LogsDestinataires.ContainsKey(board))
                {
                    Config.CurrentConfig.LogsDestinataires.Add(board, true);
                }
                lstReceiver.Items.Add(board.ToString(), Config.CurrentConfig.LogsDestinataires[board]);
            }

            _loading = false;
            _log     = new FramesLog();
        }
예제 #6
0
파일: PageLogUdp.cs 프로젝트: Omybot/GoBot
 public void Clear()
 {
     _log = new FramesLog();
 }
예제 #7
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            plusVieux = DateTime.Now;

            int currentLog = 0;

            List <String> dossiers = (List <String>)Directory.EnumerateDirectories(Config.PathData + @"\Logs\").ToList <String>();

            nbLogs = dossiers.Count;

            dossiers.Sort(OrdreAlphabetiqueInverse);

            foreach (String dossier in dossiers)
            {
                if (dossier.Contains(Execution.LaunchStartString))
                {
                    continue;
                }

                if (Execution.Shutdown)
                {
                    return;
                }

                currentLog++;
                String   dossier1 = Path.GetFileName(dossier);
                DateTime date;

                int nbElements = 0;

                try
                {
                    String[] tab = dossier1.Split(new char[5] {
                        '.', ' ', 'h', 'm', 's'
                    });
                    date = new DateTime(Convert.ToInt16(tab[0]), Convert.ToInt16(tab[1]), Convert.ToInt16(tab[2]), Convert.ToInt16(tab[3]), Convert.ToInt16(tab[4]), Convert.ToInt16(tab[5]));

                    if (date < plusVieux)
                    {
                        plusVieux = date;
                    }

                    long taille = FolderSize(dossier);

                    Object[] datas = new Object[Enum.GetValues(typeof(Columns)).Length];

                    datas[(int)Columns.Date]   = date;
                    datas[(int)Columns.Taille] = new TailleDossier(taille);
                    //TODO2018 ca marche plus ça avec les nouveaux fichiers
                    foreach (String fichier in Directory.EnumerateFiles(dossier))
                    {
                        if (Path.GetFileName(fichier) == "ActionsGros.elog")
                        {
                            EventsReplay r = new EventsReplay();
                            if (r.Charger(fichier))
                            {
                                datas[(int)Columns.Events] = r.Events.Count;
                                nbElements += r.Events.Count;
                            }
                            else
                            {
                                datas[(int)Columns.Events] = -1;
                            }
                        }
                        else if (Path.GetFileName(fichier) == "ConnexionGB.tlog")
                        {
                            FramesLog r = new FramesLog();
                            r.Import(fichier);
                            if (r.Import(fichier))
                            {
                                datas[(int)Columns.TramesGB] = r.Frames.Count;
                                nbElements += r.Frames.Count;
                            }
                            else
                            {
                                datas[(int)Columns.TramesGB] = -1;
                            }
                        }
                        else if (Path.GetFileName(fichier) == "ConnexionMove.tlog")
                        {
                            FramesLog r = new FramesLog();
                            r.Import(fichier);
                            if (r.Import(fichier))
                            {
                                datas[(int)Columns.TramesMove] = r.Frames.Count;
                                nbElements += r.Frames.Count;
                            }
                            else
                            {
                                datas[(int)Columns.TramesMove] = -1;
                            }
                        }
                        else if (Path.GetFileName(fichier) == "ConnexionIO.tlog")
                        {
                            FramesLog r = new FramesLog();
                            r.Import(fichier);
                            if (r.Import(fichier))
                            {
                                datas[(int)Columns.TramesIO] = r.Frames.Count;
                                nbElements += r.Frames.Count;
                            }
                            else
                            {
                                datas[(int)Columns.TramesIO] = -1;
                            }
                        }
                    }

                    // S'il y a moins de 10 éléments dans ce log, on le supprime
                    if (nbElements < 10)
                    {
                        Directory.Delete(dossier, true);
                    }
                    else
                    {
                        dataSet.Tables[0].Rows.Add(datas);
                    }
                }
                catch (Exception)
                {
                }

                worker.ReportProgress((int)(currentLog * 100 / nbLogs));
            }

            if (Directory.Exists(Config.PathData + "/Archives/"))
            {
                foreach (String dossier in Directory.EnumerateDirectories(Config.PathData + "/Archives/"))
                {
                    if (Execution.Shutdown)
                    {
                        return;
                    }

                    currentLog++;
                    String   dossier1 = Path.GetFileName(dossier);
                    DateTime date;

                    try
                    {
                        String[] tab = dossier1.Split(new char[5] {
                            '.', ' ', 'h', 'm', 's'
                        });
                        date = new DateTime(Convert.ToInt16(tab[0]), Convert.ToInt16(tab[1]), Convert.ToInt16(tab[2]), Convert.ToInt16(tab[3]), Convert.ToInt16(tab[4]), Convert.ToInt16(tab[5]));

                        if (date < plusVieux)
                        {
                            plusVieux = date;
                        }

                        long taille = FolderSize(dossier);

                        Object[] datas = new Object[Enum.GetValues(typeof(Columns)).Length + 1];

                        datas[(int)Columns.Date + 1]   = date;
                        datas[(int)Columns.Taille + 1] = new TailleDossier(taille);

                        foreach (String fichier in Directory.EnumerateFiles(dossier))
                        {
                            if (Path.GetFileName(fichier) == "ActionsGros.elog")
                            {
                                EventsReplay r = new EventsReplay();
                                if (r.Charger(fichier))
                                {
                                    datas[(int)Columns.Events + 1] = r.Events.Count;
                                }
                                else
                                {
                                    datas[(int)Columns.Events + 1] = -1;
                                }
                            }
                            else if (Path.GetFileName(fichier) == "ConnexionGB.tlog")
                            {
                                FramesLog r = new FramesLog();
                                r.Import(fichier);
                                if (r.Import(fichier))
                                {
                                    datas[(int)Columns.TramesGB + 1] = r.Frames.Count;
                                }
                                else
                                {
                                    datas[(int)Columns.TramesGB + 1] = -1;
                                }
                            }
                            else if (Path.GetFileName(fichier) == "ConnexionMove.tlog")
                            {
                                FramesLog r = new FramesLog();
                                r.Import(fichier);
                                if (r.Import(fichier))
                                {
                                    datas[(int)Columns.TramesMove + 1] = r.Frames.Count;
                                }
                                else
                                {
                                    datas[(int)Columns.TramesMove + 1] = -1;
                                }
                            }
                            else if (Path.GetFileName(fichier) == "ConnexionIO.tlog")
                            {
                                FramesLog r = new FramesLog();
                                r.Import(fichier);
                                if (r.Import(fichier))
                                {
                                    datas[(int)Columns.TramesIO + 1] = r.Frames.Count;
                                }
                                else
                                {
                                    datas[(int)Columns.TramesIO + 1] = -1;
                                }
                            }
                            else if (Path.GetFileName(fichier) == "Archivage")
                            {
                                StreamReader reader = new StreamReader(fichier);
                                datas[0] = reader.ReadLine();
                                reader.Close();
                            }
                        }

                        dataSetArchivage.Tables[0].Rows.Add(datas);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }
예제 #8
0
파일: PageLogCan.cs 프로젝트: Omybot/GoBot
        public PageLogCan()
        {
            InitializeComponent();

            _loading = true;

            dgvLog.Columns.Add("ID", "ID");
            dgvLog.Columns[0].Width = 40;
            dgvLog.Columns.Add("Heure", "Heure");
            dgvLog.Columns[1].Width = 80;
            dgvLog.Columns.Add("Expediteur", "Expediteur");
            dgvLog.Columns[2].Width = 70;
            dgvLog.Columns.Add("Destinataire", "Destinataire");
            dgvLog.Columns[3].Width = 70;
            dgvLog.Columns.Add("Message", "Message");
            dgvLog.Columns[4].Width = 300;
            dgvLog.Columns.Add("Trame", "Trame");
            dgvLog.Columns[5].Width = dgvLog.Width - 18 - dgvLog.Columns[0].Width - dgvLog.Columns[1].Width - dgvLog.Columns[2].Width - dgvLog.Columns[3].Width - dgvLog.Columns[4].Width;

            _boardColor = new Dictionary <CanBoard, Color>();
            _boardColor.Add(CanBoard.PC, Color.FromArgb(180, 245, 245));
            _boardColor.Add(CanBoard.CanServo1, Color.FromArgb(70, 255, 220));
            _boardColor.Add(CanBoard.CanServo2, Color.FromArgb(100, 255, 220));
            _boardColor.Add(CanBoard.CanServo3, Color.FromArgb(130, 255, 220));
            _boardColor.Add(CanBoard.CanServo4, Color.FromArgb(160, 255, 220));
            _boardColor.Add(CanBoard.CanServo5, Color.FromArgb(190, 255, 220));
            _boardColor.Add(CanBoard.CanServo6, Color.FromArgb(220, 255, 220));
            _boardColor.Add(CanBoard.CanAlim, Color.FromArgb(250, 255, 220));

            _boxLists = new List <CheckedListBox>();
            _boxLists.Add(lstSender);
            _boxLists.Add(lstReceiver);
            _boxLists.Add(lstFunctions);

            if (Config.CurrentConfig.LogsCanFunctions == null)
            {
                Config.CurrentConfig.LogsCanFunctions = new SerializableDictionary <CanFrameFunction, bool>();
            }
            if (Config.CurrentConfig.LogsCanSenders == null)
            {
                Config.CurrentConfig.LogsCanSenders = new SerializableDictionary <CanBoard, bool>();
            }
            if (Config.CurrentConfig.LogsCanReceivers == null)
            {
                Config.CurrentConfig.LogsCanReceivers = new SerializableDictionary <CanBoard, bool>();
            }

            // L'ajout de champs déclenche le SetCheck event qui ajoute les éléments automatiquement dans le dictionnaire
            foreach (CanFrameFunction func in Enum.GetValues(typeof(CanFrameFunction)))
            {
                if (!Config.CurrentConfig.LogsCanFunctions.ContainsKey(func))
                {
                    Config.CurrentConfig.LogsCanFunctions.Add(func, true);
                }

                lstFunctions.Items.Add(func.ToString(), Config.CurrentConfig.LogsCanFunctions[func]);
            }

            foreach (CanBoard board in Enum.GetValues(typeof(CanBoard)))
            {
                if (!Config.CurrentConfig.LogsCanSenders.ContainsKey(board))
                {
                    Config.CurrentConfig.LogsCanSenders.Add(board, true);
                }
                lstSender.Items.Add(board.ToString(), Config.CurrentConfig.LogsCanSenders[board]);

                if (!Config.CurrentConfig.LogsCanReceivers.ContainsKey(board))
                {
                    Config.CurrentConfig.LogsCanReceivers.Add(board, true);
                }
                lstReceiver.Items.Add(board.ToString(), Config.CurrentConfig.LogsCanReceivers[board]);
            }

            _loading = false;
            _log     = new FramesLog();
        }
예제 #9
0
 public Connection()
 {
     Archives = new FramesLog();
 }