BACnet.Core.App.Transactions.ClientTransaction._sendInitialRequestSegment C# (CSharp) Method

_sendInitialRequestSegment() private method

Sends the very first segment in the request
private _sendInitialRequestSegment ( ) : void
return void
        private void _sendInitialRequestSegment()
        {
            if (_request.Length > _device.MaxAppgramLength)
                throw new Exception("Segmentation not supported... yet");

            _sequenceNumber = 0;
            _windowStart = 0;
            _windowSize = MaxWindowSize;

            ConfirmedRequestMessage message = new ConfirmedRequestMessage();
            message.Segmented = false;
            message.MoreFollows = false;
            message.SegmentedResponseAccepted = true;
            message.MaxSegmentsAccepted = int.MaxValue;
            message.MaxAppgramLengthAccepted = (int)_device.MaxAppgramLength; // TODO: retrieve from local device?
            message.InvokeId = _invokeId;
            message.SequenceNumber = (byte)_windowStart;
            message.ProposedWindowSize = (byte)_windowSize;
            message.ServiceChoice = _serviceChoice;

            _host.SendRaw(_device.Address, true, message,
                new BufferSegment(_request, 0, _request.Length));

            _transitionTo(ClientState.AwaitConfirmation);
        }