// ===================================================================================================== public void EventHandler(XXY_VisitorMJAsst.RAcsEvent Event, ref UInt16 time, ref string card, ref string voice, ref string name, ref string note, ref string etime, ref byte relay, ref byte OpenDoor, ref Boolean Ack) { relay = Event.Reader; if (OnEventHandler != null) { OnEventHandler(Event, ref time, ref card, ref voice, ref name, ref note, ref etime, ref relay, ref OpenDoor, ref Ack); } }
private void DoFormAlarmEvent() { Boolean Ack; RTCPAlarmData AlarmData; byte vopenDoor = 0; UInt16 time = 5; string card = ""; string voice = ""; string name = ""; string note = ""; string etime = ""; byte times = 0; byte Second, Minute, Hour, Day, Month; int Year; RAcsEvent Event = new RAcsEvent(); AlarmData = (RTCPAlarmData)ByteToStruct(BufferRX, typeof(RTCPAlarmData)); Event.SerialNo = Encoding.ASCII.GetString(AlarmData.Serial); Serial = Event.SerialNo; Event.ID = Encoding.ASCII.GetString(AlarmData.ID); Event.Reader = Convert.ToByte(AlarmData.Reader & 0x01); Event.Door = AlarmData.door; Event.EventType = AlarmData.DataType; Second = AlarmData.DateTime[5]; Minute = (AlarmData.DateTime[4]); Hour = (AlarmData.DateTime[3]); Day = (AlarmData.DateTime[2]); Month = (AlarmData.DateTime[1]); Year = (AlarmData.DateTime[0]) + 2000; Event.Datetime = GetDatetime(Second, Minute, Hour, Day, Month, Year); Event.Alarm = AlarmData.Alarm; Event.Value = Encoding.Default.GetString(AlarmData.Value); Event.Online = true; Event.EType = 1; Ack = true; vopenDoor = 0; byte relay = Event.Reader; OnEventHandler(Event, ref time, ref card, ref voice, ref name, ref note, ref etime, ref relay, ref vopenDoor, ref Ack); // 可以不应答 //if (Ack) // AnsEvent(0x54, relay, vopenDoor, time, Event.Reader, 5, card, voice, name, note, etime); }
private void DoFormCardEvent() { Boolean Ack; RTCPCardData CardData; byte vopenDoor = 0; UInt16 time = 5; string card = ""; string voice = ""; string name = ""; string note = ""; string etime = ""; byte times = 0; byte Second, Minute, Hour, Day, Month; int Year; int Valuelen = BufferRX[Loc_Len + 1] + BufferRX[Loc_Len + 0] * 256 - 6 - 10 - 7 - 16 - 4; if (Valuelen > 2048) { Valuelen = 0; } RAcsEvent Event = new RAcsEvent(); CardData = (RTCPCardData)ByteToStruct(BufferRX, typeof(RTCPCardData)); Event.SerialNo = Encoding.ASCII.GetString(CardData.Serial); Serial = Event.SerialNo; Event.ID = Encoding.ASCII.GetString(CardData.ID); Event.Reader = Convert.ToByte(CardData.Reader & 0x01); Event.Door = CardData.door; Event.EventType = CardData.DataType; Second = CardData.DateTime[5]; Minute = (CardData.DateTime[4]); Hour = (CardData.DateTime[3]); Day = (CardData.DateTime[2]); Month = (CardData.DateTime[1]); Year = (CardData.DateTime[0]) + 2000; Event.Datetime = GetDatetime(Second, Minute, Hour, Day, Month, Year); Event.Value = Convert.ToString(CardData.Card); switch (Event.EventType) { case NET_DATA_TYPE_CARD: Event.Value = Convert.ToString(CardData.Card); // Convert.ToString(CardData.Value); card = Convert.ToString(CardData.Card); break; case NET_DATA_TYPE_ORCode: Event.Value = Encoding.UTF8.GetString(CardData.Value); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\0", string.Empty); } break; // case NET_DATA_TYPE_DATA: Event.Value = Encoding.ASCII.GetString(CardData.Value); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\0", string.Empty); } break; // case NET_DATA_TYPE_CHINA: RChinaCardByte ChinaCardData = (RChinaCardByte)ByteToStruct(CardData.Value, typeof(RChinaCardByte)); RChinaCard ChinaCard = GetChinaCard(ChinaCardData); if (!string.IsNullOrEmpty(ChinaCard.Name)) { Event.Value = ChinaCard.Name + " " + ChinaCard.Card; } //if (ChinaCardData.HasImage == 0x01) // SaveEmpwltPhotoBytes(ChinaCard.Card , ChinaCardData.Photo); break; case NET_DATA_TYPE_PIN: Event.Value = Convert.ToString(CardData.Value); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", "").Replace("\r", "").Replace("\0", ""); } break; case NET_DATA_TYPE_FINGER: case NET_DATA_TYPE_BIGDATA: int len = BufferRX[5] * 256 + BufferRX[6] - (6 + 10 + 1 + 1 + 4 + 1 + 16 + 4); // clear head byte[] vdata = new byte[len]; Array.Copy(CardData.Value, 0, vdata, 0, len); Event.Value = BitConverter.ToString(vdata).Replace("-", " "); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\0", string.Empty); } break; // case NET_DATA_TYPE_BASE64: CardData.Value[Valuelen] = 0; Event.Value = Encoding.ASCII.GetString(CardData.Value, 0, Valuelen); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\0", string.Empty); } break; // case NET_DATA_TYPE_RFID: Event.Value = bytesToHexString(CardData.Value); if (!string.IsNullOrEmpty(Event.Value)) { Event.Value = Event.Value.Trim().Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\0", string.Empty); } break; // } Event.Online = true; Event.EType = 1; Ack = true; vopenDoor = 0; byte relay = Event.Reader; OnEventHandler(Event, ref time, ref card, ref voice, ref name, ref note, ref etime, ref relay, ref vopenDoor, ref Ack); if (Ack) { AnsEvent(0x54, relay, vopenDoor, time, Event.Reader, 5, card, voice, name, note, etime); } }