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 })); }
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); }
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); }