C# 2, 10, 16 in 16 ter njihove ASCII kode --------//Pretvorba različnih vrst znakov v C# za komunikacijo s serijskimi vrati------------
Razumevanje dolžine znakov string s = "Jaz sem vojak 2"; int len = s.dolžina; 6 likov byte[] sarr = System.Text.Encoding.Default.GetBytes(s); Len = Sarr. Dolžina; 11 bajtov
Nima smisla pretvoriti decimalnega v niz in ga je treba pretvoriti v ustrezno ASCII kodo int t1 = 81; niz s1 = t1. ToString(); Ta decimalna pretvorba ustreza ASCII znakom, da je smiselna. s1 = ((znak)t1). ToString();
Heksadecimalno na niz: To nima smisla. To je tostring. intAB = 0x16; s1 = intAB.ToString(); Heksadecimalni v ASCII znaki: byte babb = 0x45; string ass = ((char)babb). ToString();
ASCII nizi do decimalnih številk struna tr = "2Ab Liu"; niz d =""; za (int i = 0; Jaz < tr. Dolžina; i++) { int ii = (int)Pretvori.ToChar(tr. Podniz(i, 1)); d = d +" "+ ii.ToString(); }
ASCII niz v šestnajstiško številko struna s2 = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = novi StringBuilder(); Foreach (bajt B v Ba) { SB. Append(b.ToString("x") + " "); }
Heksadecimalno do decimalno intA = 0x16; Pri definiranju mora biti 0x struna strA = "16"; Strune so lahko brez intA1 = Pretvori.ToInt32(intA); int intA2 = Pretvori.ToInt32(strA, 16);
10 do 16 strA = Pretvori.ToString(intA2, 16);
Decimalno do binarno, šestnajstiško je podobno int10 = 10; string str2 = Pretvori.ToString(int10,2);
Binarno v decimalno int10 = Pretvori.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Kako c# serialport prejme nabor šestnajstiških številk Kako C# SerialPort prejme nabor šestnajstiških številk in kako naj se program napiše? Najboljši odgovor System.IO.Ports.SerialPort sp = novi System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Velikost šestnajstiškega števila (recimo 6 bajtov) Bajt[] medpomnilnik = nov bajt[buffersize]; Ustvari medpomnilnik SP. Read(buffer, 0, velikost medpomnilnika); Branje iz COM1
Ta nabor šestnajstiških števil se obdela
C# serijski port pošilja podatke Nagradne točke: 5 - Čas rešitve: 2009-10-19 21:15 Želim poslati heksadecimalni ukaz na serijski port, ukazni niz 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" Kako lahko zgornji niz pretvorim numerično, da računalniški serijski port ve, da je niz, ki sem ga poslal, šestnajstiški? Dodatek k vprašanju: Kdo ima takšno vzorčno kodo, prosim pomagajte mi, sem proizvajalec strojne opreme, nisem seznanjen s programsko opremo, upam, da bo mojster lahko podal podrobno kodo, hvala! Vprašalec: daishuanqing - pripravnik 1. stopnja Najboljši odgovor Dodajte referenco: Microsoft.VisualBasic (je C# koda, vendar jo je treba navajati.) )
Preglejte SerialPortNames z naslednjimi, da dobite vse serijske porte Microsoft.VisualBasic.Devices.Computer pc = novi Microsoft.VisualBasic.Devices.Computer(); Foreach (niz S v PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Nato se za pridobitev operacijskega objekta uporabi prikazano ime serijskega porta comName. Lahko odprete ta serijski port:
System.IO.Ports.SerialPort com = novi System.IO.Ports.SerialPort(comName); com. Open();
Podatke je nato mogoče zapisati na serijski priključek
Pošiljanje podatkov na serijski priključek: com. WriteLine(this.textBox1.Text); bajtna polja se lahko zapišejo tudi com. Write(bArray,0,5); Nanaša se na 5 bajtov, ki se začnejo z 0 in zapisujejo bajtno polje bArray
Podatke je mogoče sprejeti tudi: com. ReadLine() Možno je tudi branje bajtov com. ReadByte();
Nazadnje je zaprto: com. Close();
Prav tako pretvorite šestnajstiški niz v bajt byte b = Convert.ToByte("1A",16); C# serijski port pošilja podatke Nagradne točke: 5 - Čas rešitve: 2009-10-19 21:15 Želim poslati heksadecimalni ukaz na serijski port, ukazni niz 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" Kako lahko zgornji niz pretvorim numerično, da računalniški serijski port ve, da je niz, ki sem ga poslal, šestnajstiški? Dodatek k vprašanju: Kdo ima takšno vzorčno kodo, prosim pomagajte mi, sem proizvajalec strojne opreme, nisem seznanjen s programsko opremo, upam, da bo mojster lahko podal podrobno kodo, hvala! Vprašalec: daishuanqing - pripravnik 1. stopnja Najboljši odgovor Dodajte referenco: Microsoft.VisualBasic (je C# koda, vendar jo je treba navajati.) )
Preglejte SerialPortNames z naslednjimi, da dobite vse serijske porte Microsoft.VisualBasic.Devices.Computer pc = novi Microsoft.VisualBasic.Devices.Computer(); Foreach (niz S v PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Nato se za pridobitev operacijskega objekta uporabi prikazano ime serijskega porta comName. Lahko odprete ta serijski port:
System.IO.Ports.SerialPort com = novi System.IO.Ports.SerialPort(comName); com. Open();
Podatke je nato mogoče zapisati na serijski priključek
Pošiljanje podatkov na serijski priključek: com. WriteLine(this.textBox1.Text); bajtna polja se lahko zapišejo tudi com. Write(bArray,0,5); Nanaša se na 5 bajtov, ki se začnejo z 0 in zapisujejo bajtno polje bArray
Podatke je mogoče sprejeti tudi: com. ReadLine() Možno je tudi branje bajtov com. ReadByte();
Nazadnje je zaprto: com. Close();
Prav tako pretvorite šestnajstiški niz v bajt byte b = Convert.ToByte("1A",16); |