Example #1
0
        //
        // Constructor - Internal prevents public creation
        // of instances. Returned by Telescope.AxisRates.
        //
        internal AxisRates(TelescopeAxis Axis, ILogger TL)
        {
            m_axis = Axis;
            logger = TL;
            AlpacaDeviceBaseClass.LogMessage(TL, 0, "AlpacaClients.AxisRates Init", $"Supplied axis: {Axis}");

            //
            // This collection must hold zero or more Rate objects describing the
            // rates of motion ranges for the Telescope.MoveAxis() method
            // that are supported by your driver. It is OK to leave this
            // array empty, indicating that MoveAxis() is not supported.
            //
            // Note that we are constructing a rate array for the axis passed
            // to the constructor. Thus we switch() below, and each case should
            // initialize the array for the rate for the selected axis.
            //
            switch (m_axis)
            {
            case TelescopeAxis.Primary:
            case TelescopeAxis.Secondary:
            case TelescopeAxis.Tertiary:
                m_Rates = new Rate[] { };
                break;
            }
            pos = -1;
            AlpacaDeviceBaseClass.LogMessage(TL, 0, "AlpacaClients.AxisRates Init", $"Number of Rates: {m_Rates.Length}");
        }
        private IRestRequest BuildCanMoveAxisRequest(TelescopeAxis axis)
        {
            var parameters = new Dictionary <string, object>
            {
                { TelescopeCommandParameters.Axis, ((int)axis).ToString() }
            };

            return(RequestBuilder.BuildRestRequest(TelescopeCommand.CanMoveAxis, Method.GET, parameters, GetClientTransactionId()));
        }
        private IRestRequest BuildMoveAxisRequest(TelescopeAxis axis, double rate)
        {
            var parameters = new Dictionary <string, object>
            {
                { TelescopeCommandParameters.Axis, ((int)axis).ToString() },
                { TelescopeCommandParameters.Rate, rate.ToString(CultureInfo.InvariantCulture) }
            };

            return(RequestBuilder.BuildRestRequest(TelescopeCommand.MoveAxis, Method.PUT, parameters, GetClientTransactionId()));
        }
        public bool CanMoveAxis(TelescopeAxis Axis)
        {
            DynamicClientDriver.SetClientTimeout(client, standardDeviceResponseTimeout);
            Dictionary <string, string> Parameters = new Dictionary <string, string>
            {
                { AlpacaConstants.AXIS_PARAMETER_NAME, ((int)Axis).ToString(CultureInfo.InvariantCulture) }
            };

            return(DynamicClientDriver.SendToRemoteDevice <bool>(clientNumber, client, URIBase, strictCasing, TL, "CanMoveAxis", Parameters, Method.GET, MemberTypes.Method));
        }
        public void MoveAxis(TelescopeAxis Axis, double Rate)
        {
            DynamicClientDriver.SetClientTimeout(client, longDeviceResponseTimeout);
            Dictionary <string, string> Parameters = new Dictionary <string, string>
            {
                { AlpacaConstants.AXIS_PARAMETER_NAME, ((int)Axis).ToString(CultureInfo.InvariantCulture) },
                { AlpacaConstants.RATE_PARAMETER_NAME, Rate.ToString(CultureInfo.InvariantCulture) }
            };

            DynamicClientDriver.SendToRemoteDevice <NoReturnValue>(clientNumber, client, URIBase, strictCasing, TL, "MoveAxis", Parameters, Method.PUT, MemberTypes.Method);
        }
 /// <inheritdoc/>
 public async Task MoveAxisAsync(TelescopeAxis axis, double rate) => await ExecuteRequestAsync(BuildMoveAxisRequest, axis, rate);
 /// <inheritdoc/>
 public void MoveAxis(TelescopeAxis axis, double rate) => ExecuteRequest(BuildMoveAxisRequest, axis, rate);
 /// <inheritdoc/>
 public async Task <bool> CanMoveAxisAsync(TelescopeAxis axis) => await ExecuteRequestAsync <bool, BoolResponse, TelescopeAxis>(BuildCanMoveAxisRequest, axis);
 /// <inheritdoc/>
 public bool CanMoveAxis(TelescopeAxis axis) => ExecuteRequest <bool, BoolResponse, TelescopeAxis>(BuildCanMoveAxisRequest, axis);
 /// <inheritdoc/>
 public async Task <IList <AxisRate> > GetAxisRatesAsync(TelescopeAxis axis) => await ExecuteRequestAsync <IList <AxisRate>, AxisRatesResponse, TelescopeAxis>(BuildGetAxisRatesRequest, axis);
 /// <inheritdoc/>
 public IList <AxisRate> GetAxisRates(TelescopeAxis axis) => ExecuteRequest <IList <AxisRate>, AxisRatesResponse, TelescopeAxis>(BuildGetAxisRatesRequest, axis);