protected override IAvalonPacket CreateAvalonPacket() { CyUSBDevice sampleDevice = usbDevices[0x04b4, 0x1004] as CyUSBDevice; if (sampleDevice == null) { if (Listener != null) { Listener.Stop(); } if (connectedDevice != null) { //Console.WriteLine("DeviceRemoved"); connectedDevice = null; } CyFX2Device noEepromDevice = usbDevices[0x04b4, 0x8613] as CyFX2Device; if (noEepromDevice == null) { return(null); } string path = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), firmware); noEepromDevice.LoadExternalRam(path); return(null); } if (connectedDevice != null) { return(null); } //Console.WriteLine("DeviceAttached"); CyBulkEndPoint outEndpoint = sampleDevice.EndPointOf(0x01) as CyBulkEndPoint; if (outEndpoint == null) { return(null); } CyBulkEndPoint inEndpoint = sampleDevice.EndPointOf(0x81) as CyBulkEndPoint; if (inEndpoint == null) { return(null); } endpoint2 = sampleDevice.EndPointOf(0x82) as CyBulkEndPoint; if (endpoint2 == null) { return(null); } connectedDevice = sampleDevice; return(new CsrpAvalonPacket(outEndpoint, inEndpoint)); }
/// <summary> /// Поиск устройства /// </summary> public bool Find() { USBDeviceList usbDevices = new USBDeviceList(1); foreach (USBDevice d in usbDevices) { if ((d.ProductID == 0xb40D) && (d.VendorID == 0x0456)) { device = d as CyFX2Device; } } bool loaded = false; if (device != null) { loaded = device.LoadExternalRam("Resources\\ADF4360ExternalRAM.hex"); } else { return(false); } if (loaded) { device.ControlEndPt.Target = 0; device.ControlEndPt.ReqType = 0x40; device.ControlEndPt.Direction = 0; device.ControlEndPt.ReqCode = 0xdd; device.ControlEndPt.Value = 0; device.ControlEndPt.Index = 0; return(true); } return(false); }