protected virtual void OnStateChanging(object sender, PortState newState)
 {
     if (StateChanging != null)
     {
         StateChanging(sender, newState);
     }
 }
Beispiel #2
0
        public override void LoadAll(IO.ComponentData Compound)
        {
            base.LoadAll(Compound);

            for (int i = 0; i < Joints.Length; i++)
            {
                j[i] = Compound.GetInt("J" + i.ToString());
            }

            for (int i = 0; i < Wires.Length; i++)
            {
                w[i] = Compound.GetInt("W" + i.ToString());
            }

            connectedLeft  = Compound.GetBool("Left");
            connectedUp    = Compound.GetBool("Up");
            connectedRight = Compound.GetBool("Right");
            connectedDown  = Compound.GetBool("Down");

            leftUp    = Compound.GetBool("LeftUp");
            leftRight = Compound.GetBool("LeftRight");
            leftDown  = Compound.GetBool("LeftDown");
            upRight   = Compound.GetBool("UpRight");
            upDown    = Compound.GetBool("UpDown");
            rightDown = Compound.GetBool("RightDown");

            left  = (PortState)Compound.GetInt("PortLeft");
            up    = (PortState)Compound.GetInt("PortUp");
            right = (PortState)Compound.GetInt("PortRight");
            down  = (PortState)Compound.GetInt("PortDown");
        }
 protected virtual void OnStateChanged(object sender, PortState state)
 {
     if (StateChanged != null)
     {
         StateChanged(sender, state);
     }
 }
Beispiel #4
0
        /// <summary>
        /// Reacts to the remote terminal drop.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        public virtual void OnRemoteDrop(object sender, EventArgs e)
        {
            IPort remotePort = sender as IPort;

            if (remotePort != null)
            {
                remotePort.DropCallEvent       -= OnRemoteDrop;
                remotePort.OnOutgoingCallEvent -= OnIncomingCall;
                _terminal.SetPickUpPhone(false);
            }

            if (OnPortStateChangedEvent == null)
            {
                OnPortStateChangedEvent += PortStateChanged;
            }

            _callInfo.EndDate        = StaticTime.CurrentTime;
            _callInfo.CallResultType = PortState == PortState.Busy
                ? CallInfoResultType.Success
                : CallInfoResultType.Unanswered;
            if (CallCompletedEvent != null)
            {
                CallCompletedEvent(this, _callInfo);
            }

            PortState = PortState.Free;
            OnPortStateChangedEvent -= PortStateChanged;
        }
    void OpenPort()
    {
        try
        {
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
            portName = "\\\\.\\" + portName;
#endif
            serial              = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One);
            serial.ReadTimeout  = readTimeout;
            serial.WriteTimeout = 10;
            serial.Close();
            serial.Dispose();
            serial.Open();
            serial.DiscardInBuffer();
            serial.DiscardOutBuffer();
            serial.BaseStream.Flush();
            serial.NewLine = "\n";
            boardState     = PortState.Open;
            Debug.Log("The port is open");
        }
        catch (Exception e)
        {
            Debug.Log("Error" + e);
        }
    }
Beispiel #6
0
        public void PhoneEventsInit(IPhone phone)
        {
            phone.IncomingCall += (sender, args) =>
            {
                State            = PortState.Call;
                phone.Connection = args;
            };

            phone.OutgoingCall += (sender, args) =>
            {
                State = PortState.Call;
                Call?.Invoke(this, args);
            };

            phone.Answer += (sender, args) =>
            {
                Answer?.Invoke(this, args);
            };

            phone.Drop += (sender, args) =>
            {
                State = PortState.Busy;
                Drop?.Invoke(this, args);
            };

            this.IncomingCall += (sender, args) =>
            {
                phone.GetIncomingCall(args);
            };
        }
Beispiel #7
0
 public virtual void RegisterEventHandlersForTerminal(ITerminal terminal)
 {
     terminal.OutgoingCall += (sender, arg) =>
     {
         State = PortState.Busy;
         OutgoingCall?.Invoke(this, arg);
         Console.WriteLine(arg.SourceNumber + " is calling " + arg.TargetNumber);
     };
     terminal.IncomingCall += (sender, arg) =>
     {
         State = PortState.Busy;
         terminal.CallEventArgs = arg;
         Console.WriteLine(arg.SourceNumber + " is calling " + arg.TargetNumber);
     };
     terminal.Answer += (sender, arg) =>
     {
         Console.WriteLine(arg.TargetNumber + " answered " + arg.SourceNumber);
         Answer?.Invoke(this, arg);
     };
     terminal.Drop += (sender, arg) =>
     {
         State = PortState.Free;
         Drop?.Invoke(this, arg);
     };
     this.IncomingCall += (sender, arg) =>
     {
         terminal.IncomingCallFromPort(arg);
     };
 }
