public void OpenCloseTest()
 {
     using (MpsseDevice mpsse = new FT2232H(""))
     {
         SpiDevice spi = new SpiDevice(mpsse);
     }
 }
        private static void DisableLine(FT2232H mpsse)
        {
            FtdiPin PinDirection = (FtdiPin)(FtdiPin.TCK | FtdiPin.TDI | FtdiPin.TMS | FtdiPin.GPIOL0 | FtdiPin.GPIOL1);
            FtdiPin PinState     = (FtdiPin)(FtdiPin.CS | FtdiPin.GPIOL0 | FtdiPin.GPIOL1);

            mpsse.SetDataBitsLowByte(PinState, PinDirection);
        }
        public void TransmitTest()
        {
            using (MpsseDevice mpsse = new FT2232H(""))
            {
                SpiDevice spi = new SpiDevice(mpsse);

                byte[] tData = { 0x0D, 0x01, 0x0F };
                spi.write(tData);
            }
        }
        static void Main(string[] args)
        {
            try
            {
                for (int repeat = 1; repeat < 11; repeat++)
                {
                    SpocReaderData          spocReaderData = new SpocReaderData();
                    List <byte>             RawData        = new List <byte>();
                    MpsseDevice.MpsseParams mpsseParams    = new MpsseDevice.MpsseParams();
                    mpsseParams.clockDevisor = 1;
                    UInt16 NumOfBytesToRead = 6500;


                    String csvFilename = "ReadData_" + DateTime.Now.ToString("ddMMMyy--HH.mm.ss") + ".csv";
                    String xmlFilename = "ReadData_" + DateTime.Now.ToString("ddMMMyy--HH.mm.ss") + ".xml";

                    using (var mpsse = new FT2232H("", mpsseParams))
                    {
                        // configure FTDI port for MPSSE Use
                        mpsse.AdaptiveClocking       = false;
                        mpsse.ThreePhaseDataClocking = false;
                        mpsse.ClkDivideBy5           = false;

                        Stopwatch stopWatch = new Stopwatch();
                        stopWatch.Start();

                        while (stopWatch.ElapsedMilliseconds < 5000)
                        {
                            EnableLine(mpsse);
                            var OutputData = mpsse.BytesInOnMinusEdgeWithMsbFirst(NumOfBytesToRead);
                            DisableLine(mpsse);

                            Console.Write(".");
                            RawData.AddRange(OutputData);
                        }

                        int HighBit = 30;
                        List <List <BinData> > ReadBuffer = TruncateData(RawData, HighBit);

                        spocReaderData.RawFocusData = RawData.ToArray();

                        // write to files
                        ReadInfo readInfo = new ReadInfo {
                            readerData = spocReaderData, parameters = mpsseParams, numOfBytesToRead = NumOfBytesToRead
                        };
                        //WriteToCsv(ReadBuffer[0], csvFilename);
                        WriteToXML(readInfo, xmlFilename);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
        public void LoopbackTest()
        {
            using (MpsseDevice mpsse = new FT2232H(""))
            {
                SpiDevice spi = new SpiDevice(mpsse);
                mpsse.Loopback = true;

                byte[] tData = { 0x0A, 0x01, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0xFF };
                byte[] rData = spi.readWrite(tData);

                Assert.IsTrue(tData.SequenceEqual(rData));
            }
        }
        public void Read()
        {
            Random r = new Random();

            const uint size = 60000;

            using (MpsseDevice mpsse = new FT2232H(""))
            {
                SpiDevice spi = new SpiDevice(mpsse);
                mpsse.Loopback = true;

                byte[] rData = mpsse.read();

                Assert.AreNotEqual(rData.Length, 0);
            }
        }
        public void LoopbackBigTest()
        {
            Random r = new Random();

            MpsseDevice.MpsseParams mpsseParams = new MpsseDevice.MpsseParams();
            mpsseParams.clockDevisor = 0;
            //mpsseParams.DataWriteEvent = new FtdiDevice.DataTransferEvent();
            const uint size = 60000;

            using (MpsseDevice mpsse = new FT2232H("", mpsseParams))
            {
                SpiDevice spi = new SpiDevice(mpsse);
                mpsse.Loopback = true;

                byte[] tData = new byte[size];
                r.NextBytes(tData);

                byte[] rData = spi.readWrite(tData);

                Assert.IsTrue(tData.SequenceEqual(rData));
            }
        }