Hallo. Wäre jemand so freundlich mir diesen Befehl mt den Paametern zu erklären? SerialPort.Read-Methode (Char[], Int32, Int32); <- (so steht er in der msdn) In der Msdn von microsoft finde ich keine erklärung und mit google finde ich alles, nur keine Antwort. Also bitte helft mir. Danke, Gruß moony
Ist das ein Scherz? Suchergebnis bei Google mit dem Begriff "SerialPort.Read-Methode" und einmal auf die Methode draufgeklickt: http://msdn2.microsoft.com/de-de/library/34t733fh(VS.80).aspx
Das soll natürlich kein Scherz gewesen sein. Und du hilfst mir nicht wirklich, mir nur den link zu geben. Auf der Seite war ich nämlich schon x-Mal, konnte aber nichts mit: array<wchar_t>^ buffer, int offset, int count anfangen. Ich dachte hier bekäme man mal eine Antwort mit der man etwas anfangen kann, nicht irgendeinen link zu einer Seite, bei der ein Anfänger nichts versteht. Wäre mir einer mal so freundlich, eine bessere Antwort zu geben? Danke, moony
Die Erklärung steht auf der von Simon angegebenen Seite. Du musst nur runterrollen. Verwirrend mag allerdings sein, dass mit Zeichenarray und Pufferarray zwei unterschiedliche Wörter für dasselbe Ding stehen. Parameter buffer Das Zeichenarray, in das die Eingabe geschrieben werden soll. offset Der Offset im Pufferarray, ab dem geschrieben werden soll. count Die Anzahl der zu lesenden Bytes. Rückgabewert Die Anzahl der gelesenen Bytes.
moony wrote: > > array<wchar_t>^ buffer, > int offset, > int count > > anfangen. > > Ich dachte hier bekäme man mal eine Antwort mit der man etwas anfangen > kann, Dann solltest du auch eine Frage stellen, mit der man was anfangen kann. Wenn du die Bedeutung eines Parameters nicht verstehst, dann frage gezielt danach. Solche 'Rundumschlagfragen' ala 'Hilfe. Kann mir wer das Universum (oder auch die Frauen) erklären', können in einer Forum wie diesem nicht wirklich beantwortet werden. > nicht irgendeinen link zu einer Seite, bei der ein Anfänger nichts > versteht. Dann solltest du gezielt nach den Dingen fragen, die du nicht verstehst. Irgendwas in der Beschreibung wirst du ja wohl verstehen, bzw. dir eine Hypothese darüber bilden können. Und nach dem Rest kannst du fragen. Eine Funktion namens Read in einer SerialPort Klasse ist ja nicht gerade Raketentechnik. Das ist ziemlich überschaubar was die wohl machen wird und welche Argumente sie mindestens benötigen wird.
Mit Char[], Int32, Int32 will M$ darauf hinweisen, dass bestimmte Datentypen erforderlich sind. Der erste Parameter ist ein Array von Chars (Char[]), d.h. es muss dort Platz vorhanden sein, weil etwas dort rein soll. Die beiden anderen Parameter sind ganzzahlige 32-bit breite Variablen, d.h. sie können Werte von // stdint.h #define INT32_MAX 0x7fffffffLL #define INT32_MIN (-INT32_MAX - 1LL) annehmen.
Danke für eure Antworten. Ich habe den Befehl in meinem Programm jetzt so geschrieben: serialPort1->Read(buffer, 0, 100); buffer habe ich davor als: char buffer[100]; definiert. Wennn ich jetzt compelieren lasse, dann erscheint folgende fehlermeldung: error C2664: 'int System::IO::Ports::SerialPort::Read(cli::array<Type,dimension> ^,int,int)': Konvertierung des Parameters 1 von 'char [100]' in 'cli::array<Type,dimension> ^' nicht möglich with 1> [ 1> Type=unsigned char, 1> dimension=1 1> ] Kann mir jemand sagen was ich jetzt "falsch" gemacht habe? Danke, Gruß moony
Ich bin kein Experte für dieses komische Zeug, das Microsoft als C++ bezeichnet, aber ich denke, es müßte heißen: Char buffer[100];
hi, nein, das war es auch nicht. VC++ erkennt char nur, wenn es klein geshrieben wird. Weiß denn keiner wie das geht mit dem: SerialPort.Read... ? moony
probier mal: array<char,1> ^buffer; // .Net2.0, verwaltete Resourcen buffer = gcnew array<char,1>(100); // Instanzierung mit Größe(100) serialport->Read(buffer,0,1); //ließt 1Byte(=8Bit) aus dem eingabepuffer //über.. buffer[0]; //char, gerade eben gelesen //kannst du auf die elemente des array (wie gewohnt) zugreifen. viel erfolg...
Did you find a proper solution?? I have the same problem than you. Pleasi if you got it send me an e-mail explaining the declaration of the variable buffer that yo have made. If it's possible in english because don't understand german. (a german friend translated it to me) Regards!!
r3d2 schrieb: > probier mal: > > array<char,1> ^buffer; // .Net2.0, verwaltete Resourcen > buffer = gcnew array<char,1>(100); // Instanzierung mit Größe(100) > serialport->Read(buffer,0,1); //ließt 1Byte(=8Bit) aus dem > eingabepuffer > //über.. > buffer[0]; //char, gerade eben gelesen > //kannst du auf die elemente des array (wie gewohnt) zugreifen. > > viel erfolg... Fast s.u.
1 | using namespace System; |
2 | using namespace System::IO::Ports; |
3 | |
4 | int main(array<System::String ^> ^args) { |
5 | SerialPort ^sp = gcnew SerialPort(); |
6 | |
7 | // SerialPort.Read Method (Char[], Int32, Int32)
|
8 | |
9 | // wchar_t
|
10 | array<wchar_t> ^wbuffer = gcnew array<wchar_t>(100); |
11 | sp->Read(wbuffer,0,1); |
12 | // or System::Char
|
13 | array<Char> ^scbuffer = gcnew array<Char>(100); |
14 | sp->Read(scbuffer,0,1); |
15 | |
16 | // SerialPort.Read Method (Byte[], Int32, Int32)
|
17 | |
18 | // unsigned char
|
19 | array<unsigned char> ^cbuffer = gcnew array<unsigned char>(100); |
20 | sp->Read(cbuffer,0,1); |
21 | |
22 | return 0; |
23 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.