Beispiel #8
0
 protected virtual void OnStateChanged(object sender, PortState state)
 {
     if (PortStateChanged != null)
     {
         PortStateChanged(sender, state);
     }
 }
Beispiel #9
0
 private void EV3Manager_TouchSensorUpdateEvent(PortState state)
 {
     if (TouchText != null)
     {
         TouchText.text = state.Raw.ToString();
     }
 }
Beispiel #10
0
 protected virtual void OnStateChanging(object sender, PortState newState)
 {
     if (StateChanging != null)
     {
         StateChanging(sender, newState);
     }
 }
Beispiel #11
0
        private void _worker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                int port = Convert.ToInt32(_txtPort.Text);
                int x    = 0;

                if (!_worker.CancellationPending)
                {
                    PortState state    = new PortState();
                    decimal   progress = (decimal)x * (decimal)100;
                    try
                    {
                        TcpClient client = new TcpClient(_txtHost.Text, port);
                        state.IsOpen = true;
                    }
                    catch (Exception ex) { }
                    state.Port = port;
                    _worker.ReportProgress((int)progress, state);
                    ++x;
                }
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }
Beispiel #12
0
 public void OnOutgoingCall(object sender, Request request)
 {
     if (request.GetType() == typeof(OutgoingCallRequest) && this.State == PortState.Free)
     {
         this.State = PortState.Busy;
     }
 }
Beispiel #13
0
 public NodePort(Node owner, NodePortType type)
 {
     Rect  = new Rect(0, 0, 10, 10);
     Owner = owner;
     Type  = type;
     State = PortState.Idle;
 }
Beispiel #14
0
 public void OnStateChanging(object sender, PortState newState)
 {
     if (StateChanging != null)
     {
         StateChanging(sender, newState);
     }
 }
Beispiel #15
0
 private void EV3Manager_InfraredSensorUpdateEvent(PortState state)
 {
     if (IRText != null)
     {
         IRText.text = state.Raw.ToString();
     }
 }
Beispiel #16
0
 public void OnStateChanged(object sender, PortState state)
 {
     if (StateChanged != null)
     {
         StateChanged(sender, state);
     }
 }
 private void EV3Manager_ColourSensorUpdateEvent(PortState state)
 {
     if (ColourText != null)
     {
         ColourText.text = state.Raw.ToString();
     }
 }
Beispiel #18
0
 public void UpdateIO()
 {
     Left  = Left;
     Up    = Up;
     Right = Right;
     Down  = Down;
 }
Beispiel #19
0
 public PortInfo(IPAddress ipAddress, string hostname, int port, PortLookupInfo lookupInfo, PortState status)
 {
     IPAddress  = ipAddress;
     Hostname   = hostname;
     Port       = port;
     LookupInfo = lookupInfo;
     State      = status;
 }
 public PortScannedArgs(IPAddress ipAddres, string hostname, int port, PortLookupInfo lookupInfo, PortState state)
 {
     IPAddress  = ipAddres;
     Hostname   = hostname;
     Port       = port;
     LookupInfo = lookupInfo;
     State      = state;
 }
Beispiel #21
0
        public void OutgoingRequest(object sender, Request request)
        {
            _State = PortState.Busy;

            _Logger.WriteToLog("-> Port on number " + (sender as ITerminal).Number.GetValue + " change state in " + _State);

            OnOutgoingRequest(this, request);
        }
Beispiel #22
0
        public void TerminateCall(object sender, Response response)
        {
            _State = PortState.Free;

            _Logger.WriteToLog("-> Port on number " + (sender as ITerminal).Number.GetValue + " change state in " + _State);

            OnTerminateRequest(this, response);
        }
Beispiel #23
0
 PortState Inverse(PortState p)
 {
     if (p == PortState.Input)
     {
         return(PortState.Output);
     }
     return(PortState.Input);
 }
Beispiel #24
0
 public void Disconnect()
 {
     if (State != PortState.Disabled)
     {
        _state = PortState.Available;
         PbxTerminal.Disconnect();
     }
 }
Beispiel #25
0
        public void OutgoingRequest(object sender, Request request)
        {
            _State = PortState.Busy;

            _Logger.WriteToLog("-> Port on number " + (sender as ITerminal).Number.GetValue + " change state in " + _State);

            OnOutgoingRequest(this, request);
        }
