Sms 有没有好的和稳定的在线短信到PDU转换器?
我正在寻找一个很好的在线转换器,可以与几个调制解调器。我正在处理的问题-我无法在pdu模式下发送sms(使用Cinterion BGS-2T)。尝试使用我自己的库(仍在使用中)和几个在线转换器,例如: 用户数据似乎编码得很好(到处都是相同的结果),但TPDU的第一部分(使用PDU类型,TP-MR,…)可能有一点可变(但从来都不起作用,该死) 片刻:Sms 有没有好的和稳定的在线短信到PDU转换器?,sms,gsm,pdu,Sms,Gsm,Pdu,我正在寻找一个很好的在线转换器,可以与几个调制解调器。我正在处理的问题-我无法在pdu模式下发送sms(使用Cinterion BGS-2T)。尝试使用我自己的库(仍在使用中)和几个在线转换器,例如: 用户数据似乎编码得很好(到处都是相同的结果),但TPDU的第一部分(使用PDU类型,TP-MR,…)可能有一点可变(但从来都不起作用,该死) 片刻: 调制解调器绝对支持pdu模式 余额中有现金 调制解调器在“AT+CMGS”上用“>”进行响应,在PDU字符串上用“\r\nOK\r\n”进行响
void get_pdu_字符串(sms_描述符*sms,char dst[]){
char tempnum[8]=“”;
char*pTemp=dst;
uint8_t i=0;
//SMSC
//*pTemp++=0x00;
//PDU型
*pTemp++=(01;
strncpy(pTemp,tempnum,i);//地址号
pTemp+=i;
//TP-PID
*pTemp++=0;
//TP-DCS
开关(短信->编码){
案例SMS7bit_ENC:
*pTemp++=0x00;
打破
案例SMS\U UCS2\U ENC:
*pTemp++=0x08;
打破
}
如果(短信->闪存==1)
*(pTemp-1)|=0x10;
//TP-VP
//如果不需要,请跳过
//TP-UDL
开关(短信->编码){
案例SMS7bit_ENC:
*pTemp++=strlen(sms->msg);
打破
案例SMS\U UCS2\U ENC:
*pTemp++=strlen(sms->msg)编码){
案例SMS7bit_ENC:{
char-packed_-msg[140]=“”;
char*pMsg=包装的味精;
gsm 7bit_enc(短信->信息,打包信息);
而(*pMsg!=0)
*pTemp++=*pMsg++;
}中断;
案例SMS\U UCS2\U ENC:{
wchar_t wmsg[70]=L';
wchar_t*pMsg=wmsg;
strtoucs2(sms->msg、wmsg、方法表);
而(*pMsg!=0){
*pTemp++=(char)(*pMsg>>8);
*pTemp++=(char)(*pMsg++);
}
}中断;
}
*pTemp=0x1A;
返回;
}
我日常工作的例子:
致:380933522620消息:您好!在GSM-7中测试SMS 编码的PDU字符串:
00 01 00 0C 81 83 90 33 25 62 02 00 18 C8 32 9B FD 0E 81 A8 E5 39 1D 34 6D 4E 41 69 37 E8 38 6D B6 6E 1A 关于PDU字符串的详细信息:
1.00-跳过SMSC
2.01-PDU类型
3.00-TP-MR
4.0C-到数字的长度。
5.81-号码类型(未知,也尝试了0x91,这是国际号码)
6.839033256202-到数字
7.00-TP-PID
8.00-TP-DCS(GSM 7bit,默认短信等级)
9.18-TP-UD(24个字母)
10.C8 32…B6 6E-打包邮件
11.1A-ctrl+z问题已经解决。我发送的消息不是十六进制字符串,而是二进制,愚蠢的我:(我为我的openwrt路由器创建的。它是用C编写的,非常简单。适用于velcom.by和mts.by。你能提供一个你生成并想要发送的PDU示例吗?我可以帮助你更多:)@aldridmc示例添加到第一篇博文中。这个问题不清楚。您是否正在寻找现有的在线转换器(此处将脱离主题)或者你对你的实现有一个确切的问题吗?我有几个问题。1)是的,我正在寻找一个可用的在线转换器。2)我不确定我的实现,所以我认为你的评论会很有用。回答主要问题-这是一个好的转换器: