Exemplo n.º 1
0
        public void updateData(bool bUpdateDelay = false)
        {
            Dictionary <string, gpioPin> m;

            lock (m_GPIO_values)
            {
                m = new Dictionary <string, gpioPin>(m_GPIO_values);
            }

            if (m_GPIO_DataTable.Rows.Count < m.Count)
            {
                m_GPIO_DataTable.Rows.Add(m.Count - m_GPIO_DataTable.Rows.Count);
            }

            int rowIndex = 0;

            foreach (KeyValuePair <String, gpioPin> i in m)
            {
                gpioPin pin = i.Value;
                if (bUpdateDelay && pin.isChanged())
                {
                    lock (m_GPIO_values)
                    {
                        pin = m_GPIO_values[i.Key];
                        pin.tickChange();
                        m_GPIO_values[i.Key] = pin;
                    }
                    m_GPIO_DataTable.InvalidateRow(rowIndex);
                }
                ++rowIndex;
            }
        }
Exemplo n.º 2
0
        /* table */

        private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            int rowIndex  = e.RowIndex;
            int cellIndex = e.ColumnIndex;

            if (rowIndex < 0 || cellIndex < 0)
            {
                return;
            }

            gpioPin pin = getRowPin(rowIndex);

            if (pin.rowDisable)
            {
                e.CellStyle.BackColor = Color.LightGray;
                return;
            }

            String cellValue = pin.Value;
            Color  bkColor   = Color.White;
            Color  textColor = Color.Black;

            DataGridView view  = (DataGridView)sender;
            String       cName = view.Columns[cellIndex].Name;

            //           DataGridViewCell cell = view.Rows[rowIndex].Cells[cellIndex];

            switch (cName)
            {
            case "GPIO":
                try
                {
                    bkColor = m_GPIO_color[pin.Value];
                }
                catch (Exception) { }
                break;

            case "Value":
                if (pin.isChanged())
                {
                    bkColor   = Color.Red;
                    textColor = Color.White;
                }
                break;

            default:
                if (pin.Value.Length != gpioPin.g_pins.Length)
                {
                    if (pin.isChanged())
                    {
                        bkColor   = Color.Red;
                        textColor = Color.White;
                    }
                    break;
                }
                int nPin = pin.getPinIndex(cName);
                if (nPin >= 0 && pin.IsChangedPin(nPin))
                {
                    bkColor   = Color.Red;
                    textColor = Color.White;
                }
                break;
            }

            e.CellStyle.BackColor = bkColor;
            e.CellStyle.ForeColor = textColor;
        }