Вот сделка. Я нашел исходный код и немного изменил его, чтобы получить данные из ресивера, который находится на com6. Данные, которые я получаю, являются двоичными. Я хочу преобразовать его в шестнадцатеричную строку, чтобы я мог отрезать части строки и декодировать их отдельно. Как я могу это сделать?C# двоичные данные из порта конвертировать в шестнадцатеричную строку
using System; using System.IO.Ports; using System.Threading; public class PortChat { static bool _continue; static SerialPort _serialPort; public static void Main() { string name; string message; StringComparer stringComparer = StringComparer.OrdinalIgnoreCase; Thread readThread = new Thread(Read); // Create a new SerialPort object with default settings. _serialPort = new SerialPort(); // Allow the user to set the appropriate properties. _serialPort.PortName = SetPortName(_serialPort.PortName); _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate); _serialPort.Parity = SetPortParity(_serialPort.Parity); _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits); _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits); _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake); // Set the read/write timeouts _serialPort.ReadTimeout = 1000; _serialPort.WriteTimeout = 1000; _serialPort.Open(); _continue = true; readThread.Start(); Console.Write("Name: "); name = Console.ReadLine(); Console.WriteLine("Type QUIT to exit"); while (_continue) { message = Console.ReadLine(); if (stringComparer.Equals("quit", message)) { _continue = false; } else { _serialPort.WriteLine( String.Format("<{0}>: {1}", name, message)); } } readThread.Join(); _serialPort.Close(); } public static void Read() { while (_continue) { try { string message = _serialPort.ReadLine(); Console.WriteLine(message); catch (TimeoutException) { } } } public static string SetPortName(string defaultPortName) { string portName; portName = "COM6"; return portName; } public static int SetPortBaudRate(int defaultPortBaudRate) { string baudRate; baudRate = "9600"; return int.Parse(baudRate); } public static Parity SetPortParity(Parity defaultPortParity) { string parity; parity = "None"; return (Parity)Enum.Parse(typeof(Parity), parity); } public static int SetPortDataBits(int defaultPortDataBits) { string dataBits; dataBits = "8"; return int.Parse(dataBits); } public static StopBits SetPortStopBits(StopBits defaultPortStopBits) { string stopBits; stopBits = "One"; return (StopBits)Enum.Parse(typeof(StopBits), stopBits); } public static Handshake SetPortHandshake(Handshake defaultPortHandshake) { string handshake; handshake = "None"; return (Handshake)Enum.Parse(typeof(Handshake), handshake); } }
почему вы Повторно? вы бы отредактировали этот пост. Покажите, как вы получаете и как вы хотите преобразовать его в? –
Возможный дубликат [Преобразование двоичных данных в C# в строку] (http://stackoverflow.com/questions/6214396/c-binary-data-conversion-to-string) – SwDevMan81
моя ошибка повторно отправлена –