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()); } }
/// <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>"); } }