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); }
/// <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("参数保存在机台成功."); }
/// <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)); }
// 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)); }