Example #1
0
    static public bool DeleteClient(DdClientExt item, RevisionInfo revisionInfo)
    {
      DaClient da = new DaClient(DataStore.DbConnection);
      bool ok = da.DeleteById(item.Id);
      if (ok) AddChangeLog(da.TableName, item.Id, item.Timestamp, revisionInfo); //delete
	  return ok;
    }
Example #2
0
File: DaTest.cs Project: zzlc/h-opc
 public void Init()
 {
     _client = new DaClient(new Uri(ClientUrl));
     _client.Connect();
     // have to assign to graybox simulation items once to activate them
     _client.Write <double>(TestRegister, 4);
 }
Example #3
0
        public void ReadTest()
        {
            var factoryMock = new Mock<IServerFactory>();
            factoryMock.Setup(_ => _.CreateFromProgId("aaa")).Returns(() =>
            {
                var serverMock = new Mock<IOpcServer>();
                serverMock.Setup(_ => _.AddGroup("default", true, 1000, 0, 0, 0)).Returns(() =>
                {
                    var groupMock = new Mock<IOpcGroup>();
                    groupMock.Setup(_ => _.AddItems(It.IsAny<OpcItemDefine[]>())).Returns(() => new[] {
                        new OpcItemResult { ServerHandle = 1 }
                    });
                    groupMock.Setup(_ => _.Read(OpcDataSource.Device, new[] { 1 })).Returns(() => new[] {
                        new OpcItemState { DataValue = (short)1 }
                    });
                    return groupMock.Object;
                });
                return serverMock.Object;
            });

            var w = MelDevice.D.Address(0).ToItemInt16();
            var wa = new DxpItemInt16[] {w};

            using (var client = new DaClient(factoryMock.Object))
            {
                client.Connect("aaa");

                w.Value.Should().Be(0);
                client.Read(wa);
                w.Value.Should().Be(1);
            }
        }
Example #4
0
 static public DdClientExt GetClientInfo(string clientID)
 {
   DaClient da = new DaClient(DataStore.DbConnection);
   if (da.GetByPK(clientID))
     return new DdClientExt(da.GetBuffer());
   else
     return null;
 }
Example #5
0
 static public DdClientExt GetClientInfo(int clientREF)
 {
   DaClient da = new DaClient(DataStore.DbConnection);
   if (da.GetById(clientREF))
     return new DdClientExt(da.GetBuffer());
   else
     return null;
 }
Example #6
0
 static public BindingList<DdClientExt> GetClients()
 {
   BindingList<DdClientExt> list = new BindingList<DdClientExt>();
   DaClient da = new DaClient(DataStore.DbConnection);
   DnClient dn = da.Fill();
   foreach (DdClient dd in dn) list.Add(new DdClientExt(dd));
   return list;
 }
Example #7
0
        public void InitDA()
        {
            String serverName = EQInfo["SERVER_NAME"].ToString();

            ClientUrl = "opcda://" + localIP + "/" + serverName;
            _client   = new DaClient(new Uri(ClientUrl));
            _client.Connect();
        }
Example #8
0
 static public bool AddClient(ref DdClientExt item, RevisionInfo revisionInfo)
 {
   DaClient da = new DaClient(DataStore.DbConnection);
   da.Clear();
   da.ClientID = item.ClientID;
   da.Comment = item.Comment;
   da.FullName = item.FullName;
   da.Modified = item.Modified;
   da.ModifiedBy = item.ModifiedBy;
   bool ok = da.Insert();
   if (ok) AddChangeLog(da.TableName, da.Id, da.Timestamp, revisionInfo); //add
   if (ok) item = new DdClientExt(da.GetBuffer());
   return ok;
 }
