Перейти к содержанию
    

Терминал COM-порт для передачи HEX

2 часа назад, jenya7 сказал:

и посылаете что хотите, как хотите и куда хотите.


serial_port.Write(my_string);
serial_port.Write(bytes_array, offset, size);

20 строк кода и весь мир UART у ваших ног.

И что, это весь терминал что-ли? В лучшем случае функция передачи, если заработает, прием гораздо сложнее...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, mantech said:

И что, это весь терминал что-ли? В лучшем случае функция передачи, если заработает, прием гораздо сложнее...

ну ещё добавить парсер. в Visual Studio парсер и конвертация одно в другое до неприличия простое.

прием можно по ивенту или полингом или комбинируя. всё очень просто

Spoiler

// event
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            if (terminal_enable)
            {
                if (rx_type == BINARY)
                {
                    if (File.Exists(file_path))
                        file_stream = new FileStream(file_path, FileMode.Append);
                    else
                        return;

                    int bytes = serial_port.BytesToRead;
                    byte[] buffer = new byte[bytes];
                    serial_port.Read(buffer, 0, bytes);

                    file_stream.Write(buffer, 0, bytes);

                    file_stream.Close();
                }
                else if (rx_type == ASCII)
                {
                    string str = serial_port.ReadExisting();

                    Invoke((MethodInvoker)delegate { richTextBoxUartRx.AppendText(str); });
                }
            }
        }

//polling
private void ReadBytes(int timeout, byte[] data, int size)
        {
            int ticks = 0;

            while (comport.BytesToRead == 0)
            {
                Thread.Sleep(1);
                ticks++;
                if (ticks > timeout)
                {
                    return;
                }
            }

            if (size > data.Length)
                size = data.Length;

            comport.Read(data, 0, size);
        }

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...