public bool Receive(byte request7bit, out DE2Data data) { data = null; bool result = CheckConnection((byte)(0x80 | DE2Data.GetTag(request7bit))); // Reading flag and 7 bits of request if (result) { Thread.Sleep(0); byte tag; result = ReceiveByte(out tag); if (result && DE2Data.GetFlagBit(tag)) { byte[] received = new byte[7]; for (int i = 0; i < received.Length && result; i++) { result = ReceiveByte(out received[i]); } if (result) { data = new DE2Data(tag, received); } } } return(result); }
public bool Send(DE2Data data) { bool result = CheckConnection((byte)(0x00 | data.Tag7bit)); // Writing flag and 7 bits of tag if (result) { List <byte> message = new List <byte>(new byte[] { 0x88, 0x83 }); message.AddRange(data.GetData()); IntPtr lpBuffer = Marshal.AllocHGlobal(message.Count); Marshal.Copy(message.ToArray(), 0, lpBuffer, message.Count); uint dwBytesWritten = 0; result = FT_Write(ftHandle, lpBuffer, message.Count, ref dwBytesWritten) == FT_OK; Marshal.FreeHGlobal(lpBuffer); } return(result); }