コード例 #1
0
 protected void OnIncomingDataEvent(IncomingDataEventArgs IncomingDataEventArgs)
 {
     if (IncomingDataEvent == null)
     {
         return;
     }
     IncomingDataEvent(this, IncomingDataEventArgs);
 }
コード例 #2
0
ファイル: DeviceForwarder.cs プロジェクト: vebin/USBSimulator
 public void OnIncomingDataReceived(IncomingDataEventArgs e)
 {
     //Send it out to the real device
     if (_writers.ContainsKey(e.Endpoint))
     {
         int transferred;
         _writers[e.Endpoint].Write(e.Data, 0, e.Data.Length, 5000, out transferred);
     }
 }
コード例 #3
0
ファイル: Network.cs プロジェクト: nikitavbv/wikimedia-bot
 protected override bool __evt__IncomingData(IncomingDataEventArgs args)
 {
     switch (args.Command)
     {
     case "001":
     case "002":
         this.instance.IsWorking = true;
         break;
     }
     return(base.__evt__IncomingData(args));
 }
コード例 #4
0
        private void IncomingData(object?sender, IncomingDataEventArgs e)
        {
            Task.Run(async() =>
            {
                var context      = new DataTransferContext();
                string requestId = null;
                var obj          = JsonHelper.FromJsonStringStrongTyped <object>(e.Data);
                LogEnvironment.LogDebugEvent($"Message-Type: {obj.GetType()}", LogSeverity.Report);
                if (obj is Request req)
                {
                    obj       = req.Payload;
                    requestId = req.RequestId;
                    if (!string.IsNullOrEmpty(req.Identity))
                    {
                        context.Identity = JsonHelper.FromJsonStringStrongTyped <TransferIdentity>(req.Identity).ToIdentity();
                    }
                }
                else if (obj is Response rep)
                {
                    obj    = null;
                    var ok = waitingOperations.TryRemove(rep.RequestId, out var wait);
                    if (ok)
                    {
                        wait.ServerResponse.SetResult(rep.Payload);
                    }
                    else
                    {
                        throw new CommunicationException("The given operation is not open.");
                    }
                }

                if (obj != null)
                {
                    var evData = new ObjectReceivedEventArgs {
                        Value = obj, Context = context
                    };
                    OnObjectReceived(evData);
                    if (!string.IsNullOrEmpty(requestId) && outgoing != null)
                    {
                        await WriteAsync(new Response
                        {
                            RequestId = requestId,
                            Payload   = evData.Result
                        });
                    }
                    else if (evData.Result != null)
                    {
                        await WriteAsync(evData.Result);
                    }
                }
            });
        }
コード例 #5
0
        private void NetworkScannerNewNetworkDataEvent(object sender, IncomingDataEventArgs <NetworkData> e)
        {
            if (e.Data == null || Cache == null || GpsControl == null)
            {
                return;
            }

            //Add data to the cache
            _networkData = e.Data;
            Cache.AddData(e.Data.ToArray(), GpsControl.GetCurrentGpsData());
            //Fire scan complete event
            OnScanComplete(_networkData, GpsControl.GetCurrentGpsData());
        }
コード例 #6
0
ファイル: MassStorageHelper.cs プロジェクト: pafh99/vicar
 private void _device_IncomingDataReceived(object sender, IncomingDataEventArgs e)
 {
     if (_accumulatedBytes.Count() < _bytesGoal)
     {
         _accumulatedBytes = _accumulatedBytes.Concat(e.Data);
         if (_accumulatedBytes.Count() >= _bytesGoal)
         {
             _isDone = true;
         }
     }
     else
     {
         _isDone = true;
     }
 }
コード例 #7
0
ファイル: ScanController.cs プロジェクト: sp1ke77/inSSIDer-2
        private void NetworkScannerNewNetworkDataEvent(object sender, IncomingDataEventArgs<NetworkData> e)
        {
            if (e.Data == null || Cache == null || GpsControl == null) return;

            //Add data to the cache
            _networkData = e.Data;
            Cache.AddData(e.Data.ToArray(), GpsControl.GetCurrentGpsData());
            //Fire scan complete event
            OnScanComplete(_networkData, GpsControl.GetCurrentGpsData());
        }
コード例 #8
0
        private void NetworkScannerNewNetworkDataEvent(object sender, IncomingDataEventArgs<NetworkData> e)
        {
            //Add data to the cache
            Cache.AddData(e.Data.ToArray(), GpsControl.GetCurrentGpsData());

            //Fire scan complete event
            OnScanComplete(e.Data.ToArray(), GpsControl.GetCurrentGpsData());
        }
