Beispiel #1
0
        public string WriteGuestCard(string coid, string lockcode, int cardnum, int daifo, int open, DateTime date)
        {
            int    i, st;
            int    dlscoid;
            byte   cardno;
            byte   dai;
            byte   llock;
            string datastr = "";
            string lockstr, EDatestr;

            byte[] cardbuf = new byte[128];

            char[] lockno = new char[6];
            char[] EDate  = new char[10];

            lockstr = lockcode;//Номер блокировки

            for (i = 0; i < 6; i++)
            {
                lockno[i] = Convert.ToChar(lockstr.Substring(i, 1));
            }
            EDatestr = date.ToString("yyMMddHHmm");//dateTimePicker1.Value.ToString("yyMMdd") + dateTimePicker2.Value.ToString("HHmm");//Эффективное время
            for (i = 0; i < 10; i++)
            {
                EDate[i] = Convert.ToChar(EDatestr.Substring(i, 1));
            }

            dlscoid = Convert.ToInt32(coid);   //Логотип гостиницы
            cardno  = Convert.ToByte(cardnum); //Номер карты 0..15
            dai     = Convert.ToByte(daifo);   //Ширина передней панели карты 0..255.
            llock   = Convert.ToByte(open);    //Открыть антиблокировочный знак


            st = WriteGuestCardA(dlscoid, cardno, dai, llock, EDate, lockno, cardbuf);
            Thread.Sleep(400);//Рекомендуется задержать 400 миллисекунд, ожидая аппаратного ответа
            if (st == 0)
            {
                Buzzer(50);
                for (i = 0; i < 32; i++)
                {
                    datastr = datastr + ((char)carddata[i]).ToString();
                }
                return(datastr);
            }
            else
            {
                return("Ошибка карты гостя:" + st.ToString());
            }
        }
Beispiel #2
0
        /// <summary>
        /// 开卡
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                bool   tr;
                int    i, st;
                int    dlscoid;
                byte   cardno;
                byte   dai;
                byte   llock;
                byte   pdoors;
                string datastr = "";
                string lockstr, BDatestr, EDatestr;
                byte[] cardbuf = new byte[128];

                char[] roomno = new char[8];
                char[] BDate  = new char[10];
                char[] EDate  = new char[10];



                lockstr = GetSuoNumber();//锁号
                if (lockstr != "")
                {
                    for (i = 0; i < 8; i++)
                    {
                        roomno[i] = Convert.ToChar(lockstr.Substring(i, 1));
                    }

                    BDatestr = DateTime.Now.ToString("yyMMddHHmm");//发卡时间必须取当前时间
                    for (i = 0; i < 10; i++)
                    {
                        BDate[i] = Convert.ToChar(BDatestr.Substring(i, 1));
                    }

                    // EDatestr = dateTimePicker1.Value.ToString("yyMMdd") + dateTimePicker2.Value.ToString("HHmm");//有效时间
                    EDatestr = Convert.ToDateTime(ydTime.InnerText).ToString("yyMMddHHmm");
                    for (i = 0; i < 10; i++)
                    {
                        EDate[i] = Convert.ToChar(EDatestr.Substring(i, 1));
                    }
                    dlscoid = GetHotelBs();//酒店标识



                    //cardno = Convert.ToByte(cardNumber.Value);  //卡号 0..15循环
                    cardno = Convert.ToByte(0);

                    //dai = Convert.ToByte(textBox4.Text);   //屏蔽前卡标志 0..255递增循环
                    //客人代,0--255,用于后卡覆盖前卡,一般情况下固定为0
                    dai = 0;


                    if (IsBack())
                    {
                        llock = 1;            //开反锁标志
                    }
                    else
                    {
                        llock = 0;
                    }


                    if (IsComm())
                    {
                        pdoors = 1;            //开反锁标志
                    }
                    else
                    {
                        pdoors = 0;
                    }

                    //pdoors = 0;//此参数固定为0;
                    tr = rdcard();
                    if (tr)//制作客人卡
                    {
                        st = GuestCard(flagUSB, dlscoid, cardno, dai, llock, pdoors, BDate, EDate, roomno, cardbuf);
                        Thread.Sleep(800);//建议延时800毫秒,等待硬件响应
                        if (st == 0)
                        {
                            if (flagUSB == 1)
                            {
                                Buzzer(flagUSB, 50);
                            }
                            for (i = 0; i < 38; i++)
                            {
                                datastr = datastr + ((char)carddata[i]).ToString();
                            }
                            ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('发宾客卡成功!');if(confirm('开房成功,是否打印入住单')){PrintRZ(" + hidorder.Value + ");}else{ShowTabs('房态图');}</script>");
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('发宾客卡失败1!');if(confirm('开房成功,是否打印入住单')){PrintRZ(" + hidorder.Value + ");}else{ShowTabs('房态图');}</script>");
                        }
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('发宾客卡失败,卡片无效!');if(confirm('开房成功,是否打印入住单')){PrintRZ(" + hidorder.Value + ");}else{ShowTabs('房态图');}</script>");
                    }
                }
                else
                {
                    ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('请设置该房间锁号!锁号" + lockstr + "!!!!');if(confirm('开房成功,是否打印入住单')){PrintRZ(" + hidorder.Value + ");}else{ShowTabs('房态图');}</script>");
                }
            }
            catch (Exception ex)
            {
                ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>alert('开卡失败');if(confirm('开房成功,是否打印入住单')){PrintRZ(" + hidorder.Value + ");}else{ShowTabs('房态图');}</script>");
            }
        }