System.IO.BACnet.BacnetClient.EndRawEncodedDecodedPropertyConfirmedRequest C# (CSharp) Méthode

EndRawEncodedDecodedPropertyConfirmedRequest() public méthode

public EndRawEncodedDecodedPropertyConfirmedRequest ( IAsyncResult result, BacnetConfirmedServices service_id, byte &InOutBuffer, Exception &ex ) : void
result IAsyncResult
service_id BacnetConfirmedServices
InOutBuffer byte
ex System.Exception
Résultat void
        public void EndRawEncodedDecodedPropertyConfirmedRequest(IAsyncResult result, BacnetConfirmedServices service_id, out byte[] InOutBuffer, out Exception ex)
        {
            BacnetAsyncResult res = (BacnetAsyncResult)result;
            ex = res.Error;
            if (ex == null && !res.WaitForDone(m_timeout))
                ex = new Exception("Wait Timeout");

            InOutBuffer = null;

            if (ex == null)
            {
                if (service_id == BacnetConfirmedServices.SERVICE_CONFIRMED_READ_PROPERTY)
                {
                    //decode
                    BacnetObjectId response_object_id;
                    BacnetPropertyReference response_property;
                    int offset = 0; int len = 0;
                    byte[] buffer = res.Result; byte tag_number; uint len_value_type;

                    ex = new Exception("Decode");

                    if (!ASN1.decode_is_context_tag(buffer, offset, 0))
                        return;
                    len = 1;
                    len += ASN1.decode_object_id(buffer, offset + len, out response_object_id.type, out response_object_id.instance);
                    /* Tag 1: Property ID */
                    len += ASN1.decode_tag_number_and_value(buffer, offset + len, out tag_number, out len_value_type);
                    if (tag_number != 1)
                        return;
                    len += ASN1.decode_enumerated(buffer, offset + len, len_value_type, out response_property.propertyIdentifier);

                    InOutBuffer = new byte[buffer.Length - len];
                    Array.Copy(buffer, len, InOutBuffer, 0, InOutBuffer.Length);

                    ex = null;
                }
            }

            res.Dispose();
        }
BacnetClient