Beispiel #26
0
        public void CallWasCompleted(Response response)
        {
            _State = PortState.Free;

            _Logger.WriteToLog("-> Target port change state in " + _State);

            OnRequestWasCompleted(this, response);
        }
Beispiel #27
0
 /// <summary>
 /// Gets outgoing call.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="number">The number.</param>
 protected virtual void OnTerminalPrepareOutgoingCall(object sender, string number)
 {
     PortState = PortState.OutgoingCall;
     if (OnPrepareOutgoingCallEvent != null)
     {
         OnPrepareOutgoingCallEvent(this, number);
     }
 }
Beispiel #28
0
        public void IncomingRequest(Request request)
        {
            _State = PortState.Busy;

            _Logger.WriteToLog("-> Port on number " + request.TargetNumber.GetValue + " change state in " + _State);

            OnIncomingRequest(this, request);
        }
Beispiel #29
0
        public void CallWasCompleted(Response response)
        {
            _State = PortState.Free;

            _Logger.WriteToLog("-> Target port change state in " + _State);

            OnRequestWasCompleted(this, response);
        }
Beispiel #30
0
        public void IncomingRequest(Request request)
        {
            _State = PortState.Busy;

            _Logger.WriteToLog("-> Port on number " + request.TargetNumber.GetValue + " change state in " + _State);

            OnIncomingRequest(this, request);
        }
Beispiel #31
0
 public void EndToCallExchandeToPortEventHandler(object?sender, EndToCallExchandeToPortEventArgs e)
 {
     if (PortId == e.PortID)
     {
         State = PortState.Connect;
         Console.WriteLine("Конец звонка");
         //logic EndCall To terminal
     }
 }
Beispiel #32
0
 public void Connect(Terminal terminal) //подпиисываемся на терминал
 {
     State = PortState.Connect;         // отдельный метод subscribe
     terminal.TryToConnectToPortEventHandler    += TerminalOnTryToConnectToPortEventHandler;
     terminal.EndCallTerminalToPortEventHandler += TerminalOnEndCallTerminalToPortEventHandler;
     OnTerminalToPortConnectedEvent(new TerminalToPortConnectedEventArgs {
         PhoneNumber = terminal.PhoneNumber, PortID = PortId
     });
 }
Beispiel #33
0
 public void EndToTryCallExchandeToPortEventHandler(object?sender, EndToTryCallExchandeToPortEventArgs e)
 {
     if (PortId == e.PortID)
     {
         State = PortState.Connect;
         //logic EndCall To terminal
         Console.WriteLine("Звонок не удался ");
     }
 }
Beispiel #34
0
 public void UnConnect(Terminal terminal) //отписываемся от терминала
 {
     State = PortState.NotConnect;
     terminal.TryToConnectToPortEventHandler    -= TerminalOnTryToConnectToPortEventHandler;
     terminal.EndCallTerminalToPortEventHandler -= TerminalOnEndCallTerminalToPortEventHandler;
     OnTerminalToPortUnConnectedEvent(new TerminalToPortUnConnectedEventArgs {
         PortID = terminal.Id
     });
 }
Beispiel #35
0
 public void PlugToTerminal(object sender, EventArgs args)
 {
     if (_State == PortState.SwitchedOff)
     {
         _State = PortState.Free;
         RegisterOnTerminalEvents(sender as ITerminal);
         _Logger.WriteToLog("-> Port on number " + (sender as ITerminal).Number.GetValue + " plug");
     }
 }
Beispiel #36
0
 public void CallExchandeToPortEventHandler(object?sender, CallExchandeToPortEventArgs e)
 {
     if (PortId == e.PortID)
     {
         Console.WriteLine("Звонок удался");
         State = PortState.Busy;
     }
     //logic Call To terminal
     //logic
 }
Beispiel #37
0
        public Port(long phoneNumber)
        {
            if (!new Regex(@"\d{6}").IsMatch(phoneNumber.ToString()))
            {
                throw new ArgumentException($"Phone number is incorrect. Example: 123456.");
            }

            PhoneNumber = phoneNumber;
            State       = PortState.Disconnected;
        }
 public StateChangeEventArgs(PortState state)
 {
     if ((state < PortState.Closed) || (state > PortState.Closing))
     {
         throw new ArgumentOutOfRangeException("state");
     }
     else
     {
         State = state;
     }
 }
