pdulib_example.c 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #include <rtthread.h>
  2. #include <pdulib.h>
  3. #define DBG_TAG "pdu.eg"
  4. #define DBG_LVL DBG_LOG
  5. #include <rtdbg.h>
  6. //char sms_data[256] = "0891683110804105F0240D91688103480636F80008028092719154231000610062006354C854C8003100320033"; //abc哈哈123
  7. //char sms_data[256] = "0891683110804105F0240D91688103480636F80008028092313483230454C854C8"; //哈哈
  8. char sms_data[256] = "0891683110804105F0240D91688103480636F80000028092512503231A61F1985C369FD169F59ADD76BFE171F99C5EB7DFF1793D"; //a-z
  9. /**
  10. * 创建一个英文对象短信
  11. * @param argc
  12. * @param argv
  13. * @return
  14. */
  15. int pdu_make_english_sms_example(int argc, char** argv)
  16. {
  17. SMS_Submit_t *smsb_obj = RT_NULL;
  18. char *smsb_text = RT_NULL;
  19. smsb_obj = sms_submit_create_english_object("8618681688258", "Test"); //创建对象
  20. if (smsb_obj == RT_NULL)
  21. {
  22. LOG_E("sms_submit_create_object failed!");
  23. return 0;
  24. }
  25. smsb_text = sms_submit_create(*smsb_obj); //创建字符串
  26. LOG_HEX("test", 16, smsb_text, strlen(smsb_text));
  27. LOG_D("smsb_text=>%s", smsb_text); //打印输出的PDU格式字符串
  28. return 0;
  29. }
  30. /**
  31. * 创建一个中文对象短信
  32. * @param argc
  33. * @param argv
  34. * @return
  35. */
  36. int pdu_make_chinese_sms_example(int argc, char** argv)
  37. {
  38. SMS_Submit_t *smsb_obj = RT_NULL;
  39. char *smsb_text = RT_NULL;
  40. //注意,这里的Test字串是用的中文格式存储,如果在这里直接输入中文,
  41. //可能会因为文本编辑器将中文转化为UTF8编码,并不是实际的USC2,从而接收机显示错误
  42. smsb_obj = sms_submit_create_chinese_object("8618681688258", "Test"); //创建对象
  43. if (smsb_obj == RT_NULL)
  44. {
  45. LOG_E("sms_submit_create_object failed!");
  46. return;
  47. }
  48. smsb_text = sms_submit_create(*smsb_obj); //创建字符串
  49. LOG_HEX("test", 16, smsb_text, strlen(smsb_text));
  50. LOG_D("smsb_text=>%s", smsb_text); //打印输出的PDU格式字符串
  51. return 0;
  52. }
  53. /**
  54. * 解析一条带中文的短信,解析结果为英文
  55. * @param argc
  56. * @param argv
  57. * @return
  58. */
  59. int pdu_parse_chinese_sms_example(int argc, char** argv)
  60. {
  61. char sms_data[256] = "0891683110804105F0240D91688103480636F80008028092719154231000610062006354C854C8003100320033"; //abc哈哈123
  62. SMS_Deliver_t *sms = RT_NULL;
  63. sms = sms_deliver_parse(sms_data);
  64. LOG_D("sms data:%s\n", sms->user_data); //解析结果abc123
  65. sms_deliver_free(sms);
  66. }
  67. /**
  68. * 解析一条纯英文的短信
  69. * @param argc
  70. * @param argv
  71. * @return
  72. */
  73. int pdu_parse_english_sms_example(int argc, char** argv)
  74. {
  75. char sms_data[256] = "0891683110804105F0240D91688103480636F80000028092512503231A61F1985C369FD169F59ADD76BFE171F99C5EB7DFF1793D"; //a-z
  76. SMS_Deliver_t *sms = RT_NULL;
  77. sms = sms_deliver_parse(sms_data);
  78. LOG_D("sms data:%s\n", sms->user_data); //解析结果abcdefghijklmnopqrstuvwxyz
  79. sms_deliver_free(sms);
  80. }
  81. MSH_CMD_EXPORT(pdu_make_english_sms_example, pdu_make_english_sms_example);
  82. MSH_CMD_EXPORT(pdu_make_chinese_sms_example, pdu_make_chinese_sms_example);
  83. MSH_CMD_EXPORT(pdu_parse_chinese_sms_example, pdu_parse_chinese_sms_example);
  84. MSH_CMD_EXPORT(pdu_parse_english_sms_example, pdu_parse_english_sms_example);