C# 2, 10, 16 și 16 și codurile lor ASCII --------//Conversia diferitelor tipuri de caractere în C# pentru comunicarea prin porturi seriale------------
Înțelegerea duratei caracterului șiruri s = "Sunt un soldat de 2"; int len = s. Lungime; 6 personaje byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Lungime; 11 octeți
Nu are sens să convertești zecimalul în șir, iar acesta trebuie convertit în codul ASCII corespunzător int t1 = 81; Șirul S1 = T1. ToString(); Această conversie zecimală corespunde caracterelor ASCII pentru a avea sens. s1 = ((char)t1). ToString();
Hexazecimal la șir: Asta nu are sens. E la coarde. int intAB = 0x16; s1 = intAB.ToString(); Caractere de la hexazecial la ASCII: octet babb = 0x45; fund de șnură = ((char)babb). ToString();
Șiruri ASCII către numere zecimale string tr = "2Ab Liu"; string d =""; pentru (int i = 0; Am < tr. Lungime; i++) { int ii = (int)Convert.ToChar(trad. Substring(i, 1)); d = d +" "+ ii.ToString(); }
Șir ASCII la număr hexazecial string s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = noul StringBuilder(); foreach (octet b în ba) { sb. Adaugă (b.ToString("x") + " "); }
Hexazecimal până la zecimal int intA = 0x16; La definire, trebuie să fie 0x stringurile A = "16"; Corzile pot fi fără int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10 până la 16 strA = Convert.ToString(intA2, 16);
De la zecimal la binar, hexazecimalul este similar int int10 = 10; string str2 = Convert.ToString(int10,2);
De la binar la zecimal int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Cum primește portul serial C# un set de numere hexazecimale Cum primește C# SerialPort un set de numere hexazecimale și cum ar trebui scris programul? Cel mai bun răspuns System.IO.Ports.SerialPort sp = noul System.IO.Ports.SerialPort("COM1"); int mărimea bufferului = 6; Dimensiunea numărului hexazecimal (să zicem 6Byte) Byte[] buffer = new Byte[buffersize]; Creează un tampon sp. Read(buffer, 0, buffersize); Citit din COM1
Acest set de numere hexazecimale este procesat
Portul serial C# trimite date Puncte de recompensă: 5 - Timp de rezolvare: 2009-10-19 21:15 Vreau să trimit o comandă hexadecimală către portul serial, șirul de comenzi este: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Cum pot converti numeric șirul de mai sus astfel încât portul serial al calculatorului să știe că șirul pe care l-am trimis este hexazecimal? Supliment de întrebare: Cine are un astfel de cod exemplu, vă rog să mă ajutați, sunt producător hardware, nu sunt familiarizat cu software-ul, sper ca masterul să poată oferi un cod detaliat, mulțumesc! Întrebare: daishuanqing - Stagiar Nivel 1 Cel mai bun răspuns Adaugă o referință: Microsoft.VisualBasic (este cod C#, dar trebuie referențiat.) )
Parcurgeți SerialPortNames cu următoarele pentru a obține toate porturile seriale Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer(); Foreach (șirul S în pc. Portări.NumeSeriePorți)
{ this.comboBox1.Items.Add(s);
}
Apoi, numele portului serial comName afișat este folosit pentru a obține obiectul operațiunii. Poți deschide acest port serial:
System.IO.Ports.SerialPort com = nou System.IO.Ports.SerialPort(comName); com. Open();
Datele pot fi apoi scrise pe portul serial
Trimiterea datelor către portul serial: com. WriteLine(this.textBox1.Text); Tablourile de octeți pot fi scrise și com. Scrie (bArray,0,5); Se referă la cei 5 octeți care pornesc de la 0 și care scriu array-ul de octeți bArray
Se pot accepta și date: com. ReadLine() De asemenea, este posibil să citești octeții com. ReadByte();
În final, este închis: com. Apropiat();
De asemenea, convertiți șirul hexazecimal în octet octet b = Convert.ToByte("1A",16); Portul serial C# trimite date Puncte de recompensă: 5 - Timp de rezolvare: 2009-10-19 21:15 Vreau să trimit o comandă hexadecimală către portul serial, șirul de comenzi este: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Cum pot converti numeric șirul de mai sus astfel încât portul serial al calculatorului să știe că șirul pe care l-am trimis este hexazecimal? Supliment de întrebare: Cine are un astfel de cod exemplu, vă rog să mă ajutați, sunt producător hardware, nu sunt familiarizat cu software-ul, sper ca masterul să poată oferi un cod detaliat, mulțumesc! Întrebare: daishuanqing - Stagiar Nivel 1 Cel mai bun răspuns Adaugă o referință: Microsoft.VisualBasic (este cod C#, dar trebuie referențiat.) )
Parcurgeți SerialPortNames cu următoarele pentru a obține toate porturile seriale Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer(); Foreach (șirul S în pc. Portări.NumeSeriePorți)
{ this.comboBox1.Items.Add(s);
}
Apoi, numele portului serial comName afișat este folosit pentru a obține obiectul operațiunii. Poți deschide acest port serial:
System.IO.Ports.SerialPort com = nou System.IO.Ports.SerialPort(comName); com. Open();
Datele pot fi apoi scrise pe portul serial
Trimiterea datelor către portul serial: com. WriteLine(this.textBox1.Text); Tablourile de octeți pot fi scrise și com. Scrie (bArray,0,5); Se referă la cei 5 octeți care pornesc de la 0 și care scriu array-ul de octeți bArray
Se pot accepta și date: com. ReadLine() De asemenea, este posibil să citești octeții com. ReadByte();
În final, este închis: com. Apropiat();
De asemenea, convertiți șirul hexazecimal în octet octet b = Convert.ToByte("1A",16); |