// Coming from an udp class1 device, with a previous ForwardOpen action public void On_ItemMessageReceived(object sender, byte[] packet, SequencedAddressItem ItemPacket, int offset, int msg_length, IPEndPoint remote_address) { if (ItemPacket.ConnectionId != T2O_ConnectionId) { return; } if ((msg_length - offset) == 0) { return; } RawData = new byte[msg_length - offset]; Array.Copy(packet, offset, RawData, 0, RawData.Length); if (DecodedMembers != null) { int Idx = 0; try { DecodedMembers.DecodeAttr(Id, ref Idx, RawData); } catch { } } if (T2OEvent != null) { T2OEvent(this); } }
public override EnIPNetworkStatus ReadDataFromNetwork() { byte[] DataPath = EnIPPath.GetPath(myInstance.myClass.Id, myInstance.Id, Id); EnIPNetworkStatus ret = ReadDataFromNetwork(DataPath, CIPServiceCodes.GetAttributeSingle); if (ret == EnIPNetworkStatus.OnLine) { CIPObjectLibrary classid = (CIPObjectLibrary)myInstance.myClass.Id; try { if (DecodedMembers == null) // No decoder { if (myInstance.DecodedMembers == null) { myInstance.AttachDecoderClass(); } DecodedMembers = myInstance.DecodedMembers; // get the same object as the associated Instance } int Idx = 0; DecodedMembers.DecodeAttr(Id, ref Idx, RawData); } catch { } } return(ret); }