private bool Test_AVTransport_StateVariables()
        {
            bool RetVal = true;

            if (AVT.HasStateVariable_A_ARG_TYPE_InstanceID)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_InstanceID").GetNetType() == typeof(uint))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_A_ARG_TYPE_SeekMode)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_SeekMode").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_SeekMode [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_SeekMode [Incorrect Type]");
                    RetVal = false;
                }
            }

            if (AVT.HasStateVariable_A_ARG_TYPE_SeekTarget)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_SeekTarget").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_SeekTarget [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_SeekTarget [Incorrect Type]");
                    RetVal = false;
                }
            }

            if (AVT.HasStateVariable_AbsoluteCounterPosition)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("AbsoluteCounterPosition").GetNetType() == typeof(int))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AbsoluteCounterPosition [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteCounterPosition [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteCounterPosition [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_AbsoluteTimePosition)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("AbsoluteTimePosition").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AbsoluteTimePosition [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteTimePosition [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteTimePosition [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_AVTransportURI)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("AVTransportURI").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AVTransportURI [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURI [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURI [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_AVTransportURIMetaData)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("AVTransportURIMetaData").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AVTransportURIMetaData [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURIMetaData [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURIMetaData [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentMediaDuration)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentMediaDuration").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentMediaDuration [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentMediaDuration [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentMediaDuration [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentPlayMode)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentPlayMode").GetNetType() == typeof(string))
                {
                    bool PlayModeOK = false;
                    foreach (string PM in AVT.Values_CurrentPlayMode)
                    {
                        if (PM == "NORMAL")
                        {
                            PlayModeOK = true;
                            break;
                        }
                    }
                    if (PlayModeOK)
                    {
                        AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentPlayMode [OK]");
                    }
                    else
                    {
                        AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [MISSING 'NORMAL' mode]");
                        RetVal = false;
                    }
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentTrack)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrack").GetNetType() == typeof(uint))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrack [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrack [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrack [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentTrackDuration)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackDuration").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackDuration [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackDuration [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackDuration [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentTrackMetaData)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackMetaData").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackMetaData [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackMetaData [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackMetaData [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_CurrentTrackURI)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackURI").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackURI [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackURI [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackURI [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_LastChange)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("LastChange").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: LastChange [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: LastChange [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: LastChange [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_NumberOfTracks)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("NumberOfTracks").GetNetType() == typeof(uint))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: NumberOfTracks [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: NumberOfTracks [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: NumberOfTracks [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_RelativeCounterPosition)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("RelativeCounterPosition").GetNetType() == typeof(int))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: RelativeCounterPosition [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeCounterPosition [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeCounterPosition [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_RelativeTimePosition)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("RelativeTimePosition").GetNetType() == typeof(string))
                {
                    AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: RelativeTimePosition [OK]");
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeTimePosition [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeTimePosition [MISSING]");
                RetVal = false;
            }

            if (AVT.HasStateVariable_TransportState)
            {
                if (AVT.GetUPnPService().GetStateVariableObject("TransportState").GetNetType() == typeof(string))
                {
                    bool TSOK    = false;
                    int  NumTSOK = 0;
                    foreach (string TS in  AVT.Values_TransportState)
                    {
                        if (TS == "STOPPED")
                        {
                            ++NumTSOK;
                            TSOK = true;
                            break;
                        }
                    }
                    if (!TSOK)
                    {
                        AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['STOPPED' missing]");
                        RetVal = false;
                    }

                    TSOK = false;
                    foreach (string TS in  AVT.Values_TransportState)
                    {
                        if (TS == "PAUSED_PLAYBACK")
                        {
                            ++NumTSOK;
                            TSOK = true;
                            break;
                        }
                    }
                    if (!TSOK)
                    {
                        AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['PAUSED_PLAYBACK' missing]");
                        RetVal = false;
                    }

                    TSOK = false;
                    foreach (string TS in  AVT.Values_TransportState)
                    {
                        if (TS == "PLAYING")
                        {
                            ++NumTSOK;
                            TSOK = true;
                            break;
                        }
                    }
                    if (!TSOK)
                    {
                        AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['PLAYING' missing]");
                        RetVal = false;
                    }

                    if (NumTSOK == 3)
                    {
                        AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: TransportState [OK]");
                    }
                }
                else
                {
                    AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState [Incorrect Type]");
                    RetVal = false;
                }
            }
            else
            {
                AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState [MISSING]");
                RetVal = false;
            }


            return(RetVal);
        }