Beispiel #1
0
        public void TickleTickle()
        {
            STDFU.DFU_Status dfuStatus = new STDFU.DFU_Status();
            UInt32           Result    = STDFU.STDFU_SelectCurrentConfiguration(ref hDevice, 0, 0, 0);

            Console.WriteLine("SelectConfig Res: " + Result);
            STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            STDFU.STDFU_ClrStatus(ref hDevice);
            // Console.WriteLine("DFU iString: " + dfuStatus.iString);
            // Console.WriteLine("DFU State: " + dfuStatus.bState);
            // Console.WriteLine("DFU STATUS: " + dfuStatus.bStatus);
            IntPtr strinng = Marshal.AllocHGlobal(256);

            Result = STDFU.STDFU_GetStringDescriptor(ref hDevice, 1, strinng, 256);
            // Console.WriteLine("StringDesc Res: " + Result);

            STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            STDFU.STDFU_ClrStatus(ref hDevice);
            // Console.WriteLine("DFU iString: " + dfuStatus.iString);
            //Console.WriteLine("DFU State: " + dfuStatus.bState);
            //Console.WriteLine("DFU STATUS: " + dfuStatus.bStatus);
            byte[] bytes = new byte[256];
            Marshal.Copy(strinng, bytes, 0, 256);
            Marshal.FreeHGlobal(strinng);
            Console.WriteLine(Encoding.ASCII.GetString(bytes));
        }
Beispiel #2
0
        private void WaitUntilIdle()
        {
            // wait 5 seconds max
            long start = DateTime.Now.Millisecond;

            STDFU.DFU_Status dfuStatus = new STDFU.DFU_Status();
            STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            while (dfuStatus.bState != STDFU.STATE_DFU_IDLE && ((DateTime.Now.Millisecond - start) < 5000))
            {
                STDFU.STDFU_ClrStatus(ref hDevice);
                STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            }
        }
Beispiel #3
0
        public string getDeviceDescriptor(uint index = 1)
        {
            STDFU.DFU_Status dfuStatus = new STDFU.DFU_Status();
            UInt32           Result    = STDFU.STDFU_SelectCurrentConfiguration(ref hDevice, 0, 0, 0);

            STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            STDFU.STDFU_ClrStatus(ref hDevice);

            IntPtr strinng = Marshal.AllocHGlobal(256);

            STDFU.STDFU_GetStringDescriptor(ref hDevice, index, strinng, 256);

            STDFU.STDFU_GetStatus(ref hDevice, ref dfuStatus);
            STDFU.STDFU_ClrStatus(ref hDevice);

            byte[] bytes = new byte[256];
            Marshal.Copy(strinng, bytes, 0, 256);
            Marshal.FreeHGlobal(strinng);
            return(Encoding.ASCII.GetString(bytes));
        }