Beispiel #39
0
 public void RegisterEventsForTerminal(ITerminal terminal)
 {
     terminal.Plugging += (sender, args) => { this.State = PortState.Free; };
     terminal.UnPlugging += (sender, args) => { this.State = PortState.Off; };
     terminal.OutConnection += (sender, request) =>
     {
         if (request.Code == Request.OutcomingCall && this.State == PortState.Free)
         {
             this.State = PortState.Busy;
         }
     };
 }
Beispiel #40
0
 public bool Connect(Terminal terminal)
 {
     if (State == PortState.Disconnect)
     {
         State = PortState.Connect;
         terminal.CallEvent += CallingTo;
         terminal.AnswerEvent += AnswerTo;
         terminal.EndCallEvent += EndCall;
         Flag = true;
     }
     return Flag;
 }
Beispiel #41
0
 public bool Disconnect(Terminal terminal)
 {
     if(State == PortState.Connect)
     {
         State = PortState.Disconnect;
         terminal.CallEvent -= CallingTo;
         terminal.AnswerEvent -= AnswerTo;
         terminal.EndCallEvent -= EndCall;
         Flag = false;
     }
     return false;
 }
Beispiel #42
0
        private static bool IsPort(string hostname, int port, int millisRetry, int millisTimeout, bool retry, PortState state)
        {
            IPAddress[] addrs;
            try {
                /* Try to parse the value as an IP address. */
                addrs = new IPAddress[] {IPAddress.Parse(hostname)};
            } catch (System.FormatException) {
                /* If it fails lookup the entry in DNS. */
                IPHostEntry entry = Dns.GetHostEntry(hostname);
                addrs = entry.AddressList;
            }

            DateTime start = DateTime.Now;
 
            while (true) {
                DateTime now = DateTime.Now;
                TimeSpan delta = now - start;
                if (delta.TotalMilliseconds >= millisTimeout) {
                    Console.WriteLine("Timeout reached.");
                    return false;
                }

                bool connected = false;
                for (int i = 0; i < addrs.Length; i++) {
                    string result = "";
                    Socket socket = new Socket(addrs[i].AddressFamily, SocketType.Stream, ProtocolType.IP);
                    try {
                        socket.Connect(addrs[i], port);
                        result = "succeded";
                        connected = true;
                        break;
                    } catch (Exception ex) {
                        result = String.Format("failed ({0})", ex.Message);
                    } finally {
                        Console.WriteLine("Probing {0}:{1} {5} (address {3} of {4}) {2}.", addrs[i], port, result, i + 1, addrs.Length, state);
                        socket.Close();
                    }
                }

                if ((connected && (state == PortState.Open)) || (!connected && (state == PortState.Closed))) {
                    return true;
                }

                if (!retry) {
                    Console.WriteLine("No retry.");
                    return false;
                }

                Console.WriteLine("Will retry in {0} millis. {1:0} millis to timeout.", millisRetry, millisTimeout - delta.TotalMilliseconds);
                Thread.Sleep(millisRetry);
            }
        }
Beispiel #43
0
 private void OnStateChangingEvent(PortState newState)
 {
     StateChangingEvent?.Invoke(MACAddress, newState);
 }
Beispiel #44
0
 public Port()
 {
     State = PortState.Disconnect;
 }
Beispiel #45
0
        protected void SetPortsStateTo(PhoneNumber source, PhoneNumber target, PortState state)
        {
            var targetPort = GetPortByPhoneNumber(target);
            var sourcePort = GetPortByPhoneNumber(source);

            if (targetPort != null)
            {
                targetPort.State = state;
            }
            if (sourcePort != null)
            {
                sourcePort.State = state;
            }
        }
Beispiel #46
0
        public override void LoadAll(IO.ComponentData Compound)
        {
            base.LoadAll(Compound);

            for (int i = 0; i < Joints.Length; i++)
            {
                j[i] = Compound.GetInt("J" + i.ToString());
            }

            for (int i = 0; i < Wires.Length; i++)
            {
                w[i] = Compound.GetInt("W" + i.ToString());
            }

            connectedLeft = Compound.GetBool("Left");
            connectedUp = Compound.GetBool("Up");
            connectedRight = Compound.GetBool("Right");
            connectedDown = Compound.GetBool("Down");

            leftUp = Compound.GetBool("LeftUp");
            leftRight = Compound.GetBool("LeftRight");
            leftDown = Compound.GetBool("LeftDown");
            upRight = Compound.GetBool("UpRight");
            upDown = Compound.GetBool("UpDown");
            rightDown = Compound.GetBool("RightDown");

            left = (PortState)Compound.GetInt("PortLeft");
            up = (PortState)Compound.GetInt("PortUp");
            right = (PortState)Compound.GetInt("PortRight");
            down = (PortState)Compound.GetInt("PortDown");
        }
