Вызов таймера для выполнение цикла функции в ModBus ASCII - C#
Формулировка задачи:
Добрый день,столкнулся с проблемой
есть код для отправки фрейма по COM-порту:
Хочу сделать так,чтобы он записывал и отправлял этот запрос например каждые 10 секунд
Как я понял,это нужно делать в таймере:
Никто не может подсказать,очень много методов перепробовал,ничего не вышло
private void bnt_Read_Click(object sender, EventArgs e)
{
try
{
byte slaveAddress = 1;
byte function = 3;
ushort startAddress = 1556;
uint numberOfPoints = 7;
if (serialPort1.IsOpen)
{
string frame = ReadHoldingRegisterMsg(slaveAddress, startAddress, function, numberOfPoints);
txtSendMsg.Text = frame;
serialPort1.Write(frame);
if (serialPort1.BytesToRead >= 5)
{
string bufferReceiver = serialPort1.ReadLine();
txtRecMsg.Text = bufferReceiver;
string tempStrg = bufferReceiver.Substring(1, bufferReceiver.Length - 2);
byte[] messageReceived = HexToBytes(tempStrg);
if (bufferReceiver.Length == 10) ; //CheckValidate(messageReceived);
byte[] data = new byte[messageReceived[2]];
Array.Copy(messageReceived, 3, data, 0, data.Length);
serialPort1.DiscardInBuffer();
//Process Data
UInt16[] temp = Word.ByteToUInt16(data);
string result = string.Empty;
foreach (var item in temp)
{
result += string.Format("{0}", item);
}
tXtResult.Text = result;
}
}
}
catch (Exception ex)
{
tXtResult.Text = ex.Message;
}private void timer1_Tick(object sender, EventArgs e)
{
}Решение задачи: «Вызов таймера для выполнение цикла функции в ModBus ASCII»
textual
Листинг программы
private void timer1_Tick(object sender, EventArgs e)
{
}