Esempio n. 1
0
        private void lstFunctions_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (!Execution.DesignMode && !_loading)
            {
                CheckedListBox   lst     = (CheckedListBox)sender;
                String           funcStr = (String)lst.Items[e.Index];
                UdpFrameFunction func    = (UdpFrameFunction)Enum.Parse(typeof(UdpFrameFunction), funcStr);

                _configFunctions[lst][func] = (e.NewValue == CheckState.Checked);
            }
        }
Esempio n. 2
0
 private void ShowFrameFunction(Board board, UdpFrameFunction func, bool show)
 {
     _lstFunctions[board].Items.Remove(func.ToString());
     _lstFunctions[board].Items.Add(func.ToString(), show);
     _configFunctions[_lstFunctions[board]][func] = show;
 }
Esempio n. 3
0
        /// <summary>
        /// Récupère le message explicite associé à une fonction du protocole.
        /// Les paramètres sont signalés par des accolades indiquant la position dans la trame des octets correspondant à la valeur du paramètre.
        /// Si les paramètres sont fournis, leur valeur remplacent les paramètres entre accolades.
        /// </summary>
        /// <param name="function"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static String GetMessage(UdpFrameFunction function, List <uint> parameters = null)
        {
            String output = "";

            switch (function)
            {
            case UdpFrameFunction.DemandeTension:
                output = "Demande tension";
                break;

            case UdpFrameFunction.RetourTension:
                output = "Retour tension {0-1}V";
                if (parameters != null)
                {
                    output = ReplaceParam(output, (parameters[0] / 100f).ToString("0.00"));
                }

                break;

            case UdpFrameFunction.DemandeLidar:
                output = "Demande LIDAR";
                break;

            case UdpFrameFunction.ReponseLidar:
                output = "Reponse LIDAR";
                break;

            case UdpFrameFunction.EnvoiUart2:
                output = "Envoi UART2";
                break;

            case UdpFrameFunction.RetourUart2:
                output = "Retour UART2";
                break;

            case UdpFrameFunction.DemandeValeursNumeriques:
                output = "Demande valeurs des ports numériques";
                break;

            case UdpFrameFunction.RetourValeursNumeriques:
                output = "Retour ports numériques : {0}_{1} / {2}_{3} / {4}_{5}";
                if (parameters != null)
                {
                    for (int i = 0; i < 6; i++)
                    {
                        output = ReplaceParam(output, Convert.ToString(parameters[i], 2).PadLeft(8, '0'));
                    }
                }
                break;

            case UdpFrameFunction.Debug:
                output = "Debug {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.TestConnexion:
                output = "Test connexion";
                break;

            case UdpFrameFunction.DemandeCapteurOnOff:
                output = "Demande capteur {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((SensorOnOffID)parameters[0]));
                }
                break;

            case UdpFrameFunction.RetourCapteurOnOff:
                output = "Retour capteur {0} : {1}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((SensorOnOffID)parameters[0]));
                    output = ReplaceParam(output, NameFinder.GetName(parameters[1] > 0));
                }
                break;

            case UdpFrameFunction.DemandeValeursAnalogiques:
                output = "Demande valeurs analogiques";
                break;

            case UdpFrameFunction.RetourValeursAnalogiques:
                output = "Retour valeurs analogiques : {0}V / {1}V / {2}V / {3}V / {4}V / {5}V / {6}V / {7}V / {8}V";
                if (parameters != null)
                {
                    for (int i = 0; i < 8; i++)
                    {
                        output = ReplaceParam(output, (parameters[i] * 0.0008056640625).ToString("0.0000") + "V");
                    }
                }
                break;

            case UdpFrameFunction.DemandeCapteurCouleur:
                output = "Demande capteur couleur {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((SensorColorID)parameters[0]));
                }
                break;

            case UdpFrameFunction.RetourCapteurCouleur:
                output = "Retour capteur couleur {0} : {1}-{2}-{3}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((SensorColorID)parameters[0]));
                    output = ReplaceParam(output, parameters[1].ToString("000"));
                    output = ReplaceParam(output, parameters[2].ToString("000"));
                    output = ReplaceParam(output, parameters[3].ToString("000"));
                }
                break;

            case UdpFrameFunction.DemandePositionCodeur:
                output = "Demande position codeur {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((CodeurID)parameters[0]));
                }
                break;

            case UdpFrameFunction.RetourPositionCodeur:
                output = "Retour position codeur {0} : {1-2-3-4}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((CodeurID)parameters[0]));
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.PilotageOnOff:
                output = "Pilote actionneur on off {0} : {1}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((ActuatorOnOffID)parameters[0]));
                    output = ReplaceParam(output, NameFinder.GetName(parameters[1] > 0));
                }
                break;

            case UdpFrameFunction.MoteurPosition:
                output = "Pilote moteur {0} position {1-2}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.MoteurVitesse:
                output = "Pilote moteur {0} vitesse {2-3} vers la {1}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                    output = ReplaceParam(output, parameters[1].ToString());
                    output = ReplaceParam(output, ((SensGD)parameters[2]).ToString().ToLower());
                }
                break;

            case UdpFrameFunction.MoteurAccel:
                output = "Pilote moteur {0} accélération {1-2}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.MoteurStop:
                output = "Moteur {0} stoppé {1}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                    output = ReplaceParam(output, ((StopMode)parameters[1]).ToString());
                }
                break;

            case UdpFrameFunction.MoteurOrigin:
                output = "Envoi du moteur {0} à l'origine";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                }
                break;

            case UdpFrameFunction.MoteurResetPosition:
                output = "Moteur {0} réintialisé à 0";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                }
                break;

            case UdpFrameFunction.MoteurFin:
                output = "Moteur {0} arrivé à destination";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                }
                break;

            case UdpFrameFunction.MoteurBlocage:
                output = "Moteur {0} bloqué";
                if (parameters != null)
                {
                    output = ReplaceParam(output, NameFinder.GetName((MotorID)parameters[0]));
                }
                break;

            case UdpFrameFunction.Deplace:
                output = "{0} sur {1-2} mm";
                if (parameters != null)
                {
                    output = ReplaceParam(output, (SensAR)parameters[0] == SensAR.Avant ? "Avance" : "Recule");
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.Pivot:
                output = "Pivot {0} sur {1-2}°";
                if (parameters != null)
                {
                    output = ReplaceParam(output, ((SensGD)parameters[0]).ToString().ToLower());
                    output = ReplaceParam(output, (parameters[1] / 100.0).ToString());
                }
                break;

            case UdpFrameFunction.Virage:
                output = "Virage {0} {1} de {4-5}° sur un rayon de {2-3}mm";
                if (parameters != null)
                {
                    output = ReplaceParam(output, ((SensAR)parameters[0]).ToString().ToLower());
                    output = ReplaceParam(output, ((SensGD)parameters[1]).ToString().ToLower());
                    output = ReplaceParam(output, (parameters[2] / 100.0).ToString());
                    output = ReplaceParam(output, parameters[3].ToString());
                }
                break;

            case UdpFrameFunction.Stop:
                output = "Stop {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, ((StopMode)parameters[0]).ToString().ToLower());
                }
                break;

            case UdpFrameFunction.Recallage:
                output = "Recallage {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, ((SensAR)parameters[0]).ToString().ToLower());
                }
                break;

            case UdpFrameFunction.TrajectoirePolaire:
                output = "Trajectoire polaire {0} sur {1-2} points";
                if (parameters != null)
                {
                    output = ReplaceParam(output, ((SensAR)parameters[0]).ToString().ToLower());
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.FinRecallage:
                output = "Fin de recallage";
                break;

            case UdpFrameFunction.FinDeplacement:
                output = "Fin de déplacement";
                break;

            case UdpFrameFunction.Blocage:
                output = "Blocage !!!";
                break;

            case UdpFrameFunction.AsserDemandePositionCodeurs:
                output = "Demande position codeurs déplacement";
                break;

            case UdpFrameFunction.AsserRetourPositionCodeurs:
                output = "Retour position codeurs déplacement : {0} valeurs";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserEnvoiConsigneBrutePosition:
                output = "Envoi consigne brute : {1-2} pas en {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, ((SensAR)parameters[0]).ToString().ToLower());
                }
                break;

            case UdpFrameFunction.DemandeChargeCPU_PWM:
                output = "Demande charge CPU PWM";
                break;

            case UdpFrameFunction.RetourChargeCPU_PWM:
                output = "Retour charge CPU PWM : {0} valeurs";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserIntervalleRetourPosition:
                output = "Intervalle de retour de la position : {0}ms";
                if (parameters != null)
                {
                    output = ReplaceParam(output, (parameters[0] * 10).ToString());
                }
                break;

            case UdpFrameFunction.AsserDemandePositionXYTeta:
                output = "Demande position X Y Teta";
                break;

            case UdpFrameFunction.AsserRetourPositionXYTeta:
                output = "Retour position X = {0-1}mm Y = {2-3}mm Teta = {4-5}°";
                if (parameters != null)
                {
                    output = ReplaceParam(output, (parameters[0] / 10.0).ToString());
                    output = ReplaceParam(output, (parameters[1] / 10.0).ToString());
                    output = ReplaceParam(output, (parameters[2] / 100.0).ToString());
                }
                break;

            case UdpFrameFunction.AsserVitesseDeplacement:
                output = "Vitesse ligne : {0-1}mm/s";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserAccelerationDeplacement:
                output = "Accélération ligne : {0-1}mm/s² au début, {2-3}mm/s² à la fin";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserVitessePivot:
                output = "Vitesse pivot : {0-1}mm/s";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserAccelerationPivot:
                output = "Accélération pivot : {0-1}mm/s²";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.AsserPID:
                output = "Asservissement P={0-1} I={2-3} D={4-5}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                    output = ReplaceParam(output, parameters[2].ToString());
                }
                break;

            case UdpFrameFunction.AsserEnvoiPositionAbsolue:
                output = "Envoi position absolue : X={0-1}mm Y={2-3}mm Teta={4-5}°";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                    output = ReplaceParam(output, (parameters[2] / 100.0).ToString());
                }
                break;

            case UdpFrameFunction.AsserPIDCap:
                output = "Asservissement cap P={0-1} I={2-3} D={4-5}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.AsserPIDVitesse:
                output = "Asservissement vitesse P={0-1} I={2-3} D={4-5}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                    output = ReplaceParam(output, parameters[1].ToString());
                }
                break;

            case UdpFrameFunction.EnvoiUart1:
                output = "Envoi UART {0} caractères";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.RetourUart1:
                output = "Réception UART {0} caractères";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            case UdpFrameFunction.EnvoiCAN:
                output = "Envoi message CAN";
                break;

            case UdpFrameFunction.ReponseCAN:
                output = "Reception message CAN";
                break;

            case UdpFrameFunction.DemandeCouleurEquipe:
                output = "Demande couleur équipe";
                break;

            case UdpFrameFunction.RetourCouleurEquipe:
                output = "Retour couleur équipe : {0}";
                if (parameters != null)
                {
                    output = ReplaceParam(output, parameters[0].ToString());
                }
                break;

            default:
                output = "Inconnu";
                break;
            }

            return(output);
        }
