/* действия пользователя */ private void buttonSend_Click(object sender, EventArgs e) //нажали на кнопку "отправить" { UART.WriteByteToBufferTX(byte.Parse(textBoxData0tx.Text), 0); //закидываем в буфер содержимое полей UART.WriteByteToBufferTX(byte.Parse(textBoxData1tx.Text), 1); UART.WriteByteToBufferTX(byte.Parse(textBoxData2tx.Text), 2); UART.WriteByteToBufferTX(byte.Parse(textBoxData3tx.Text), 3); UART.WriteByteToBufferTX(byte.Parse(textBoxData4tx.Text), 4); UART.WriteByteToBufferTX(byte.Parse(textBoxData5tx.Text), 5); UART.WriteByteToBufferTX(byte.Parse(textBoxData6tx.Text), 6); labelCRCValue.Text = UART.SendBufferTX().ToString(); //отправляем буфер, выводим CRC }
private void buttonSyncTime_Click(object sender, EventArgs e) { UART.WriteByteToBufferTX(11, 0); for (int i = 0; i < 3; i++) { UART.WriteByteToBufferTX(TIME.bufferSysTime[i], i + 1); } labelCRCValue.Text = UART.SendBufferTX().ToString(); //отправляем буфер, выводим CRC UART.WriteByteToBufferTX(13, 0); for (int i = 0; i < 4; i++) { UART.WriteByteToBufferTX(TIME.bufferSysTime[i + 3], i + 1); } labelCRCValue.Text = UART.SendBufferTX().ToString(); //отправляем буфер, выводим CRC }
private void buttonWASet_Click(object sender, EventArgs e) { UART.WriteByteToBufferTX(21, 0); byte days = 0; for (int i = 0; i < 7; i++) { days |= (byte)((Convert.ToInt32(checkedListBoxWADays.GetItemChecked(i))) << i); } UART.WriteByteToBufferTX((byte)(Convert.ToInt32(checkedListBoxWAEnable.GetItemChecked(0))), 1); UART.WriteByteToBufferTX(days, 2); UART.WriteByteToBufferTX((byte)(Int32.Parse(textBoxWASMinute.Text)), 3); UART.WriteByteToBufferTX((byte)(Int32.Parse(textBoxWASHour.Text)), 4); UART.WriteByteToBufferTX((byte)(Int32.Parse(textBoxWAEMinute.Text)), 5); UART.WriteByteToBufferTX((byte)(Int32.Parse(textBoxWAEHour.Text)), 6); labelCRCValue.Text = UART.SendBufferTX().ToString(); //отправляем буфер, выводим CRC Globals.flagUpdateAlarm = true; }
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; } }