Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        override public object ConvertToObject(byte[] bytes)
        {
            if (bytes == null)
            {
                throw new ArgumentNullException("bytes");
            }

            if (bytes.Length < 8)
            {
                throw new ArgumentException("xgdatatime bytes length must >= 8");
            }

            //BCDConverter c = new BCDConverter();
            int year   = (int)BCDConverter.BCDToDEC(bytes[YEAR_POS]);
            int month  = (int)BCDConverter.BCDToDEC(bytes[MONTH_POS]);
            int day    = (int)BCDConverter.BCDToDEC(bytes[DAY_POS]);
            int hour   = (int)BCDConverter.BCDToDEC(bytes[HOUR_POS]);
            int minute = (int)BCDConverter.BCDToDEC(bytes[MINUTE_POS]);
            int second = (int)BCDConverter.BCDToDEC(bytes[SECOND_POS]);

            year += 2000;
            return(new DateTime(year, month, day, hour, minute, second));

            //byte[] cardIdDatas = new byte[ CARD_ID_DATA_LENGTH ];
            //Array.Copy( datas, CARD_ID_BEGIN_POS, cardIdDatas, 0, CARD_ID_DATA_LENGTH );
            //string cardId = MakeCardId( cardIdDatas );
            //return new Record( year, month, day, hour, minute, second, cardId );
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        override public byte[] ConvertToBytes(object obj)
        {
            TimeSpan ts = (TimeSpan)obj;
            byte     s  = (byte)BCDConverter.DECToBCD(ts.Seconds);
            byte     m  = (byte)BCDConverter.DECToBCD(ts.Minutes);
            byte     h  = (byte)BCDConverter.DECToBCD(ts.Hours);

            return(new byte[] { s, m, h });
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        override public object ConvertToObject(byte[] bytes)
        {
            if (bytes == null || bytes.Length < 3)
            {
                throw new ArgumentException("bytes.Length must >= 3");
            }
            byte s = (byte)BCDConverter.BCDToDEC(bytes[0]);
            byte m = (byte)BCDConverter.BCDToDEC(bytes[1]);
            byte h = (byte)BCDConverter.BCDToDEC(bytes[2]);

            return(new TimeSpan(h, m, s));
        }
Exemple #4
0
        public void bcdconvert_bcd4byteconvert_byte_count_property()
        {
            BCDConverter c = new BCDConverter();
            BCD4ByteConverter c4 = new BCD4ByteConverter();

            BCDConverter pt = c;
            Assert.AreEqual(1, pt.ByteCount);
            pt = c4;
            //pt.ByteCount = 2;
            Assert.AreEqual(4, pt.ByteCount);
            Assert.AreEqual(4, c4.ByteCount);
        }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        override public byte[] ConvertToBytes(object obj)
        {
            DateTime dt   = (DateTime)obj;
            byte     d    = (byte)BCDConverter.DECToBCD((byte)dt.Day);
            byte     m    = (byte)BCDConverter.DECToBCD((byte)dt.Month);
            int      year = dt.Year;

            year %= 100;

            byte y = (byte)BCDConverter.DECToBCD((byte)year);

            return(new byte[] { d, m, y });
        }
Exemple #6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public byte[] ConvertToBytes(object obj)
 {
     BCDConverter c = new BCDConverter();
     DateTime dt = Convert.ToDateTime(obj);
     byte[] bs = new byte[8];
     int y = dt.Year % 100;
     bs[YEAR_POS] = c.ConvertToBytes(y)[0];
     bs[MONTH_POS] = c.ConvertToBytes(dt.Month)[0];
     bs[DAY_POS] = c.ConvertToBytes(dt.Day)[0];
     bs[HOUR_POS] = c.ConvertToBytes(dt.Hour)[0];
     bs[MINUTE_POS] = c.ConvertToBytes(dt.Minute)[0];
     bs[SECOND_POS ]=c.ConvertToBytes(dt.Second)[0];
     return bs;
 }
Exemple #7
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public override byte[] ConvertToBytes(object obj)
 {
     BCDConverter c = new BCDConverter();
     DateTime dt = Convert.ToDateTime(obj);
     byte[] bs = new byte[8];
     int y = dt.Year % 100;
     bs[YEAR_POS]    = (byte)BCDConverter.DECToBCD(y);
     bs[MONTH_POS]   = (byte)BCDConverter.DECToBCD(dt.Month);
     bs[DAY_POS]     = (byte)BCDConverter.DECToBCD(dt.Day);
     bs[HOUR_POS]    = (byte)BCDConverter.DECToBCD(dt.Hour);
     bs[MINUTE_POS]  = (byte)BCDConverter.DECToBCD(dt.Minute);
     bs[SECOND_POS ] = (byte)BCDConverter.DECToBCD(dt.Second);
     return bs;
 }
Exemple #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        override public object ConvertToObject(byte[] bytes)
        {
            if (bytes == null || bytes.Length < 3)
            {
                throw new ArgumentException("bytes.Length must >= 3");
            }
            byte d    = (byte)BCDConverter.BCDToDEC(bytes[0]);
            byte m    = (byte)BCDConverter.BCDToDEC(bytes[1]);
            byte y    = (byte)BCDConverter.BCDToDEC(bytes[2]);
            int  year = 2000 + y;

            Console.WriteLine("{0}-{1}-{2}", year, m, d);

            return(new DateTime(year, m, d));
        }
Exemple #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        override public byte[] ConvertToBytes(object obj)
        {
            BCDConverter c  = new BCDConverter();
            DateTime     dt = Convert.ToDateTime(obj);

            byte[] bs = new byte[8];
            int    y  = dt.Year % 100;

            bs[YEAR_POS]   = (byte)BCDConverter.DECToBCD(y);
            bs[MONTH_POS]  = (byte)BCDConverter.DECToBCD(dt.Month);
            bs[DAY_POS]    = (byte)BCDConverter.DECToBCD(dt.Day);
            bs[HOUR_POS]   = (byte)BCDConverter.DECToBCD(dt.Hour);
            bs[MINUTE_POS] = (byte)BCDConverter.DECToBCD(dt.Minute);
            bs[SECOND_POS] = (byte)BCDConverter.DECToBCD(dt.Second);
            return(bs);
        }
Exemple #10
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public object ConvertToObject(byte[] bytes)
        {
            if (bytes == null)
                throw new ArgumentNullException("bytes");

            if (bytes.Length < 8)
                throw new ArgumentException("xgdatatime bytes length must >= 8");

            BCDConverter c = new BCDConverter();
            int year   = (int)c.ConvertToObject( bytes[ YEAR_POS   ] );
            int month  = (int)c.ConvertToObject( bytes[ MONTH_POS  ] );
            int day    = (int)c.ConvertToObject( bytes[ DAY_POS    ] );
            int hour   = (int)c.ConvertToObject( bytes[ HOUR_POS   ] );
            int minute = (int)c.ConvertToObject( bytes[ MINUTE_POS ] );
            int second = (int)c.ConvertToObject( bytes[ SECOND_POS ] );
            year += 2000;
            return new DateTime(year, month, day, hour, minute, second);

            //byte[] cardIdDatas = new byte[ CARD_ID_DATA_LENGTH ];
            //Array.Copy( datas, CARD_ID_BEGIN_POS, cardIdDatas, 0, CARD_ID_DATA_LENGTH );
            //string cardId = MakeCardId( cardIdDatas );
            //return new Record( year, month, day, hour, minute, second, cardId );
        }