Ejemplo n.º 1
0
        /// <summary>
        /// Method implements initial request. Returned result sets to Atomics.UnitDescription property and
        /// to internal this._xmlDescription variable.
        /// </summary>
        /// <param name="hostNameorAddress">Host name or IP address of the AV receiver</param>
        public bool RequestUnitDescription(string hostNameorAddress)
        {
            Atomics.HostNameOrIPAddress = hostNameorAddress;

            bool result = false;

            try
            {
                if (PingIpAddress(3, hostNameorAddress) == true)
                {
                    string ynccmd = YNCCommand.CreateCommand(MethodType.NONE);

                    Atomics.UnitDescription = Http.Send(hostNameorAddress, Atomics.UnitDescriptionPath, HttpMethod.Get, ynccmd);
                    UnitDescription         = Atomics.UnitDescription;
                    OnResponseReceived?.Invoke(this, new CommEventArgs()
                    {
                        Success = true, UnitDescription = Atomics.UnitDescription, YNCFunction = CommandListFunctionType.UnitDescription
                    });

                    result = true;
                }
                else
                {
                    throw new Exception("Receiver is not accessible.");
                }
            }
            catch (Exception ex)
            {
                OnResponseReceived?.Invoke(this, new CommEventArgs()
                {
                    Success = false, ErrorMessage = ex.Message, YNCFunction = CommandListFunctionType.UnitDescription
                });
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Method creates YNC command, sends it to AV unit, and returns response
        /// </summary>
        /// <param name="cmd">YNCCommand.CommandType type</param>
        /// <param name="path">Sequential presentation of YNC function: System,Misc,Network,Network_Name</param>
        /// <returns>XElement response</returns>
        internal XElement SendYNCCommand(MethodType cmd, string path, object value = null)
        {
            string ynccmd = YNCCommand.CreateCommand(cmd, path, value);

            return(Http.Send(Atomics.HostNameOrIPAddress, Atomics.RemoteControlPath, YamahaAVLib.ENums.HttpMethod.Post, ynccmd));
        }