Esempio n. 1
0
        /****************************************************************************************************************************
         * FunctionName:GetTemplateFromDat
         * Parameters In:DataBuf
         * Parameters Out:Size,PIN,FingerID,Valid,Template
         * Return Value:void
         * Device Used:template.dat in TFT screen devices using 9.0 arithmetic
         * Function:To parse the bytes arrays from template.dat according to the class Template and get out the independent parameters
         * Explanation:To parse according to the max finger templage 602bytes
         * Auther:Darcy
         * Date:Oct.23, 2009
         *****************************************************************************************************************************/
        public void GetTemplateFromDat(byte[] DataBuf, out int Size, out int PIN, out int FingerID, out int Valid, out string Template)
        {
            byte[] TemplateBuf = new byte[602];

            Templates9 tmp = new Templates9();

            tmp = (Templates9)Raw.RawDeserialize(DataBuf, typeof(Templates9));

            Size     = tmp.Size;
            PIN      = tmp.PIN;
            FingerID = tmp.FingerID;
            Valid    = tmp.Valid;

            Array.Copy(DataBuf, 6, TemplateBuf, 0, 602);
            Template = BitConverter.ToString(TemplateBuf).Replace("-", "");//Str to Hex
        }
Esempio n. 2
0
        /****************************************************************************************************************************
         * FunctionName: GetFaceFromDat
         * Parameters In:DataBuf
         * Parameters Out: Size,PIN,FaceID,Valid,Reserve,ActiveTime,VfCount,Face
         * Return Value:void
         * Device Used:devices supporting faces registering
         * Function:To parse the bytes arrays from ssrface.dat according to the class FaceTmp and get out the independent parameters
         * Auther:Darcy
         * Date:Oct.23, 2009
         *****************************************************************************************************************************/
        public void GetFaceFromDat(byte[] DataBuf, out int Size, out int PIN, out int FaceID, out int Valid,
                                   out int Reserve, out int ActiveTime, out int VfCount, out string Face)
        {
            byte[] FaceBuf = new byte[2560];

            FaceTmp face = new FaceTmp();

            face = (FaceTmp)Raw.RawDeserialize(DataBuf, typeof(FaceTmp));

            Size       = face.Size;
            PIN        = face.PIN;
            FaceID     = face.FaceID;
            Valid      = face.Valid;
            Reserve    = face.Reserve;
            ActiveTime = (int)face.ActiveTime;
            VfCount    = (int)face.VfCount;

            Array.Copy(DataBuf, 16, FaceBuf, 0, 2560);
            Face = BitConverter.ToString(FaceBuf).Replace("-", "");//Str to Hex
        }
Esempio n. 3
0
        /****************************************************************************************************************************
         * FunctionName:SetSSRUserInfoToDat
         * Parameters In:PIN,Privilege,Password,Name,Card,Group,TimeZones(string),PIN2(string)
         * Parameters Out:DataBuf
         * Return Value:void
         * Device Used:user.dat in TFT screen Device
         * Function:To convert the independent parameters to bytes arrays DataBuf according to the class SSR_User
         * Auther:Darcy
         * Date:Oct.23, 2009
         *****************************************************************************************************************************/
        public void SetSSRUserInfoToDat(out byte[] DataBuf, int PIN, int Privilege, string Password,
                                        string Name, int Card, int Group, string TimeZones, string PIN2)
        {
            DataBuf = new byte[72];
            byte[] PasswordBuf  = new byte[8];
            byte[] NameBuf      = new byte[24];
            byte[] CardBuf      = new byte[4];
            byte[] TimeZonesBuf = new byte[8];
            byte[] PIN2Buf      = new byte[24];

            SSR_User ssruser = new SSR_User();

            ssruser.PIN       = (ushort)PIN;
            ssruser.Privilege = (byte)Privilege;

            PasswordBuf = System.Text.Encoding.Default.GetBytes(Password);
            Array.Copy(PasswordBuf, ssruser.Password, 8);

            NameBuf = System.Text.Encoding.Default.GetBytes(Name);
            Array.Copy(NameBuf, ssruser.Name, 24);

            CardBuf = BitConverter.GetBytes(Card);
            Array.Copy(CardBuf, ssruser.Card, 4);

            ssruser.Group = (byte)Group;

            TimeZonesBuf         = System.Text.Encoding.Default.GetBytes(TimeZones);
            ssruser.TimeZones[0] = (ushort)TimeZonesBuf[0]; //whether to use timezones or not (0 stands for yes,1 stands for defining by yourself)
            ssruser.TimeZones[1] = (ushort)TimeZonesBuf[1]; //(if you use the timezones)timezoune1
            ssruser.TimeZones[2] = (ushort)TimeZonesBuf[2]; //timezone2
            ssruser.TimeZones[3] = (ushort)TimeZonesBuf[3]; //timezone3

            PIN2Buf = System.Text.Encoding.Default.GetBytes(PIN2);
            Array.Copy(PIN2Buf, ssruser.PIN2, 24);

            Array.Copy(Raw.RawSerialize(ssruser), DataBuf, 72);
        }
Esempio n. 4
0
        /****************************************************************************************************************************
         * FunctionName: SetFaceToDat
         * Parameters In:Size,PIN,FaceID,Valid,Reserve,ActiveTime,VfCount,Face
         * Parameters Out:DataBuf
         * Return Value:void
         * Device Used:devices supporting faces registering
         * Function:To convert the independent parameters to bytes arrays DataBuf according to the class Template
         * Auther:Darcy
         * Date:Oct.23, 2009
         *****************************************************************************************************************************/
        public void SetFaceToDat(out byte[] DataBuf, int Size, int PIN, int FaceID, int Valid, int Reserve, int ActiveTime, int VfCount, string Face)
        {
            DataBuf = new byte[2576];
            byte[] FaceBuf = new byte[2560];

            FaceTmp face = new FaceTmp();

            face.Size       = (ushort)Size;
            face.PIN        = (ushort)PIN;
            face.FaceID     = (byte)FaceID;
            face.Valid      = (byte)Valid;
            face.Reserve    = (ushort)Reserve;
            face.ActiveTime = (uint)ActiveTime;
            face.VfCount    = (uint)VfCount;

            Face = Face.Replace(" ", "");
            if (Face.Length <= 0)
            {
                Face = "";
            }
            byte[] FaceBytes = new byte[Face.Length / 2];
            for (int i = 0; i < Face.Length; i += 2)
            {
                if (!byte.TryParse(Face.Substring(i, 2), NumberStyles.HexNumber, null, out FaceBytes[i / 2]))
                {
                    FaceBytes[i / 2] = 0;
                }
            }
            string FaceFromHex = ASCIIEncoding.Default.GetString(FaceBytes);

            FaceBuf = System.Text.Encoding.Default.GetBytes(FaceFromHex);

            Array.Copy(FaceBuf, face.Face, FaceFromHex.Length);

            Array.Copy(Raw.RawSerialize(face), DataBuf, 2576);
        }