コード例 #9
0
 public void OnIncomingDataReceived(IncomingDataEventArgs e)
 {
     //This shouldn't ever happen...
 }
コード例 #10
0
ファイル: Network.cs プロジェクト: reviforks/wikimedia-bot
 public override bool __evt__IncomingData(IncomingDataEventArgs args)
 {
     switch(args.Command)
     {
         case "001":
         case "002":
             this.instance.IsWorking = true;
             break;
     }
     return base.__evt__IncomingData(args);
 }
コード例 #11
0
 public void OnIncomingDataReceived(IncomingDataEventArgs e)
 {
     //Send it out to the real device
       if (_writers.ContainsKey(e.Endpoint))
       {
     int transferred;
     _writers[e.Endpoint].Write(e.Data, 0, e.Data.Length, 5000, out transferred);
       }
 }
コード例 #12
0
ファイル: Network.cs プロジェクト: pidgeonproject/libirc
 public NetworkGenericErrEventArgs(IncomingDataEventArgs info, int id)
     : base(info)
 {
     this.ErrorId = id;
     this.Error = info.Message;
 }
コード例 #13
0
ファイル: Network.cs プロジェクト: pidgeonproject/libirc
        protected internal virtual bool __evt__IncomingData(IncomingDataEventArgs args)
        {
            if (this.IncomingData != null)
                this.IncomingData(this, args);

            return args.Processed;
        }
コード例 #14
0
ファイル: Network.cs プロジェクト: pidgeonproject/libirc
 public NetworkJoinErrorEventArgs(IncomingDataEventArgs info, int et)
     : base(info)
 {
     switch (et)
     {
         case 473:
             this.Error = ErrorType.InviteOnly;
             break;
         case 474:
             this.Error = ErrorType.Banned;
             break;
         default:
             this.Error = ErrorType.Unknown;
             break;
     }
 }
コード例 #15
0
        public void OnIncomingDataReceived(IncomingDataEventArgs e)
        {
            if (_dataRemaining > 0)
              {
            //This is more write sector data
            _image.Write(e.Data, 0, e.Data.Length);
            _dataRemaining -= e.Data.Length;
              }
              else
              {
            //This is probably a mass storage command
            switch (e.Data[0x0F])
            {
              case 0x00: //Test Unit Ready
            {
              //Just return success
              _SendMassStorageResponse(e.Data, null);
              break;
            }
              case 0x12: //Inquiry
            {
              //Send inquiry data
              var data = new byte[0x24];
              data[0] = 0x00;
              data[1] = 0x00;
              data[3] = 0x01;
              data[4] = 0x1F;
              Array.Copy(ASCIIEncoding.ASCII.GetBytes(_vendorName), 0, data, 8, _vendorName.Length);
              Array.Copy(ASCIIEncoding.ASCII.GetBytes(_productName), 0, data, 16, _productName.Length);
              var revision = _revision.ToString("N2"); revision = revision.Substring(0, Math.Min(revision.Length, 4));
              Array.Copy(ASCIIEncoding.ASCII.GetBytes(revision), 0, data, 32, revision.Length);
              _SendMassStorageResponse(e.Data, data);
              break;
            }
              case 0x1A: //Actually...I'm not sure what this is.
            {
              //Send response
              var data = new byte[8];
              data[0] = 0x12;
              data[7] = 0x1C;
              _SendMassStorageResponse(e.Data, data);
              break;
            }
              case 0x1B: //Start/Stop Unit
            {
              //Just return success
              _SendMassStorageResponse(e.Data, null);
              break;
            }
              case 0x1E: //Prevent/Allow Medium Removal
            {
              //Just return success
              _SendMassStorageResponse(e.Data, null);
              break;
            }
              case 0x23: //Read Format Capacities
            {
              //Send response
              var data = new byte[12];
              data[3] = 0x08;
              data[4] = (byte)(((_sectors - 1) >> 24) & 0xFF);
              data[5] = (byte)(((_sectors - 1) >> 16) & 0xFF);
              data[6] = (byte)(((_sectors - 1) >> 8) & 0xFF);
              data[7] = (byte)((_sectors - 1) & 0xFF);
              data[8] = 0x02;
              data[10] = 0x02;
              _SendMassStorageResponse(e.Data, data);
              break;
            }
              case 0x25: //Read Capacity
            {
              //Send response
              var data = new byte[8];
              data[0] = (byte)(((_sectors - 1) >> 24) & 0xFF);
              data[1] = (byte)(((_sectors - 1) >> 16) & 0xFF);
              data[2] = (byte)(((_sectors - 1) >> 8) & 0xFF);
              data[3] = (byte)((_sectors - 1) & 0xFF);
              data[6] = 0x02;
              _SendMassStorageResponse(e.Data, data);
              break;
            }
              case 0x28: //Read Sector
            {
              ulong LBA = (ulong)(e.Data[0x0F + 3]) | (ulong)(((ulong)e.Data[0x0F + 2] << 8) * 0x10000);
              LBA += (ulong)((ulong)e.Data[0x0F + 5] | (ulong)((ulong)e.Data[0x0F + 4] << 8));
              int sectors = (e.Data[0x0F + 8] & 0xFF) | (e.Data[0x0F + 7] << 8);
              var sectorData = new byte[sectors * 0x200];

              Logger.WriteLine(String.Format("MSD: Read: LBA {0}, Sectors {1}", LBA.ToString("X08"), sectors),
                Logger.LoggingLevel.Verbose);

              //Send response
              _image.Seek((long)(LBA * 0x200), SeekOrigin.Begin);
              for (int i = 0; i < sectors; i++)
                _image.Read(sectorData, 0x200 * i, 0x200);
              _SendMassStorageResponse(e.Data, sectorData);
              break;
            }
              case 0x2A: //Write Sector
            {
              ulong LBA = (ulong)(e.Data[0x0F+3]) | (ulong)(((ulong)e.Data[0x0F+2] << 8) * 0x10000);
              LBA += (ulong)((ulong)e.Data[0x0F+5] | (ulong)((ulong)e.Data[0x0F+4] << 8));
              int sectors = (e.Data[0x0F+8] & 0xFF) | (e.Data[0x0F+7] << 8);

              Logger.WriteLine(String.Format("MSD: Write: LBA {0}, Sectors {1}", LBA.ToString("X08"), sectors),
                Logger.LoggingLevel.Verbose);

              //Seek to the correct point and start writing data as we receive it
              _dataRemaining = sectors * 0x200;
              _image.Seek((long)(LBA * 0x200), SeekOrigin.Begin);
              _SendMassStorageResponse(e.Data, null);
              break;
            }
              case 0x5A: //Mode Sense
            {
              //The host isn't happy until I send this -- not sure what the deal is (I ripped this from a real drive)
              var data = new byte[8];
              data[1] = 0x46;
              data[2] = 0x94;
              _SendMassStorageResponse(e.Data, data);
              break;
            }
              default:
            {
              Logger.WriteLine("MSD: Unknown: " + BitConverter.ToString(e.Data, 0, e.Data.Length),
                Logger.LoggingLevel.Verbose);
              break;
            }
            }
              }
        }
