public void SendGetDeviceInfoMessage()
     {
     GetDeviceInfoNxtMessage msg = new GetDeviceInfoNxtMessage();
     this.QueueMessageForSending(msg);
     }
        //--------------------------------------------------------------------------
        // Utility
        //--------------------------------------------------------------------------

        public virtual bool ProbeForNXT(out string sNxtName)
            {
            bool fResult = false;
            sNxtName = "(unknown NXT)";

            Program.Trace("opening {0}...", this);
            if (this.Open(false))
                {
                Program.Trace("...opened {0}", this);
                //
                try {
                    GetDeviceInfoNxtMessage msg = new GetDeviceInfoNxtMessage();
                    if (this.Send(msg))
                        {
                        if (msg.AwaitReply())
                            {
                            fResult = true;
                            sNxtName = msg.NxtName;
                            }
                        else
                            {
                            Program.Trace("...no reply");
                            }
                        }
                    }
                catch (System.TimeoutException)
                    {
                    }
                //
                this.Close();
                }
            else
                {
                Program.Trace("...failed to open {0}", this);
                }

            return fResult;
            }