/// <summary>
 /// Creates the application layer slave.
 /// </summary>
 /// <param name="cCommFactory">The communication layer factory.</param>
 /// <param name="cProtParameters">The protocol parameters.</param>
 /// <param name="cStatistic">The statistic.</param>
 /// <param name="cName">Name </param>
 /// <param name="cID">The Identifier</param>
 /// <param name="cParent">The parent common bus control.</param>
 /// <returns></returns>
 public IApplicationLayerSlave CreateApplicationLayerSlave
     (ICommunicationLayerFactory cCommFactory, ProtocolParameters cProtParameters,
     out IProtocolParent cStatistic, string cName, ulong cID, CommonBusControl cParent
     )
 {
     throw new ApplicationLayerInterfaceNotImplementedException();
 }
        /// <summary>
        /// Creates the application layer master.
        /// </summary>
        /// <param name="statistic">The statistic.</param>
        /// <param name="pCommLayer">The communication layer.</param>
        /// <param name="protocolParameters">The protocol parameters.</param>
        /// <returns></returns>
        /// <exception cref="System.ComponentModel.LicenseException">The type is licensed, but a <see cref="License"/> cannot be granted.</exception>
        public IApplicationLayerMaster CreateApplicationLayerMaster(IProtocolParent statistic, ICommunicationLayer communicationLayer, TProtocolParameters protocolParameters)
        {
            m_Pool = new PrivateBufferPool(protocolParameters, CreateModBusMessage);
            TModbusProtocol mp = CreateModBusProtocol(communicationLayer, protocolParameters, statistic, m_Pool);

            return(CreateModBus_ApplicationLayerMaster(m_Pool, mp));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TextReaderApplicationLayerMaster"/> class.
 /// </summary>
 /// <param name="statistic">The statistic data describing behavior of this DataProvider at run-time.</param>
 /// <param name="parentComponent">The parent component providing cleanup functionality.</param>
 /// <param name="setting">The current settings for this DataProvider.</param>
 public TextReaderApplicationLayerMaster(IProtocolParent statistic, IComponent parentComponent, ITextReaderProtocolParameters setting)
 {
     m_statistic       = statistic;
     m_parentComponent = parentComponent;
     m_TextReaderProtocolParameters = setting;
     m_parentComponent.Disposed    += ParentComponent_Disposed;
 }
 /// <summary>
 /// contructor
 /// </summary>
 /// <param name="pStatistic">out statistic class</param>
 /// <param name="pComm"></param>
 /// <param name="pErrorFrequency"></param>
 internal NULL_ApplicationLayerMaster
     (IProtocolParent pStatistic, ICommunicationLayer pComm, int pErrorFrequency)
     : base(pComm)
 {
     this.myStatistic = pStatistic;
     //m_errorfrequency = pErrorFrequency;
 }
        /// <summary>
        /// Creates the application layer master.
        /// </summary>
        /// <param name="pProtParameters">The protocol parameters.</param>
        /// <param name="pStatistic">The statistic.</param>
        /// <param name="pCommLayer">The communication layer.</param>
        /// <returns></returns>
        public IApplicationLayerMaster CreateApplicationLayerMaster
            (IProtocolParent pStatistic, ICommunicationLayer pCommLayer, ProtocolParameters pProtParameters)
        {
            Protocol mp = new Protocol(pCommLayer, pProtParameters, pStatistic, m_Pool);

            return(new Master(m_Pool, mp));
        }
Example #6
0
 /// <summary>
 /// ApplicationLayerMaster creator
 /// </summary>
 /// <param name="cProtocol">Protocol to be used to transfer data.</param>
 /// <param name="cPool">Empty frames pool to be used by the protocol.</param>
 public ApplicationLayerMaster(ALProtocol <T_ALMessage> cProtocol, SesDBufferPool <T_ALMessage> cPool)
     : base(cProtocol.GetICommunicationLayer)
 {
     this.m_protocol  = cProtocol;
     this.m_Pool      = cPool;
     this.m_Statistic = cProtocol.GetIProtocolParent;
     InterfrarmeStopwatch.Start();
 }
Example #7
0
        /// <summary>
        /// Instantiate object providing  <see cref="IApplicationLayerMaster"/> - an object implementing
        /// master (playing the role on the field network of the master station,) interfaces defined for the application layer.
        /// </summary>
        /// <param name="pStatistic">Statistical information about the communication performance.</param>
        /// <param name="pParent"><seealso cref="CommonBusControl"/> - Base class responsible for all of resources management used
        /// by the component and providing tracing sources.</param>
        /// <returns>Return an object implementing IApplicationLayerMaster.</returns>
        public override IApplicationLayerMaster GetApplicationLayerMaster
            (IProtocolParent pStatistic, CommonBusControl pParent)
        {
            EC2_3SYM2_ApplicationLayerPluginHelper m_ApplicationLayerPluginHelper = new EC2_3SYM2_ApplicationLayerPluginHelper(pParent);

            return(m_ApplicationLayerPluginHelper.CreateApplicationLayerMaster
                       (pStatistic, this.CreateCommunicationLayer(pParent), m_ErrorFrequency));
        }
        /// <summary>
        /// Instantiate object providing  <see cref="IApplicationLayerMaster"/> - an object implementing
        /// master (playing the role on the field network of the master station,) interfaces defined for the application layer.
        /// </summary>
        /// <param name="pStatistic">Statistical information about the communication performance.</param>
        /// <param name="pParent"><seealso cref="CommonBusControl"/> - Base class responsible for all of resources management used
        /// by the component and providing tracing sources.</param>
        /// <returns>Return an object implementing IApplicationLayerMaster.</returns>
        /// <exception cref="System.ComponentModel.LicenseException">The type is licensed, but a <see cref="System.ComponentModel.License"/> cannot be granted.</exception>
        public override IApplicationLayerMaster GetApplicationLayerMaster
            (IProtocolParent pStatistic, CommonBusControl pParent)
        {
            SBUS_ApplicationLayerPluginHelper m_ApplicationLayerPluginHelper = new SBUS_ApplicationLayerPluginHelper(pParent);

            return(m_ApplicationLayerPluginHelper.CreateApplicationLayerMaster
                       (pStatistic, this.CreateCommunicationLayer(pParent), m_ProtocolParameters));
        }
 private IApplicationLayerMaster CreateApplicationProtocol(ComunicationNet.ProtocolRow protocol, CommServerComponent parent, PluginCollection plugins, ISettingsBase settings)
 {
     CommServerComponent.Tracer.TraceVerbose(60, m_src, "Creating protocol: " + protocol.Name);
     if (protocol.IsDPIdentifierNull())
     {
         //the protocol is not set so it cannot be created
         CommServerComponent.Tracer.TraceWarning(65, m_src, "The protocol is not set so it cannot be created, channel = " + this.myStatistics.myName);
         return(null);
     }
     CommServerComponent.Tracer.TraceVerbose(69, m_src, string.Format("Trying to find data provider: {0}", protocol.DPIdentifier.ToString()));
     try
     {
         IDataProviderID _DataProviderID = plugins[protocol.DPIdentifier];
         if (_DataProviderID != null)
         {
             string _format = "OK I have got DataProvider. Name = {0} [{1}]";
             CommServerComponent.Tracer.TraceVerbose(77, m_src, string.Format(_format, _DataProviderID.Title, _DataProviderID.GetDataProviderDescription.FullName));
             try
             {
                 _DataProviderID.SetSettings(protocol.DPConfig);
             }
             catch (XmlException xe)
             {
                 _format = "Problem with: {0} because of Xml content: {1}.";
                 CommServerComponent.Tracer.TraceWarning(85, m_src, string.Format(_format, protocol.DPConfig, xe.ToString()));
             }
             catch (Exception e)
             {
                 _format = "Problem with: {0} because of general failure: {1}.";
                 CommServerComponent.Tracer.TraceWarning(90, m_src, string.Format(_format, protocol.DPConfig, e.ToString()));
             }
             IProtocolParent         cStatistic  = Diagnostic.CommServerProtocol.CreateNewProtocol(protocol.DPConfig, protocol.Name, protocol.ProtocolID, _DataProviderID.GetSettingsHumanReadableFormat(), myStatistics, settings);
             IApplicationLayerMaster chnProtocol = _DataProviderID.GetApplicationLayerMaster(cStatistic, parent.m_CommonBusControl);
             CommServerComponent.Tracer.TraceVerbose(95, m_src, "I have created the DataProvider helper object.");
             return(chnProtocol);
         }
         else
         {
             string _message = "The data provider you are looking for is not available – check your configuration and execution path of the product.";
             CommServerComponent.Tracer.TraceInformation(102, m_src, _message);
         }
     }//try
     catch (System.ComponentModel.LicenseException ex)
     {
         string _format = "The component cannot be granted a license: {0}.";
         CommServerComponent.Tracer.TraceWarning(108, m_src, string.Format(_format, ex.LicensedType.ToString()));
     }
     catch (Exception _ex)
     {
         CommServerComponent.Tracer.TraceWarning(112, m_src, string.Format("Some problem encountered while trying to get a DataProvider. Exception {0}.", _ex.Message));
     }
     return(null);
 }
 /// <summary>
 /// When overridden in a derived class, instantiates object providing  <see cref="T:CAS.Lib.CommonBus.ApplicationLayer.IApplicationLayerMaster" /> - an object
 /// implementing master side (playing the role on the field network of the master station,) interface defined for the
 /// application layer.
 /// </summary>
 /// <param name="pStatistic">Statistical information about the communication performance.</param>
 /// <param name="pParent"><seealso cref="T:CAS.Lib.CommonBus.CommonBusControl" /> - Base class responsible for all of resources management used
 /// by the component.</param>
 /// <returns>Return an object implementing <see cref="IApplicationLayerMaster"/>.</returns>
 /// <exception cref="System.ArgumentNullException">
 /// </exception>
 public override IApplicationLayerMaster GetApplicationLayerMaster(IProtocolParent pStatistic, CommonBusControl pParent)
 {
     if (pStatistic == null)
     {
         throw new ArgumentNullException($"{pStatistic} cannot be null");
     }
     if (pParent == null)
     {
         throw new ArgumentNullException($"{pParent} cannot be null");
     }
     return(new TextReaderApplicationLayerMaster(pStatistic, pParent, ProtocolParameters));
 }
Example #11
0
 /// <summary>
 /// contructor
 /// </summary>
 /// <param name="pStatistic">out statistic class</param>
 /// <param name="pComm"></param>
 /// <param name="pErrorFrequency"></param>
 internal NULL_ApplicationLayerMaster
     (IProtocolParent pStatistic, ICommunicationLayer pComm, int pErrorFrequency)
     : base(pComm)
 {
     this.myStatistic = pStatistic;
     m_errorfrequency = pErrorFrequency;
     ComPortCli       = pComm;
     CommunicationThroughCommunicationLayer = true;
     if (pComm.GetType().Name.Contains("NULL"))
     {
         CommunicationThroughCommunicationLayer = false;
     }
 }
Example #12
0
 protected override ModBusProtocol CreateModBusProtocol(ICommunicationLayer communicationLayer, ModBus_ProtocolParameters parameters, IProtocolParent protocolParent, SesDBufferPool <ModBusMessage> pool)
 {
     return(new ModBusProtocol(communicationLayer, parameters, protocolParent, pool));
 }
Example #13
0
 /// <summary>
 /// When overridden in a derived class, instantiates object providing  <see cref="IApplicationLayerMaster"/> - an object
 /// implementing master side (playing the role on the field network of the master station,) interfaces defined for the
 /// application layer.
 /// </summary>
 /// <param name="pStatistic">Statistical information about the communication performance.</param>
 /// <param name="pParent"><seealso cref="CommonBusControl"/> - Base class responsible for all of resources management used
 /// by the component and providing tracing sources.</param>
 /// <returns>Return an object implementing IApplicationLayerMaster.</returns>
 public abstract IApplicationLayerMaster GetApplicationLayerMaster
     (IProtocolParent pStatistic, CommonBusControl pParent);
 /// <summary>
 /// MODBUS protocol initialization
 /// </summary>
 /// <param name="communicationLayer">Interface responsible for providing the communication</param>
 /// <param name="protocolParameters">Protocol parameters</param>
 /// <param name="protocolParent">Statistical information about the communication performance</param>
 /// <param name="pool">Empty data messages pool to be used by the protocol.</param>
 public ModbusProtocol(ICommunicationLayer communicationLayer, ProtocolParameters protocolParameters, IProtocolParent protocolParent, SesDBufferPool <ModBusMessage> pool)
     : base(communicationLayer, protocolParameters, protocolParent)
 {
     this.m_Pool = pool;
 }
 public LocalTextReaderApplicationLayerMaster(IProtocolParent statistic, IComponent parentComponent, int _fileModificationNotificationTimeout) :
     base(statistic, parentComponent, new TextReaderProtocolParameters() { FileModificationNotificationTimeout = _fileModificationNotificationTimeout, MaxNumberOfRetries = 1 })
 {
     TraceSource = TestTraceSource;
 }
 ///// <summary>
 ///// SBUS protocol initialization
 ///// </summary>
 ///// <param name="cCommLayer">Interface responsible for providing the communication</param>
 ///// <param name="cProtParameters">Protocol parameters</param>
 ///// <param name="cStatistic">Statistical information about the communication performance</param>
 ///// <param name="cPool">Empty data messages pool to be used by the protocol.</param>
 //internal SBUSProtocol
 //  ( ICommunicationLayer cCommLayer, ProtocolParameters cProtParameters,
 //  BaseStation.Management.IProtocolParent cStatistic, SesDBufferPool<SBUSbase_message> cPool
 //  )
 //  : base( cCommLayer, cProtParameters, cStatistic )
 //{
 //  this.m_Pool = cPool;
 //}
 /// <summary>
 /// SBUS protocol initialization
 /// </summary>
 /// <param name="pStatistic">Statistical information about the communication performance</param>
 /// <param name="pCommLayer">Interface responsible for providing the communication</param>
 /// <param name="pProtParameters">Protocol parameters</param>
 /// <param name="cPool">Empty data messages pool to be used by the protocol.</param>
 internal SBUSProtocol(IProtocolParent pStatistic, ICommunicationLayer pCommLayer,
                       ProtocolParameters pProtParameters, SesDBufferPool <FrameStateMachine> cPool)
     : base(pCommLayer, pProtParameters, pStatistic)
 {
     this.m_Pool = cPool;
 }
Example #17
0
 /// <summary>
 /// Creator of ALProtocol
 /// </summary>
 /// <param name="pCommLayer">Interface responsible for providing the communication</param>
 /// <param name="pProtParameters">Protocol parameters</param>
 /// <param name="pStatistic">Statistical information about the communication performance</param>
 protected ALProtocol(ICommunicationLayer pCommLayer, ProtocolParameters pProtParameters, IProtocolParent pStatistic)
 {
     InitObject(pCommLayer, pProtParameters, pStatistic);
 }
 protected void InitializeOperation(IDataProviderID dataProviderID, CommonBusControl commonBusControl, IProtocolParent protocolParent, bool readOperation)
 {
     m_ResourceSelected     = ResourceSelected;
     m_StationAddress       = StationAddress;
     m_RegisterAddress      = RegisterStartAddress;
     m_DataTypeOfConversion = DataTypeOfConversion;
     m_Length = Length;
     if (m_DataTypeOfConversion == typeof(string))
     {
         m_RegistersCount = 1;
     }
     else
     {
         m_RegistersCount = Length;
     }
     m_CommLayerAddress     = Commlayeraddress;
     ApplicationLayerMaster = dataProviderID.GetApplicationLayerMaster(protocolParent, commonBusControl);
     if (readOperation)
     {
         m_DoOperation = ReadOperation;
     }
     else
     {
         m_ValueToBeWritten = ValueToBeWritten(m_DataTypeOfConversion);
         m_DoOperation      = WriteOperation;
     }
 }
Example #19
0
 internal LocalOperation(Program parent, IDataProviderID dataProviderID, CommonBusControl commonBusControl, IProtocolParent protocolParent, bool readOperation)
 {
     Parent = parent;
     Delay  = System.Convert.ToInt32(parent.@_Delay.Text);
     InitializeOperation(dataProviderID, commonBusControl, protocolParent, readOperation);
 }
Example #20
0
 /// <summary>
 /// Creates the application layer sniffer.
 /// </summary>
 /// <param name="pCommLayer">The communication layer.</param>
 /// <param name="pProtParameters">The protocol parameters.</param>
 /// <param name="pStatistic">The  statistic.</param>
 /// <returns>IApplicationLayerSlave</returns>
 public IApplicationLayerSniffer CreateApplicationLayerSniffer
     (ICommunicationLayer pCommLayer, ProtocolParameters pProtParameters, IProtocolParent pStatistic)
 {
     throw new ApplicationLayerInterfaceNotImplementedException();
 }
Example #21
0
 //string IApplicationLayerPluginHelper.Name
 //{
 //  get
 //  {
 //    return "Symulator sieci cieplnej EC2- EC3";
 //  }
 //}
 //string IApplicationLayerPluginHelper.Author
 //{
 //  get
 //  {
 //    return "CAS Mariusz Postó³";
 //  }
 //}
 //string IApplicationLayerPluginHelper.Description
 //{
 //  get
 //  {
 //    return "NULLBUS protocol (master side) implementation for Commserver - virtual protocol for tests and simulations";
 //  }
 //}
 //Version IApplicationLayerPluginHelper.Version
 //{
 //  get
 //  {
 //    return new Version( 2, 0 );
 //  }
 //}
 //DateTime IApplicationLayerPluginHelper.Date
 //{
 //  get
 //  {
 //    return new DateTime( 2005, 01, 01 );//MZTD: Ew. sprawdzic i wstawic prawdziwa date
 //  }
 //}
 //int IApplicationLayerPluginHelper.Identifier
 //{
 //  get
 //  {
 //    return 4;
 //  }
 //}
 //IApplicationLayerMaster IApplicationLayerPluginHelperMaster.GetApplicationLayerMaster
 //  ( ICommunicationLayerFactory cCommFactory, ProtocolParameters myProtParameters, BaseStation.Management.IProtocolParent Statistic )
 //{
 //  return new NULL_ApplicationLayerMaster( cCommFactory, myProtParameters, Statistic );
 //}
 /// <summary>
 /// This fuction create simulator (application layer)
 /// </summary>
 /// <param name="pStatistic"></param>
 /// <param name="pComm"></param>
 /// <param name="pErrorFrequency"></param>
 /// <returns></returns>
 public IApplicationLayerMaster CreateApplicationLayerMaster
     (IProtocolParent pStatistic, ICommunicationLayer pComm, int pErrorFrequency)
 {
     return(new NULL_ApplicationLayerMaster(pStatistic, pComm, pErrorFrequency));
 }
Example #22
0
 public override Lib.CommonBus.ApplicationLayer.IApplicationLayerMaster GetApplicationLayerMaster(IProtocolParent pStatistic, CommonBusControl pParent)
 {
     throw new NotImplementedException();
 }
Example #23
0
 internal ApplicationLayerSlave
     (IProtocolParent pStatistic, ICommunicationLayer pComm)
     : base(pComm)
 {
     this.myStatistic = pStatistic;
 }
Example #24
0
 private void InitObject(ICommunicationLayer cCommLayer, ProtocolParameters cProtParameters, IProtocolParent cStatistic)
 {
     myCommLayer      = cCommLayer;
     myProtParameters = cProtParameters;
     myStatistic      = cStatistic;
 }
 protected abstract TModbusProtocol CreateModBusProtocol(ICommunicationLayer communicationLayer, TProtocolParameters parameters, IProtocolParent protocolParent, SesDBufferPool <TModbusMessage> pool);