Пример #1
0
        private void OnError(Memory <byte> payloadData)
        {
            var nack = _deserializer.ToError(payloadData);

            _taskManager.OnPayloadErrorResult(nack.Id, nack.Message);
            OnErrorReceived?.Invoke(nack.Id, nack.Message);
        }
Пример #2
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_FOWINC)
            {
                if (OnInitAdminOP != null)
                {
                    OnInitAdminOP.Invoke(this, new MessageEventArgs(m.LParam.ToString()));
                }
            }
            if (m.Msg == WM_FOERROR)
            {
                if (OnErrorReceived != null)
                {
                    OnErrorReceived.Invoke(this, new MessageEventArgs(m.LParam.ToString()));
                }
            }
            if (m.Msg == WindowsAPI.WM_COPYDATA)
            {
                byte[] b       = new Byte[Marshal.ReadInt32(m.LParam, IntPtr.Size)];
                IntPtr dataPtr = Marshal.ReadIntPtr(m.LParam, IntPtr.Size * 2);
                Marshal.Copy(dataPtr, b, 0, b.Length);
                string message = System.Text.Encoding.Unicode.GetString(b);

                if (OnMessageReceived != null)
                {
                    OnMessageReceived.Invoke(this, new MessageEventArgs(message));
                }
            }
            base.WndProc(ref m);
        }
Пример #3
0
        /// <summary>
        /// エラー発生時の処理
        /// </summary>
        /// <param name="Callback">エラー検知用コールバック</param>
        public void RegisterOnError(OnErrorReceived Callback)
        {
            Debug.WriteLine("RegisterOnError() <start>");

            this.OnErrorCallback = Callback;

            Debug.WriteLine("RegisterOnError() <end>");
        }
Пример #4
0
 private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
 {
     if (e.Data != null)
     {
         Console.WriteLine(e.Data);
         OnErrorReceived?.Invoke(this, new StringEventArgs(e.Data));
     }
     else
     {
         countdownEvent.AddCount();
     }
 }
Пример #5
0
        /// <summary>
        /// Opens the Pylon library to Camera Index.
        /// </summary>
        public void Open()
        {
            try {
                ImageProvider.Open(Index);
            } catch (Exception ex) {
                log.Fatal("ERROR while opening device with Index " + Index);
                log.Fatal("Device Info: " + FullName);

                log.Fatal("Exception: " + ex.ToString());
                OnErrorReceived?.Invoke(this, ex);
            }
        }
Пример #6
0
        /// <summary>
        /// Starts continous grabbing of ImageProvider.
        /// </summary>
        public void Start()
        {
            try {
                // Save range set to 0, but the imageProvider is still working. We Stop it.
                if (HasStarted && SaveRange <= 0)
                {
                    Stop();

                    return;
                }

                // Disable the camera on Save range zero.
                if (HasStarted || SaveRange <= 0)
                {
                    return;
                }

                ImageProvider.ContinuousShot();

                /*using (var p = Process.GetCurrentProcess ()) {
                 *
                 *      Console.Clear ();
                 *
                 *      int pS = 1;
                 *
                 *
                 *      foreach (ProcessThread t in p.Threads) {
                 *              if (t.PriorityLevel == ThreadPriorityLevel.Highest) {
                 *                      //t.PriorityLevel = ThreadPriorityLevel.TimeCritical;
                 *
                 *                      t.IdealProcessor = pS;
                 *
                 *                      pS++;
                 *
                 *                      if (pS >= 8)
                 *                              pS = 1;
                 *              }
                 *              //Console.WriteLine (t.CurrentPriority + " - " + t.Id + " - " + t.PriorityBoostEnabled + " - " + t.PriorityLevel);
                 *      }
                 *
                 * }*/

                HasStarted = true;
            } catch (Exception ex) {
                log.Fatal("ERROR while starting continuous sht on device with Index " + Index);
                log.Fatal("Device Info: " + FullName);

                log.Fatal("Exception: " + ex.ToString());

                OnErrorReceived?.Invoke(this, ex);
            }
        }
