protected override bool AssyncWrite(AssyncIOEventArgs ioArgs) { if (!base.AssyncWrite(ioArgs)) { return(false); } // TransportWriteEventArgs wrEa; try { m_serialPort.Write(ioArgs.Buf, ioArgs.Index, ioArgs.Count); string result = ioArgs.Count.ToString() + " bytes written."; m_IsError = false; wrEa = new TransportWriteEventArgs(ioArgs.ID, false, result); } catch (Exception exWr) { m_IsError = true; wrEa = new TransportWriteEventArgs(ioArgs.ID, false, exWr.Message); } // OnAssyncWriteResultEvent((ITransport)this, wrEa); // return(!m_IsError); }
protected override bool AssyncRead(AssyncIOEventArgs ioArgs) { if (!base.AssyncRead(ioArgs)) { return(false); } // TransportReadEventArgs rdEa; try { byte[] readBuffer = new byte[ioArgs.Count]; int uiTransmitted = m_serialPort.Read(readBuffer, 0, ioArgs.Count); byte[] rdBuf = readBuffer; string result = "Чтение прошло успешно"; if (uiTransmitted != ioArgs.Count) { rdBuf = new byte[uiTransmitted]; Array.Copy(readBuffer, 0, rdBuf, 0, uiTransmitted); result = "Прочитано не полностью"; } m_IsError = false; rdEa = new TransportReadEventArgs(ioArgs.ID, rdBuf, true, result); } catch (Exception exRd) { m_IsError = true; rdEa = new TransportReadEventArgs(ioArgs.ID, null, false, exRd.Message); } // OnAssyncReadResultEvent((ITransport)this, rdEa); // return(!m_IsError); //return false; }