Beispiel #1
0
        /// <summary>
        /// Binds together the instances of communication objects and starts
        /// whatever process are necessary
        /// </summary>
        /// <param name="inQueue">The input queue wrapper</param>
        /// <param name="outQueue">The output queue wrapper</param>
        public void Initialize(FecsBecsInputWrapper inQueue,
                               BecsFecsOutputWrapper outQueue)
        {
            AppSettingsReader appSettings = new AppSettingsReader();

            _unitId = (string)appSettings.GetValue("UnitID", typeof(string));

            Parameterization.SourceId = _unitId;
            _inAdapter  = new InputQueueBecsAdapter(inQueue);
            _outAdapter = new OutputQueueBecsAdapter(outQueue);
            _channelMgr = new BecsChannelManager(_outAdapter, _inAdapter);
            _inAdapter.ChannelManager       = _channelMgr;
            Parameterization.ChannelManager = _channelMgr;
            _mediaCtx = new BecsMediaContext();
            Parameterization.MediaContext = _mediaCtx;
            _msgRouter = new SimpleMessageRouter();
            Parameterization.MessageRouter = _msgRouter;
            Receiver.GetInstance().MessagesAvailable +=
                new Receiver.MessagesAvailableHandler(_msgRouter.OnMessagesAvailable);
            _dispatcher = new BecsMsgDispatcher();
            _msgRouter.MessageReceived   += new MessageReceivedHandler(_dispatcher.OnMessageReceived);
            _msgRouter.ResponsesReceived += new ResponsesReceivedHandler(_dispatcher.OnResponsesReceived);

            _msgConfig = new CSMessageConfiguration();
            _sender    = new MessageSender(_msgConfig);

            RegisterMessageHandlers();

            int period = (int)appSettings.GetValue("SendPeriod", typeof(int));

            _sender.Start(period);
        }
Beispiel #2
0
 /// <summary>
 /// Builds a new Session. A "Session" is just a collection of objects
 /// maintained in memory by the BECS for performance reasons.
 /// </summary>
 public BecsSession()
 {
     _fecsBecsInputQueue  = new FecsBecsInputWrapper(FECS_INPUT_QUEUE_PATH, BecsMain.Logger);
     _becsfecsOutputQueue = new BecsFecsOutputWrapper(FECS_OUTPUT_QUEUE_PATH, BecsMain.Logger);
     _ccBecsInputQueue    = new CcBecsInputWrapper(CC_INPUT_QUEUE_PATH, BecsMain.Logger);
     _becsCcOutputQueue   = new BecsCcOutputWrapper(CC_OUTPUT_QUEUE_PATH, BecsMain.Logger);
     _messagesSession     = new MessagesSession();
 }
 /// <summary>
 /// Cosntructor taking the object needed to send messages to the
 /// output queue
 /// </summary>
 /// <param name="outQueue"></param>
 public OutputQueueBecsAdapter(BecsFecsOutputWrapper outQueue)
 {
     _outQueue = outQueue;
 }