Реализация передачи файлов через com-порт - C#
Формулировка задачи:
Здравствуйте, я только недавно начал изучать с#, мой скил соу лоу, так что для того чтобы сделать следующее задание мне нужна некоторая поддержка, надеюсь получить её здесь.
Итак, задача заключается в следующем, перебросить какие-то данные через ком-порт, к примеру, файл. Вот что я сумел нашкодить:
Решение задачи: «Реализация передачи файлов через com-порт»
textual
Листинг программы
//----------------------------------- // Метод ассинхронного приёма данных //----------------------------------- protected override void OnDoWork(DoWorkEventArgs e) { Message("Поток приёма стартовал\n"); int readedBytesCount = 0; // счётчик считанных байтов byte len = 0; // длина поля DATA byte[] receiveBuffer = new byte[60]; // приёмный буфер byte[] resultBuffer; // результирующий буфер while (true) { readedBytesCount = 0; if (CancellationPending) { e.Cancel = true; break; } try { if (!com.IsOpen) { Message("Порт закрыт\n"); break; } lock (comLocker) { //stx readedBytesCount += com.Read(receiveBuffer, readedBytesCount, 1); if (readedBytesCount < 1) { Message("[err 0]\n"); continue; } if (receiveBuffer[0] != 0xB5) { Message("[err 1]\n"); continue; } //address readedBytesCount += com.Read(receiveBuffer, readedBytesCount, 1); //len readedBytesCount += com.Read(receiveBuffer, readedBytesCount, 1); len = receiveBuffer[2]; //cmd readedBytesCount += com.Read(receiveBuffer, readedBytesCount, 1); //data readedBytesCount += com.Read(receiveBuffer, readedBytesCount, len); //crc readedBytesCount += com.Read(receiveBuffer, readedBytesCount, 1); resultBuffer = new byte[readedBytesCount]; Array.Copy(receiveBuffer, resultBuffer, resultBuffer.Length); Debugger.MessageDateTime("COM получил пакет, генерирует событие"); OnPackageReceived(this, new ObjectEventArgs(resultBuffer)); } } catch (TimeoutException err) { continue; } catch (IOException err) { Message(err.Message); continue; } Thread.Sleep(1); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д