private void DataReceived(object sender, ReceiveEventArgs dpMessage)
 {
     lock(this) {
         byte data = (byte)dpMessage.Message.ReceiveData.Read(typeof(byte));
         message(data);
     }
 }
 private void Listener_Receive(object sender, ReceiveEventArgs e)
 {
     //Cast event sender as ClientPeer
     ListenerPeer sourcePeer = sender as ListenerPeer;
     Logger.Log("Listener Peer is now receiving..." + DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt") + Environment.NewLine);
     //Get the Message received
     Iso8583Message incomingMessage = e.Message as Iso8583Message;
     if (incomingMessage == null) return;
     long sourceID = Convert.ToInt64(sourcePeer.Name);   //where message is coming from
     Iso8583Message receivedMessage = new TransactionManager().ValidateMessage(incomingMessage, Convert.ToInt32( sourceID));
     sourcePeer.Send(receivedMessage);
     sourcePeer.Close();
     sourcePeer.Dispose();
 }
 protected void OnConnectComplete(object sender, SocketAsyncEventArgs e)
 {
     if (e.SocketError == SocketError.Success)
     {
         IsConnecting = true;
         ReceiveEventArgs.SetBuffer(State.Buffer, 0, State.Buffer.Length);
         Client.ReceiveAsync(ReceiveEventArgs);
         if (Connected != null)
         {
             Connected(this, new AsyncConnectionEventArgs(null, this));
         }
     }
     else
     {
         IsConnecting = false;
     }
 }
Example #4
0
        private void Client_MessageReached(object sender, ReceiveEventArgs e)
        {
            string dio = client.Controlstr;                  //e.Msg.ToString();

            richTextBoxMessagefromDataConnectPro.Text = dio; //e.Msg.ToString();

            /*JsonReader reader = new JsonTextReader(new StringReader(dio));
             *
             * while (reader.Read())
             * {
             *  dio = reader.Value.ToString();
             * }*/
            json = (JObject)JsonConvert.DeserializeObject(dio);
            Console.WriteLine(json["D0"]);
            Console.WriteLine(json["D1"]);
            //Console.WriteLine(e.Msg.ToString());
        }
        /// <summary>
        /// 重新异步开始接受数据
        /// </summary>
        internal void SyncRecvData()
        {
            if (isClose || Socket == null || !Socket.Connected)
            {
                return;
            }

#if !UNITY_IPHONE
            lock (Socket)
#endif
            {
                var buff = DogBuffer.GetFromPool32K();
                RecvBuffer = buff;
                ReceiveEventArgs.SetBuffer(RecvBuffer.Bytes, 0, RecvBuffer.Bytes.Length);
                Socket.ReceiveAsync(ReceiveEventArgs);
            }
        }
        private void ListenerPeerReceive(object sender, ReceiveEventArgs e)
        {
            ListenerPeer   listenerPeer = sender as ListenerPeer;
            Iso8583Message message      = e.Message as Iso8583Message;

            if (message == null)
            {
                return;
            }

            //logger.Log("Receiving Message >>>>");

            Processor      processor = new Processor();
            Iso8583Message response;

            try
            {
                processor.LogTransaction(message);

                if (message.IsReversalOrChargeBack())
                {
                    response = processor.Process(message);
                }
                else
                {
                    response = processor.Process(message);
                }

                processor.LogTransaction(response);
                //logger.Log("Sending Response >>>>");
            }
            catch (Exception ex)
            {
                message.Fields.Add(39, "06");
                message.SetResponseMessageTypeIdentifier();
                processor.LogTransaction(message);
                response = message;

                //processor.LogTransaction(response);
                //logger.Log("Error, Something went wrong somewhere");
            }

            listenerPeer.Send(response);
            listenerPeer.Close();
            listenerPeer.Dispose();
        }
Example #7
0
 void server_OnReceive(object sender, ReceiveEventArgs e)
 {
     THOK.MCP.Message message = null;
     if (null != protocol)
     {
         message = protocol.Parse(e.Message);
     }
     else
     {
         Logger.Error(string.Format("UDPService出错。原因:未能找到消息'{0}'的解析类", e.Message));
         message = new THOK.MCP.Message(e.Message);
     }
     if (message.Parsed)
     {
         DispatchState(message.Command, message.Parameters);
     }
 }
Example #8
0
        private void ClientPeerOnReceive(object sender, ReceiveEventArgs e)
        {
            var clientPeer = sender as ClientPeer;

            Logger.Log("Client Peer Receiving>>> " + clientPeer.Name);

            Iso8583Message receivedMessage = e.Message as Iso8583Message;
            SinkNode       theSinkNode;

            try
            {
                var theSender = sender as ClientPeer;
                theSinkNode = new SinkNodeManager().GetById(Convert.ToInt32(theSender.Name));
            }
            catch (Exception)
            {
                Logger.Log(String.Format("Message from Unknown Sink Node: {0}", receivedMessage));
                receivedMessage.SetResponseMessageTypeIdentifier();
                receivedMessage.Fields.Add(39, "91");   //Issuer inoperative
                clientPeer.Send(receivedMessage);
                return;
            }

            bool isValidMti;

            if (receivedMessage == null)
            {
                return;
            }
            string mtiDescription = MessageDefinition.GetMtiDescription(receivedMessage.MessageTypeIdentifier, "FEP", out isValidMti);

            if (!isValidMti)
            {
                Logger.Log(String.Format("Invalid MTI response code {0}, {1}", receivedMessage, theSinkNode));  // work on this
                clientPeer.Send(receivedMessage);

                return;
            }

            string responseCode        = receivedMessage.Fields[39].ToString();
            string responseDescription = MessageDefinition.GetResponseDescription(responseCode);
            string stan = receivedMessage.Fields[11].ToString();

            clientPeer.Send(receivedMessage);
        }
Example #9
0
        public ReceiveEventArgs send_and_receive_sync(byte[] buffer)
        {
            ReceiveEventArgs ret = new ReceiveEventArgs();

            try
            {
                socket.Send(buffer);
                byte[] rec_buf = new byte[data_len];
                socket.Receive(rec_buf);
                ret.data = rec_buf;
                ret.time = DateTime.Now;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(ret);
        }
Example #10
0
        private static void ReceiveListener(object sender, ReceiveEventArgs e, SourceNode node)
        {
            Console.WriteLine($"Received message from {node.Name} node");
//            Console.WriteLine("Message : "+ e.Message );
            var msg = processor.ProcessMessage(e.Message as Iso8583Message, node);

//            Console.WriteLine(msg.Fields[39].Value.ToString());
            msg = RouteResponseToSource(sender as ListenerPeer, msg);
            if (msg.Fields[39].Value.ToString().Equals("00"))
            {
                Console.WriteLine("Transaction Complete");
            }
            else
            {
                Console.WriteLine("Transaction Incomplete");
            }
//            processor.ProcessTransaction(e.Message as Iso8583Message, node.Id, sender as ListenerPeer, schemes);
        }
Example #11
0
 private void OnReceived(object sender, ReceiveEventArgs e)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new ReceivedEventHandler(OnReceived), sender, e);
     }
     else
     {
         try
         {
             TraceView.AppendText(GXCommon.ToHex((byte[])e.Data));
         }
         catch (Exception ex)
         {
             TraceView.AppendText(ex.Message);
         }
     }
 }
