Ich mache eine Software für GSM-Modem. Es funktioniert bei der seriellen Kommunikation mit AT-Befehlen. Wir geben ihm AT-Befehle und es antwortet über serielle Kommunikation. Ich gebe ihm einen Befehl, das Guthaben in einer SIM AT+CUSD=1,"*141#"
zu überprüfen. Seine Antwort ist wie folgt:Messagebox im Debug-Modus, aber nicht im normalen Lauf
Jetzt möchte ich dies auf einer Messagebox anzeigen. Dies ist der kleine Code verwende ich:
String data = serialPort1.ReadExisting(); //to receive serial data and store it in data strig
logsTextBox.AppendText(data); // display it in text box
logsTextBox.AppendText("\n");
if (data.Contains("+CUSD:"))
{
MessageBox.Show(data);
}
Nun, wenn ich Haltepunkt setzen und den Code debuggen, es funktioniert und zeigen komplette data
in Meldungsfeld, aber wenn ich es laufen normalerweise zeigt es nur wenige Zeichen in Nachrichtenbox . Wie folgt aus:
Stattdessen sollte es so sein:
Das Problem, was ich gefunden habe, ist, wenn debuggen alle Daten, Inhalte, die in der 2. Bild dargestellt wird speichern in Datenvariable, so dass es vollständig im Meldungsfeld angezeigt wird. Aber im normalen Lauf werden die vollständigen Daten nicht in den Zeichenkettendaten empfangen, weshalb sie weniger Daten zeigen, als im ersten Bild gezeigt. Wie man dieses Problem löst. Was könnte der Grund sein? Bitte helfen Sie.
Ja danke Ich habe das Problem gelöst indem ich eine Bedingung auf serielle Daten empfange. Wenn die Bedingung erfüllt ist, dann verarbeite ich nur die Daten. –