Esempio n. 1
0
        public void SetBoardID(CanBoard board)
        {
            _boardID = board;

            if (_servo1 != null)
            {
                _servo1.TorqueAlert -= PanelBoardCanServos_TorqueAlert1;
                _servo2.TorqueAlert -= PanelBoardCanServos_TorqueAlert2;
                _servo3.TorqueAlert -= PanelBoardCanServos_TorqueAlert3;
                _servo4.TorqueAlert -= PanelBoardCanServos_TorqueAlert4;
            }

            _servo1 = AllDevices.CanServos[(ServomoteurID)(((int)_boardID - 1) * 4 + 0)];
            _servo2 = AllDevices.CanServos[(ServomoteurID)(((int)_boardID - 1) * 4 + 1)];
            _servo3 = AllDevices.CanServos[(ServomoteurID)(((int)_boardID - 1) * 4 + 2)];
            _servo4 = AllDevices.CanServos[(ServomoteurID)(((int)_boardID - 1) * 4 + 3)];

            lblTitle.Text  = _boardID.ToString();
            lblServo1.Text = Parse(_servo1.ID);
            lblServo2.Text = Parse(_servo2.ID);
            lblServo3.Text = Parse(_servo3.ID);
            lblServo4.Text = Parse(_servo4.ID);

            if (!Execution.DesignMode)
            {
                _servo1.TorqueAlert += PanelBoardCanServos_TorqueAlert1;
                _servo2.TorqueAlert += PanelBoardCanServos_TorqueAlert2;
                _servo3.TorqueAlert += PanelBoardCanServos_TorqueAlert3;
                _servo4.TorqueAlert += PanelBoardCanServos_TorqueAlert4;
            }
        }
Esempio n. 2
0
        public CanSubConnection(CanConnection baseConnection, CanBoard board)
        {
            _baseConnection   = baseConnection;
            _board            = board;
            ConnectionChecker = new ConnectionChecker(this, 500);
            ConnectionChecker.SendConnectionTest += ConnectionChecker_SendConnectionTest;
            _baseConnection.FrameReceived        += _baseConnection_FrameReceived;

            _name = board.ToString();
        }
Esempio n. 3
0
        private void lstReceiver_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (!Execution.DesignMode && !_loading)
            {
                String   boardStr = (String)lstReceiver.Items[e.Index];
                CanBoard board    = (CanBoard)Enum.Parse(typeof(CanBoard), boardStr);

                Config.CurrentConfig.LogsCanReceivers[board] = (e.NewValue == CheckState.Checked);
            }
        }
Esempio n. 4
0
        public static Frame BuildDebugAsk(CanBoard board)
        {
            byte[] tab = new byte[10];

            tab[0] = 0x00;
            tab[1] = (byte)board;
            tab[2] = (byte)CanFrameFunction.DebugAsk;

            return(new Frame(tab));
        }
Esempio n. 5
0
        public static Frame BuildTestConnection(CanBoard board)
        {
            byte[] tab = new byte[10];

            tab[0] = 0x00;
            tab[1] = (byte)board;
            tab[2] = (byte)CanFrameFunction.TestConnection;

            return(new Frame(tab));
        }
Esempio n. 6
0
        private void mnuHideSameBoardFrames_Click(object sender, EventArgs e)
        {
            if (dgvLog.SelectedRows.Count >= 1)
            {
                foreach (DataGridViewRow line in dgvLog.SelectedRows)
                {
                    CanBoard board = CanFrameFactory.ExtractBoard(GetFrameFromLine(line).Frame);
                    ShowFramesReceiver(board, false);
                    ShowFramesSender(board, false);
                }

                DisplayLog();
            }
        }
Esempio n. 7
0
        public static Frame BuildBeep(CanBoard board, int freqHz, int durationMs)
        {
            byte[] tab = new byte[10];

            tab[0] = 0x00;
            tab[1] = (byte)board;
            tab[2] = (byte)CanFrameFunction.Buzzer;
            tab[3] = ByteDivide(freqHz, true);
            tab[4] = ByteDivide(freqHz, false);
            tab[5] = ByteDivide(durationMs, true);
            tab[6] = ByteDivide(durationMs, false);

            return(new Frame(tab));
        }
