2016-04-26 18 views
-3

Wie kann ich eine USSD Anfrage über GSM Modem mit C# senden.GSM USSD Modem Anfrage

Ich mag einen Code ausführen zu können und die Antwort sollte als ein Objekt oder ein String zurückkommen, die ich gegen ein regex

+0

Ein wenig mehr Informationen sind notwendig, um diese Frage zu beantworten ... C# enthält keine native Unterstützung dafür. Benutzt du irgendwelche Bibliotheken? –

+0

Ich verwende GSM Comm Bibliothek –

Antwort

0

Hier ist mein Extrakt, die ich mit der GSM-COMM-Bibliothek verwendet haben kann

public string SendUssdRequest(string request) 
    { 
    log.DebugFormat("Sending USSD Request {0}", request); 
    string result = ""; 
    try 
    { 
     IProtocol protocol = comm.GetProtocol(); 
     string gottenString = protocol.ExecAndReceiveMultiple("AT+CUSD=1," + request + ",15"); 
     result = gottenString; 
     int i = 0; 
     if (!gottenString.Contains("\r\n+CUSD: 2")) 
     { 
      bool receiving = false; 
      do 
      { 
       receiving = protocol.Receive(out gottenString); 
       result += gottenString; 
       ++i; 
      } while (receiving); 
     } 

     result = result.Replace("\r\n", ""); 

     result = result.Replace("+CUSD: 2,", ""); 
     result = result.Replace(",15", ""); 
     log.DebugFormat("{1} - USSD Response is: {0}", result,SenderNumber); 
     return result; 
    } 
    catch(Exception ex) 
    { 
     log.Error(ex); 
    } 
    finally 
    { 

     comm.ReleaseProtocol(); 
    } 
    return ""; 
} 
+0

Ich werde das versuchen. Danke für die Antwort –

+0

Was ist die Variable SenderNumber und ich nehme an, dass comm das GSM-Kommunikationsobjekt ist? –

+0

Die Absendernummer ist eine weitere Eigenschaft, die in meiner Klasse gespeichert ist. Sie können dies entfernen oder die tatsächliche Telefonnummer einstellen, wenn Sie es verfolgen – Scrappy