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

ProcessUnconfirmedServiceRequest() protected méthode

protected ProcessUnconfirmedServiceRequest ( BacnetAddress adr, BacnetPduTypes type, BacnetUnconfirmedServices service, byte buffer, int offset, int length ) : void
adr BacnetAddress
type BacnetPduTypes
service BacnetUnconfirmedServices
buffer byte
offset int
length int
Résultat void
        protected void ProcessUnconfirmedServiceRequest(BacnetAddress adr, BacnetPduTypes type, BacnetUnconfirmedServices service, byte[] buffer, int offset, int length)
        {
            try
            {
                Trace.WriteLine("UnconfirmedServiceRequest", null);
                if (OnUnconfirmedServiceRequest != null) OnUnconfirmedServiceRequest(this, adr, type, service, buffer, offset, length);
                if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_I_AM && OnIam != null)
                {
                    uint device_id;
                    uint max_adpu;
                    BacnetSegmentations segmentation;
                    ushort vendor_id;
                    if (Services.DecodeIamBroadcast(buffer, offset, out device_id, out max_adpu, out segmentation, out vendor_id) >= 0)
                        OnIam(this, adr, device_id, max_adpu, segmentation, vendor_id);
                    else
                        Trace.TraceWarning("Couldn't decode IamBroadcast");
                }
                else if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_WHO_IS && OnWhoIs != null)
                {
                    int low_limit;
                    int high_limit;
                    if (Services.DecodeWhoIsBroadcast(buffer, offset, length, out low_limit, out high_limit) >= 0)
                        OnWhoIs(this, adr, low_limit, high_limit);
                    else
                        Trace.TraceWarning("Couldn't decode WhoIsBroadcast");
                }
                else if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_COV_NOTIFICATION && OnCOVNotification != null)
                {
                    uint subscriberProcessIdentifier;
                    BacnetObjectId initiatingDeviceIdentifier;
                    BacnetObjectId monitoredObjectIdentifier;
                    uint timeRemaining;
                    ICollection<BacnetPropertyValue> values;
                    if (Services.DecodeCOVNotifyUnconfirmed(buffer, offset, length, out subscriberProcessIdentifier, out initiatingDeviceIdentifier, out monitoredObjectIdentifier, out timeRemaining, out values) >= 0)
                        OnCOVNotification(this, adr, 0, subscriberProcessIdentifier, initiatingDeviceIdentifier, monitoredObjectIdentifier, timeRemaining, false, values, BacnetMaxSegments.MAX_SEG0);
                    else
                        Trace.TraceWarning("Couldn't decode COVNotifyUnconfirmed");
                }
                else if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION && OnTimeSynchronize != null)
                {
                    DateTime dateTime;
                    if (Services.DecodeTimeSync(buffer, offset, length, out dateTime) >= 0)
                        OnTimeSynchronize(this, adr, dateTime, false);
                    else
                        Trace.TraceWarning("Couldn't decode TimeSynchronize");
                }
                else if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION && OnTimeSynchronize != null)
                {
                    DateTime dateTime;
                    if (Services.DecodeTimeSync(buffer, offset, length, out dateTime) >= 0)
                        OnTimeSynchronize(this, adr, dateTime, true);
                    else
                        Trace.TraceWarning("Couldn't decode TimeSynchronize");
                }
                else if (service == BacnetUnconfirmedServices.SERVICE_UNCONFIRMED_EVENT_NOTIFICATION && OnEventNotify!=null) // F. Chaxel
                {
                    BacnetEventNotificationData EventData;
                    if (Services.DecodeEventNotifyData(buffer, offset, length, out EventData) >= 0)
                    {
                        OnEventNotify(this, adr, EventData);
                    }
                    else
                        Trace.TraceWarning("Couldn't decode Event/Alarm Notification");
                }
                else
                {
                    Trace.TraceWarning("Unconfirmed service not handled: " + service.ToString());
                    // SendUnConfirmedServiceReject(adr); ? exists ?
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError("Error in ProcessUnconfirmedServiceRequest: " + ex.Message);
            }
        }
BacnetClient