コード例 #1
0
        /// <summary>
        /// Конструктор коммуникатора
        /// </summary>
        public Communicator()
        {
            // TO DO Переделать под конфигуратор
            localIP               = IPAddress.Parse(Settings.Default.localIP);
            remoteIP              = IPAddress.Parse(Settings.Default.remoteIP);
            localReceivingPort    = Convert.ToInt16(Settings.Default.localReceivingPort);
            remoteReceivingPort   = Convert.ToInt16(Settings.Default.remoteReceivingPort);;
            localSendingPort      = Convert.ToInt16(Settings.Default.localSendingPort);
            remoteSendingPort     = Convert.ToInt16(Settings.Default.remoteSendingPort);
            hostType              = (HostType)Enum.Parse(typeof(HostType), Settings.Default.hostType);
            ExchangePeriod        = Convert.ToInt16(Settings.Default.netExchangePeriod);
            communicationMode     = (CommunicationMode)Enum.Parse(typeof(CommunicationMode), Settings.Default.communicationMode);
            localApplicationName  = "Source";
            remoteApplicationName = "Target";
            state = CommunicatorState.stoped;

            transceiver = new UDPTransceiver(localIP, localReceivingPort, localSendingPort, remoteIP, remoteSendingPort, remoteSendingPort);

            // Создаем пустой список параметров.
            Parameters = new List <Parameter>();
            // Создаем поток для работы обменника
            if (hostType == HostType.Slave)
            {
                NetworkThread = new Thread(ListenNetworkSlave);
            }
            else
            {
                NetworkThread = new Thread(ListenNetworkMaster);
            }
            InputParameterChanged += (s, e) => hasInputParameterChanged = true;
        }
コード例 #2
0
        /// <summary>
        /// Запускает в работу обменник
        /// </summary>
        public void Start()
        {
            if (transceiver == null)
            {
                transceiver = new UDPTransceiver(localIP, localReceivingPort, remoteIP, remoteSendingPort);
            }
            ReceiverThread = new Thread(ListenNetwork);
            state          = CommunicatorState.active;
            ReceiverThread.IsBackground = true;

            if (!ReceiverThread.IsAlive)
            {
                ReceiverThread.Start();
            }
        }