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; }
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); }
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); } }
static public DdClientExt GetClientInfo(string clientID) { DaClient da = new DaClient(DataStore.DbConnection); if (da.GetByPK(clientID)) return new DdClientExt(da.GetBuffer()); else return null; }
static public DdClientExt GetClientInfo(int clientREF) { DaClient da = new DaClient(DataStore.DbConnection); if (da.GetById(clientREF)) return new DdClientExt(da.GetBuffer()); else return null; }
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; }
public void InitDA() { String serverName = EQInfo["SERVER_NAME"].ToString(); ClientUrl = "opcda://" + localIP + "/" + serverName; _client = new DaClient(new Uri(ClientUrl)); _client.Connect(); }
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; }
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); } }
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; }
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); } }
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"); } }