Пример #7
0
        public void Error(string?message,
                          [CallerMemberName] string?previousMethodName = null,
                          [CallerLineNumber] int callermemberlineNo    = 0,
                          [CallerFilePath] string?calledFilePath       = null)
        {
            if (string.IsNullOrEmpty(message))
            {
                return;
            }

            LogMessageReceived?.Invoke(this, new LogMessageEventArgs(LogIdentifier, message, DateTime.Now, LogLevels.Error, previousMethodName, callermemberlineNo, calledFilePath));
            OnErrorReceived?.Invoke(this, new EventArgsBase(LogIdentifier, DateTime.Now, message, previousMethodName, callermemberlineNo, calledFilePath));
        }
Пример #8
0
        /// <summary>
        /// Closes the image provider safely.
        /// </summary>
        public void Close()
        {
            try {
                ImageProvider.Close();

                HasStarted = false;
            } catch (Exception ex) {
                log.Fatal("ERROR while closing device with Index " + Index);
                log.Fatal("Device Info: " + FullName);

                log.Fatal("Exception: " + ex.ToString());

                OnErrorReceived?.Invoke(this, ex);
            }
        }
Пример #9
0
        /// <summary>
        /// SSE Pushサーバと接続し、メッセージを受信する
        /// </summary>
        /// <param name="username">Basic認証に使用するユーザ名</param>
        /// <param name="password">Basic認証に使用するパスワード</param>
        /// <param name="OnErrorCallback">エラーコールバック</param>
        /// <returns>受信メッセージ</returns>
        public IObservable <string> ReadLines(string username, string password, OnErrorReceived OnErrorCallback)
        {
            this.OnErrorCallback = OnErrorCallback;

            Func <int, TimeSpan> strategy = ExponentialBackoff;

            // エラー時の処理
            var delay = Observable.Defer(() =>
            {
                // もしWebResponseが存在する場合はクローズする
                if (this.WebResponse != null)
                {
                    this.WebResponse.Close();
                }

                // サーバから503エラーでヘッダにリトライ値が設定された場合、
                // またはSSEメッセージで"retry"値が設定された場合はその値で待つ(1度のみ)
                if (this.RetryFlag)
                {
                    // リトライフラグと接続試行回数をリセット
                    this.RetryFlag = false;
                    this.attempt   = 0;

                    return(Observable.Empty <string>().Delay(TimeSpan.FromMilliseconds(this.ReconnectionTime)));
                }
                // それ以外は Exponential Backoff で待つ
                else
                {
                    return(Observable.Empty <string>().DelaySubscription(strategy(++attempt)));
                }
            });

            return(Request(username, password)
                   .Where(IsEventStream)
                   .SelectMany(webResponse =>
            {
                stateSubject.OnNext(EventSourceState.OPEN);
                // 再接続時間を初期化
                this.ReconnectionTime = this.DefaultReconnectionTime;

                // 接続施行回数をリセット
                this.attempt = 0;
                return Read(webResponse);
            })
                   .Catch((Exception e) => NotifyHttpError(e))
                   .OnErrorResumeNext(delay).Repeat());
        }
Пример #10
0
        public int Start()
        {
            try
            {
                IPAddress  ipAddr        = IPAddress.Parse(addr);
                IPEndPoint localEndPoint = new IPEndPoint(ipAddr, Convert.ToInt32(port));

                socket = new Socket(ipAddr.AddressFamily,
                                    SocketType.Stream, ProtocolType.Tcp);

                try
                {
                    socket.Connect(localEndPoint);
                    OnErrorReceived?.Invoke(this, "CONNECTED");
                    return(0);
                }

                catch (ArgumentNullException ane)
                {
                    OnErrorReceived?.Invoke(this, ane.Message);
                    return(-1);
                }

                catch (SocketException se)
                {
                    OnErrorReceived?.Invoke(this, se.Message);
                    return(se.ErrorCode);
                }

                catch (Exception ex)
                {
                    OnErrorReceived?.Invoke(this, ex.Message);
                    return(-1);
                }
            }


            catch (Exception ex)
            {
                OnErrorReceived?.Invoke(this, ex.Message);
                return(-1);
            }
        }