Example #12
0
 /// <summary>
 /// Show received data.
 /// </summary>
 private void gxTerminal1_OnReceived(object sender, ReceiveEventArgs e)
 {
     try
     {
         if (this.InvokeRequired)
         {
             this.BeginInvoke(new ReceivedEventHandler(OnReceived), sender, e);
         }
         else
         {
             OnReceived(sender, e);
         }
     }
     catch (Exception Ex)
     {
         MessageBox.Show(Ex.Message);
     }
 }
Example #13
0
 protected virtual void OnDispose()
 {
     try
     {
         object data = DequeueSendMessage();
         while (data != null)
         {
             if (data is IBuffer buffer)
             {
                 BeetleX.Buffers.Buffer.Free(buffer);
             }
             data = DequeueSendMessage();
         }
         SendEventArgs?.Dispose();
         SendEventArgs?.Clear();
         ReceiveEventArgs?.Dispose();
         ReceiveEventArgs?.Clear();
         mReceiveArgs.Server  = null;
         mReceiveArgs.Session = null;
         mBaseNetStream.Dispose();
         if (mSslStream != null)
         {
             mSslStream.Dispose();
         }
         Server.CloseSession(this);
         ListenHandler     = null;
         ReceiveDispatcher = null;
         if (Packet != null)
         {
             Packet.Dispose();
         }
         ((IDisposable)Tag)?.Dispose();
         OnDisposeProperties();
         ((IDisposable)mToken)?.Dispose();
     }
     catch
     {
     }
     finally
     {
         Tag    = null;
         mToken = null;
     }
 }
