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); }
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; }