internal override uint WriteBlock(ushort[] buffer, ushort receiveTransmitCode) { try { if (state == DeviceState.Open) { W32_TMK.tmkdefevent_usb(this.hTmkEvent); this.LastError = (uint)W32_TMK.bcdefbase_usb(Convert.ToUInt16((this.options as IMKOPortOptions).Address)); IntPtr pcBuffer = Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0); W32_TMK.bcputblk_usb(0, pcBuffer, (ushort)buffer.Length); this.LastError = (uint)W32_TMK.bcstart_usb(Convert.ToUInt16((this.options as IMKOPortOptions).Address), receiveTransmitCode); if (this.LastError != 0) { return(this.LastError); } return(0); } return(1); } catch (Exception exception) { throw CreateThrowUpException(exception); } }
internal override uint Connect() { try { if (state != DeviceState.Open) { this.hTmkEvent = W32_TMK.CreateEvent(IntPtr.Zero, true, false, string.Format("Event_MKO_TEST{0}", (this.options as IMKOPortOptions).ID)); } this.LastError = W32_TMK.GetLastError(); if (this.LastError == 0xb7) { //"_stat_ МКО ОУ: открыто подключение устройства к внешнему процессу! (тест МКО)"; return(1); } else { W32_TMK.CloseHandle(this.hTmkEvent); this.hTmkEvent = W32_TMK.CreateEvent(IntPtr.Zero, true, false, string.Format("Event_MKO_BC_{0}", (this.options as IMKOPortOptions).ID)); this.LastError = (uint)W32_TMK.tmkconfig_usb((this.options as IMKOPortOptions).ID, 9, 0, 0); //"_stat_ МКО КК: сконфигурировано и подключено устройство с ID = " + this.Dev_ID.ToString())); Select(); W32_TMK.tmkdefevent_usb(this.hTmkEvent); this.LastError = (uint)W32_TMK.bcreset_usb(); this.state = DeviceState.Open; this.Bus = this.Bus; if (this.LastError != 0) { return(1); } return(0); } } catch (Exception exception) { throw CreateThrowUpException(exception); } }
internal override uint Disconnect() { try { if (state == DeviceState.Open) { W32_TMK.tmkdefevent_usb(IntPtr.Zero); this.LastError = (uint)W32_TMK.tmkdone_usb((this.options as IMKOPortOptions).ID); W32_TMK.CloseHandle(this.hTmkEvent); this.state = DeviceState.Close; if (this.LastError != 0) { return(this.LastError); } return(0); } return(1); } catch (Exception exception) { throw CreateThrowUpException(exception); } }