mantech 34 21 марта, 2021 Опубликовано 21 марта, 2021 · Жалоба 2 часа назад, jenya7 сказал: и посылаете что хотите, как хотите и куда хотите. serial_port.Write(my_string); serial_port.Write(bytes_array, offset, size); 20 строк кода и весь мир UART у ваших ног. И что, это весь терминал что-ли? В лучшем случае функция передачи, если заработает, прием гораздо сложнее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 21 марта, 2021 Опубликовано 21 марта, 2021 · Жалоба 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); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться