我一直使用scampers库通过GSM调制解调器发送和接收短信。它的工作方式和我想要的差不多。但我坚持的问题是,我不能发出像*101#或类似的命令,在做了一些研究后,我发现这些命令被称为USSD命令。所以我的问题是,有没有人能够通过Scampers库发出USSD命令。
发布于 2012-02-27 16:15:18
USSD是一种与SMS不同的协议,因此您不能使用SMS中心库来发送USMD消息。这就像试图从ftp客户端库发送http请求一样。
发布于 2013-11-12 18:33:32
使用GsmComm时,这对我来说效果很好:
public string SendUssdRequest(string request)
{
string data = TextDataConverter.StringTo7Bit(request);
var asPDUencoded = Calc.IntToHex(TextDataConverter.SeptetsToOctetsInt(data));
try
{
IProtocol protocol = _comm.GetProtocol();
string gottenString = protocol.ExecAndReceiveMultiple("AT+CUSD=1," + asPDUencoded + ",15");
var re = new Regex("\".*?\"");
int i = 0;
if (!re.IsMatch(gottenString))
{
do
{
protocol.Receive(out gottenString);
++i;
} while (!(i >= 5
|| re.IsMatch(gottenString)
|| gottenString.Contains("\r\nOK")
|| gottenString.Contains("\r\nERROR")
|| gottenString.Contains("\r\nDONE"))); //additional tests "just in case"
}
string m = re.Match(gottenString).Value.Trim('"');
return PduParts.Decode7BitText(Calc.HexToInt(m));
}
catch { }
finally
{
_comm.ReleaseProtocol();
}
return "";
}发布于 2017-05-18 21:24:24
_comm的类型为GsmCommMain
using GsmComm.GsmCommunication;
using GsmComm.PduConverter;
using GsmComm.PduConverter.SmartMessaging;
GsmCommMain _comm;https://stackoverflow.com/questions/9407232
复制相似问题