Beispiel #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 public Point()
 {
     cld_module_pin = null;
     is_valid = false;
 }
Beispiel #2
0
        /// <summary>
        /// 构造函数,从数据库中读取包含给定ControllerAddr,DocumentName,SheetName的Cld_Module的集合
        /// </summary>
        /// <param name="conn">到数据库的连接</param>
        /// <param name="ControllerAddr">Controller Address</param>
        /// <param name="DocumentName">Document Name</param>
        /// <param name="SheetName">Sheet Name</param>
        /// <param name="metamodules">Meta_Modules</param>
        public Cld_ModuleS(OleDbConnection conn, string ControllerAddr, string DocumentName, string SheetName, Meta_ModuleS metamodules)
        {
            //进行必要的初始化
            cld_modules = new Hashtable();
            signals = new Signals();
            cld_signals = new Cld_SignalS();
            meta_modules = metamodules;
            this.ControllerAddr = ControllerAddr;
            this.DocumentName = DocumentName;
            this.SheetName = SheetName;

            //建立数据库连接
            if (conn.State == ConnectionState.Closed)
            {
                try
                {
                    conn.Open();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            //数据库操作字符串
            string sql_string = "SELECT * FROM Cld_FCMaster WHERE ControllerAddress='" + ControllerAddr +
                "' AND DocumentName='" + DocumentName + "' AND SheetName='" + SheetName + "'";
            OleDbDataAdapter Cld_FCMaster_Adapter = new OleDbDataAdapter(sql_string, conn);
            DataSet myDataSet = new DataSet();
            Cld_FCMaster_Adapter.Fill(myDataSet, "Cld_FCMaster");


            //处理CLD FCMaster表的每一行
            for (int i = 0; i < myDataSet.Tables["Cld_FCMaster"].Rows.Count; i++)
            {
                Cld_Module cld_module_temp = new Cld_Module();

                //处理相应的Cld_FCMaster表
                cld_module_temp.ObjectID = myDataSet.Tables["Cld_FCMaster"].Rows[i]["ObjectID"].ToString();
                cld_module_temp.ControllerAddress = myDataSet.Tables["Cld_FCMaster"].Rows[i]["ControllerAddress"].ToString();
                cld_module_temp.DocumentName = myDataSet.Tables["Cld_FCMaster"].Rows[i]["DocumentName"].ToString();
                cld_module_temp.SheetName = myDataSet.Tables["Cld_FCMaster"].Rows[i]["SheetName"].ToString();
                cld_module_temp.AlgName = myDataSet.Tables["Cld_FCMaster"].Rows[i]["AlgName"].ToString();
                cld_module_temp.AlgOrder = myDataSet.Tables["Cld_FCMaster"].Rows[i]["AlgOrder"].ToString();
                cld_module_temp.FunctionName = myDataSet.Tables["Cld_FCMaster"].Rows[i]["FunctionName"].ToString();
                cld_module_temp.X_Y = myDataSet.Tables["Cld_FCMaster"].Rows[i]["X_Y"].ToString();
                cld_module_temp.SymbolName = myDataSet.Tables["Cld_FCMaster"].Rows[i]["SymbolName"].ToString();
                cld_module_temp.DESCRP = myDataSet.Tables["Cld_FCMaster"].Rows[i]["DESCRP"].ToString();
                cld_module_temp.PERIOD = myDataSet.Tables["Cld_FCMaster"].Rows[i]["PERIOD"].ToString();
                cld_module_temp.PHASE = myDataSet.Tables["Cld_FCMaster"].Rows[i]["PHASE"].ToString();
                cld_module_temp.LOOPID = myDataSet.Tables["Cld_FCMaster"].Rows[i]["LOOPID"].ToString();


                //处理相应的Cld_FCDetail表
                sql_string = "SELECT * FROM Cld_FCDetail WHERE ObjectID='" + cld_module_temp.ObjectID + "'";
                OleDbDataAdapter Cld_FCDetail_Adapter = new OleDbDataAdapter(sql_string, conn);
                Cld_FCDetail_Adapter.Fill(myDataSet, "Cld_FCDetail");

                for (int m = 0; m < myDataSet.Tables["Cld_FCDetail"].Rows.Count; m++)
                {
                    Cld_Module_Pin cld_module_pin_temp = new Cld_Module_Pin();

                    //对Cld_Module_Pin对象进行数据的填充
                    cld_module_pin_temp.ObjectID = myDataSet.Tables["Cld_FCDetail"].Rows[m]["ObjectID"].ToString();
                    cld_module_pin_temp.PinName = myDataSet.Tables["Cld_FCDetail"].Rows[m]["PinName"].ToString();
                    cld_module_pin_temp.PinValue = myDataSet.Tables["Cld_FCDetail"].Rows[m]["PinValue"].ToString();
                    cld_module_pin_temp.NetworkID = myDataSet.Tables["Cld_FCDetail"].Rows[m]["NetworkID"].ToString();
                    cld_module_pin_temp.IsHistory = (bool)(myDataSet.Tables["Cld_FCDetail"].Rows[m]["IsHistory"]);
                    cld_module_pin_temp.Point = myDataSet.Tables["Cld_FCDetail"].Rows[m]["Point"].ToString();

                    cld_module_temp.Pins[cld_module_pin_temp.PinName] = cld_module_pin_temp;
                    if (metamodules.Pin_Type(cld_module_temp.FunctionName, cld_module_pin_temp.PinName).Equals("Input"))
                    {
                        cld_module_pin_temp.PinType = "Input";
                        cld_module_temp.PinType[cld_module_pin_temp.PinName] = "Input";
                        cld_module_temp.Input_Pin[cld_module_pin_temp.PinName] = cld_module_pin_temp;
                    }
                    else if (metamodules.Pin_Type(cld_module_temp.FunctionName, cld_module_pin_temp.PinName).Equals("Output"))
                    {
                        cld_module_pin_temp.PinType = "Output";
                        cld_module_temp.PinType[cld_module_pin_temp.PinName] = "Output";
                        cld_module_temp.Out_Pin[cld_module_pin_temp.PinName] = cld_module_pin_temp;
                    }
                    else if (metamodules.Pin_Type(cld_module_temp.FunctionName, cld_module_pin_temp.PinName).Equals("Constant"))
                    {
                        cld_module_temp.PinType[cld_module_pin_temp.PinName] = "Constant";
                        cld_module_pin_temp.PinType = "Constant";
                        //cld_module_temp.Constant_Pin.Add(cld_module_pin_temp);
                        cld_module_temp.Constant_Pin[cld_module_pin_temp.PinName] = cld_module_pin_temp;
                    }
                    else if (metamodules.Pin_Type(cld_module_temp.FunctionName, cld_module_pin_temp.PinName).Equals("Internal"))
                    {
                        cld_module_pin_temp.PinType = "Internal";
                        cld_module_temp.PinType[cld_module_pin_temp.PinName] = "Internal";
                        //cld_module_temp.Internal_Pin.Add(cld_module_pin_temp);
                        cld_module_temp.Internal_Pin[cld_module_pin_temp.PinName] = cld_module_pin_temp;
                    }
                    else
                    {
                        //没有这种类型的引脚,因该是数据库有问题
                        cld_module_temp.PinType[cld_module_pin_temp.PinName] = "";
                        cld_module_pin_temp.PinType = "";

                    }
                }
                myDataSet.Tables["Cld_FCDetail"].Clear();
                cld_modules[cld_module_temp.ObjectID] = cld_module_temp;
            }

            //读取数据完毕
            myDataSet.Dispose();
            Cld_FCMaster_Adapter.Dispose();
            conn.Close();
        }