コード例 #16
0
        private void NetworkScannerNewNetworkDataEvent(object sender, IncomingDataEventArgs<NetworkData> e)
        {
            if (e.Data == null || Cache == null || GpsControl == null) return;
            try
            {
                //Add data to the cache
                Cache.AddData(e.Data.ToArray(), GpsControl.GetCurrentGpsData());

                //Fire scan complete event
                OnScanComplete(e.Data.ToArray(), GpsControl.GetCurrentGpsData());
            }
            catch (NullReferenceException)
            {
                // This can exception for some reason, not sure why.
            }
        }
コード例 #17
0
 public void OnIncomingDataReceived(IncomingDataEventArgs e)
 {
     Console.WriteLine("Data received: " + BitConverter.ToString(e.Data));
 }
コード例 #18
0
        public void OnIncomingDataReceived(IncomingDataEventArgs e)
        {
            if (_dataRemaining > 0)
            {
                //This is more write sector data
                _image.Write(e.Data, 0, e.Data.Length);
                _dataRemaining -= e.Data.Length;
            }
            else
            {
                //This is probably a mass storage command
                switch (e.Data[0x0F])
                {
                case 0x00: //Test Unit Ready
                {
                    //Just return success
                    _SendMassStorageResponse(e.Data, null);
                    break;
                }

                case 0x12: //Inquiry
                {
                    //Send inquiry data
                    var data = new byte[0x24];
                    data[0] = 0x00;
                    data[1] = 0x00;
                    data[3] = 0x01;
                    data[4] = 0x1F;
                    Array.Copy(ASCIIEncoding.ASCII.GetBytes(_vendorName), 0, data, 8, _vendorName.Length);
                    Array.Copy(ASCIIEncoding.ASCII.GetBytes(_productName), 0, data, 16, _productName.Length);
                    var revision = _revision.ToString("N2"); revision = revision.Substring(0, Math.Min(revision.Length, 4));
                    Array.Copy(ASCIIEncoding.ASCII.GetBytes(revision), 0, data, 32, revision.Length);
                    _SendMassStorageResponse(e.Data, data);
                    break;
                }

                case 0x1A: //Actually...I'm not sure what this is.
                {
                    //Send response
                    var data = new byte[8];
                    data[0] = 0x12;
                    data[7] = 0x1C;
                    _SendMassStorageResponse(e.Data, data);
                    break;
                }

                case 0x1B: //Start/Stop Unit
                {
                    //Just return success
                    _SendMassStorageResponse(e.Data, null);
                    break;
                }

                case 0x1E: //Prevent/Allow Medium Removal
                {
                    //Just return success
                    _SendMassStorageResponse(e.Data, null);
                    break;
                }

                case 0x23: //Read Format Capacities
                {
                    //Send response
                    var data = new byte[12];
                    data[3]  = 0x08;
                    data[4]  = (byte)(((_sectors - 1) >> 24) & 0xFF);
                    data[5]  = (byte)(((_sectors - 1) >> 16) & 0xFF);
                    data[6]  = (byte)(((_sectors - 1) >> 8) & 0xFF);
                    data[7]  = (byte)((_sectors - 1) & 0xFF);
                    data[8]  = 0x02;
                    data[10] = 0x02;
                    _SendMassStorageResponse(e.Data, data);
                    break;
                }

                case 0x25: //Read Capacity
                {
                    //Send response
                    var data = new byte[8];
                    data[0] = (byte)(((_sectors - 1) >> 24) & 0xFF);
                    data[1] = (byte)(((_sectors - 1) >> 16) & 0xFF);
                    data[2] = (byte)(((_sectors - 1) >> 8) & 0xFF);
                    data[3] = (byte)((_sectors - 1) & 0xFF);
                    data[6] = 0x02;
                    _SendMassStorageResponse(e.Data, data);
                    break;
                }

                case 0x28: //Read Sector
                {
                    ulong LBA = (ulong)(e.Data[0x0F + 3]) | (ulong)(((ulong)e.Data[0x0F + 2] << 8) * 0x10000);
                    LBA += (ulong)((ulong)e.Data[0x0F + 5] | (ulong)((ulong)e.Data[0x0F + 4] << 8));
                    int sectors    = (e.Data[0x0F + 8] & 0xFF) | (e.Data[0x0F + 7] << 8);
                    var sectorData = new byte[sectors * 0x200];

                    Logger.WriteLine(String.Format("MSD: Read: LBA {0}, Sectors {1}", LBA.ToString("X08"), sectors),
                                     Logger.LoggingLevel.Verbose);

                    //Send response
                    _image.Seek((long)(LBA * 0x200), SeekOrigin.Begin);
                    for (int i = 0; i < sectors; i++)
                    {
                        _image.Read(sectorData, 0x200 * i, 0x200);
                    }
                    _SendMassStorageResponse(e.Data, sectorData);
                    break;
                }

                case 0x2A: //Write Sector
                {
                    ulong LBA = (ulong)(e.Data[0x0F + 3]) | (ulong)(((ulong)e.Data[0x0F + 2] << 8) * 0x10000);
                    LBA += (ulong)((ulong)e.Data[0x0F + 5] | (ulong)((ulong)e.Data[0x0F + 4] << 8));
                    int sectors = (e.Data[0x0F + 8] & 0xFF) | (e.Data[0x0F + 7] << 8);

                    Logger.WriteLine(String.Format("MSD: Write: LBA {0}, Sectors {1}", LBA.ToString("X08"), sectors),
                                     Logger.LoggingLevel.Verbose);

                    //Seek to the correct point and start writing data as we receive it
                    _dataRemaining = sectors * 0x200;
                    _image.Seek((long)(LBA * 0x200), SeekOrigin.Begin);
                    _SendMassStorageResponse(e.Data, null);
                    break;
                }

                case 0x5A: //Mode Sense
                {
                    //The host isn't happy until I send this -- not sure what the deal is (I ripped this from a real drive)
                    var data = new byte[8];
                    data[1] = 0x46;
                    data[2] = 0x94;
                    _SendMassStorageResponse(e.Data, data);
                    break;
                }

                default:
                {
                    Logger.WriteLine("MSD: Unknown: " + BitConverter.ToString(e.Data, 0, e.Data.Length),
                                     Logger.LoggingLevel.Verbose);
                    break;
                }
                }
            }
        }
コード例 #19
0
 public void OnIncomingDataReceived(IncomingDataEventArgs e)
 {
     //This shouldn't ever happen...
 }