public void RpmE(uint instanceId, List <BacNetObject> objectList, RpmEDelegate callBack) { BacNetRemoteDevice remote = BacNetDevice.Instance.SearchRemote(BacNetRemoteDevice.Get(instanceId.ToString())); if (remote == null) { return; } var apdu = new ReadPropertyMultiple(objectList); apdu.CallBack = callBack; apdu.InstanceId = instanceId; var npdu = new BacNetIpNpdu { ExpectingReply = true, Destination = remote.BacAddress }; lock (_rpmPool) { if (_rpmPool.ContainsKey(apdu.InvokeId)) { _rpmPool[apdu.InvokeId].CallBack(_rpmPool[apdu.InvokeId].InstanceId, null); _rpmPool.Remove(apdu.InvokeId); } _rpmPool.Add(apdu.InvokeId, apdu); } BacNetDevice.Instance.Services.Execute(npdu, apdu, remote.EndPoint); }
public void RpmE(uint instanceId, List<BacNetObject> objectList, RpmEDelegate callBack) { BacNetRemoteDevice remote = BacNetDevice.Instance.SearchRemote(BacNetRemoteDevice.Get(instanceId.ToString())); if (remote == null) { return; } var apdu = new ReadPropertyMultiple(objectList); apdu.CallBack = callBack; apdu.InstanceId = instanceId; var npdu = new BacNetIpNpdu { ExpectingReply = true, Destination = remote.BacAddress }; lock (_rpmPool) { if (_rpmPool.ContainsKey(apdu.InvokeId)) { _rpmPool[apdu.InvokeId].CallBack(_rpmPool[apdu.InvokeId].InstanceId, null); _rpmPool.Remove(apdu.InvokeId); } _rpmPool.Add(apdu.InvokeId, apdu); } BacNetDevice.Instance.Services.Execute(npdu, apdu, remote.EndPoint); }