public List <ELock> GetELock() { DataTable table = null; LoggingData data = new LoggingData(ip, username, password, database); table = data.GetELock(); if (table == null) { CLog4net.LogError("锁控板列表初始化错误"); return(null); } List <ELock> boxes = new List <ELock>(); foreach (System.Data.DataRow d in table.Rows) { ELock cb = new ELock(); cb.Id = Convert.ToInt32(d[TbELock.id]); if (d[TbELock.boxCode].ToString() != "") { cb.BoxCode = Convert.ToInt32(d[TbELock.boxCode]); } cb.Address = Convert.ToString(d[TbELock.ip]); cb.Password = Convert.ToString(d[TbELock.password]); cb.Value = Convert.ToString(d[TbELock.value]); boxes.Add(cb); } return(boxes); }
public Box.State GetCurrentState(int code) { #region 调试用 //return Box.State.Close; #endregion ELock eLock = ELocksManager.GetInstance().GetLock(code);; if (eLock == null || eLock.BoxCode == 0) { return(Box.State.Close); } string loginUrl = string.Format("http://{0}/coils/{1}?ac={2}", eLock.Address, eLock.Value, eLock.Password); CookieCollection cookies = new CookieCollection();//如何从response.Headers["Set-Cookie"];中获取并设置CookieCollection的代码略 HttpWebResponse response = HttpWebResponseUtility.CreateGetHttpResponse(loginUrl, null, null, cookies); if (response == null) { return(Box.State.Close); } string result = ""; using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)) { result = reader.ReadToEnd(); } if (result.Equals("{\"v\":1}")) { return(Box.State.Open); } else if (result.Equals("{\"v\":0}")) { return(Box.State.Close); } return(Box.State.Close); }
public bool Close(int code) { #region 调试用 //return true; #endregion ELock eLock = ELocksManager.GetInstance().GetLock(code); if (eLock == null || eLock.BoxCode == 0) { return(false); } string loginUrl = string.Format("http://{0}/gpio/ts/{1}?ac={2}&delay={3}", eLock.Address, eLock.Value, eLock.Password, delayTime); CookieCollection cookies = new CookieCollection();//如何从response.Headers["Set-Cookie"];中获取并设置CookieCollection的代码略 HttpWebResponse response = HttpWebResponseUtility.CreateGetHttpResponse(loginUrl, null, null, cookies); if (response == null) { return(false); } string result = ""; using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)) { result = reader.ReadToEnd(); } string targetResult = string.Format("{\"v\":{0}}", delayTime); if (result == targetResult) { return(true); } return(false); }
public bool Open(int code) { bool success = false; ELock eLock = ELocksManager.GetInstance().GetLock(code); if (eLock == null) { CLog4net.LogError("根据柜号:" + code + " 寻找锁号失败:eLock==nulll"); return(false); } if (eLock.BoxCode == 0) { CLog4net.LogError("根据柜号:" + code + " 寻找锁号失败:eLock.BoxCode == 0"); return(false); } try { if (isDebug) { return(true); } VCI_CAN_OBJ obj = PDUProducter.CreateOpenCmd(Convert.ToUInt32(eLock.Address), Convert.ToUInt32(eLock.Password), Convert.ToInt32(eLock.Value), timeout); VCI_CAN_OBJ response = CanManager.GetInsatnce().SendPdu(obj); if (response.Data != null) { bool parameterLegal = response.Data[0] == 1 ? true : false; bool passwordPass = response.Data[1] == 1 ? true : false; bool isReceivedData = response.Data[2] == 1 ? true : false; success = (isReceivedData & passwordPass & parameterLegal) == true ? true : false; if (!success) { CLog4net.LogError("Can发送开箱 " + "parameterLegal:" + parameterLegal + " passwordPass" + passwordPass + " parameterLegal" + parameterLegal); } } else { CLog4net.LogError("Can发送开箱 " + "response.Data == null"); } } catch (Exception e) { CLog4net.LogError("Can控制器OPEN异常: " + e.ToString()); return(false); } return(success); }