Example #1
0
        public void Test_chip_layout_2()
        {
            LogicChip chip = new LogicChip();

            chip.NewElement(ElementOID.PII, "123456789012").WillLock = true;
            chip.NewElement(ElementOID.SetInformation, "1203");
            chip.NewElement(ElementOID.ShelfLocation, "QA268.L55");
            chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu").WillLock = true;
            Debug.Write(chip.ToString());

            var result = chip.GetBytes(4 * 9,
                                       4,
                                       GetBytesStyle.None,
                                       out string block_map);
            string result_string = Element.GetHexString(result, "4");

            byte[] correct = Element.FromHexString(
                @"91 00 05 1c
be 99 1a 14
02 01 d0 14
02 04 b3 46
07 44 1c b6
e2 e3 35 d6
83 02 07 ac
c0 9e ba a0
6f 6b 00 00"
                );
            Assert.IsTrue(result.SequenceEqual(correct));

            Assert.AreEqual(block_map, "ww....www");
        }
Example #2
0
        public void Test_chip2_layout_1()
        {
            LogicChip chip = new LogicChip();

            chip.NewElement(ElementOID.PII, "B123456");
            chip.NewElement(ElementOID.OMF, "BA");
            Debug.Write(chip.ToString());

            var result = chip.GetBytes(4 * 28,
                                       4,
                                       GetBytesStyle.None,
                                       out string block_map);
            string result_string = Element.GetHexString(result, "4");

            Debug.Write(chip.ToString());
        }
Example #3
0
        public void Test_chip_layout_1()
        {
            byte[] data = Element.FromHexString(
                @"91 00 05 1c
be 99 1a 14
02 01 d0 14
02 04 b3 46
07 44 1c b6
e2 e3 35 d6
83 02 07 ac
c0 9e ba a0
6f 6b 00 00"
                );


            LogicChip chip = LogicChip.From(data, 4, "ll....lll");

            Debug.Write(chip.ToString());

            chip.Elements[0].SetLocked(true);
            chip.Elements[4].SetLocked(true);

            chip.SetIsNew(false);
            chip.Sort(4 * 9, 4, true);

            Assert.IsTrue(chip.Elements[0].OID == ElementOID.PrimaryItemIdentifier);
            Assert.IsTrue(chip.Elements[1].OID == ElementOID.ContentParameter);
            Assert.IsTrue(chip.Elements[2].OID == ElementOID.SetInformation);
            Assert.IsTrue(chip.Elements[3].OID == ElementOID.ShelfLocation);
            Assert.IsTrue(chip.Elements[4].OID == ElementOID.OwnerInstitution);
        }
Example #4
0
        public void Test_chip_example_from()
        {
            byte[] data = Element.FromHexString(
                @"91 00 05 1c
be 99 1a 14
02 01 d0 14
02 04 b3 46
07 44 1c b6
e2 e3 35 d6
83 02 07 ac
c0 9e ba a0
6f 6b 00 00"
                );


            LogicChip chip = LogicChip.From(data, 4, "ll....lll");

            Debug.Write(chip.ToString());

            Assert.AreEqual(chip.FindElement(ElementOID.PrimaryItemIdentifier).Text,
                            "123456789012");
            Assert.AreEqual(chip.FindElement(ElementOID.SetInformation).Text,
                            "1203");
            Assert.AreEqual(chip.FindElement(ElementOID.ShelfLocation).Text,
                            "QA268.L55");
            Assert.AreEqual(chip.FindElement(ElementOID.OwnerInstitution).Text,
                            "US-InU-Mu");
        }
Example #5
0
File: TestUHF.cs Project: zgren/dp2
        public void Test_encode_mb11_1()
        {
            LogicChip chip = new LogicChip();

            chip.NewElement(ElementOID.SetInformation, "1203");
            chip.NewElement(ElementOID.ShelfLocation, "QA268.L55");
            chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu").CompactMethod = CompactionScheme.SevenBitCode;    // 如果让 GetBytes() 自动选择压缩方案,这个元素会被选择 ISIL 压缩方案
            Debug.Write(chip.ToString());

            var result = chip.GetBytes(4 * 9,
                                       4,
                                       GetBytesStyle.ReserveSequence,
                                       out string block_map);
            string result_string = Element.GetHexString(result, "4");

            byte[] correct = Element.FromHexString(
                @"02 01 D0 14 02
04B3 4607
441C b6E2
E335 D653
08AB 4D6C
9DD5 56CD
EB"
                );
            Assert.IsTrue(result.SequenceEqual(correct));

            // Assert.AreEqual(block_map, "ww....www");
        }
