public static void writeWallProjectionSampleToConfig(WallProjectionSample sample) { XmlDocument docConfig = new XmlDocument(); docConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "\\configuration.xml"); XmlNode node = docConfig.SelectSingleNode("/config"); foreach (XmlNode deviceNode in node.ChildNodes) { if (deviceNode.FirstChild.InnerText == sample.sampledeviceIdentifier && deviceNode.FirstChild.Name == "deviceIdentifier") { if (deviceNode.ChildNodes[1].Name == "samplePositions") { XmlElement xmlPosition = docConfig.CreateElement("position"); XmlElement posX = docConfig.CreateElement("X"); posX.InnerText = sample.x.ToString(); xmlPosition.AppendChild(posX); XmlElement posY = docConfig.CreateElement("Y"); posY.InnerText = sample.y.ToString(); xmlPosition.AppendChild(posY); XmlElement posZ = docConfig.CreateElement("Z"); posZ.InnerText = sample.z.ToString(); xmlPosition.AppendChild(posZ); //xmlPosition.SetAttribute("X:", sample.x.ToString()); //xmlPosition.SetAttribute("Y:", sample.y.ToString()); //xmlPosition.SetAttribute("Z:", sample.z.ToString()); deviceNode.ChildNodes[1].AppendChild(xmlPosition); docConfig.Save(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionSamples.xml"); return; } } } XmlElement newDev = docConfig.CreateElement("device"); XmlElement deviceIdentifier = docConfig.CreateElement("deviceIdentifier"); deviceIdentifier.InnerText = sample.sampledeviceIdentifier; XmlElement samplePositions = docConfig.CreateElement("samplePositions"); XmlElement position = docConfig.CreateElement("position"); XmlElement X = docConfig.CreateElement("X"); X.InnerText = sample.x.ToString(); position.AppendChild(X); XmlElement Y = docConfig.CreateElement("Y"); Y.InnerText = sample.y.ToString(); position.AppendChild(Y); XmlElement Z = docConfig.CreateElement("Z"); Z.InnerText = sample.z.ToString(); position.AppendChild(Z); samplePositions.AppendChild(position); newDev.AppendChild(deviceIdentifier); newDev.AppendChild(samplePositions); node.AppendChild(newDev); docConfig.Save(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionSamples.xml"); return; }
public List <Device> chooseDevice(User usr) { List <Device> dev = new List <Device>(); Point3D[] vecs = transformer.transformJointCoords(tracker.getMedianFilteredCoordinates(usr.SkeletonId)); if (usr != null) { WallProjectionSample sample = classificationHandler.sCalculator.calculateSample(vecs, ""); // execute the classification sample = classificationHandler.classify(sample); Console.WriteLine("Classified: " + sample.sampledeviceIdentifier); logger.enqueueEntry("Device classified to" + sample.sampledeviceIdentifier); //Body body = tracker.GetBodyById(usr.SkeletonId); //XMLSkeletonJointRecords.writeUserJointsToXmlFile(tempUser, Data.GetDeviceByName(sample.sampledeviceIdentifier), body); //XMLComponentHandler.writeUserJointsPerSelectClick(body); //ANSWER: NUML Returns the Label of the Classification in all uppercases and without extra like "_" (Partitioner of DeviceType_Number) - Decapsulate needed for Comparison of DeviceID and Returned Label String decapsulate = ""; foreach (Device d in data.getCompleteDeviceList()) { decapsulate = decapsulateID(d.Id); if (sample.sampledeviceIdentifier.ToLower() == decapsulate.ToLower()) { dev.Add(d); break; } } } return(dev); }
public static List <WallProjectionSample> readWallProjectionSamplesFromXML() { List <WallProjectionSample> sampleList = new List <WallProjectionSample>(); XmlDocument docConfig = new XmlDocument(); docConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionSamples.xml"); XmlNodeList devices = docConfig.SelectSingleNode("/devices").ChildNodes; foreach (XmlNode sample in devices) { String knndeviceIdentifier = ""; foreach (XmlNode prop in sample) { if (prop.Name.Equals("deviceIdentifier")) { knndeviceIdentifier = prop.InnerText; } else if (prop.Name.Equals("samplePositions")) { foreach (XmlNode position in prop.ChildNodes) { WallProjectionSample s = new WallProjectionSample(new Point3D( double.Parse(position.ChildNodes[0].InnerText), double.Parse(position.ChildNodes[1].InnerText), double.Parse(position.ChildNodes[2].InnerText)), knndeviceIdentifier); sampleList.Add(s); } } } } return(sampleList); }