Пример #11
0
 public void Send(string str)
 {
     try
     {
         //byte[] messageSent = Encoding.UTF8.GetBytes(str);
         //byte[] testmsg = Encoding.ASCII.GetBytes("{\"type\": \"ping\", \"value\": \"ping\"}\n");
         byte[] jsonUTF8;
         var    options = new JsonSerializerOptions
         {
         };
         jsonUTF8 = JsonSerializer.SerializeToUtf8Bytes(new PingRequest("ping", "ping"), options);
         byte[] end      = { Convert.ToByte('\n') };
         byte[] testmsg  = jsonUTF8.Concat(end).ToArray();
         int    byteSent = socket.Send(testmsg);
     }
     catch (SocketException e)
     {
         OnErrorReceived?.Invoke(this, e.Message);
     }
 }
Пример #12
0
 public void Listen()
 {
     StopListening = false;
     while (!StopListening)
     {
         byte[] messageReceived = new byte[1024];
         socket.ReceiveTimeout = 2000;
         try
         {
             int byteRecv = socket.Receive(messageReceived);
             Console.WriteLine("dlugosc     {0}", byteRecv);
             OnErrorReceived?.Invoke(this, Encoding.UTF8.GetString(messageReceived, 0, byteRecv));
             OnDataReceived?.Invoke(this, Encoding.UTF8.GetString(messageReceived, 0, byteRecv));
         }
         catch (SocketException e)
         {
             if (e.ErrorCode != 10060) //timeout
             {
                 OnErrorReceived?.Invoke(this, e.Message);
                 StopListening = true;
             }
         }
     }
 }
Пример #13
0
        /// <summary>
        ///     Handles the login as a coroutine.
        /// </summary>
        /// <param name="username">The username that is used.</param>
        /// <param name="password">The password that is used.</param>
        /// <param name="onResponseReceived">The handler to call on success.</param>
        /// <param name="onErrorReceived">The handler to call on error.</param>
        /// <returns>An enumerator.</returns>
        private IEnumerator _LoginCoroutine(string username, string password, OnResponseReceived onResponseReceived, OnErrorReceived onErrorReceived)
        {
            var form = new WWWForm();

            form.AddField("grant_type", "password");
            form.AddField("username", username);
            form.AddField("password", password);


            using (var req = UnityWebRequest.Post(BaseUrl + "token", form))
            {
                req.SetRequestHeader("grant_type", "application/x-www-form-urlencoded");
                req.downloadHandler = new DownloadHandlerBuffer();
                yield return(req.SendWebRequest());

                if (req.isNetworkError || req.isHttpError)
                {
                    onErrorReceived(req.error);
                }
                else
                {
                    onResponseReceived(req.downloadHandler.text);
                }
            }
        }
Пример #14
0
 protected override void OnError(ErrorEventArgs e)
 {
     base.OnError(e);
     OnErrorReceived?.Invoke(this, new ErrorEventArgWrapper(e));
 }
Пример #15
0
 private void SendErrorFromException(Exception exception)
 {
     OnErrorReceived?.Invoke(exception);
 }
