Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }