E 'piuttosto dipende dalla natura del formato dei dati porta seriale. Se i dati sono costituiti principalmente da caratteri di testo ASCII intervallati dal carattere di controllo occasionale, è possibile incorporarli nella stringa, ad es.
var data1 = Encoding.ASCII.GetBytes("Foo\x1CBar\x1CBaz");
Tuttavia, se i dati consiste di diversi campi di vari tipi di dati, allora la classe BitConverter
può essere più utile, ad esempio
var data2 = new List<byte>();
// Add an int value
data2.AddRange(BitConverter.GetBytes(6));
// Add a control character
data2.Add(0x1C);
// Add an ASCII-encoded string value
data2.AddRange(Encoding.ASCII.GetBytes("Hello"));
Come altri hanno fatto notare, ASCII non è l'unica stringa di codifica si potrebbe usare, ma da una porta seriale è la più probabile.
fonte
2010-05-27 16:02:26
Prima di rispondere alla tua domanda, sarei interessato a sapere perché stai provando a convertire una stringa in un array di byte. –
Sto scrivendo una funzione che analizzerà un array di byte proveniente da una porta seriale, ma al momento sto lavorando cieco e non ho dati reali da testare. Dal momento che ho la documentazione che mostra il formato posso creare i miei dati, e vorrei solo scriverlo come una stringa .Net, convertirlo in un array di byte, e quindi analizzarlo usando la mia funzione. Ma forse c'è un modo migliore. Sono aperto a suggerimenti anche su questo. – JimDaniel