Example #9
0
        public void Initialize()
        {
            try
            {
                if (uriString.StartsWith("opc.tcp"))
                {
                    if (opcClientOptions != null)
                    {
                        const string name    = "NowFuture";
                        var          options = new Hylasoft.Opc.Ua.UaClientOptions()
                        {
                            ApplicationName   = name,
                            ConfigSectionName = name,
                            SessionName       = name
                        };

                        if (!string.IsNullOrWhiteSpace(opcClientOptions.UserName) &&
                            !string.IsNullOrWhiteSpace(opcClientOptions.Password))
                        {
                            options.UserIdentity = new UserIdentity(opcClientOptions.UserName, opcClientOptions.Password);
                        }

                        client = new UaClient(new Uri(uriString), options);
                    }
                    else
                    {
                        client = new UaClient(new Uri(uriString));
                    }
                }

                if (uriString.StartsWith("opcda"))
                {
                    client = new DaClient(new Uri(uriString));
                }

                client.Connect();

                connectionStateChangedEventManager.OnConnectionStateChanged(ConnectionStateChanged, this, new ConnectionStateChangedEventArgs()
                {
                    IsConnected = true
                });
            }
            catch (Exception e)
            {
                throw new ApplicationException("建立与PLC连接失败,请确认", e);
            }
        }
Example #10
0
 static public bool SaveClient(ref DdClientExt item, RevisionInfo revisionInfo)
 {
   DaClient da = new DaClient(DataStore.DbConnection);
   if (!da.GetById(item.Id)) return false;
   da.ClientID = item.ClientID;
   da.Comment = item.Comment;
   da.FullName = item.FullName;
   bool ok = true;
   if (da._IsModified)
   {
     da.Modified = DateTime.Now;
     da.ModifiedBy = Environment.UserName;
     ok = da.Save();
     if (ok) AddChangeLog(da.TableName, da.Id, da.Timestamp, revisionInfo);
     if (ok) item = new DdClientExt(da.GetBuffer());
   }
   return ok;
 }
Example #11
0
        public void ReadTest()
        {
            var factoryMock = new Mock <IServerFactory>();

            factoryMock.Setup(_ => _.CreateFromProgId("aaa")).Returns(() =>
            {
                var serverMock = new Mock <IOpcServer>();
                serverMock.Setup(_ => _.AddGroup("default", true, 1000, 0, 0, 0)).Returns(() =>
                {
                    var groupMock = new Mock <IOpcGroup>();
                    groupMock.Setup(_ => _.AddItems(It.IsAny <OpcItemDefine[]>())).Returns(() => new[] {
                        new OpcItemResult {
                            ServerHandle = 1
                        }
                    });
                    groupMock.Setup(_ => _.Read(OpcDataSource.Device, new[] { 1 })).Returns(() => new[] {
                        new OpcItemState {
                            DataValue = (short)1
                        }
                    });
                    return(groupMock.Object);
                });
                return(serverMock.Object);
            });


            var w  = MelDevice.D.Address(0).ToItemInt16();
            var wa = new DxpItemInt16[] { w };

            using (var client = new DaClient(factoryMock.Object))
            {
                client.Connect("aaa");

                w.Value.Should().Be(0);
                client.Read(wa);
                w.Value.Should().Be(1);
            }
        }
Example #12
0
 static public void UpdateClient(BindingSource binding, RevisionInfo revInfo)
 {
   BindingList<DdClientExt> list = (BindingList<DdClientExt>)binding.DataSource;
   try
   {
     using (TransactionScope scope = new TransactionScope())
     {
     DaClient da = new DaClient(DataStore.CloneDbConnection());
     foreach (DdClientExt item in list)
     {// do deletes first
       bool existing = da.GetById(item.Id);
       if (existing && item.DeleteFlag)
       {// delete here - avoid validation
         da.DeleteById(item.Id);
         AddChangeLog(da.TableName, item.Id, da.Timestamp, revInfo);  
       }
     }
     
     foreach (DdClientExt item in list)
     {
       if (item.DeleteFlag) continue; // already done above
       //if (item.ClientID == string.Empty) continue; // already done above
       bool existing = da.GetById(item.Id);
       if (!existing)
       {
         da.Clear();
       }
       da.ClientID = item.ClientID;
       da.Comment = item.Comment;
       da.FullName = item.FullName;
       if (!existing)
       {
         da.Insert();
         AddChangeLog(da.TableName, da.Id, da.Timestamp, revInfo); 
       }
       else
       {
         if (!da._IsModified) continue;
         da.Modified = DateTime.Now;
         da.ModifiedBy = Environment.UserName;
         da.Save();
         AddChangeLog(da.TableName, da.Id, da.Timestamp, revInfo);           }
     }
       scope.Complete();
     }
     binding.DataSource = GetClientList();
   }
   catch (AppEx)
   {
     throw;
   }
   catch (Exception exc)
   {
     throw new AppEx(exc, "Error updating Client");
   }
 }