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)); }
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); } }
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)); }