예제 #1
0
파일: Logger.cs 프로젝트: w5xd/Digi-Rite
        public string SetAutomation(object wl)
        {
            string labelPttText = "";

            if (pttPort != null)
            {
                pttPort.Dispose();
            }
            pttPort = null;
            if (wl == null)
            {
                iWlEntry       = null;
                iWlDoc         = null;
                iWlDupingEntry = null;
            }
            else
            {
                iWlEntry       = (WriteLogClrTypes.ISingleEntry)(wl);
                iWlDoc         = (WriteLogClrTypes.IWriteL)iWlEntry.GetParent();
                iWlDupingEntry = iWlDoc.CreateEntry();
                SetupExchangeFieldNumbers();
                string RttyRegKeyName = "Software\\W5XD\\writelog.ini\\RttyRite";
                if (instanceNumber > 1)
                {
                    RttyRegKeyName += instanceNumber.ToString();
                }
                Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(RttyRegKeyName);
                if (null != rk)
                {
                    object Port = rk.GetValue("Port");
                    if (null != Port)
                    {
                        int port;
                        if (Int32.TryParse(Port.ToString(), out port) && port > 0)
                        {
                            try
                            {
                                string portname = "COM" + port.ToString();
                                pttPort           = new System.IO.Ports.SerialPort(portname);
                                pttPort.Handshake = System.IO.Ports.Handshake.None;
                                pttPort.RtsEnable = false;
                                pttPort.Open();
                                labelPttText = "ptt on " + portname;
                            }
                            catch (System.Exception)
                            {
                                pttPort = null;
                            }
                        }
                    }
                }
            }
            return(labelPttText);
        }