Exemple #1
0
 void Deinit()
 {
     if (SerialPortRTS != null && SerialPortRTS.IsOpen)
     {
         SerialPortRTS.Close();
         Trace.WriteLine("Close SerialPortRTS in " + Name);
     }
 }
        internal static void CloseRTSPort()
        {
            if (SerialPortRTS == null)
            {
                return;
            }

            if (SerialPortRTS.IsOpen)
            {
                SerialPortRTS.Close();
            }
        }
        internal static bool DisableRTS()
        {
            if (SerialPortRTS == null)
            {
                Trace.WriteLine("DisableRTS SerialPortRTS == null");
                return(false);
            }

            if (!SerialPortRTS.IsOpen)
            {
                SerialPortRTS.Open();
            }

            if (SerialPortRTS.RtsEnable)
            {
                SerialPortRTS.RtsEnable = false; // RTS disable 供電
                Trace.WriteLine("Set RTS Disable.");
                Thread.Sleep(300);
            }
            else
            {
                CloseRTSPort();
                return(true);
            }

            RetryCount = 0;
            while (!IsCharging)
            {
                RetryCount++;
                if (RetryCount > 20)
                {
                    CloseRTSPort();
                    return(false);
                }
                else
                {
                    Thread.Sleep(300);
                    Trace.WriteLine("Can't switch RTS Pin to Disable (AC In).");
                    SerialPortRTS.RtsEnable = false; // RTS disable 供電
                }
            }
            CloseRTSPort();
            return(true);
        }
        internal static bool EnableRTS()
        {
            if (SerialPortRTS == null)
            {
                Trace.WriteLine("EnableRTS SerialPortRTS == null");
                return(false);
            }

            if (!SerialPortRTS.IsOpen)
            {
                SerialPortRTS.Open();
            }

            if (!SerialPortRTS.RtsEnable)
            {
                SerialPortRTS.RtsEnable = true; // RTS enable 斷電
                Trace.WriteLine("Set RTS Enable.");
                Thread.Sleep(300);
            }
            else
            {
                return(true);
            }

            RetryCount = 0;
            while (IsCharging)
            {
                RetryCount++;
                if (RetryCount > 20)
                {
                    return(false);
                }
                else
                {
                    Thread.Sleep(300);
                    Trace.WriteLine("Can't switch RTS Pin to Enable (AC Out).");
                    SerialPortRTS.RtsEnable = true; // RTS enable 斷電
                }
            }
            return(true);
        }