public static void setUpClass()
        {
            pc = new ParaClient("app:para", "xC2/S0vrq41lYlFliGmKfmuuQBe1ixf2DXbgzbCq0q6TIu6W66uH3g==");
            pc.setEndpoint("http://localhost:8080");
            pc2 = new ParaClient("app:para", null);
            pc2.setEndpoint("http://localhost:8080");
            if (pc.me() == null)
            {
                throw new Exception("Local Para server must be started before testing.");
            }

            u      = new ParaObject("111");
            u.name = "John Doe";
            u.tags = new List <string> {
                "one", "two", "three"
            };

            u1      = new ParaObject("222");
            u1.name = "Joe Black";
            u1.tags = new List <string> {
                "two", "four", "three"
            };

            u2      = new ParaObject("333");
            u2.name = "Ann Smith";
            u2.tags = new List <string> {
                "four", "five", "three"
            };

            t          = new ParaObject("tag:test", "tag");
            t["count"] = 3;
            t["tag"]   = "test";

            a1            = new ParaObject("adr1", "address");
            a1.name       = "Place 1";
            a1["address"] = "NYC";
            a1["country"] = "US";
            a1["latlng"]  = "40.67,-73.94";
            a1.parentid   = u.id;
            a1.creatorid  = u.id;

            a2            = new ParaObject("adr2", "address");
            a2.name       = "Place 2";
            a2["address"] = "NYC";
            a2["country"] = "US";
            a2["latlng"]  = "40.69,-73.95";
            a2.parentid   = t.id;
            a2.creatorid  = t.id;

            s1         = new ParaObject("s1");
            s1["text"] = "This is a little test sentence. Testing, one, two, three.";

            s2         = new ParaObject("s2");
            s2["text"] = "We are testing this thing. This sentence is a test. One, two.";

            pc.createAll(new List <ParaObject> {
                u, u1, u2, t, s1, s2, a1, a2
            });
            Thread.Sleep(1000);
        }
Exemple #2
0
        /// <summary>
        /// 设置当前参数到ATQ设备
        /// </summary>
        /// <param name="list"> 功能集合 </param>
        /// <param name="groupBox"> 包含需设置的参数 </param>
        /// <param name="Pattern"> 模式 </param>
        /// <param name="node"> 程序号 </param>
        internal void SetATQPara(SerialPort port, List <ParaObject> list, GroupBox groupBox, CheckBox Pattern, string node)
        {
            pps = PortServcie.Install();
            // 第一步 选择程序号
            string ID = mbTool.GetSoftwareID(node);

            infostring = "程序号";
            pps.WriteByte(port, ID);

            //第二步  设置模式 (1) 爆破 or leak
            infostring = "模式";
            bool pattern = LoadPattern(Pattern, node); //爆破 true  leak false

            string command = "";

            if (pattern)
            {
                command = "FF106015000204881300007710"; //burst
                pps.WriteByte(port, command);
            }
            else
            {
                command = "FF106015000204e803000068D5"; // leak
                pps.WriteByte(port, command);
            }
            Form1.form1.AddInformation("设置" + Pattern.Name + "模式参数");
            //第三步 设置各种参数

            foreach (Control c in groupBox.Controls)
            {
                if (c is TextBox)
                {
                    TextBox tb    = c as TextBox;
                    string  value = tb.Text;
                    double  outdu;
                    if (double.TryParse(value, out outdu))
                    {
                        for (int i = 0; i < list.Count; i++)
                        {
                            if (tb.Name == list[i].English)
                            {
                                Form1.form1.AddInformation("设置" + list[i].Chinese + "模式参数");
                                //设置进度条到哪了
                                form.progressBar_Setting.Value = i + 1;
                                ParaObject para     = list[i];
                                string     ateqInfo = mbTool.GetATEQString(false, para.WriteWord, para.Write, outdu);
                                infostring = para.Chinese;
                                //INI文件中值与tb.text不一致 设置到仪器里
                                string checkValue = INIHelper.Read(node, tb.Name, "", _iniSoftwarePath);
                                if (checkValue != value)
                                {
                                    pps.WriteByte(port, ateqInfo);
                                }
                            }
                        }
                    }
                }
            }
            Form1.form1.AddInformation("参数保存在机台成功.");
        }
