Encoding::GetString() Error!
-
Hallo!
Ich versuch derzeit eine Hardware über den ComPort anzusprechen. Um das Gerät zu Initialsieren wird der Hex-Code {0x7F,0x82,0x8F} gesendet woraufhin ein Antwort ebenfalls in einer bestimmten Hex-Code-Folge zurück kommt. Wenn ich das Programm nun normal durchlaufen lasse, bekomme ich in der Ausgabe (InformationTextBox) als Inhalt der Gesendeten und Empfangenden Daten jeweils "System.Byte[]". Jedoch möchte ich gerne den exakten Hex-Code sehen, quasi so wie ich es hinschicke.
Daraufhin hab ich mit der Funktion System::Text::Encoding::GetString() herum gespielt, aber ich bekomme derzeit immer die Fehlermeldung:" error C2352: 'System::Text::Encoding::GetString': Unzulässiger Aufruf einer nicht statischen Memberfunktion"! Was ist das? und wie kann ich das ändern?! und hilft mir die Funktion dann auch um den HexCode zu sehen???Ich hoffe Ihr könnt mir helfen! Vielen Danke schon mal!
cli::array<unsigned char,1>^ response={0,0,0,0}; cli::array<unsigned char,1>^ wakeUp={0x7F,0x82,0x8F}; String^ output = System::Text::Encoding::GetString(wakeUp); try { SerialPort1->Open(); InformationTextBox->AppendText(String::Format("Öffne COM{0}: \r\n",COMPortLeft)); if(SerialPort1->IsOpen==true) { SerialPort1->WriteTimeout = 2000; SerialPort1->Write(wakeUp,0,3); InformationTextBox->AppendText(String::Format("COM{0} ist offen\r\nSende:{1}\r\nLese Antwort...\r\n",ComPortLeft,wakeUp)); SerialPort1->ReadTimeout = 2000; SerialPort1->Read(response,0,4); } SerialPort1->Close(); if(SerialPort1->IsOpen==false) { String^ input = System::Text::Encoding::GetString(response); InformationTextBox->AppendText(String::Format("Input: {0}\r\n",response)); InformationTextBox->AppendText(String::Format("COM{0} ist zu\r\n",ComPortLeft)); } } catch (TimeoutException^ ex) { InformationTextBox->AppendText(String::Format("COM{0}: no data incomming\r\n",ComPortLeft)); }
Problem gelöst!
Für alle die es Interresiert, es geht ganz einfach über den BitConverter!
->String^ input = BitConverter::ToString(response);