Пример #1
0
        public List <Branch> GetBranchesList()
        {
            List <Branch> list = new List <Branch>();

            foreach (XElement BranchElement in BranchesRoot.Elements())
            {
                list.Add(getBranch(int.Parse(BranchElement.Element("Number").Value)));
            }
            return(list);
        }
Пример #2
0
        public void RemoveBranch(Branch B)
        {
            XElement BranchElement;

            BranchElement = (from b in BranchesRoot.Elements()
                             where Convert.ToInt32(b.Element("Number").Value) == B.Number && b.Element("BranchSituation").Value == BranchSituation.EXIST.ToString()
                             select b).FirstOrDefault();
            BranchElement.Element("BranchSituation").Value = BranchSituation.CLOSED.ToString();
            BranchesRoot.Save(BranchesPath);
        }
Пример #3
0
        private void writeOpcServerConfig(string fileName)
        {
            /*OPCServerConfig opcServerConfig = new OPCServerConfig();
             * List<string> inputsList = new List<string>();
             * List<string> outputsList = new List<string>();
             *
             * if (inputVars != null)
             * {
             *  foreach (NuTraceVariable inputVar in inputVars)
             *  {
             *      inputsList.Add(inputVar.Variable);
             *  }
             * }
             * if (outputVars != null)
             * {
             *  foreach (NuTraceVariable outputVar in outputVars)
             *  {
             *      outputsList.Add(outputVar.Variable);
             *  }
             * }
             * opcServerConfig.InputVariables = inputsList;
             * opcServerConfig.OutputVariables = outputsList;
             * opcServerConfig.SocketHost = "localhost";
             * opcServerConfig.SocketPort = 11000;*/

            ConfigBuilder.DefinitionList serverInemsDeflist = new ConfigBuilder.DefinitionList();
            {
                serverInemsDeflist.BranchSeperatorChar = '.';
                ConfigBuilder.BranchElement root = new BranchElement();
                {
                    root.name = "CIROS Connector";
                    ConfigBuilder.ConfigDefs defaultBranchConfig = new ConfigDefs();
                    defaultBranchConfig.activeDef              = true;
                    defaultBranchConfig.accRightSpecified      = false;
                    defaultBranchConfig.dataTypeSpecified      = false;
                    defaultBranchConfig.qualitySpecified       = false;
                    defaultBranchConfig.signalTypeSpecified    = false;
                    defaultBranchConfig.scanRateSpecified      = false;
                    defaultBranchConfig.deviceIDSpecified      = false;
                    defaultBranchConfig.deviceAddrSpecified    = false;
                    defaultBranchConfig.deviceSubAddrSpecified = false;
                    defaultBranchConfig.user1Specified         = false;
                    defaultBranchConfig.user2Specified         = false;
                    root.branchDefs = defaultBranchConfig;

                    ItemElement dummyItem = new ItemElement();
                    {
                        dummyItem.name                       = "dummyItem";
                        dummyItem.handle                     = 0;
                        dummyItem.itemDefs                   = new ConfigDefs();
                        dummyItem.Value                      = Convert.ToInt32(0);
                        dummyItem.itemDefs.dataType          = drvtypes.Type.SHORT;
                        dummyItem.itemDefs.activeDef         = true;
                        dummyItem.itemDefs.accRightSpecified = false;

                        dummyItem.itemDefs.dataTypeSpecified      = true;
                        dummyItem.itemDefs.qualitySpecified       = false;
                        dummyItem.itemDefs.signalTypeSpecified    = false;
                        dummyItem.itemDefs.scanRateSpecified      = false;
                        dummyItem.itemDefs.deviceIDSpecified      = false;
                        dummyItem.itemDefs.deviceAddrSpecified    = false;
                        dummyItem.itemDefs.deviceSubAddrSpecified = false;
                        dummyItem.itemDefs.user1Specified         = false;
                        dummyItem.itemDefs.user2Specified         = false;
                    }
                    root.items    = new ItemElement[1];
                    root.items[0] = dummyItem;

                    if (inputVars != null)
                    {
                        root.subBranches         = new BranchElement[1]; //TODO: 2
                        root.subBranches[0]      = new BranchElement();
                        root.subBranches[0].name = "Inputs";
                        {
                            ConfigBuilder.ConfigDefs branchConfig = new ConfigDefs();
                            branchConfig.activeDef         = true;
                            branchConfig.accRightSpecified = true;
                            branchConfig.accRight          = OPCAccess.READWRITEABLE;
                            branchConfig.dataTypeSpecified = false;
                            branchConfig.qualitySpecified  = true;
                            branchConfig.quality           = OPCQuality.GOOD;

                            branchConfig.signalTypeSpecified = false;
                            //branchConfig.signalTypeSpecified = true;
                            //branchConfig.signalType = SignalType.INTERN;

                            branchConfig.scanRate               = 100;
                            branchConfig.scanRateSpecified      = true;
                            branchConfig.deviceIDSpecified      = false;
                            branchConfig.deviceAddrSpecified    = false;
                            branchConfig.deviceSubAddrSpecified = false;
                            branchConfig.user1Specified         = false;
                            branchConfig.user2Specified         = false;

                            root.subBranches[0].branchDefs = branchConfig;
                        }

                        root.subBranches[0].items = new ItemElement[inputVars.Count];
                        int i = 0;
                        foreach (NuTraceVariable inputVar in inputVars)
                        {
                            ItemElement element = new ItemElement();
                            {
                                element.name     = inputVar.Variable;
                                element.handle   = i + 1;
                                element.itemDefs = new ConfigDefs();
                                try
                                {
                                    element.Value             = Convert.ToInt32(inputVar.Value);
                                    element.itemDefs.dataType = drvtypes.Type.SHORT;
                                }
                                catch (FormatException e)
                                {
                                    element.Value             = Convert.ToBoolean(inputVar.Value);
                                    element.itemDefs.dataType = drvtypes.Type.BOOLEAN;
                                }
                                element.itemDefs.activeDef         = true;
                                element.itemDefs.accRightSpecified = true;
                                element.itemDefs.accRight          = OPCAccess.READWRITEABLE;

                                element.itemDefs.dataTypeSpecified = true;
                                element.itemDefs.qualitySpecified  = true;
                                element.itemDefs.quality           = OPCQuality.GOOD;

                                element.itemDefs.signalTypeSpecified    = false;
                                element.itemDefs.scanRateSpecified      = false;
                                element.itemDefs.deviceIDSpecified      = false;
                                element.itemDefs.deviceAddrSpecified    = false;
                                element.itemDefs.deviceSubAddrSpecified = false;
                                element.itemDefs.user1Specified         = false;
                                element.itemDefs.user2Specified         = false;

                                /*element.itemDefs.properties = new PropertyDef[1];
                                 * {
                                 *  element.itemDefs.properties[0] = new PropertyDef();
                                 *  element.itemDefs.properties[0].id = 101;
                                 *  element.itemDefs.properties[0].name = "Item Description";
                                 *  element.itemDefs.properties[0].dataType = drvtypes.Type.STRING;
                                 *  element.itemDefs.properties[0].val = "Property test";
                                 *
                                 * }*/
                            }
                            root.subBranches[0].items[i++] = element;
                        }
                    }
                }
                serverInemsDeflist.DefinitionsRoot = root;
            }

            XmlSerializer ser = new XmlSerializer(typeof(ConfigBuilder.DefinitionList));
            StringBuilder sb  = new StringBuilder();

            using (TextWriter writer = new StringWriter(sb))
            {
                ser.Serialize(writer, serverInemsDeflist);
            }

            sb.Replace("xsi:nil=\"true\" ", ""); // hack removing xsi:nil="true"

            StreamWriter sw = new StreamWriter(fileName);

            sw.Write(sb);
            //ser.Serialize(writer, serverInemsDeflist);
            sw.Close();
        }