Exemple #3
0
        /// <summary>
        /// 读取XML
        /// </summary>
        /// <param name="XMLPath"></param>
        /// <param name="Choice">1爆破模式 , 2泄露模式</param>
        public static void Read_XML_Text(string XMLPath, int Choice)
        {
            try
            {
                paraList.Clear();
                XmlDocument xml = new XmlDocument();
                xml.Load(XMLPath);
                XmlElement documentElement = xml.DocumentElement;
                foreach (XmlNode xmlNode in documentElement)
                {
                    ParaObject para = new ParaObject();
                    XmlElement xe   = (XmlElement)xmlNode;
                    try
                    {
                        para.Chinese = xe.GetAttribute("Chinese");
                        para.English = xe.GetAttribute("English");
                        // 得到Book节点的所有子节点
                        XmlNodeList xnl = xe.ChildNodes;
                        para.Read      = xnl.Item(0).InnerText;
                        para.Write     = xnl.Item(1).InnerText;
                        para.ReadWord  = xnl.Item(2).InnerText;
                        para.WriteWord = xnl.Item(3).InnerText;
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteOrCreateLog(null, "error--转换XML节点异常:" + ex.ToString());
                    }

                    switch (Choice)
                    {
                    //爆破模式
                    case 1:
                        string[] Burst = Enum.GetNames(new PatternBurst().GetType());
                        if (Burst.Contains(para.English))
                        {
                            paraList.Add(para);
                        }
                        break;

                    case 2:
                        string[] Leak = Enum.GetNames(new PatternLeak().GetType());
                        if (Leak.Contains(para.English))
                        {
                            paraList.Add(para);
                        }
                        break;

                    default:
                        paraList.Add(para);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog.WriteOrCreateLog(null, "error--读取XML异常:" + ex.ToString());
            }
        }
        public void testValidationConstraints()
        {
            // Validations
            string kittenType = "kitten";
            Dictionary <string, object> constraints = pc.validationConstraints();

            Assert.IsFalse(constraints.Count == 0);
            Assert.IsTrue(constraints.ContainsKey("app"));
            Assert.IsTrue(constraints.ContainsKey("user"));

            Dictionary <string, Dictionary <string, Dictionary <string, object> > > constraint =
                pc.validationConstraints("app");

            Assert.IsFalse(constraint.Count == 0);
            Assert.IsTrue(constraint.ContainsKey("app"));
            Assert.AreEqual(1, constraint.Count);

            pc.addValidationConstraint(kittenType, "paws", Constraint.required());
            constraint = pc.validationConstraints(kittenType);
            Assert.IsTrue(constraint[kittenType].ContainsKey("paws"));

            ParaObject ct = new ParaObject("felix");

            ct.type = kittenType;
            ParaObject ct2 = null;

            try {
                // validation fails
                ct2 = pc.create(ct);
            } catch { }

            Assert.IsNull(ct2);
            ct["paws"] = "4";
            Assert.IsNotNull(pc.create(ct));

            pc.removeValidationConstraint(kittenType, "paws", "required");
            constraint = pc.validationConstraints(kittenType);
            Assert.IsFalse(constraint.ContainsKey(kittenType));

            // votes
            Assert.IsTrue(pc.voteUp(ct, u.id));
            Assert.IsFalse(pc.voteUp(ct, u.id));
            Assert.IsTrue(pc.voteDown(ct, u.id));
            Assert.IsTrue(pc.voteDown(ct, u.id));
            Assert.IsFalse(pc.voteDown(ct, u.id));
            pc.delete(ct);
            pc.delete(new ParaObject("vote:" + u.id + ":" + ct.id, "vote"));

            Assert.IsNotEmpty(pc.getServerVersion());
            Assert.AreNotEqual("unknown", pc.getServerVersion());
        }
        public void testCRUD()
        {
            Assert.IsNull(pc.create(null));
            ParaObject t1 = pc.create(new ParaObject("test1", "tag"));

            t1["tag"] = "test1";
            Assert.IsNotNull(t1);

            Assert.IsNull(pc.read(null, null));
            Assert.IsNull(pc.read("", ""));

            ParaObject trID = pc.read(t1.id);

            Assert.IsNotNull(trID);
            Assert.IsNotNull(trID.timestamp);
            Assert.AreEqual(t1["tag"], trID["tag"]);

            ParaObject tr = pc.read(t1.type, t1.id);

            Assert.IsNotNull(tr);
            Assert.IsNotNull(tr.timestamp);
            Assert.AreEqual(t1["tag"], tr["tag"]);

            tr["count"] = (Int64)15;
            ParaObject tu = pc.update(tr);

            Assert.IsNull(pc.update(new ParaObject("null")));
            Assert.IsNotNull(tu);
            Assert.AreEqual(tu["count"], tr["count"]);
            Assert.IsNotNull(tu.updated);

            ParaObject s = new ParaObject();

            s.type   = dogsType;
            s["foo"] = "bark!";
            s        = pc.create(s);

            ParaObject dog = pc.read(dogsType, s.id);

            Assert.IsNotNull(dog["foo"]);
            Assert.AreEqual("bark!", dog["foo"]);

            pc.delete(t1);
            pc.delete(dog);
            Assert.IsNull(pc.read(tr.type, tr.id));
        }
        public void testList()
        {
            List <ParaObject> cats = new List <ParaObject>();

            for (int i = 0; i < 3; i++)
            {
                ParaObject s = new ParaObject(catsType + i);
                s.type = catsType;
                cats.Add(s);
            }
            pc.createAll(cats);
            Thread.Sleep(1000);

            Assert.IsTrue(pc.list(null).Count == 0);
            Assert.IsTrue(pc.list("").Count == 0);

            List <ParaObject> list1 = pc.list(catsType);

            Assert.IsFalse(list1.Count == 0);
            Assert.AreEqual(3, list1.Count);
            Assert.AreEqual(typeof(ParaObject), list1[0].GetType());

            List <ParaObject> list2 = pc.list(catsType, new Pager(2));

            Assert.IsFalse(list2.Count == 0);
            Assert.AreEqual(2, list2.Count);

            List <string> nl = new List <string>(3);

            nl.Add(cats[0].id);
            nl.Add(cats[1].id);
            nl.Add(cats[2].id);
            pc.deleteAll(nl);

            Assert.IsTrue(((Dictionary <string, object>)pc.getApp()["datatypes"]).ContainsValue(catsType));
        }
Exemple #7
0
        // to do 区分收到的 设置返回 实时状态返回  最终结果返回
        /// <summary>
        /// 实时读取数据的方法
        /// </summary>
        public void ReceiveData(string Input)
        {
            string[] TestData = DataDivision(Input);
            //写入仪器参数 => 分析
            if (TestData[1] == "10")//写入数据的返回
            {
                return;
            }


            //读取侧漏仪器参数 => 分析
            if ((TestData[1] + TestData[2]).ToUpper() == "0302")
            {
                //模式判断
                if (PortServcie.IsReadMode == true)
                {
                    PortServcie.IsReadMode = false;
                    ParaObject pObject = null;
                    string     temp    = TestData[3] + TestData[4];
                    int        mode    = GetNumber(temp);
                    switch (mode)
                    {
                    case 1000:     //leak
                        ReadXML.Read_XML_Text("address_F.xml", 2);
                        INIHelper.Write(ParaService.CodeIndex, "Pattern", "False", ParaService._iniSoftwarePath);
                        for (int i = 0; i < ReadXML.paraList.Count; i++)
                        {
                            pObject = ReadXML.paraList[i];
                            if (Enum.TryParse(pObject.English, out pattern2))
                            {
                                PortServcie.queueParaBuff.Enqueue(pObject);
                            }
                        }

                        break;

                    case 5000:     //burst
                        ReadXML.Read_XML_Text("address_F.xml", 1);
                        INIHelper.Write(ParaService.CodeIndex, "Pattern", "True", ParaService._iniSoftwarePath);

                        for (int i = 0; i < ReadXML.paraList.Count; i++)
                        {
                            pObject = ReadXML.paraList[i];
                            if (Enum.TryParse(pObject.English, out pattern1))
                            {
                                PortServcie.queueParaBuff.Enqueue(pObject);
                            }
                        }
                        break;
                    }
                }//读取测试参数
                else
                {
                    if (PortServcie.paraBuff != null)
                    {
                        string ParaValue = ((double)(GetNumber(TestData[3] + TestData[4])) / 1000).ToString();
                        if (PortServcie.paraBuff.English != "DROPPRESS")
                        {
                            INIHelper.Write(ParaService.CodeIndex, PortServcie.paraBuff.English, ParaValue, ParaService._iniSoftwarePath);
                            Form1.form1.AddInformation("读取" + PortServcie.paraBuff.Chinese + "参数");
                        }

                        if (PortServcie.queueParaBuff.Count == 0)
                        {
                            Form1.isRefresh = true;
                        }
                    }
                }
            }
            PortServcie.paraBuff = null;
            //实时数据显示 => 分析
            if ((TestData[1] + TestData[2]).ToUpper() == "031A")//实时测试结果
            {
                RealTimeData realTime = GetRealTimeTest(Input);
                if (realTime == null)
                {
                    return;
                }


                if (realTime.TestStatus == "Cycle_End" || realTime._testprocess == "FFFF") //实时结果结束
                {
                    Form1.isSend = false;

                    PortServcie.Install().WriteByte(PortServcie.sp, "FF030011000C0014"); //last参数
                    //发送读取最终结果的参数
                }
                else
                {
                    Form1.queueReal.Enqueue(realTime);
                }
                return;
            }

            //最终数据显示 => 分线
            if ((TestData[1] + TestData[2]).ToUpper() == "0318")//最终测试结果
            {
                Form1.form1.AddInformation("测试结束.");
                Form1.form1.AddInformation("获得最终结果.");
                FinalResult finalResult = GetFinalResult(Input);
                if (finalResult == null)
                {
                    return;
                }
                Form1.queueLast.Enqueue(finalResult);
                //停止计时器
                Form1.m_StopWatch.Reset();

                //是否清空实时显示区
                Form1.isClear = true;
                //重置FIFO
                PortServcie.Install().WriteByte(PortServcie.sp, ResetFifo());
                return;
            }
        }
        public void testBatchCRUD()
        {
            List <ParaObject> dogs = new List <ParaObject>();

            for (int i = 0; i < 3; i++)
            {
                ParaObject s = new ParaObject();
                s.type   = dogsType;
                s["foo"] = "bark!";
                dogs.Add(s);
            }

            Assert.IsTrue(pc.createAll(null).Count == 0);
            List <ParaObject> l1 = pc.createAll(dogs);

            Assert.AreEqual(3, l1.Count);
            Assert.IsNotNull(l1[0].id);

            Assert.IsTrue(pc.readAll(null).Count == 0);
            List <string> nl = new List <string>(3);

            Assert.IsTrue(pc.readAll(nl).Count == 0);
            nl.Add(l1[0].id);
            nl.Add(l1[1].id);
            nl.Add(l1[2].id);
            List <ParaObject> l2 = pc.readAll(nl);

            Assert.AreEqual(3, l2.Count);
            Assert.AreEqual(l1[0].id, l2[0].id);
            Assert.AreEqual(l1[1].id, l2[1].id);
            Assert.IsNotNull(l2[0]["foo"]);
            Assert.AreEqual("bark!", l2[0]["foo"]);

            Assert.IsTrue(pc.updateAll(null).Count == 0);

            ParaObject part1 = new ParaObject(l1[0].id);
            ParaObject part2 = new ParaObject(l1[1].id);
            ParaObject part3 = new ParaObject(l1[2].id);

            part1.type = dogsType;
            part2.type = dogsType;
            part3.type = dogsType;

            part1["custom"] = "prop";
            part1.name      = "NewName1";
            part2.name      = "NewName2";
            part3.name      = "NewName3";

            List <ParaObject> l3 = pc.updateAll(new List <ParaObject> {
                part1, part2, part3
            });

            Assert.IsNotNull(l3[0]["custom"]);
            Assert.AreEqual(dogsType, l3[0].type);
            Assert.AreEqual(dogsType, l3[1].type);
            Assert.AreEqual(dogsType, l3[2].type);

            Assert.AreEqual(part1.name, l3[0].name);
            Assert.AreEqual(part2.name, l3[1].name);
            Assert.AreEqual(part3.name, l3[2].name);

            pc.deleteAll(nl);
            Thread.Sleep(1000);

            List <ParaObject> l4 = pc.list(dogsType);

            Assert.IsTrue(l4.Count == 0);

            Assert.IsTrue(((Dictionary <string, object>)pc.getApp()["datatypes"]).ContainsValue(dogsType));
        }