Example #1
0
        /// <summary>
        /// Liefert eine die Bus-Resetfolge gem. M3S-Protokoll zurück. 
        /// </summary>
        /// <returns>				
        /// <list type="table">
        /// <item><term>versandfertiges ByteArray</term><description>Requestframe bei fehlerfreier Ausführung</description></item>
        /// <item><term>null</term><description>im Fehlerfall</description></item>
        /// </list>
        /// </returns> 
        /// <remarks>
        /// <para>Der Resetrahmen ist eine fix vorgegebene Bytefolge, der jedoch trotzdem ein gültiges Datenpaket darstellt, um die Prüfsumme bilden zu können und so zusätzliche Sicherheit zum Vorliegen eines gültigen Reset zu gewinnen.</para>
        /// <para>Resetfolge: 0x10 0x00 0x00 0x52 0x54 0x4F 0x2F</para>
        /// </remarks>
        public IM3S_Dataframe GetResetFrame()
        {
            // Build frame
                        M3S_V2_Dataframe resetFrm;
                        byte[] rData = new byte[1];
                        rData[0] = Convert.ToByte(M3SCommand.Reset);

                        resetFrm = new M3S_V2_Dataframe(0,M3SProtocol.Reset,0,rData,true,false);

                        return(resetFrm);
        }
Example #2
0
        /// <summary>
        /// Erstellt ein Acknowledgeframe auf einen bestimmten Datenrahmen (Argument 2)
        /// </summary>
        /// <param name="pAck">Acknowledge ja / nein (true / false)</param>
        /// <param name="pFrame">Datenrahmen, der acknowledged werden soll</param>
        /// <returns>
        /// Versandbereites Acknowledgeframe
        /// </returns>
        /// <exception cref="Exceptions.FrameError">Ungültiges Datenframe übergeben</exception>
        /// <exception cref="Exceptions.ConversionException">Aus übergebenem Datenframe kann kein Acknowledgeframe erstellt werden.</exception>
        public IM3S_Dataframe GetAcknowledgeFrame(bool pAck, byte[] pFrame)
        {
            if(!this.IsFrame(pFrame))
                    {
                        Exceptions.FrameError ex = new TBL.Exceptions.FrameError("In Argument 2 übergebenes Dataframe ist ungültig: " + TBLConvert.BytesToHexString(pFrame));
                        throw ex;
                    }

                    M3S_V2_Dataframe ackFrame = new M3S_V2_Dataframe(Convert.ToInt32(pFrame[1]), M3SProtocol.Acknowledge, this.ExtractMasterAddress(pFrame), null, false, pAck);

                    if(ackFrame == null)
                    {
                        Exceptions.ConversionException ex = new Exceptions.ConversionException("Aus dem übergebenen Dataframe kann kein Acknowledgeframe erstellt werden." + Environment.NewLine + TBLConvert.BytesToHexString(pFrame));
                        throw ex;
                    }

                    return ackFrame;
        }