Com порты зависают или перестают отправлять последовательную связь после 7-8 часов работы
Я работаю над проектом непрерывной отправки шестнадцатеричных данных на последовательные COM-порты с моего компьютера, а затем с COM-портов на светодиоды (индикаторы RGB) через USB-кабель RS232. Иногда это работает в течение 10 -15 часов, а через несколько дней прекращается отправка данных в порты.
Я использую контроллер DMX 512, кабель RS232 USB с драйвером FTDI и язык C# для кодирования для отправки данных с классом SerialPort.
Вот мой код:
public static GO ()
{
try
{
dmx = new Dmx(2, 0);
Thread mTh1 = new Thread(() => dmx.Start(RGBdata1, RGBdata2, RGBdata3));
Global.tmrStarted = true; // test it,ok
mTh1.Start();
}
}
Это мой метод запуска, когда я отправляю данные на 3 порта
while (Global.tmrStarted)
{
Break();
Thread.Sleep(500);
if (m_port == null || m_port.IsOpen == false) return;
m_port.Write(new byte[] { 0 }, 0, 1);
SendData();
Break1();
if (m_port1 == null || m_port1.IsOpen == false) return;
m_port1.Write(new byte[] { 0 }, 0, 1);
SendData1();
Break2();
if (m_port4 == null || m_port4.IsOpen == false) return;
m_port4.Write(new byte[] { 0 }, 0, 1);
SendData2();
Thread.Sleep(100);
}
Когда это останавливается, я пытаюсь отправить данные через нажатие на кнопку "Пуск", но данные не отправляются через эти ком-порты, пока я не отсоединяю USB-кабель и не подключаю снова, что работает после этого.
Может кто-нибудь предложить мне, в чем реальная проблема с коммуникационными портами. Они отключились, посылая им непрерывные данные. Заранее спасибо