Exemplo n.º 1
0
        public JsonResult Post(Pixel pixel)
        {
            LedNode ledNode = new LedNode(pixel.X, pixel.Y, pixel.R, pixel.G, pixel.B);

            _ledStripTranslation.ToImage(ledNode);
            _ledStripTranslation.Device.Update();
            return(new JsonResult(new { pixel.X, pixel.Y, pixel.R, pixel.G, pixel.B }));
        }
Exemplo n.º 2
0
        public bool UpdateHeatmap(IEnumerable <HabitDayRep> habitDayReps)
        {
            int year = DateTime.Now.Year;

            StartOfYear = new DateTime(year, 1, 1);
            MaxRep      = habitDayReps.Max(habit => habit.Repititions);
            MinRep      = habitDayReps.Min(habit => habit.Repititions);

            int dayOfWeekOffset = (int)StartOfYear.DayOfWeek;

            LedNodes = from habitDayRep in habitDayReps
                       where habitDayRep.Date.Year == StartOfYear.Year
                       select new LedNode
                       (
                CalculateXFromDayOfYear(habitDayRep.Date.DayOfYear, dayOfWeekOffset),
                CalculateYFromDayOfYear(habitDayRep.Date.DayOfYear, dayOfWeekOffset),
                CalculateColor(habitDayRep.Repititions)
                       );
            _ledStripTranslation.Image.Clear();
            _ledStripTranslation.ToImage(LedNodes);
            _ledStripTranslation.Device.Update();
            return(true);
        }
Exemplo n.º 3
0
        public bool ScrollText(TextToScroll text)
        {
            if (Texts.Count > 0)
            {
                Texts.Enqueue(text);
                CurrentText = Texts.Dequeue();
                if (IsScrolling)
                {
                    return(true);
                }
            }
            else
            {
                CurrentText = text;
            }
            IsScrolling = true;
            _ledStripTranslation.Image.Clear();
            _ledStripTranslation.Device.Update();
            ColorGrid = new Color[_ledStripTranslation.Height, _ledStripTranslation.Width];

            // adding letters one column at a time
            while (CurrentText.ScrollIterations > 0)
            {
                foreach (char c in CurrentText.Letters)
                {
                    IEnumerable <string> currentLetter = Font[c];
                    foreach (string column in currentLetter)
                    {
                        ShiftColorGrid();
                        // add on new column
                        for (int i = 0; i < column.Length; i++)
                        {
                            if (column[i].Equals('1'))
                            {
                                ColorGrid[i, ColorGrid.GetLength(1) - 1] = CurrentText.Color;
                            }
                            else
                            {
                                ColorGrid[i, ColorGrid.GetLength(1) - 1] = Color.Empty;
                            }
                        }
                        _ledStripTranslation.Image.Clear();
                        _ledStripTranslation.ToImage(ColorGrid);
                        _ledStripTranslation.Device.Update();
                        System.Threading.Thread.Sleep(100);
                    }
                }
                // shift to clear scrolling text
                for (int i = 0; i < _ledStripTranslation.Width; i++)
                {
                    ShiftColorGrid();
                    for (int j = 0; j < _ledStripTranslation.Height; j++)
                    {
                        ColorGrid[j, ColorGrid.GetLength(1) - 1] = Color.Empty;
                    }
                    _ledStripTranslation.Image.Clear();
                    _ledStripTranslation.ToImage(ColorGrid);
                    _ledStripTranslation.Device.Update();
                    System.Threading.Thread.Sleep(100);
                }
                CurrentText.ScrollIterations--;
                if (Texts.Count > 0)
                {
                    CurrentText = Texts.Dequeue();
                }
            }
            IsScrolling = false;
            return(true);
        }