BACnet.IP.ForeignDevicePort.SendNetgram C# (CSharp) Méthode

SendNetgram() public méthode

Sends a netgram out of this port
public SendNetgram ( OutboundNetgram netgram ) : void
netgram BACnet.Core.Datalink.OutboundNetgram The netgram to send
Résultat void
        public void SendNetgram(OutboundNetgram netgram)
        {
            IPEndPoint ep = null;
            byte[] buffer = new byte[1500];
            int offset = 0;
            BvlcHeader header = new BvlcHeader();
            IBvlcMessage message = null;

            if (netgram.Destination.IsBroadcast())
            {
                ep = IPUtils.MacToIPEndPoint(_bbmdMac);
                header.Function = FunctionCode.OriginalUnicastNpdu;
                //header.Function = FunctionCode.OriginalBroadcastNpdu;
                header.Length = 0;
                message = new OriginalBroadcastNpduMessage();
            }
            else
            {
                ep = IPUtils.MacToIPEndPoint(netgram.Destination);
                header.Function = FunctionCode.OriginalUnicastNpdu;
                header.Length = 0;
                message = new OriginalUnicastNpduMessage();
            }

            offset = header.Serialize(buffer, offset);
            offset = message.Serialize(buffer, offset);
            offset = netgram.Content.Serialize(buffer, offset);

            // patch the length
            buffer[2] = (byte)(offset << 8);
            buffer[3] = (byte)(offset);

            lock(this._lock)
            {
                if (_server != null)
                {
                    _server.Send(ep, buffer, offset);
                }
            }
        }