Esempio n. 8
0
        /// <summary>
        /// Retourne la carte concernée par une connexion
        /// </summary>
        /// <param name="conn">Connexion dont on veut la carte</param>
        /// <returns>La carte concernée par la connexion donnée</returns>
        public static CanBoard GetCANBoardByConnection(Connection conn)
        {
            CanBoard output = CanBoard.CanServo1;

            foreach (CanBoard c in Enum.GetValues(typeof(CanBoard)))
            {
                if (_connectionsCan.ContainsKey(c) && _connectionsCan[c] == conn)
                {
                    output = c;
                }
            }

            return(output);
        }
Esempio n. 9
0
        private void _communication_FrameReceived(Frame frame)
        {
            try
            {
                CanBoard idCan = CanFrameFactory.ExtractBoard(frame);

                if (_canBoards.Contains(idCan))
                {
                    ServomoteurID servoGlobalId = CanFrameFactory.ExtractServomoteurID(frame);
                    _servos[servoGlobalId].FrameReceived(frame);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("ERREUR CAN : " + frame.ToString() + " - " + e.Message);
            }
        }
Esempio n. 10
0
 private void ShowFramesSender(CanBoard board, bool show)
 {
     lstSender.Items.Remove(board.ToString());
     lstSender.Items.Add(board.ToString(), show);
     Config.CurrentConfig.LogsCanSenders[board] = show;
 }
Esempio n. 11
0
        public void DisplayFrame(TimedFrame tFrame)
        {
            String time = "";

            try
            {
                if (rdoTimeAbsolute.Checked)
                {
                    time = tFrame.Date.ToString("hh:mm:ss:fff");
                }
                if (rdoTimeFromStart.Checked)
                {
                    time = (tFrame.Date - _startTime).ToString(@"hh\:mm\:ss\:fff");
                }
                if (rdoTimeFromPrev.Checked)
                {
                    time = ((int)(tFrame.Date - _previousTime).TotalMilliseconds).ToString() + " ms";
                }
                if (rdoTimeFromPrevDisplay.Checked)
                {
                    time = ((int)(tFrame.Date - _previousDisplayTime).TotalMilliseconds).ToString() + " ms";
                }

                CanBoard board    = CanFrameFactory.ExtractBoard(tFrame.Frame);
                CanBoard sender   = CanFrameFactory.ExtractSender(tFrame.Frame, tFrame.IsInputFrame);
                CanBoard receiver = CanFrameFactory.ExtractReceiver(tFrame.Frame, tFrame.IsInputFrame);

                if (board == CanBoard.PC)
                {
                    throw new Exception();
                }

                bool receiverVisible = Config.CurrentConfig.LogsCanReceivers[receiver];
                bool senderVisible   = Config.CurrentConfig.LogsCanSenders[sender];
                bool functionVisible = Config.CurrentConfig.LogsCanFunctions[CanFrameFactory.ExtractFunction(tFrame.Frame)];

                if (senderVisible && receiverVisible && functionVisible)
                {
                    dgvLog.Rows.Add(_counter, time, sender.ToString(), receiver.ToString(), CanFrameDecoder.Decode(tFrame.Frame), tFrame.Frame.ToString());
                    _previousDisplayTime = tFrame.Date;

                    if (rdoColorByBoard.Checked)
                    {
                        dgvLog.Rows[dgvLog.Rows.Count - 1].DefaultCellStyle.BackColor = _boardColor[board];
                    }
                    else if (rdoColorByReceiver.Checked)
                    {
                        dgvLog.Rows[dgvLog.Rows.Count - 1].DefaultCellStyle.BackColor = _boardColor[receiver];
                    }
                    else if (rdoColorBySender.Checked)
                    {
                        dgvLog.Rows[dgvLog.Rows.Count - 1].DefaultCellStyle.BackColor = _boardColor[sender];
                    }
                }
            }
            catch (Exception e)
            {
                dgvLog.Rows.Add(_counter, time, "?", "?", "Inconnu !", tFrame.Frame.ToString());
                dgvLog.Rows[dgvLog.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Red;
            }

            _counter++;
            _previousTime = tFrame.Date;
        }