Esempio n. 1
0
        public void Receive()
        {
            try
            {
                BeforeReceive?.Invoke(this, null);

                _buffer = new byte[_maxlengthofdata];
                int count = _socket.Receive(_buffer, _maxlengthofdata, SocketFlags.None);
                var m     = GetMessage(_buffer, count);
                if (m.Type == MessageType.BigData)
                {
                    var arr   = m.Content.Split(';');
                    int n     = int.Parse(arr[0]);
                    int total = int.Parse(arr[1]);

                    byte[] buffer = new byte[n * _maxlengthofdata];
                    for (int i = 0; i < n; i++)
                    {
                        _socket.Receive(_buffer, _maxlengthofdata, SocketFlags.None);
                        _buffer.CopyTo(buffer, i * _maxlengthofdata);
                    }
                    m = GetMessage(buffer, total);
                }
                if (m.Type == MessageType.End)
                {
                    Response(m);
                    _socket.Close();
                }
                else if (Response(m))
                {
                    Receive();
                }
            }
            catch { }
        }
Esempio n. 2
0
 public static void UnregisterScannerActivity()
 {
     try
     {
         ElContext?.UnregisterReceiver(Receiver);
     }
     catch { }
     AfterReceive?.GetInvocationList().ToList().ForEach(x => AfterReceive   -= (EventHandler <ReceiveEventArgs>)x);
     BeforeReceive?.GetInvocationList().ToList().ForEach(x => BeforeReceive -= (EventHandler)x);
     ElContext = null;
     ARP       = null;
 }
Esempio n. 3
0
            //public string ReceivedData { get; set; }
            //public event EventHandler AfterReceive;
            //public event EventHandler BeforeReceive;
            public override void OnReceive(Context context, Intent intent)
            {
                try
                {
                    if (IsBusy)
                    {
                        return;
                    }
                    IsBusy = true;
                    BeforeReceive?.Invoke(context, new EventArgs());

                    string _scanAll = cDataWedge.HandleDecodeData(intent);
                    string _pattern = @"(.*)\|(Scanner|MSR)\|(.*)\|(\d+)";
                    var    _matches = Regex.Match(_scanAll, _pattern);
                    string _scan    = _matches.Groups[1].ToString();
                    try
                    {
                        AfterReceive?.Invoke(context, new ReceiveEventArgs()
                        {
                            ReceivedData = _scan, Silent = silent
                        });
                    } catch (Exception ex)
                    {
                        if (!silent)
                        {
                            cSounds.Error(context);
                        }
                        Toast.MakeText(context, string.Format("Error in postprocess: {0}", ex.Message), ToastLength.Long).Show();
                        _scan  = "";
                        IsBusy = false;
                        return;
                    }
                    if (_scan == "")
                    {
                        if (!silent)
                        {
                            cSounds.Error(context);
                        }
                        Toast.MakeText(context, "Please enter valid data", ToastLength.Long).Show();
                        IsBusy = false;
                        return;
                    }

                    IsBusy = false;
                }
                catch //(Exception ex)
                {
                    IsBusy = false;
                }
            }
Esempio n. 4
0
 public void BegineReceive()
 {
     BeforeReceive?.Invoke(this, null);
     _buffer = new byte[_maxlengthofdata];
     _socket.BeginReceive(_buffer, 0, _maxlengthofdata, SocketFlags.None, EndReceive, null);
 }