private void Awake()
        {
            ICSConverter converter = new Camera2Unity3dPackageConverter(Matrix4x4.Scale(Vector3.one * SettingsBag.Current[SettingName.Scale].As <float>()));

            m_parser = new IChainable <DataParser>[]
            {
                new SlamPackageParser(converter),
                new TrackingPackageParser(converter),
            }.BuildChain();
            m_presenter = presenters.BuildChain();
            m_receiver  = new TCPPackagesReceiver(m_parser);
        }
 private void Disconnect()
 {
     if (m_mapUpdate != null)
     {
         m_mapUpdate.Dispose();
     }
     if (m_mapRepaint != null)
     {
         m_mapRepaint.Dispose();
     }
     lock (m_receiver)
     {
         if (m_receiver != null)
         {
             m_receiver.Dispose();
         }
         m_receiver = new TCPPackagesReceiver(m_parser);
     }
 }