Sms 有没有好的和稳定的在线短信到PDU转换器?

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”进行响

我正在寻找一个很好的在线转换器,可以与几个调制解调器。我正在处理的问题-我无法在pdu模式下发送sms(使用Cinterion BGS-2T)。尝试使用我自己的库(仍在使用中)和几个在线转换器,例如:

  • 用户数据似乎编码得很好(到处都是相同的结果),但TPDU的第一部分(使用PDU类型,TP-MR,…)可能有一点可变(但从来都不起作用,该死)

    片刻:

  • 调制解调器绝对支持pdu模式
  • 余额中有现金
  • 调制解调器在“AT+CMGS”上用“>”进行响应,在PDU字符串上用“\r\nOK\r\n”进行响应,但没有用“+CMGS”进行响应(当然,我没有收到短信)
  • 如果有必要,这里是我自己代码的一部分:

    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)我不确定我的实现,所以我认为你的评论会很有用。回答主要问题-这是一个好的转换器: