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;
        }
Ejemplo n.º 2
0
        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);
        }