예제 #1
0
        }  //SplitDataPacket

        /// <summary>
        /// 向通讯管理机写入的数据(调用WriteDataToCmeAndGetReturnValInCell),并且取得通讯管理机的值
        /// </summary>
        /// <param name="pointRTModel">要向通讯管理机写入的数据</param>
        /// <returns>通讯管理机的值:null 表示没有用取到通许管理机的值</returns>
        private double?GetControlReturnValue(PointRTModel pointRTModel)
        {
            double?returnVal = null;   //null 表示没有用取到通许管理机的值

            int devID = pointRTModel.ID.DevID;

            UpDataBase.RTWriteProxy.MType type = pointRTModel.ID.Type;
            int    pointID  = pointRTModel.ID.PointID;
            double pointVal = pointRTModel.Value;

            IDModel    idModel    = new IDModel(devID, type, pointID);
            IDEquipRes idEquipRes = null;                            //idModel对应的IDEquipRes

            if (_dictionMToE.ContainsKey(idModel.ToULongForIndex())) //判断_dictionMToE字典中是否存在idModel
            {
                idEquipRes = _dictionMToE[idModel.ToULongForIndex()];
            }
            else
            {
                return(null);  //没有用取到通许管理机的值
            }

            CmeManager cmeMagr = _dicEquipIdToCmeManager[idEquipRes.EquipID];                //根据IDEquipRes找到对用的CmeManager

            DataPoint dataPiont = cmeMagr.CmEquipment.DicResIdToDataPoint[idEquipRes.RegID]; //根据idEquipRes.RegID找到对用的CmeManager上DataPoint

            //新创建的dataPiont的PointValue 默认值为null,不要漏了赋新值pointVal
            dataPiont.PointValue = pointVal;

            returnVal = cmeMagr.WriteDataToCmeAndGetReturnValInCell(dataPiont);

            return(returnVal);
        }
예제 #2
0
        public void SetCmeManagerListWithXml(string xmlPath)
        {
            System.Xml.XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument();
            xmlDoc.Load(xmlPath);
            int equipId;

            foreach (XmlNode node1 in xmlDoc.ChildNodes)
            {
                foreach (XmlNode node2 in node1.ChildNodes)
                {
                    if (node2.Name == "Equip")
                    {
                        equipId = int.Parse(node2.Attributes["ID"].Value.Trim());

                        CmeManager tmpCmeManager = new CmeManager(equipId, xmlPath);
                        _cmeManagerList.Add(tmpCmeManager);
                        _dicEquipIdToCmeManager.Add(equipId, tmpCmeManager);
                    }
                }
            }
        }