Нужно для отображения шестнадцатеричных в TextBox

Автор:editor

Нужно для отображения шестнадцатеричных в TextBox

Цитата: nick007

Это им код, используя и выводит текст в текстовое поле

частная sport_DataReceived недействительным(объект отправителя, SerialDataReceivedEventArgs е)
{
ДТ датавремя = Датавремя.Сейчас;
Строки ЦТС = ДТ.ToShortTimeString();

txtReceive.AppendText (на»[» в+СПД+на»] » в+»и получил: » и+спорт.ReadExisting()+» и\Н» — а);
}

Мне это нужно для отображения шестнадцатеричных как ниже

Ф2,9Е,1,0,79,0,0,0,В0,0,0,40,1,7,7,1,А4,3,1 Д,0,0,0 ,0,3,ФФ 1,

Цитата: jmcilhinney

Что именно Вы читаете? ReadExisting возвращает строку, но если вы хотите, чтобы отобразить шестнадцатеричный вывод то вы хотели байт. Вы, вероятно, следует посмотреть на способ чтения, который позволяет заполнить массив байтов. Если у вас есть байтовый массив, вы можете создать файл с разделителями-запятыми, шестнадцатеричную строку, например, так:
строку.Присоединиться(» и» Ну, myByteArray.Выберите(б => б.Метод toString (на»Х» — а)))

Цитата: nick007

Им чтение последовательного порта

вот немного моего кода

namespace SerialPort
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            cmdClose.Enabled = false;
            foreach (String s in System.IO.Ports.SerialPort.GetPortNames())
            {
                txtPort.Items.Add(s);
            }
        }
        public System.IO.Ports.SerialPort sport;
        public void serialport_connect(String port, int baudrate , Parity parity, int databits, StopBits stopbits)
        {
            DateTime dt = DateTime.Now;
            String dtn = dt.ToShortTimeString();
            sport = new System.IO.Ports.SerialPort(
            port, baudrate, parity, databits, stopbits);
            try
            {
                sport.Open();
                cmdClose.Enabled = true;
                cmdConnect.Enabled = false;
                txtReceive.AppendText("[" + dtn + "] " + "Connected\n");
                sport.DataReceived += new SerialDataReceivedEventHandler(sport_DataReceived);
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error"); }
        }
        private void sport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            DateTime dt = DateTime.Now;
            String dtn = dt.ToShortTimeString();
            txtReceive.AppendText("["+dtn+"] "+"Received: "+sport.ReadExisting()+"\n");
        }
Цитата: jmcilhinney

Я знаю, что вы читаете ИЗ SerialPort. В противном случае у вас не будет обработчика событий DataReceived для SerialPort. Я спрашивал, что вы на самом деле читаете, то есть что это за данные? Если это не текст, тогда читать его как текст неуместно для начала. Если это текст, то у вас есть два варианта. Вы можете либо прочитать необработанные двоичные данные, как если бы они не были нетекстовыми, либо вы можете прочитать текст, а затем преобразовать его в двоичные данные. Последнее немного проще, потому что вы можете придерживаться вызова ReadExisting, но довольно неэффективно сначала преобразовывать необработанные двоичные данные в текст, что делает ReadExisting, а затем преобразовывать их обратно в двоичные данные. Использование Read позволяет избежать двойного преобразования, но ваш код должен быть немного сложнее.

Цитата: nick007

Я использую кабель ALDL и считываю данные из порта ODB автомобиля.

Вы можете видеть на изображении данные, которые отображаются.

Я новичок в программировании, а не то, что я получаю от кабеля

Цитата: JuggaloBrotha
ранее писал : nick007
Я использую кабель ALDL и считываю данные из порта ODB автомобиля.

Вы можете видеть на изображении данные, которые отображаются.

Я новичок в программировании, а не то, что я получаю от кабеля

Если вы не знаете, какие данные вы собираетесь получить от автомобиля ОДБ порт вы не можете для него программу, так что документов на автомобиль, говорят, что это посылает?

Цитата: nick007

Девять миллионов восемьсот пятьдесят четыре тысячи триста двадцать один

Итак, теперь с немного исследований, по всей видимости, данные выйдя из кабель aldl соответствие в байтах

Цитата: jmcilhinney

Так вернитесь и прочитайте пост #2 снова.

Цитата: nick007

ОК

Code:
private void sport_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)


{



 DateTime dt = DateTime.Now;



 String dtn = dt.ToShortTimeString();




int dataLength = sport.BytesToRead;



 byte[] dataRecevied = new byte[dataLength];



 int nbytes = sport.Read(dataRecevied, 0, dataLength);



 if (nbytes == 0) return;




string data = BitConverter.ToString(dataRecevied);





 textBox1.AppendText("[" + dtn + "] " + "Received: " + data + "\n");




// Not Used !!!!!!!



// txtReceive.AppendText("[" + dtn + "] " + "Received: " + result + "\n");



 }

я получаю шестнадцатеричных данных я хочу, но у меня есть тире между цифрами, как это

2C-30-30-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-2C-32-44-0D-0А

как можно снять приборную панель и заменить с такой запятой

Ф2,70,28,09,01,00,00,07,Д4,01,14,6 Д,6Е,6Е,6Е,6Е,00 ,58,00,2 г,2Д,2Д,2Д,2Д,2Д,2Д,2Д,2Д,2Д

Цитата: jmcilhinney

Вы могли делать то, что я тебе сказал в посте № 2, два с половиной дня назад. Зачем просить помочь, если ты будешь так упорно игнорируете?

Цитата: nick007

я не мог у тебя работать

но я использовал этот один, который в перебежках между

string data = BitConverter.ToString (dataRecevied);

затем обновляется до этого …

string data = BitConverter.ToString (dataRecevied) .Replace («-«, «»);

кажется, работает .. в тесте виртуального порта ..

завтра я проверю это на оборудовании и посмотрю, как я иду.

Спасибо вам большое за вашу помощь

Цитата: nick007

Ок у меня все работает сейчас

Об авторе

editor administrator

})