public void Dispose()
{
if (m_comm == null) return;
m_comm.OnComplexAck -= m_comm_OnComplexAck;
m_comm.OnError -= m_comm_OnError;
m_comm.OnAbort -= m_comm_OnAbort;
m_comm.OnSimpleAck -= m_comm_OnSimpleAck;
m_comm.OnSegment -= m_comm_OnSegment;
m_comm = null;
}