Beispiel #47
0
 public void UpdateIO()
 {
     Left = Left;
     Up = Up;
     Right = Right;
     Down = Down;
 }
Beispiel #48
0
 public void PlugToTerminal(object sender, EventArgs args)
 {
     if (_State == PortState.SwitchedOff)
     {
         _State = PortState.Free;
         RegisterOnTerminalEvents(sender as ITerminal);
         _Logger.WriteToLog("-> Port on number " + (sender as ITerminal).Number.GetValue + " plug");
     }
 }
Beispiel #49
0
        public void Close()
        {
            if (State == PortState.Close) return;

            State = PortState.Close;
        }
Beispiel #50
0
 protected virtual void OnStateChanged(object sender, PortState state)
 {
     StateChanged?.Invoke(this, state);
 }
Beispiel #51
0
 protected virtual void OnStateChanging(object sender, PortState newstate)
 {
     StateChanging?.Invoke(this, newstate);
 }
Beispiel #52
0
        public override void LoadAll(IO.ComponentData Compound)
        {
            base.LoadAll(Compound);

            for (int i = 0; i < Joints.Length; i++)
            {
                j[i] = Compound.GetInt("J" + i.ToString());
            }

            for (int i = 0; i < Wires.Length; i++)
            {
                w[i] = Compound.GetInt("W" + i.ToString());
            }

            left = (PortState)Compound.GetInt("Left");
            up = (PortState)Compound.GetInt("Up");
            right = (PortState)Compound.GetInt("Right");
            down = (PortState)Compound.GetInt("Down");
        }
 PortState Inverse(PortState p)
 {
     if (p == PortState.Input)
         return PortState.Output;
     return PortState.Input;
 }
Beispiel #54
0
        public virtual void BindPort(IPort port)
        {
            if (port == null) throw new ArgumentNullException(nameof(port));
            if (IsPortBinded)
                throw new RegistrationException($"{this} already binded");

            port.StateChangedEvent += PortOnStateChangedEvent;
            PortOnStateChangedEvent(this, port.State, port.State);
            port.SendRequestEvent += ProcessRequest;
            port.SendResponseEvent += ProcessResponse;
            _bindedPortMAC = port.MACAddress;

            if (State != PortState.Close)
                State = PortState.Listened;
            OnBindPortEvent(port);
        }
Beispiel #55
0
 private int PortStateToIndex(PortState s)
 {
     switch (s)
     {
         case PortState.Input:
             return 2;
         case PortState.Output:
             return 1;
         case PortState.Both:
             return 0;
         default:
             return 0;
     }
 }
Beispiel #56
0
        public void Open()
        {
            if (State != PortState.Close) return;

            State = IsPortBinded ? PortState.Listened : PortState.Open;
        }
Beispiel #57
0
 private void OnStateChangedEvent(PortState oldState)
 {
     StateChangedEvent?.Invoke(MACAddress, oldState, _state);
 }
Beispiel #58
0
        public virtual void UnbindPort(IPort port)
        {
            if (port == null) throw new ArgumentNullException(nameof(port));
            if (port.MACAddress != _bindedPortMAC)
                throw new RegistrationException($"{this} did'n bind to {port}");

            port.StateChangedEvent -= PortOnStateChangedEvent;
            IsBindedPortNotClosed = false;
            port.SendRequestEvent -= ProcessRequest;
            port.SendResponseEvent -= ProcessResponse;
            _bindedPortMAC = null;

            if (State != PortState.Close)
                State = PortState.Open;
            OnUnbindPortEvent(port);
        }
Beispiel #59
0
 private void PortOnStateChangedEvent(object sender, PortState oldState, PortState newState)
 {
     IsBindedPortNotClosed = newState != PortState.Close;
 }
Beispiel #60
0
        private void SetFormTitle(PortState state)
        {
            string port = _tw.ConfiguredComPort;
            var sb = new StringBuilder();
            sb.AppendFormat("{0} №{1}", OLD_TEXT, _tw.ConfiguredStationNo);
            if (state == PortState.None)
            {
                Text = sb.ToString();
                return;
            }
            sb.AppendFormat(" ({0} {1})", _pst[(int)state].Name, port);

            Text = sb.ToString();
        }