Senden von at-Befehlen an sim7600 und Empfangen einer Antwort auf dem Raspberry Pi ZeroC#

Ein Treffpunkt für C#-Programmierer
Guest
 Senden von at-Befehlen an sim7600 und Empfangen einer Antwort auf dem Raspberry Pi Zero

Post by Guest »

Ich habe ein paar Tage lang gesucht, aber keine Ergebnisse gefunden.
Ich habe einen Raspberry Pi Zero 2 W und einen Sim7600-Hut und möchte mit einem von mir geschriebenen Programm Befehle an ihn senden.
Wenn ich minicom als sudo minicom -D /dev/ttyUSB2 verwende, wird die at-Befehlsantwort problemlos von sim7600 an Raspberry Pi gesendet.
Aber wenn ich mein Programm ausführe, erhalte ich keine Antwort von sim7600 beim Senden von at-Befehlen. Ich weiß, dass die at-Befehle in meinem Programm ordnungsgemäß funktionieren, denn wenn ich den Befehl AT+CRESET in mein Programm eingebe, wird das Modul zurückgesetzt. Wenn ich dann mein Programm schließe und das Programm sofort erneut ausführe, kann ich die Antwort auf sehen at-Befehle, die ich sende, aber nach ein paar Sekunden erfolgt erneut keine Antwort.
Das ist mein C#-Code:
class Program
{
static SerialPort portUSB;

static void Main()
{

Console.Write("select Port:");
string port = Console.ReadLine();
portUSB = new SerialPort(port, 115200);

Console.WriteLine("connecting to ttyUSB2 ...");
portUSB.Handshake = Handshake.None;
portUSB.DtrEnable = true;
portUSB.RtsEnable = true;
portUSB.ReadTimeout = 2000;
portUSB.WriteTimeout = 2000;

portUSB.DataReceived += PortUSB_DataReceived;
portUSB.Open();

Console.WriteLine("Write and Enter to send Message and press ctrl+c to exit");

while (true)
{

if (Console.KeyAvailable)
{
string message = Console.ReadLine();
if (!string.IsNullOrEmpty(message))
{
SendMessage(message);
}
}

Thread.Sleep(100);
}
}

private static void PortUSB_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();

Console.WriteLine("Data Received:");
sp.DiscardInBuffer();
sp.DiscardOutBuffer();
Console.Write(indata);
}

static void SendMessage(string message)
{
try
{
if (portUSB.IsOpen)
{
portUSB.Write(message + "\r\n");

Console.WriteLine("Command Sent " + message);
}
else
{
Console.WriteLine("ttyUSB2 Not open!");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Environment.Exit(0);
}

}
}

https://i.sstatic.net/gwzRpx1I.png
1- Um die korrekte Verbindung sicherzustellen, habe ich zunächst minicom verwendet und geöffnet den ttyUSB2-Port und sendete AT-Befehle und empfing Antworten.
2- Ich habe die sim7600 mit einem Micro-USB-Kabel an das Windows-System angeschlossen und das Programm ausgeführt, das ich darauf geschrieben hatte (auf COM7). Die Befehle wurden gut gesendet und die Antworten wurden empfangen.
3- Ich habe den sim7600-Hut an den Raspberry Zero angeschlossen und mein Programm ausgeführt (/dev/ttyUSB2). Die at-Befehle wurden gesendet, aber es wurde keine Antwort empfangen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post