C# 2, 10, 16 a 16 a ich ASCII kódy --------//Konverzia rôznych typov znakov v C# pre komunikáciu so sériovými portmi------------
Pochopenie dĺžky znaku string s = "Som vojak 2"; int len = s.dĺžka; 6 postáv byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Dĺžka; 11 bajtov
Nemá zmysel konvertovať desatinnú frekvenciu na reťazec a musí byť prevedená na príslušný ASCII kód int t1 = 81; reťazec s1 = t1. ToString(); Táto desiatková konverzia zodpovedá ASCII znakom, aby dávala zmysel. s1 = ((char)t1). ToString();
Hexadecimálne na reťazec: Toto nedáva zmysel. Je to šňůra. intAB = 0x16; s1 = intAB.ToString(); Hexadecimálne až ASCII znaky: byte babb = 0x45; string ass = ((char)babb). ToString();
ASCII reťazce na desatinné čísla struna tr = "2Ab Liu"; reťazec d =""; pre (int i = 0; Ja som < tr. Dĺžka; i++) { int ii = (int)Convert.ToChar(tr. Podreťazec(i, 1)); d = d +" "+ ii.ToString(); }
ASCII reťazec na hexadecimálne číslo struna s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = nový StringBuilder(); Foreach (bajt B v Ba) { SB. Append(b.ToString("x") + " "); }
Hexadecimálne až desatinné intA = 0x16; Pri definovaní musí byť 0x struna strA = "16"; Struny môžu byť bez int intA1 = Konvert.ToInt32(intA); intA2 = Konvert.ToInt32(strA, 16);
10 až 16 strA = Convert.ToString(intA2, 16);
Desatinné až binárne, hexadecimálne je podobné int int10 = 10; string str2 = Convert.ToString(int10,2);
Binárne po desatinné int10 = Konvert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Ako c# serialport prijíma sadu hexadecimálnych čísel Ako C# SerialPort prijíma súbor hexadecimálnych čísel a ako by mal byť program napísaný? Najlepšia odpoveď System.IO.Ports.SerialPort sp = nový System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Veľkosť hexadecimálneho čísla (povedzme 6 bajtov) Byte[] buffer = nový Byte[buffersize]; Vytvorte buffer Sp. Read(buffer, 0, buffersize); Čítajte z COM1
Táto množina hexadecimálnych čísel sa spracováva
C# sériový port odosiela dáta Body za odmenu: 5 - Čas riešenia: 2009-10-19 21:15 Chcem poslať hex príkaz na sériový port, príkazový reťazec je: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Ako môžem vyššie uvedený reťazec číselne previesť tak, aby sériový port počítača vedel, že reťazec, ktorý som poslal, je hexadecimálny? Doplnok k otázke: Kto má takýto ukážkový kód, prosím, pomôžte mi, som výrobca hardvéru, nie som oboznámený so softvérom, dúfam, že master vám poskytne podrobný kód, ďakujem! Otázateľ: daishuanqing - Stážista úroveň 1 Najlepšia odpoveď Pridajte referenciu: Microsoft.VisualBasic (je to C# kód, ale je potrebné ho uviesť.) )
Prejdite SerialPortNames pomocou nasledujúcich, aby ste získali všetky sériové porty Microsoft.VisualBasic.Devices.Computer pc = nový Microsoft.VisualBasic.Devices.Computer(); foreach (reťazec s v PC. Porty.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Potom sa na získanie prevádzkového objektu použije zobrazené sériové portové meno comName. Tento sériový port môžete otvoriť:
System.IO.Ports.SerialPort com = nový System.IO.Ports.SerialPort(comName); com. Open();
Dáta sa potom môžu zapisovať na sériový port
Odosielanie dát na sériový port: com. WriteLine(this.textBox1.Text); bajtové polia je možné tiež zapisovať com. Write(bArray,0,5); Označuje 5 bajtov začínajúcich od 0, ktoré zapisujú bajtové pole bArray
Údaje môžu byť akceptované aj: com. ReadLine() Je tiež možné čítať bajty com. ReadByte();
Nakoniec je uzavretá: com. Close();
Tiež preveďte hexadecimálny reťazec na bajt byte b = Convert.ToByte("1A",16); C# sériový port odosiela dáta Body za odmenu: 5 - Čas riešenia: 2009-10-19 21:15 Chcem poslať hex príkaz na sériový port, príkazový reťazec je: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Ako môžem vyššie uvedený reťazec číselne previesť tak, aby sériový port počítača vedel, že reťazec, ktorý som poslal, je hexadecimálny? Doplnok k otázke: Kto má takýto ukážkový kód, prosím, pomôžte mi, som výrobca hardvéru, nie som oboznámený so softvérom, dúfam, že master vám poskytne podrobný kód, ďakujem! Otázateľ: daishuanqing - Stážista úroveň 1 Najlepšia odpoveď Pridajte referenciu: Microsoft.VisualBasic (je to C# kód, ale je potrebné ho uviesť.) )
Prejdite SerialPortNames pomocou nasledujúcich, aby ste získali všetky sériové porty Microsoft.VisualBasic.Devices.Computer pc = nový Microsoft.VisualBasic.Devices.Computer(); foreach (reťazec s v PC. Porty.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Potom sa na získanie prevádzkového objektu použije zobrazené sériové portové meno comName. Tento sériový port môžete otvoriť:
System.IO.Ports.SerialPort com = nový System.IO.Ports.SerialPort(comName); com. Open();
Dáta sa potom môžu zapisovať na sériový port
Odosielanie dát na sériový port: com. WriteLine(this.textBox1.Text); bajtové polia je možné tiež zapisovať com. Write(bArray,0,5); Označuje 5 bajtov začínajúcich od 0, ktoré zapisujú bajtové pole bArray
Údaje môžu byť akceptované aj: com. ReadLine() Je tiež možné čítať bajty com. ReadByte();
Nakoniec je uzavretá: com. Close();
Tiež preveďte hexadecimálny reťazec na bajt byte b = Convert.ToByte("1A",16); |