示例#1
0
文件: MainForm.cs 项目: Kreyl/KeyLock
        public bool ChangeCodeB(string ANewCode)
        {
            LockState_t IState = State;     // Save current state

            State = LockState_t.Disconnected;
            if (!Tool.SendCmd("B:" + ANewCode))
            {
                return(false);
            }
            if (!Tool.WaitAnswer())
            {
                return(false);
            }
            // Check what received
            if (Tool.RXString.StartsWith("B"))
            {
                CodeB = ANewCode;
                State = IState;     // Restore state
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
文件: MainForm.cs 项目: Kreyl/KeyLock
        public bool Kick()
        {
            LockState_t IState = State;     // Save current state

            State = LockState_t.Disconnected;
            for (int i = 0; i < 7; i++)
            {
                Thread.Sleep(10);
                if (!Tool.SendCmd("K"))
                {
                    continue;
                }
                if (!Tool.WaitAnswer())
                {
                    continue;
                }
                // Check what received
                if (Tool.RXString.StartsWith("K"))
                {
                    State = IState;     // Restore state
                    return(true);
                }
            }
            return(false);
        }
示例#3
0
文件: MainForm.cs 项目: Kreyl/nute
        public bool GetState()
        {
            LockState_t IState = State;     // Save current state

            State = LockState_t.Disconnected;
            if (!Tool.SendCmd("S"))
            {
                return(false);
            }
            if (!Tool.WaitAnswer())
            {
                return(false);
            }
            // Check what received
            if (!Tool.RXString.StartsWith("S:"))
            {
                return(false);
            }
            // Get service code, two lock codes and complexity from state reply
            string[] sl = Tool.RXString.Substring(2).Split(',');    // Split reply to chunks
            if (sl.Count() != 4)
            {
                return(false);                                      // Must be 4 chunks
            }
            ServiceCode = sl[0];
            CodeA       = sl[1];
            CodeB       = sl[2];
            if (!Int32.TryParse(sl[3], out Complexity))
            {
                return(false);
            }
            // === Now get side which tool is connected to ===
            if (!Tool.SendCmd("G"))
            {
                return(false);
            }
            if (!Tool.WaitAnswer())
            {
                return(false);
            }
            // Check what received
            if (Tool.RXString.StartsWith("G:A"))
            {
                Side = LockSide_t.SideA;
            }
            else if (Tool.RXString.StartsWith("G:B"))
            {
                Side = LockSide_t.SideB;
            }
            else
            {
                return(false);
            }
            State = IState;     // Restore state
            return(true);
        }
示例#4
0
文件: MainForm.cs 项目: Kreyl/KeyLock
        public bool Close()
        {
            LockState_t IState = State;     // Save current state

            State = LockState_t.Disconnected;
            if (!Tool.SendCmd("C"))
            {
                return(false);
            }
            if (!Tool.WaitAnswer())
            {
                return(false);
            }
            // Check what received
            if (!Tool.RXString.StartsWith("C"))
            {
                return(false);
            }
            State = IState;     // Restore state
            return(true);
        }
示例#5
0
文件: MainForm.cs 项目: Kreyl/nute
 public bool Open()
 {
     LockState_t IState = State;     // Save current state
     State = LockState_t.Disconnected;
     if (!Tool.SendCmd("O")) return false;
     if (!Tool.WaitAnswer()) return false;
     // Check what received
     if (!Tool.RXString.StartsWith("O")) return false;
     State = IState;     // Restore state
     return true;
 }
示例#6
0
文件: MainForm.cs 项目: Kreyl/nute
 public bool GetState()
 {
     LockState_t IState = State;     // Save current state
     State = LockState_t.Disconnected;
     if (!Tool.SendCmd("S")) return false;
     if (!Tool.WaitAnswer()) return false;
     // Check what received
     if (!Tool.RXString.StartsWith("S:")) return false;
     // Get service code, two lock codes and complexity from state reply
     string[] sl = Tool.RXString.Substring(2).Split(',');    // Split reply to chunks
     if (sl.Count() != 4) return false;                      // Must be 4 chunks
     ServiceCode = sl[0];
     CodeA = sl[1];
     CodeB = sl[2];
     if (!Int32.TryParse(sl[3], out Complexity)) return false;
     // === Now get side which tool is connected to ===
     if (!Tool.SendCmd("G")) return false;
     if (!Tool.WaitAnswer()) return false;
     // Check what received
     if (Tool.RXString.StartsWith("G:A")) Side = LockSide_t.SideA;
     else if (Tool.RXString.StartsWith("G:B")) Side = LockSide_t.SideB;
     else return false;
     State = IState;     // Restore state
     return true;
 }
示例#7
0
文件: MainForm.cs 项目: Kreyl/nute
 public bool ChangeServiceCode(string ANewCode)
 {
     LockState_t IState = State;     // Save current state
     State = LockState_t.Disconnected;
     if (!Tool.SendCmd("V:" + ANewCode)) return false;
     if (!Tool.WaitAnswer()) return false;
     // Check what received
     if (Tool.RXString.StartsWith("V")) {
         ServiceCode = ANewCode;
         State = IState;     // Restore state
         return true;
     }
     else return false;
 }