Пример #16
0
        private void WebSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            if (StopWebSocket)
            {
                WebSocketFeed.Close();
                return;
            }

            var json     = e.Message;
            var response = JsonConfig.DeserializeObject <BaseMessage>(json);

            switch (response.Type)
            {
            case ResponseType.Subscriptions:
                break;

            case ResponseType.Ticker:
                var ticker = JsonConfig.DeserializeObject <Ticker>(json);
                OnTickerReceived?.Invoke(sender, new WebfeedEventArgs <Ticker>(ticker));
                break;

            case ResponseType.Snapshot:
                var snapshot = JsonConfig.DeserializeObject <Snapshot>(json);
                OnSnapShotReceived?.Invoke(sender, new WebfeedEventArgs <Snapshot>(snapshot));
                break;

            case ResponseType.L2Update:
                var level2 = JsonConfig.DeserializeObject <Level2>(json);
                OnLevel2UpdateReceived?.Invoke(sender, new WebfeedEventArgs <Level2>(level2));
                break;

            case ResponseType.Heartbeat:
                var heartbeat = JsonConfig.DeserializeObject <Heartbeat>(json);
                OnHeartbeatReceived?.Invoke(sender, new WebfeedEventArgs <Heartbeat>(heartbeat));
                break;

            case ResponseType.Received:
                var received = JsonConfig.DeserializeObject <Received>(json);
                OnReceivedReceived?.Invoke(sender, new WebfeedEventArgs <Received>(received));
                break;

            case ResponseType.Open:
                var open = JsonConfig.DeserializeObject <Open>(json);
                OnOpenReceived?.Invoke(sender, new WebfeedEventArgs <Open>(open));
                break;

            case ResponseType.Done:
                var done = JsonConfig.DeserializeObject <Done>(json);
                OnDoneReceived?.Invoke(sender, new WebfeedEventArgs <Done>(done));
                break;

            case ResponseType.Match:
                var match = JsonConfig.DeserializeObject <Match>(json);
                OnMatchReceived?.Invoke(sender, new WebfeedEventArgs <Match>(match));
                break;

            case ResponseType.LastMatch:
                var lastMatch = JsonConfig.DeserializeObject <LastMatch>(json);
                OnLastMatchReceived?.Invoke(sender, new WebfeedEventArgs <LastMatch>(lastMatch));
                break;

            case ResponseType.Error:
                var error = JsonConfig.DeserializeObject <Error>(json);
                OnErrorReceived?.Invoke(sender, new WebfeedEventArgs <Error>(error));
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #17
0
 private void InvokeAsyncOnErrorReceived(IrisError error) => OnErrorReceived?.GetInvocationList().ForEach(e => ((ErrorHandler)e).BeginInvoke(error, EndAsyncEventForErrorHandler, EventArgs.Empty));
Пример #18
0
        /// <summary>
        ///     Handles the updating of a profile as a coroutine.
        /// </summary>
        /// <param name="id">The profile's id</param>
        /// <param name="preferenceTerms">The new and updated preference terms.</param>
        /// <param name="onResponseReceived">The handler to call on success.</param>
        /// <param name="onErrorReceived">The handler to call on error.</param>
        /// <returns>An enumerator.</returns>
        private IEnumerator _UpdateProfileCoroutine(string id, PreferenceTerms preferenceTerms, OnResponseReceived onResponseReceived, OnErrorReceived onErrorReceived)
        {
            using (var req = UnityWebRequest.Put(BaseUrl + "api/user-contexts/" + id, JsonConvert.SerializeObject(preferenceTerms)))
            {
                req.SetRequestHeader("content-type", "application/json");
                req.SetRequestHeader("authorization", _loginResponse.Token);
                req.downloadHandler = new DownloadHandlerBuffer();
                yield return(req.SendWebRequest());

                if (req.isNetworkError || req.isHttpError)
                {
                    onErrorReceived(req.error);
                }
                else
                {
                    onResponseReceived(req.downloadHandler.text);
                }
            }
        }
Пример #19
0
 void Conexion_ErrorReceived(object sender, SerialErrorReceivedEventArgs ex)
 {
     OnErrorReceived?.Invoke(sender as SerialPort, ex);
 }