Example #6
0
        public void test_logicChip_7()
        {
            // ganchuang 2
            byte[]    data = ByteArray.GetTimeStampByteArray("91020312D68700000201B80300650110660100670100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #7
0
        public void test_logicChip_5()
        {
            //
            byte[]    data = ByteArray.GetTimeStampByteArray("C102071100B0C30C30C600000203A80008830203D6593F0000250110370210405F080599A713063F");
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #8
0
        public void test_logicChip_4()
        {
            // jiangxi jingyuan 2
            byte[]    data = ByteArray.GetTimeStampByteArray("11030AA9770000000000000000000000000000000000000000000000000000000000000000000000");
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #9
0
        public void Test_chip_complex_layout_2()
        {
            byte[] data = Element.FromHexString(
                @"91 00 05 1c
be 99 1a 14
02 05 d0 00
00 00 00 14
02 04 b3 46
07 44 1c b6
e2 e3 35 d6
83 02 07 ac
c0 9e ba a0
6f 6b 00 00"
                );


            LogicChip chip = LogicChip.From(data, 4, "ll.....lll");

            Debug.Write(chip.ToString());

            Assert.AreEqual(chip.FindElement(ElementOID.PrimaryItemIdentifier).Text,
                            "123456789012");
            Assert.AreEqual(chip.FindElement(ElementOID.SetInformation).Text,
                            "1203");
            Assert.AreEqual(chip.FindElement(ElementOID.ShelfLocation).Text,
                            "QA268.L55");
            Assert.AreEqual(chip.FindElement(ElementOID.OwnerInstitution).Text,
                            "US-InU-Mu");

            // 先固化为写入过的状态

            // 测试在后面继续加入新元素
            chip.NewElement(ElementOID.Title, "test").WillLock = true;
            var result = chip.GetBytes(4 * 20,
                                       4,
                                       GetBytesStyle.None,
                                       out string block_map);

            Debug.Write(chip.ToString());
            string result_string = Element.GetHexString(result, "4");

            // 以前的最后一个非锁定元素,跑到了以前最后的锁定元素后面。因为 Content Parameter 字段变长了,顶走了它
            Assert.AreEqual("ll.....lllww", block_map);
        }
Example #10
0
        public void test_logicChip_11()
        {
            // 汪总提供
            //
            string bytes = @"E102074535353536373200000201B8030C1B81E130103A1AC9AB4C48BF65011266010067010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000575F4F4B";

            byte[]    data = Element.FromHexString(bytes);
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #11
0
        public void test_errorParse_01()
        {
            /*
             * string bytes = @"29 15 56 C5
             * 2E 87 D2 47
             * 32 25 2E 54
             * D5 16 D4 14
             * 12 13 20 00
             * 00 00 00 00";
             */

            string bytes = @"E15663223E6C39411062767A637149542253E64A4608417B67610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";

            byte[]    data = Element.FromHexString(bytes);
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #12
0
        public void test_logicChip_10()
        {
            // liuxing
            // 暂时无法解析第二个元素
            string bytes = @"21 04 00 00 
61 0a 53 45
30 31 30 33
36 31 30 33
02 01 a0 03
0b 1b 81 e1
20 00 0a 01
ac a2 a6 5f
65 01 80 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
";

            byte[]    data = Element.FromHexString(bytes);
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #13
0
        public void Test_chip_layout_4()
        {
            LogicChip chip = new LogicChip();

            chip.NewElement(ElementOID.PII, "123456789012").WillLock = true;

            var result = chip.GetBytes(4 * 11,
                                       4,
                                       GetBytesStyle.None,
                                       out string block_map);

            Debug.Write(chip.ToString());

            string result_string = Element.GetHexString(result, "4");

            byte[] correct = Element.FromHexString(
                @"91 00 05 1c
be 99 1a 14"
                );
            Assert.IsTrue(result.SequenceEqual(correct));
            Assert.AreEqual(block_map, "ww");
        }
Example #14
0
        public void test_logicChip_8()
        {
            string bytes = @"E1 01 08 30 
31 30 30 31 
36 34 33 00 
82 00 01 A0 
E3 01 08 53 
4D 33 36 31 
30 30 31 00 
E5 00 01 32 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
31 30 00 00 
36 31 30 30 
00 00 33 34 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
";

            // wanghu 1
            byte[]    data = Element.FromHexString(bytes);
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #15
0
        public void test_logicChip_9()
        {
            // 数字平台
            string bytes = @"21 04 00 00 
00 1F 02 01 
30 65 01 10 
56 11 AA D9 
B3 45 CC 59 
31 5F 39 AB 
96 0B F6 69 
DD 95 9F 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
00 00 00 00 
";

            byte[]    data = Element.FromHexString(bytes);
            LogicChip chip = LogicChip.From(data, 4);

            Debug.Write(chip.ToString());
        }
Example #16
0
        public void Test_large_layout_1()
        {
            LogicChip chip = new LogicChip();

            chip.NewElement(ElementOID.PII, "1234567890");
            chip.NewElement(ElementOID.SetInformation, "1203");
            chip.NewElement(ElementOID.ShelfLocation, "QA268.L55");
            chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu");
            chip.NewElement(ElementOID.LocalDataA, "1234567890");
            chip.NewElement(ElementOID.LocalDataB, "1234567890");
            chip.NewElement(ElementOID.LocalDataC, "1234567890");
            chip.NewElement(ElementOID.Title, "1234567890 1234567890 1234567890");
            chip.NewElement(ElementOID.AOI, "1234567890");
            chip.NewElement(ElementOID.SOI, "1234567890");
            chip.NewElement(ElementOID.AIBI, "1234567890");

            Debug.Write(chip.ToString());

            var result = chip.GetBytes(4 * 28,
                                       4,
                                       GetBytesStyle.None,
                                       out string block_map);
        }
Example #17
0
        public void Test_setElementPos_1()
        {
            LogicChip chip = new LogicChip();

            SetContent(chip);
            chip.SetIsNew(false);
            chip.Sort(4 * 28,
                      4,
                      true);
            foreach (var element in chip.Elements)
            {
                int end = element.StartOffs + element.OriginData.Length;
                Assert.IsTrue(end < 4 * 28, "越过末尾");
            }

            // 转换为 bytes。然后重新解析
            var bytes = chip.GetBytes(4 * 28,
                                      4,
                                      GetBytesStyle.None,
                                      out string block_map);

            LogicChip chip1 = LogicChip.From(bytes, 4);

            Debug.Write(chip1.ToString());

            /*
             * List<OneArea> free_element_layout = new List<OneArea>();
             * List<int> free_segments = new List<int>();
             * List<object> anchor_list = new List<object>();
             *
             * chip.SetElementsPos(
             * 4 * 9,
             * free_element_layout,
             * free_segments,
             * anchor_list);
             */
        }