Esempio n. 4
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";
                }

                Board            board    = UdpFrameFactory.ExtractBoard(tFrame.Frame);
                Board            sender   = UdpFrameFactory.ExtractSender(tFrame.Frame, tFrame.IsInputFrame);
                Board            receiver = UdpFrameFactory.ExtractReceiver(tFrame.Frame, tFrame.IsInputFrame);
                UdpFrameFunction func     = UdpFrameFactory.ExtractFunction(tFrame.Frame);

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

                bool receiverVisible = Config.CurrentConfig.LogsDestinataires[receiver];
                bool senderVisible   = Config.CurrentConfig.LogsExpediteurs[sender];
                bool functionVisible = (_configFunctions[_lstFunctions[board]][func]);

                if (senderVisible && receiverVisible && functionVisible)
                {
                    dgvLog.Rows.Add(_counter, time, sender.ToString(), receiver.ToString(), UdpFrameDecoder.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)
            {
                dgvLog.Rows.Add(_counter, time, "?", "?", "Inconnu !", tFrame.Frame.ToString());
                dgvLog.Rows[dgvLog.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Red;
            }

            _counter++;
            _previousTime = tFrame.Date;
        }
Esempio n. 5
0
 /// <summary>
 /// Retourne le template de décodage d'une fonction dans le protocole de communication UDP
 /// </summary>
 /// <param name="capteur">Fonction à décoder</param>
 /// <returns>Template de décodage</returns>
 public static String GetName(UdpFrameFunction frame)
 {
     return(UdpFrameDecoder.GetMessage(frame));
 }