コード例 #1
0
 private void updateModuleDate()
 {
     labelModuleDate.Text = "";
     for (int i = 1; i < 4; i++)
     {
         if (UART.GetByteFromBufferRX(i).ToString().Length == 1)
         {
             labelModuleDate.Text += "0";
         }
         labelModuleDate.Text += UART.GetByteFromBufferRX(i).ToString();
         if (i < 3)
         {
             labelModuleDate.Text += " / ";
         }
         else
         {
             labelModuleDate.Text += "  ";
         }
     }
     if (UART.GetByteFromBufferRX(4) < 7)
     {
         labelModuleDate.Text += TIME.daysOfWeek[UART.GetByteFromBufferRX(4)];
     }
 }
コード例 #2
0
        private void UpdateTimer_Tick(object sender, EventArgs e)   //таймер 100мс
        {
            UART.RecieveMessage();                                  //принимаем пакет из UART
            updateDevText();                                        //отображаем его во вкладке разработчика

            switch (tabControl.SelectedIndex)                       //управление действиями в зависимости от выбранной вкладки
            {
            //ЦВЕТ
            case 0:
                UpdateTimer.Interval = 100;                             //10Гц
                if (Globals.flagFirstStart)                             //при инициализации связи
                {
                    UART.WriteByteToBufferTX((byte)(02), 0);            //запрашиваем текущий цвет1
                    UART.SendBufferTX();
                    UART.WriteByteToBufferTX((byte)(04), 0);            //запрашиваем текущий цвет2
                    UART.SendBufferTX();
                }
                else                                                   //после инициализации связи
                {
                    UART.WriteByteToBufferTX((byte)(01), 0);           //всё время шлем новый цвет
                    UART.WriteByteToBufferTX((byte)(trackBarRed1.Value * 5), 1);
                    UART.WriteByteToBufferTX((byte)(trackBarGreen1.Value * 5), 2);
                    UART.WriteByteToBufferTX((byte)(trackBarBlue1.Value * 5), 3);
                    UART.WriteByteToBufferTX((byte)(trackBarWhite1.Value * 5), 4);
                    UART.WriteByteToBufferTX((byte)(trackBarBlack1.Value * 5), 5);
                    UART.WriteByteToBufferTX((byte)(trackBarSpeed1.Value * 5), 6);
                    UART.SendBufferTX();
                    UART.WriteByteToBufferTX((byte)(03), 0);                                //всё время шлем новый цвет
                    UART.WriteByteToBufferTX((byte)(trackBarRed2.Value * 5), 1);
                    UART.WriteByteToBufferTX((byte)(trackBarGreen2.Value * 5), 2);
                    UART.WriteByteToBufferTX((byte)(trackBarBlue2.Value * 5), 3);
                    UART.WriteByteToBufferTX((byte)(trackBarWhite2.Value * 5), 4);
                    UART.WriteByteToBufferTX((byte)(trackBarBlack2.Value * 5), 5);
                    UART.WriteByteToBufferTX((byte)(trackBarSpeed2.Value * 5), 6);
                    UART.SendBufferTX();
                }
                break;

            //ВРЕМЯ
            case 1:
                UpdateTimer.Interval = 200;                             //50Гц
                //обновляем системное время и выводим во вкладку "время"
                TIME.updateSysTimeBuffer();
                updateSystemTime();

                //запрашиваем время модуля и ответ выводим во вкладку "время"
                Globals.counter_tabTIME++;
                if (Globals.counter_tabTIME > 3)
                {
                    Globals.counter_tabTIME = 0;
                }
                switch (Globals.counter_tabTIME)
                {
                case 0:
                    UART.WriteByteToBufferTX((byte)(12), 0);                //запрашиваем текущее время
                    break;

                case 1:
                    UART.WriteByteToBufferTX((byte)(14), 0);                //дату
                    break;

                case 2:
                    if (Globals.flagUpdateAlarm)
                    {
                        UART.WriteByteToBufferTX((byte)(22), 0);                                         //недельный будильник
                    }
                    break;

                case 3:
                    if (Globals.flagUpdateAlarm)
                    {
                        UART.WriteByteToBufferTX((byte)(24), 0);                                         //однократный будильник
                    }
                    Globals.flagUpdateAlarm = false;
                    break;
                }

                UART.SendBufferTX();
                break;
            }

            switch (UART.GetByteFromBufferRX(0))        //когда приняли пакет, проверяем команду
            {
            case 2:
                if (Globals.flagFirstStart)
                {
                    //Globals.firstTime = false;                  //инициализация происходит в четвертом кейсе
                    updateColourFromUART1();
                }
                break;

            case 4:
                if (Globals.flagFirstStart)
                {
                    Globals.flagFirstStart = false;                      //считаем что инициализация связи прошла успешно
                    updateColourFromUART2();
                }
                break;

            case 12:
                updateModuleTime();
                break;

            case 14:
                updateModuleDate();
                break;

            case 22:
                updateModuleWA();
                break;

            case 24:
                //updateModuleTA();
                break;
            }
        }
