Example #1
0
        /// <summary>
        ///     Creates an instance of a rotator status from the notification string received from the NexDome
        ///     hardware.
        /// </summary>
        /// <param name="status">The status string received from the controller hardware.</param>
        /// <returns>An object implementing <see cref="IRotatorStatus" /> populated with the status values.</returns>
        public IRotatorStatus FromRotatorStatusPacket(string status)
        {
            var match           = RotatorStatusRegex.Match(status);
            var captures        = match.Groups["Values"].Captures;
            var valueCollection = captures.Cast <Capture>().Select(p => p.Value);

            return(RotatorStatus.FromValueCollection(valueCollection));
        }
Example #2
0
            /// <summary>Creates and populates a RotatorStatus instance from a collection of string values.</summary>
            /// <param name="valueCollection">
            ///     A collection of strings containing the status values that will need
            ///     to be parsed.
            /// </param>
            /// <returns>IRotatorStatus.</returns>
            public static IRotatorStatus FromValueCollection(IEnumerable <string> valueCollection)
            {
                var values = valueCollection.ToArray();
                var status = new RotatorStatus
                {
                    Azimuth           = int.Parse(values[0]),
                    AtHome            = values[1] == "1",
                    DomeCircumference = int.Parse(values[2]),
                    HomePosition      = int.Parse(values[3]),
                    DeadZone          = int.Parse(values[4]), // Fixes #20
                };

                return(status);
            }