public byte[] Block2(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; if (WriteCardDetails.Options == 0) //Set down from 16 { for (int i = 0; i < 15; i++) { if (WriteCardDetails.VehicleLicenceType[i] > 0) { temp[i] = (byte)WriteCardDetails.VehicleLicenceType[i]; } else { temp[i] = (byte)0; } //(byte)(RFIDCardInfoRead.Vehicle_Type)Enum.Parse(typeof(RFIDCardInfoRead.Vehicle_Type), WriteCardDetails.VehicleLicenceType[i]); } } else { for (int i = 0; i < 15; i++) //Set down from 16 { temp[i] = (byte)0; } } temp[15] = Convert.ToByte(1); //Check byte - last column return(temp); }
public byte[] Block17_31_VehicleNames(CardDetails WriteCardDetails, int index) { int end_nr = index; byte[] temp = new byte[16]; if (index >= 9) { index = index - 3; } if (WriteCardDetails.VehicleNames[index] != null) { for (int i = WriteCardDetails.VehicleNames[index].Length; i < 16; i++) { WriteCardDetails.VehicleNames[index] = WriteCardDetails.VehicleNames[index] + " "; } temp = ASCIIEncoding.ASCII.GetBytes(WriteCardDetails.VehicleNames[index]); temp[15] = Convert.ToByte(12 + end_nr); //Check byte - last column return(temp); } else { for (int i = 0; i < 15; i++) { temp[i] = 0; } } temp[15] = Convert.ToByte(12 + end_nr); //Check byte - last column return(temp); }
public byte[] Block5(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; if (WriteCardDetails.Options == 1) { byte[] ViDsplit2 = BitConverter.GetBytes(WriteCardDetails.VID[7]); temp[0] = ViDsplit2[0]; for (int i = 1; i < 8; i++) { if (WriteCardDetails.VID[i] != 0) { byte[] ViDsplit = BitConverter.GetBytes(WriteCardDetails.VID[i + 7]); temp[i * 2 - 1] = ViDsplit[1]; temp[i * 2] = ViDsplit[0]; } } } else { for (int i = 0; i < 16; i++) { temp[i] = (byte)0; } } temp[15] = Convert.ToByte(4); //Check byte - last column return(temp); }
public byte[] Block1(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; //temp[0] = (byte)(RFIDCardInfoRead.AccessLevel_enum)Enum.Parse(typeof(RFIDCardInfoRead.AccessLevel_enum), WriteCardDetails.AccessLevel); temp[0] = Convert.ToByte(WriteCardDetails.AccessLevel); if (WriteCardDetails.Warning_Date.Year > 1000) { temp[1] = Convert.ToByte(WriteCardDetails.Warning_Date.Year.ToString().Remove(0, 2), 16); temp[2] = Convert.ToByte(WriteCardDetails.Warning_Date.Month.ToString(), 16); temp[3] = Convert.ToByte(WriteCardDetails.Warning_Date.Day.ToString(), 16); } else { temp[1] = 0; temp[2] = 0; temp[3] = 0; } if (WriteCardDetails.Expiry_Date.Year > 1000) { temp[4] = Convert.ToByte(WriteCardDetails.Expiry_Date.Year.ToString().Remove(0, 2), 16); temp[5] = Convert.ToByte(WriteCardDetails.Expiry_Date.Month.ToString(), 16); temp[6] = Convert.ToByte(WriteCardDetails.Expiry_Date.Day.ToString(), 16); } else { temp[4] = 0; temp[5] = 0; temp[6] = 0; } byte[] clientG = new byte[2]; clientG = BitConverter.GetBytes(WriteCardDetails.Client_Group); temp[7] = clientG[1]; temp[8] = clientG[0]; byte[] clientC = new byte[2]; clientC = BitConverter.GetBytes(WriteCardDetails.Client_Site); temp[9] = clientC[1]; temp[10] = clientC[0]; //ToDo: add cliient site here to write // temp[10] = 2; byte[] OperationS = new byte[4]; OperationS = BitConverter.GetBytes(WriteCardDetails.OperationalArea); temp[11] = OperationS[1]; temp[12] = OperationS[0]; //temp[11] = Convert.ToByte(WriteCardDetails.OpperationalArea); //ToDo: add operational bit here to write temp[13] = Convert.ToByte(WriteCardDetails.ByPassBits); temp[14] = Convert.ToByte(WriteCardDetails.Options); temp[15] = Convert.ToByte(0); //Check byte - last column return(temp); }
public void App_datareset() { VMCardDetails = new CardDetails(); CardRead_Done = false; NavigationBar_Active = false; NewCardAccess_Active = LicenceView_Active = NewCardDetail_Active = NewCardVID_Active = NewCardVNames_Active = NewCardGroup_Active = NewCardType_Active = NewIssuerPresent_Active = NewCardIssuer_Active = AdvancedMenu_Active = MenuView_Active = false; EditCard = false; NewMernokCard = false; NewCardWindow = 0; }
public byte[] Blank_Block_Temp_3(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; for (int i = 0; i < 15; i++) { temp[i] = 0; } temp[15] = Convert.ToByte(20); return(temp); }
public byte[] Block31_OperatorSurname(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; for (int i = WriteCardDetails.OperatorSurname.Length; i < 16; i++) { WriteCardDetails.OperatorSurname = WriteCardDetails.OperatorSurname + " "; } temp = ASCIIEncoding.ASCII.GetBytes(WriteCardDetails.OperatorSurname); temp[15] = Convert.ToByte(30); return(temp); }
public byte[] Block10(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; for (int i = 0; i < 15; i++) { temp[i] = WriteCardDetails.VehicleGroup[i]; } temp[15] = Convert.ToByte(9); //Check byte - last column return(temp); }
public byte[] Block12(CardDetails WriteCardDetails) // New info { byte[] temp = new byte[16]; for (int i = WriteCardDetails.OperatorID.Length; i < 16; i++) { WriteCardDetails.OperatorID = WriteCardDetails.OperatorID + " "; } temp = ASCIIEncoding.ASCII.GetBytes(WriteCardDetails.OperatorID); temp[15] = Convert.ToByte(11); //Check byte - last column return(temp); }
public byte[] Block8(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; for (int i = WriteCardDetails.EngineerName.Length; i < 16; i++) { WriteCardDetails.EngineerName = WriteCardDetails.EngineerName + " "; } temp = ASCIIEncoding.ASCII.GetBytes(WriteCardDetails.EngineerName); temp[15] = Convert.ToByte(7); //Check byte - last column return(temp); }
public void MenuButton() { if (LicenceView_Active) { EditCard = true; EditCardUID = cardInfoRead.cardDetails.cardUID; CopiedVMCardDetails = cardInfoRead.cardDetails; LicenceView_Active = false; NewCardAccess_Active = true; NewCardWindow = 0; } }
public byte[] Block9(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; if (WriteCardDetails.HotFlagedDate.Year > 1000) { temp[0] = Convert.ToByte(WriteCardDetails.HotFlagedDate.Year.ToString().Remove(0, 2), 16); } else { temp[0] = 0; } temp[1] = Convert.ToByte(WriteCardDetails.HotFlagedDate.Month.ToString(), 16); temp[2] = Convert.ToByte(WriteCardDetails.HotFlagedDate.Day.ToString(), 16); byte[] UIDsplit = BitConverter.GetBytes(WriteCardDetails.HotFlagedVID); temp[3] = UIDsplit[1]; temp[4] = UIDsplit[0]; temp[5] = Convert.ToByte(WriteCardDetails.Hotflaged_status); if (WriteCardDetails.Training_Warn_Date.Year > 1000) { temp[8] = Convert.ToByte(WriteCardDetails.Training_Warn_Date.Year.ToString().Remove(0, 2), 16); } else { temp[8] = 0; } temp[9] = Convert.ToByte(WriteCardDetails.Training_Warn_Date.Month.ToString(), 16); temp[10] = Convert.ToByte(WriteCardDetails.Training_Warn_Date.Day.ToString(), 16); if (WriteCardDetails.Training_Exp_Date.Year > 1000) { temp[11] = Convert.ToByte(WriteCardDetails.Training_Exp_Date.Year.ToString().Remove(0, 2), 16); } else { temp[11] = 0; } temp[12] = Convert.ToByte(WriteCardDetails.Training_Exp_Date.Month.ToString(), 16); temp[13] = Convert.ToByte(WriteCardDetails.Training_Exp_Date.Day.ToString(), 16); temp[15] = Convert.ToByte(8); //Check byte - last column return(temp); }
public byte[] Block11(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; temp[0] = Convert.ToByte(WriteCardDetails.ProductCode); if (WriteCardDetails.Medical_Date.Year > 1000) { temp[1] = Convert.ToByte(WriteCardDetails.Medical_Date.Year.ToString().Remove(0, 2), 16); } else { temp[1] = 0; } temp[2] = Convert.ToByte(WriteCardDetails.Medical_Date.Month.ToString(), 16); temp[3] = Convert.ToByte(WriteCardDetails.Medical_Date.Day.ToString(), 16); if (WriteCardDetails.Medical_Warn_Date.Year > 1000) { temp[4] = Convert.ToByte(WriteCardDetails.Medical_Warn_Date.Year.ToString().Remove(0, 2), 16); } else { temp[4] = 0; } temp[5] = Convert.ToByte(WriteCardDetails.Medical_Warn_Date.Month.ToString(), 16); temp[6] = Convert.ToByte(WriteCardDetails.Medical_Warn_Date.Day.ToString(), 16); if (WriteCardDetails.Medical_Exp_Date.Year > 1000) { temp[7] = Convert.ToByte(WriteCardDetails.Medical_Exp_Date.Year.ToString().Remove(0, 2), 16); } else { temp[7] = 0; } temp[8] = Convert.ToByte(WriteCardDetails.Medical_Exp_Date.Month.ToString(), 16); temp[9] = Convert.ToByte(WriteCardDetails.Medical_Exp_Date.Day.ToString(), 16); temp[15] = Convert.ToByte(10); //Check byte - last column return(temp); }
public byte[] Block7(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; byte[] UIDsplit = BitConverter.GetBytes(WriteCardDetails.IssuerUID); temp[0] = UIDsplit[0]; temp[1] = UIDsplit[1]; temp[2] = UIDsplit[2]; temp[3] = UIDsplit[3]; if (WriteCardDetails.Training_Date.Year > 1000) { temp[4] = Convert.ToByte(WriteCardDetails.Training_Date.Year.ToString().Remove(0, 2), 16); } else { temp[4] = 0; } temp[5] = Convert.ToByte(WriteCardDetails.Training_Date.Month.ToString(), 16); temp[6] = Convert.ToByte(WriteCardDetails.Training_Date.Day.ToString(), 16); if (WriteCardDetails.Issue_Date.Year > 1000) { temp[7] = Convert.ToByte(WriteCardDetails.Issue_Date.Year.ToString().Remove(0, 2), 16); } else { temp[7] = 0; } temp[8] = Convert.ToByte(WriteCardDetails.Issue_Date.Month.ToString(), 16); temp[9] = Convert.ToByte(WriteCardDetails.Issue_Date.Day.ToString(), 16); UIDsplit = BitConverter.GetBytes(WriteCardDetails.EngineerUID); temp[10] = UIDsplit[0]; temp[11] = UIDsplit[1]; temp[12] = UIDsplit[2]; temp[13] = UIDsplit[3]; temp[15] = Convert.ToByte(6); //Check byte - last column return(temp); }
public byte[] Block32_Dover(CardDetails WriteCardDetails) { byte[] temp = new byte[16]; if (WriteCardDetails.Dover_Date.Year > 1000) { temp[0] = Convert.ToByte(WriteCardDetails.Dover_Date.Year.ToString().Remove(0, 2), 16); } else { temp[0] = 0; } temp[1] = Convert.ToByte(WriteCardDetails.Dover_Date.Month.ToString(), 16); temp[2] = Convert.ToByte(WriteCardDetails.Dover_Date.Day.ToString(), 16); if (WriteCardDetails.Dover_Warn_Date.Year > 1000) { temp[3] = Convert.ToByte(WriteCardDetails.Dover_Warn_Date.Year.ToString().Remove(0, 2), 16); } else { temp[3] = 0; } temp[4] = Convert.ToByte(WriteCardDetails.Dover_Warn_Date.Month.ToString(), 16); temp[5] = Convert.ToByte(WriteCardDetails.Dover_Warn_Date.Day.ToString(), 16); if (WriteCardDetails.Dover_Exp_Date.Year > 1000) { temp[6] = Convert.ToByte(WriteCardDetails.Dover_Exp_Date.Year.ToString().Remove(0, 2), 16); } else { temp[6] = 0; } temp[7] = Convert.ToByte(WriteCardDetails.Dover_Exp_Date.Month.ToString(), 16); temp[8] = Convert.ToByte(WriteCardDetails.Dover_Exp_Date.Day.ToString(), 16); temp[15] = Convert.ToByte(31); return(temp); }
public override void Update(ViewModelReturnData VMReturnData) { //Only update this view if visible if (VMReturnData.AdvancedMenu_Active) { VMReturnData.OptionsPressed = true; this.View.Visibility = Visibility.Visible; if (_HotflagBtnPressed) { CardDetails WriteCardDetails = new CardDetails() { Hotflaged_status = true, HotFlagedDate = DateTime.Now, HotFlagedVID = 123 }; RFIDCardInfoWrite rFIDCardInfoWrite = new RFIDCardInfoWrite(); _HotflagBtnPressed = false; byte[] temp = rFIDCardInfoWrite.Block9(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, WriteCardDetails.Block9_Addr, temp)) { } VMReturnData.CardProramed_done = true; VMReturnData.App_datareset(); } if (_mernokcardBtnPressed) { _mernokcardBtnPressed = false; VMReturnData.MernokCardPresent_active = true; VMReturnData.NewMernokCard = true; } if (_FormatbtnPressed) { _FormatbtnPressed = false; RFIDCardInfoWrite rFIDCardInfoWrite = new RFIDCardInfoWrite(); CardDetails WriteCardDetails = new CardDetails() { cardUID = 0, AccessLevel = 0, ByPassBits = 0, Client_Group = 0, Client_Site = 0, EngineerName = "", EngineerUID = 0, Expiry_Date = DateTime.MinValue, HotFlagedDate = DateTime.MinValue, HotFlagedVID = 0, Hotflaged_status = false, IssuerUID = 0, Issue_Date = DateTime.MinValue, OperationalArea = 0, OperatorName = "", Options = 0, ProductCode = 0, Training_Date = DateTime.MinValue, VehicleGroup = Enumerable.Repeat((byte)0, 16).ToArray(), VID = Enumerable.Repeat((UInt16)0, 16).ToArray(), VehicleNames = Enumerable.Repeat("", 16).ToArray(), VehicleLicenceType = Enumerable.Repeat((uint)0, 32).ToArray(), Warning_Date = DateTime.MinValue }; rFIDCardInfoWrite.WriteInfoToCard(WriteCardDetails, VMReturnData.CardType); VMReturnData.CardProramed_done = true; VMReturnData.App_datareset(); } #region Exit button else if (_buttonExitPressed) { _buttonExitPressed = false; VMReturnData.AdvancedMenu_Active = false; } #endregion } else { VMReturnData.OptionsPressed = false; this.View.Visibility = Visibility.Collapsed; } }
public int WriteInfoToCard(CardDetails WriteCardDetails, int CardType) { // byte[] key = { (byte)'S', 0, 2, 1, 3, 7, 255, 07, 128, 105, 255, 255, 255, 255, 255, 255}; // if (MernokRFID_interface.MiFair_Store_Access_Key(0x0A, key)){ // } byte[] temp = new byte[16]; temp = Block1(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block1_Addr, temp)) { temp = Block2(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block2_Addr, temp)) { temp = Block3(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block3_Addr, temp)) { temp = Block4(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block4_Addr, temp)) { temp = Block5(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block5_Addr, temp)) { temp = Block6(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block6_Addr, temp)) { temp = Block7(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block7_Addr, temp)) { temp = Block8(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block8_Addr, temp)) { temp = Block9(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block9_Addr, temp)) { temp = Block10(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block10_Addr, temp)) { temp = Block11(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block11_Addr, temp)) { temp = Block12(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block12_Addr, temp)) { if (CardType == 1 || CardType == 4) { for (int i = 0; i < 3; i++) { temp = Block17_31_VehicleNames(WriteCardDetails, i); if (temp != null) { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_1_Addr + i, temp); } else { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_1_Addr + i, Encoding.ASCII.GetBytes("")); } } for (int i = 0; i < 3; i++) { temp = Block17_31_VehicleNames(WriteCardDetails, i + 3); if (temp != null) { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_2_Addr + i, temp); } else { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_2_Addr + i, Encoding.ASCII.GetBytes("")); } } } if (CardType == 4) { for (int i = 0; i < 3; i++) { temp = Block17_31_VehicleNames(WriteCardDetails, i + 9); if (temp != null) { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_3_Addr + i, temp); } else { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_3_Addr + i, Encoding.ASCII.GetBytes("")); } } for (int i = 0; i < 3; i++) { temp = Block17_31_VehicleNames(WriteCardDetails, i + 12); if (temp != null) { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_4_Addr + i, temp); } else { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_4_Addr + i, Encoding.ASCII.GetBytes("")); } } for (int i = 0; i < 3; i++) { temp = Block17_31_VehicleNames(WriteCardDetails, i + 15); if (temp != null) { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_5_Addr + i, temp); } else { MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block17_5_Addr + i, Encoding.ASCII.GetBytes("")); } } } temp = Block31_OperatorSurname(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block18_Addr, temp)) { temp = Block32_Dover(WriteCardDetails); if (MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, cardDetailsW.Block19_Addr, temp)) { temp = Blank_Block_Temp_1(WriteCardDetails); MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, 60, temp); temp = Blank_Block_Temp_2(WriteCardDetails); MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, 61, temp); temp = Blank_Block_Temp_3(WriteCardDetails); MernokRFID_interface.Mifare_Write_Block(Mifare_key.A, 0, 62, temp); return(100); } else { return(14); } } else { return(13); } } else { return(12); } } else { return(11); } //MessageBox.Show("Card Successfullly Programed"); } else { return(10); } //MessageBox.Show("Card Programeing failed at block 10"); } else { return(9); } //MessageBox.Show("Card Programeing failed at block 9"); } else { return(8); } //MessageBox.Show("Card Programeing failed at block 8"); } else { return(7); } //MessageBox.Show("Card Programeing failed at block 7"); } else { return(6); } // MessageBox.Show("Card Programeing failed at block 6"); } else { return(5); } // MessageBox.Show("Card Programeing failed at block 5"); } else { return(4); } //MessageBox.Show("Card Programeing failed at block 4"); } else { return(2); } //MessageBox.Show("Card Programeing failed at block 2"); } else { return(1); } //MessageBox.Show("Card Programeing failed at block 1"); } return(0); }