コード例 #3
0
        private void updateModuleWA()             //обновляем данные морды о будильнике
        {
            if (UART.GetByteFromBufferRX(1) == 1) //ставим галочку enable
            {
                checkedListBoxWAEnable.ForeColor = Color.FromArgb(50, 255, 50);
                checkedListBoxWAEnable.SetItemChecked(0, true);
            }
            else
            {
                checkedListBoxWAEnable.ForeColor = Color.FromArgb(255, 50, 50);
                checkedListBoxWAEnable.SetItemChecked(0, false);
            }

            for (int i = 0; i < 7; i++)     //ставим галочки на днях
            {
                if (((UART.GetByteFromBufferRX(2) >> i) & 1) == 1)
                {
                    checkedListBoxWADays.SetItemChecked(i, true);
                }
                else
                {
                    checkedListBoxWADays.SetItemChecked(i, false);
                }
            }

            //рисуем wake up current time
            labelWASCurrent.Text = "";
            if (UART.GetByteFromBufferRX(4).ToString().Length < 2)
            {
                labelWASCurrent.Text += "0";
            }
            labelWASCurrent.Text += UART.GetByteFromBufferRX(4).ToString();
            labelWASCurrent.Text += ":";
            if (UART.GetByteFromBufferRX(3).ToString().Length < 2)
            {
                labelWASCurrent.Text += "0";
            }
            labelWASCurrent.Text += UART.GetByteFromBufferRX(3).ToString();

            labelWAECurrent.Text = "";
            if (UART.GetByteFromBufferRX(6).ToString().Length < 2)
            {
                labelWAECurrent.Text += "0";
            }
            labelWAECurrent.Text += UART.GetByteFromBufferRX(6).ToString();
            labelWAECurrent.Text += ":";
            if (UART.GetByteFromBufferRX(5).ToString().Length < 2)
            {
                labelWAECurrent.Text += "0";
            }
            labelWAECurrent.Text += UART.GetByteFromBufferRX(5).ToString();

            //рисуем wake up target time также как и current чтобы потом меньше с этим ебаться
            textBoxWASHour.Text = "";
            if (UART.GetByteFromBufferRX(4).ToString().Length < 2)
            {
                textBoxWASHour.Text += "0";
            }
            textBoxWASHour.Text  += UART.GetByteFromBufferRX(4).ToString();
            textBoxWASMinute.Text = "";
            if (UART.GetByteFromBufferRX(3).ToString().Length < 2)
            {
                textBoxWASMinute.Text += "0";
            }
            textBoxWASMinute.Text += UART.GetByteFromBufferRX(3).ToString();

            textBoxWAEHour.Text = "";
            if (UART.GetByteFromBufferRX(6).ToString().Length < 2)
            {
                textBoxWAEHour.Text += "0";
            }
            textBoxWAEHour.Text  += UART.GetByteFromBufferRX(6).ToString();
            textBoxWAEMinute.Text = "";
            if (UART.GetByteFromBufferRX(5).ToString().Length < 2)
            {
                textBoxWAEMinute.Text += "0";
            }
            textBoxWAEMinute.Text += UART.GetByteFromBufferRX(5).ToString();
        }