Example #14
0
        private void Client_ReceiveCompleted(object sender, ReceiveEventArgs args)
        {
            try
            {
                if (args.ByteLength > 0)
                {
                    onBytesLengthReceived(args.ByteLength);
                    using (MemoryStream ms = new MemoryStream(args.ReceivedBytes))
                    {
                        int code = PacketBase.ReadInt(ms);
                        switch ((ParamCode)code)
                        {
                        case ParamCode.TimePeriods:
                            onVideoStoragePacket(VideoTimePeriodsPacket.Decode(ms));
                            break;

                        case ParamCode.VideoPacket:
                            onVideoPacket(VideoStreamsPacket.Decode(ms));
                            break;

                        case ParamCode.VideoBaseInfo:
                            onVideoBasePacket(VideoBasePacket.Decode(ms));
                            break;

                        case ParamCode.DownloadInfosAll:
                            onDownloadInfosAll(DownloadInfoExpandPacket.DecodeArray(ms));
                            break;

                        case ParamCode.DownloadInfosAdd:
                            onDownloadInfosAdd(DownloadInfoExpandPacket.Decode(ms));
                            break;

                        case ParamCode.DownloadInfoPart:
                            onDownloadInfoPart(DownloadInfoPartConverter.Decode(ms));
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                onException(ex);
            }
        }
Example #15
0
        static void ReceiveEventHandler(object sender, ReceiveEventArgs args)
        {
            IncCurBytes(args.Data.Length);
            IncCurCount(1);

            switch (args.Event)
            {
            case 10:
                break;

            case 11:
                //args.ReturnData = new byte[1];
                //AddChannel(args.Channel);
                break;

            case 21:
                _sBinParse.ReceiveEventHandler(sender, args);
                break;

            case 22:
                _sXmlParse.ReceiveEventHandler(sender, args);
                break;

            case 23:
                _sJsonParse.ReceiveEventHandler(sender, args);
                break;

            case 24:
                _sSimpleParse.ReceiveEventHandler(sender, args);
                break;

            case 25:
                _sStructMessageParse.ReceiveEventHandler(sender, args);
                break;

            case 26:
                _sCustomParse.ReceiveEventHandler(sender, args);
                break;

            default:
                break;
            }
            //Console.WriteLine("get event:{0}", args.Event);
        }
Example #16
0
 private void ConnectComplate(object sender, SocketAsyncEventArgs asyncEventArgs)
 {
     ReceiveEventArgs.Completed -= ConnectComplate;
     if (asyncEventArgs.SocketError == SocketError.Success)
     {
         ReceiveEventArgs.Completed += PacketProtocol.ReceiveComplate;
         ReceiveEventArgs.SetBuffer(receiveBuffer, 0, receiveBuffer.Length);
         ConnectSocket = asyncEventArgs.ConnectSocket;
         StartReceiveAsync();
         if (OnConnected != null)
         {
             OnConnected(asyncEventArgs, this);//响应连接成功事件
         }
     }
     else
     {
         loger.Error(string.Format("连接{0}失败", remoteEndPoint));
     }
 }
Example #17
0
 private void Server_Received(object sender, ReceiveEventArgs e)
 {
     byte[] packet = e.Data;
     if (packet[4] == 0x31 && packet[5] == 0x31)
     {
         // Door Information
         packet[5] = 0x32;
         server.Send(packet);
         EnableButtons();
     }
     else if (packet[4] == 0x32 && packet[5] == 0x34)
     {
         if (BendingSequence == 1)
         {
             packet = new byte[]
             {
                 0x39, 0x37, 0x39, 0x30, 0x33, 0x35, 0x46, 0x46,
                 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
                 0x0D, 0x0A
             };
             server.Send(packet);
             BendingSequence = 0;
             DisableButtons();
         }
         else if (BendingSequence == 2)
         {
             packet = new byte[]
             {
                 0x39, 0x37, 0x39, 0x30, 0x33, 0x35, 0x46, 0x46,
                 0x38, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
                 0x0D, 0x0A
             };
             server.Send(packet);
             BendingSequence = 0;
             DisableButtons();
         }
         else if (BendingSequence == 3)
         {
             BendingSequence = 0;
             DisableButtons();
         }
     }
 }
Example #18
0
        private void Receiver_OnReceive(object sender, ReceiveEventArgs e)
        {
            Command c = CommandHandler.GetCommand(CommandsArray, e.message);

            if (c == null)
            {
                Debug.Log("Unknown command " + e.message, Logger.Level.Error);
            }
            c.Inject(this);

            if (c is Ack)
            {
                bool received = SendOnAckReceived(c as Ack);
                OnAckReceived?.Invoke(this, new CommandEventArgs()
                {
                    command = c
                });
            }
            else
            {
                Ack ack = new Ack(this)
                {
                    message = e.message
                };
                string message = CommandHandler.CommandToString(ack);

                new Sender(null, c.sourceIp, c.sourcePort, message).Send(false); // send ack

                //if(!e.sourceIP.Equals(c.sourceIp) || e.sourcePort != c.sourcePort) {
                //    Debug.Log(string.Format("SourceIP not equals {0}:{1} != {2}:{3}", e.sourceIP, e.sourcePort, c.sourceIp, c.sourcePort), Logger.Level.Error);
                //}

                Debug.Log(string.Format("Command received {0}:{1} | {2}:{3} [{4}] - {5}: {6}", e.sourceIP, e.sourcePort, c.sourceIp, c.sourcePort, c.tag, c.type, e.message), Logger.Level.Command);
                c.ExecuteCommand(); // execute command

                OnCommandReceived?.Invoke(this, new CommandEventArgs()
                {
                    command = c
                });                                                                      // invoke event

                AddContact(c.Source);
            }
        }
        private void _client_ReceiveCompleted(object sender, ReceiveEventArgs args)
        {
            try
            {
                if (args.ByteLenght >= 4)
                {
                    int code = BitConverter.ToInt32(args.ReceivedBytes, 0);
                    switch (code)
                    {
                    case StreamEntityCode.FfmpegHeader:
                    {
                        CurrentHeader = FfmpegStreamHeader.DeserializeTo(args.ReceivedBytes);
                        OnStreamHeaderRecieved(CurrentHeader);
                    }
                    break;

                    case StreamEntityCode.HikvHeader:
                    {
                        CurrentHeader = HikvStreamHeader.DeserializeTo(args.ReceivedBytes);
                        OnStreamHeaderRecieved(CurrentHeader);
                    }
                    break;

                    case StreamEntityCode.StreamData:
                    {
                        OnStreamDataReceived(StreamData.DeserializeTo(args.ReceivedBytes));
                    }
                    break;

                    case StreamEntityCode.RemoteError:
                    {
                        RemoteError re = RemoteError.DeserializeTo(args.ReceivedBytes);
                        OnErrorOccurred(new ErrorEventArgs(re.ErrorMessage, ErrorTypes.Receive));
                    }
                    break;
                    }
                }
            }
            catch (Exception e)
            {
                OnErrorOccurred(new ErrorEventArgs($"从远程流媒体服务器获取到异常数据:{e.Message}", ErrorTypes.Receive));
            }
        }
Example #20
0
        private void Adapter_ReceiveCompleted(object sender, ReceiveEventArgs args)
        {
            if (args.ByteLength > 0)
            {
                SocketAdapter adapter = sender as SocketAdapter;
                using (MemoryStream ms = new MemoryStream(args.ReceivedBytes))
                {
                    int    code   = PacketBase.ReadInt(ms);
                    byte[] buffer = null;
                    switch ((ParamCode)code)
                    {
                    case ParamCode.TimePeriods:
                        buffer = getVideoTimePeriodsPacketBuffer(VideoBaseInfomParam.Decode(ms));
                        break;

                    case ParamCode.VideoPacket:
                        buffer = getVideoPacketBuffer(VideoDataParam.Decode(ms));
                        break;

                    case ParamCode.VideoBaseInfo:
                        VideoBaseInfomParam param = VideoBaseInfomParam.Decode(ms);
                        Common.Log.Logger.Default.Trace($"下载视频:{param.BeginTime} - {param.EndTime} - {param.VideoName} - {param.VideoId} - {param.StreamId} -- {adapter.RemoteEndPoint}");
                        _isDownload = true;
                        buffer      = getVideoBasePacketBuffer(param);
                        break;

                    case ParamCode.StorageFlag:
                        onStorageFlag(StorageFlagParam.Decode(ms));
                        break;

                    case ParamCode.StorageFlagAll:
                        buffer = getStorageFlagAll();
                        Console.WriteLine("StorageFlagAll: {0}", buffer.Length);
                        break;
                    }
                    if (buffer != null)
                    {
                        adapter.Send(code, buffer);
                    }
                }
            }
        }
Example #21
0
        void client_OnReceive(object sender, ReceiveEventArgs e)
        {
            IPacket packet;

            try
            {
                packet = PacketManager.Parse(e.Bytes);
            }
            catch (Exception ex)
            {
                print("ERR could not parse packet, error: " + ex);
                return;
            }

            if (EnableConsoleWriting)
            {
                print("RECV " + packet.GetType().Name);
            }
            call(packet);
        }
Example #22
0
 /// <summary>
 /// DataReceived event will be called back when server get message from client which connect to.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 static void ReceiveEventHandler(object sender, ReceiveEventArgs args)
 {
     switch ((Event)args.Event)
     {
     case Event.PushMessage:
         //Get OneWay message from server
         if (args.Data != null)
         {
             try
             {
                 Console.WriteLine(Encoding.UTF8.GetString(args.Data));
             }
             catch (Exception e)
             {
                 Console.WriteLine(e);
             }
         }
         break;
     }
 }
Example #23
0
        private void Listener_Receive(object sender, ReceiveEventArgs e)
        {
            //Cast event sender as ClientPeer
            ListenerPeer sourcePeer = sender as ListenerPeer;

            Logger.Log("Listener Peer is now receiving..." + DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt") + Environment.NewLine);
            //Get the Message received
            Iso8583Message incomingMessage = e.Message as Iso8583Message;

            if (incomingMessage == null)
            {
                return;
            }
            long           sourceID        = Convert.ToInt64(sourcePeer.Name); //where message is coming from
            Iso8583Message receivedMessage = new TransactionManager().ValidateMessage(incomingMessage, Convert.ToInt32(sourceID));

            sourcePeer.Send(receivedMessage);
            sourcePeer.Close();
            sourcePeer.Dispose();
        }
Example #24
0
 /// <summary>
 /// Show received data.
 /// </summary>
 private void OnReceived(object sender, ReceiveEventArgs e)
 {
     try
     {
         //We receive byte array from GXSerial and this must be changed to chars.
         if (HexCB.Checked)
         {
             ReceivedText.Text += BitConverter.ToString((byte[])e.Data);
         }
         else
         {
             //Get received data as string.
             ReceivedText.Text += System.Text.Encoding.ASCII.GetString((byte[])e.Data);
         }
     }
     catch (Exception Ex)
     {
         MessageBox.Show(Ex.Message);
     }
 }
Example #25
0
 protected virtual void Dispose(bool disposing)
 {
     if (m_disposed)
     {
         return;
     }
     if (disposing)
     {
         //释放托管资源
         m_connectSocket            = null;
         m_asyncReceiveBuffer       = null;
         ReceiveEventArgs.UserToken = null;
         SendEventArgs.UserToken    = null;
     }
     //释放非托管资源
     ReceiveEventArgs.Dispose();
     SendEventArgs.Dispose();
     SendEvent.Dispose();
     m_disposed = true;
 }
Example #26
0
        private void SScanner_AfterReceive(object sender, ReceiveEventArgs e)
        {
            var l      = ((ListRepairs2LoadAdapter)list.Adapter).ListElements;
            var _index = l.FindIndex(p => p.UnitNumber == e.ReceivedData);

            if (_index != -1)
            {
                l[_index].SetSelected(!l[_index].Selected);
                list.InvalidateViews();
                list.SetSelection(_index);
            }
            //for (var i = 0; i < list.Count - 1; i++)
            //{
            //    if (list.GetItemAtPosition(i).ToString().Split('|')[1] == cDataWedge.HandleDecodeData(intent).Split('|')[0])
            //    {
            //        list.SetItemChecked(i, true);
            //        break;
            //    }
            //}
        }
        private void OnReceived(object sender, ReceiveEventArgs e)
        {
            lock (m_MessageLocker)
            {
                ServerLogMessage message = m_MessagePool.Get();

                int    id           = BitConverter.ToInt32(e.bytes, 0);
                byte[] contentBytes = new byte[0];
                if (e.bytes.Length > sizeof(int))
                {
                    contentBytes = new byte[e.bytes.Length - sizeof(int)];
                    Array.Copy(e.bytes, sizeof(int), contentBytes, 0, contentBytes.Length);
                }
                message.ID      = id;
                message.Client  = e.client;
                message.Message = contentBytes;

                m_ReceivedMessages.Add(message);
            }
        }
Example #28
0
        private void onReceived(object sender, ReceiveEventArgs args)
        {
            if (args.ByteLength > 0)
            {
                using (MemoryStream ms = new MemoryStream(args.ReceivedBytes))
                {
                    int code = PacketBase.ReadInt(ms);
                    //Console.WriteLine("{0} - {1}", (ParamCode)code, args.ByteLength);
                    switch ((ParamCode)code)
                    {
                    case ParamCode.TimePeriods:
                        //接收所有有效视频分布
                        onTimePeriodsAll(VideoTimePeriodsPacket.Decode(ms).TimePeriods);
                        break;

                    case ParamCode.VideoBaseInfo:
                        //设置视频基本信息
                        onVideoBase(VideoBasePacket.Decode(ms));
                        break;

                    case ParamCode.DownloadProgress:
                        //接收推送的下载进度。
                        onTimePeriodsDownloaded(VideoTimePeriodsPacket.Decode(ms).TimePeriods);
                        break;

                    case ParamCode.VideoPacket:
                        //接收视频包数据流
                        onVideoStreams(VideoStreamsPacket.Decode(ms));
                        break;

                    case ParamCode.LocalDownloadPath:
                        onDownloadPathReceived(PacketBase.ReadString(ms));
                        break;

                    case ParamCode.Message:
                        onVideoMessageFeedback(MessagePacket.Decode(ms));
                        break;
                    }
                }
            }
        }
Example #29
0
        /// <summary>
        /// 关闭连接
        /// </summary>
        public void Close()
        {
            if (Socket != null)
            {
                if (Socket.Connected)
                {
                    Socket.Close();
                }

                Socket.Dispose();
                Socket = null;
            }

            if (SendEventArgs != null)
            {
                SendEventArgs.Completed -= OnSendCompleted;
                SendEventArgs.UserToken  = null;
                SendEventArgs.Dispose();
            }

            SendEventArgs = null;

            if (ReceiveEventArgs != null)
            {
                ReceiveEventArgs.UserToken = null;
                ReceiveEventArgs.Dispose();
            }

            ReceiveEventArgs = null;

            //  清理发送缓冲区
            if (m_PendingBuffer.Count > 0)
            {
                foreach (var buff in m_PendingBuffer)
                {
                    buff.Release();
                }

                m_PendingBuffer.Clear();
            }
        }
Example #30
0
        private async void SScanner_AfterReceive(object sender, ReceiveEventArgs e)
        {
            DisableReadings(sender);
            if (Values.scannerIsBusy)
            {
                orderNumberET.Text = "";
                return;
            }

            Values.scannerIsBusy = true;

            //sScanner.AfterReceive -= SScanner_AfterReceive;

            var _scan = e.ReceivedData;

            if (_scan.Substring(0, 2) == "@@" && _scan.Substring(_scan.Length - 2, 2) == "##") //QRCODE
            {
                var _recordList = _scan.Split('|');
                try
                {
                    _scan = _recordList[3];
                }
                catch
                {
                    Toast.MakeText(Activity, "Wrong reading.", ToastLength.Long).Show();
                    Values.iFt.pushInfo("Wrong reading.");
                    EnableReadings(sender);
                    Values.scannerIsBusy = false;
                    return;
                }
            }
            orderNumberET.Text = _scan;
            var _res = await ActionGo(_scan);

            EnableReadings(sender);
            if (_res)
            {
                orderNumberET.Tag = "SCAN";
            }
            Values.scannerIsBusy = false;
        }
Example #31
0
 protected virtual void OnDispose()
 {
     try
     {
         object data = DequeueSendMessage();
         while (data != null)
         {
             if (data is IBuffer)
             {
                 ((IBuffer)data).Free();
             }
             data = DequeueSendMessage();
         }
         if (SendEventArgs != null)
         {
             SendEventArgs.Dispose();
         }
         if (ReceiveEventArgs != null)
         {
             ReceiveEventArgs.Dispose();
         }
         mReceiveArgs.Server  = null;
         mReceiveArgs.Session = null;
         mBaseNetStream.Dispose();
         if (mSslStream != null)
         {
             mSslStream.Dispose();
         }
         Server.CloseSession(this);
         Server            = null;
         ReceiveDispatcher = null;
         if (Packet != null)
         {
             Packet.Dispose();
         }
         mProperties.Clear();
     }
     catch
     {
     }
 }
Example #32
0
        private void Scanner_AfterReceive(object sender, ReceiveEventArgs e)
        {
            if (Values.gDRL.Processing)
            {
                return;
            }
            ((FragmentActivity)sender).RunOnUiThread(() =>
            {
                elData.Enabled = false;
                elData.Tag     = "SCAN";
            });
            Values.gDRL.Context        = (FragmentActivity)sender;
            DataTransferManager.Active = false;
            //LocatorService.Active = false;
            try
            {
                Task.Run(async() => {
                    await Values.gDRL.Add(e.ReceivedData);
                    Values.gDRL.Processing     = false;
                    DataTransferManager.Active = true;
                    //LocatorService.Active = true;
                    ((FragmentActivity)sender).RunOnUiThread(() =>
                    {
                        elData.Enabled = true;
                        elData.Text    = "";
                    });
                });

                //await Values.gDRL.Add(e.ReceivedData);
            }
            catch (Exception ex)
            {
                Values.gDRL.Processing     = false;
                DataTransferManager.Active = true;
                //LocatorService.Active = true;
                ((FragmentActivity)sender).RunOnUiThread(() =>
                {
                    Toast.MakeText(Activity, "Error reading scan." + ex.Message, ToastLength.Long).Show();
                });
            }
        }
        private void ClientPeerOnReceive(object sender, ReceiveEventArgs e)
        {
            var clientPeer = sender as ClientPeer;
            Logger.Log("Client Peer Receiving>>> " + clientPeer.Name);

            Iso8583Message receivedMessage = e.Message as Iso8583Message;
            SinkNode theSinkNode;
            try
            {
                var theSender = sender as ClientPeer;
                theSinkNode = new SinkNodeManager().GetById(Convert.ToInt32(theSender.Name));
            }
            catch (Exception)
            {
                 Logger.Log(String.Format("Message from Unknown Sink Node: {0}", receivedMessage));
                receivedMessage.SetResponseMessageTypeIdentifier();
                receivedMessage.Fields.Add(39, "91");   //Issuer inoperative
                clientPeer.Send(receivedMessage);
                return;
            }

            bool isValidMti;
            if (receivedMessage == null) return;
            string mtiDescription = MessageDefinition.GetMtiDescription(receivedMessage.MessageTypeIdentifier, "FEP", out isValidMti);

            if (!isValidMti)
            {

                 Logger.Log(String.Format("Invalid MTI response code {0}, {1}", receivedMessage, theSinkNode)); // work on this
                clientPeer.Send(receivedMessage);

                return;
            }

            string responseCode = receivedMessage.Fields[39].ToString();
            string responseDescription = MessageDefinition.GetResponseDescription(responseCode);
            string stan = receivedMessage.Fields[11].ToString();

            clientPeer.Send(receivedMessage);
        }
        public void DataReceived(object sender, ReceiveEventArgs rea)
        {
            int senderID = rea.Message.SenderID;

            //Ignore messages received before we are initialized
            if ((gameState == GameStates.Loading) ||
                (gameState == GameStates.Config)) {
                rea.Message.ReceiveData.Dispose();
                return;
            }

            byte mType = (byte)rea.Message.ReceiveData.Read(typeof(byte));
            MessageType messageType = (MessageType)mType;
            switch (messageType) {
                case MessageType.PlayerUpdateID: {

                    PlayerUpdate update = (PlayerUpdate)rea.
                        Message.ReceiveData.Read(typeof(PlayerUpdate));
                    ShotUpdate shotUpdate = new ShotUpdate();
                    shotUpdate.ShotPosition = new Vector2[Constants.NumShots];
                    shotUpdate.ShotAge = new int[Constants.NumShots];

                    for (int i = 0; i < Constants.NumShots; i++) {
                        shotUpdate.ShotPosition[i] =
                          (Vector2)rea.Message.ReceiveData.Read(typeof(Vector2));
                        shotUpdate.ShotAge[i] =
                            (int)rea.Message.ReceiveData.Read(typeof(int));
                    }

                    rea.Message.ReceiveData.Dispose();

                    lock (otherPlayers) {
                        object playerObject = otherPlayers[senderID];
                        if (null == playerObject)
                            return;
                        RemotePlayer player = (RemotePlayer) playerObject;

                        Shot[] shotArray = new Shot[Constants.NumShots];
                        for (int i = 0; i < Constants.NumShots; i++) {
                            shotArray[i] = new Shot();
                            shotArray[i].Position = shotUpdate.ShotPosition[i];
                            shotArray[i].Age = shotUpdate.ShotAge[i];
                        }
                        player.Ship.ShotHandler.SetShotArray(shotArray);

                        player.Ship.Position	= update.ShipPosition;
                        player.Ship.Outline		= update.Outline;
                        player.Ship.Velocity	= update.ShipVelocity;
                        player.Ship.State		= update.State;
                        player.Ship.WaitCount	= update.WaitCount;
                        player.Ship.DeathCount	= update.DeathCount;
                        player.Ship.FlameIndex	= update.FlameIndex;
                        player.Ship.Sounds		= (Sounds)update.Sounds;
                        player.Ship.Score		= update.Score;

                        player.UpdateTime		= DateTime.Now;
                        player.Active				= true;

                        otherPlayers[senderID] = player;
                    }

                    break;
                }
                case MessageType.GameParamUpdateID: {
                    GameParamUpdate update = (GameParamUpdate)rea.Message.
                        ReceiveData.Read(typeof(GameParamUpdate));
                    rea.Message.ReceiveData.Dispose();
                    gravity = update.Gravity;
                    gameSpeed = update.GameSpeed;

                    if (update.BounceBack != 0)
                        bounceBack = true;
                    else
                        bounceBack = false;

                    if (update.InverseGravity != 0)
                        inverseGravity = true;
                    else
                        inverseGravity = false;

                    if (update.BlackHole != 0)
                        blackHole = true;
                    else
                        blackHole = false;
                    Size newWindowSize = update.WindowSize;
                    Rectangle newBounds = new
                        Rectangle(this.windowBounds.Location, newWindowSize);
                    //Initialize(newBounds);
                    break;
                }
                case MessageType.Add1ToScore: {
                    rea.Message.ReceiveData.Dispose();
                    ship.Score += 1;
                    break;
                }
                case MessageType.Add2ToScore: {
                    rea.Message.ReceiveData.Dispose();
                    ship.Score += 2;
                    break;
                }
                case MessageType.GamePaused: {
                    rea.Message.ReceiveData.Dispose();
                    gameState = GameStates.Paused;
                    break;
                }
                case MessageType.GameRunning: {
                    rea.Message.ReceiveData.Dispose();
                    if (gameState == GameStates.Paused)
                        gameState = GameStates.Running;
                    break;
                }
            }
        }
        private void peer_Receive(object sender, ReceiveEventArgs e)
        {
            NetworkPacket packet = e.Message.ReceiveData;
            PlayerInformation player = (PlayerInformation)playerList[e.Message.SenderID];

            while(packet.Position < packet.Length)
            {
                NetworkMessageType messageType = (NetworkMessageType)(int)packet.Read(typeof(int));
                switch(messageType)
                {
                    case NetworkMessageType.ChatMessage:
                        string chatMessage = packet.ReadString();
                        this.MessageReceived(player, chatMessage);
                        break;
                }
            }
            e.Message.ReceiveData.Dispose(); // We no longer need the data, Dispose the buffer
        }
    public void DataReceived(object sender, ReceiveEventArgs rea)
    {
        int senderID = rea.Message.SenderID;

        //Ignore messages received before we are initialized
        if ((gameState == GameStates.Loading) || (gameState == GameStates.Config)) {
            rea.Message.ReceiveData.Dispose();
            return;
        }

        byte mType = (byte)rea.Message.ReceiveData.Read(typeof(byte));
        MessageType messageType = (MessageType)mType;

        switch (messageType) {
            case MessageType.PlayerUpdateID: {
                PlayerUpdate update = (PlayerUpdate)rea.Message.ReceiveData.Read(typeof(PlayerUpdate));
                ShotUpdate shotUpdate = new ShotUpdate();
                shotUpdate.ShotPosition = new Vector3[Constants.NumShots];
                shotUpdate.ShotAge = new float[Constants.NumShots];
                shotUpdate.ShotAlive = new bool[Constants.NumShots];

                for (int i = 0; i < Constants.NumShots; i++) {
                    shotUpdate.ShotPosition[i] = (Vector3)rea.Message.ReceiveData.Read(typeof(Vector3));
                    shotUpdate.ShotAge[i] = (int)rea.Message.ReceiveData.Read(typeof(int));
                    shotUpdate.ShotAlive[i] = (bool)rea.Message.ReceiveData.Read(typeof(bool));
                }

                rea.Message.ReceiveData.Dispose();
                lock(opponentShip) {
                    opponentShip.Position.WorldMatrix = update.WorldMatrix;
                    opponentShip.Score		= update.Score;
                    opponentShip.Sounds		= (Sounds)update.Sounds;
                    opponentShip.WaitCount	= update.WaitCount;
                    opponentShip.SetState((ShipState)update.State);

                    Photon[] shotArray = opponentShip.ShotHandler.GetShotArray();
                    for (int i = 0; i < Constants.NumShots; i++) {
                        shotArray[i].Location = shotUpdate.ShotPosition[i];
                        shotArray[i].Age = shotUpdate.ShotAge[i];
                        shotArray[i].Alive = shotUpdate.ShotAlive[i];
                    }
                    opponentShip.ShotHandler.SetShotArray(shotArray);
                }

                break;
            }

            case MessageType.Add1ToScore: {
                rea.Message.ReceiveData.Dispose();
                playerShip.Score += 1;
                break;
            }

            case MessageType.GamePaused: {
                rea.Message.ReceiveData.Dispose();
                gameState = GameStates.Paused;
                break;
            }
            case MessageType.GameRunning: {
                rea.Message.ReceiveData.Dispose();
                if (gameState == GameStates.Paused)
                    gameState = GameStates.Running;

                break;
            }
        }
    }
Example #37
0
		protected void OnReceiveComplete(ReceiveEventArgs arg)
		{
			if (arg.SocketError != System.Net.Sockets.SocketError.Success)
			{
				//Release back to the pool
				arg.Socket = null;
				_receivePool.PushBack(arg);

				Close();
			}
			else if (arg.BytesTransferred == 0)
			{
				//Release back to the pool
				arg.Socket = null;
				_receivePool.PushBack(arg);

				Close();
			}
			else
			{
				//receivedBytes += arg.BytesTransferred;

				//lock (storeBuffer)
				{
					//var free = storeBuffer.Length - storeWriteOffset;
					//if (free < arg.BytesTransferred)
					//{
					//    throw new InvalidOperationException("Receive buffer has no room for this segment");
					//}

					//Migrate to the storeBuffer
					//Array.Copy(receiveBuffer, arg.Offset, storeBuffer, storeWriteOffset, arg.BytesTransferred);
					//storeWriteOffset += arg.BytesTransferred;

					lock (_rxSyncRoot)
					//lock (storeBuffer)
					{
						storeWriteOffset += arg.BytesTransferred;
						var free = arg.Buffer.Length - storeWriteOffset;

						if (free == 0)
						{
							//Move back to the start. This can overwrite data, so make sure terraria reading isn't slow!
							storeWriteOffset = 0;
							free = receiveBuffer.Length;
							reset = true;
							Console.WriteLine("Reader reset");
						}

						arg.SetBuffer(storeWriteOffset, free);

						available += arg.BytesTransferred;
					}
				}

				if (!_socket.ReceiveAsync(arg))
				{
					//The receive was processed synchronously which means the callback wont be executed.
					OnReceiveComplete(arg);
				}
			}
		}