コード例 #1
0
        private HaystackNumber ConsumeNum()
        {
            Verify(HaystackToken.num);
            HaystackNumber num = (HaystackNumber)_currentValue;

            Consume(HaystackToken.num);
            return(num);
        }
コード例 #2
0
        private HaystackCoordinate ParseCoordinate(string id)
        {
            if ("C".CompareTo(id) != 0)
            {
                throw GetException("Expecting 'C' for coord, not " + id);
            }
            Consume(HaystackToken.lparen);
            HaystackNumber lat = ConsumeNum();

            Consume(HaystackToken.comma);
            HaystackNumber lng = ConsumeNum();

            Consume(HaystackToken.rparen);
            return(new HaystackCoordinate((decimal)lat.Value, (decimal)lng.Value));
        }
コード例 #3
0
        /// <summary>
        /// Write to a given level of a writable point, and return the current status
        /// of a writable point's priority array <see cref="pointWriteArray"/>.
        /// </summary>
        /// <param name="id">Reference of a writable point.</param>
        /// <param name="level">Number for level to write [1-17].</param>
        /// <param name="who">Username performing the write, defaults to user dis.</param>
        /// <param name="val">Value to write or null to auto the level.</param>
        /// <param name="dur">Number with duration unit if setting level 8.</param>
        /// <returns>Result grid.</returns>
        public Task <HaystackGrid> PointWriteAsync(HaystackReference id, int level, string who, HaystackValue val, HaystackNumber dur)
        {
            var req = new HaystackGrid()
                      .AddColumn("id")
                      .AddColumn("level")
                      .AddColumn("who")
                      .AddColumn("val")
                      .AddColumn("duration")
                      .AddRow(id, new HaystackNumber(level), new HaystackString(who), val, dur);

            return(CallAsync("pointWrite", req));
        }