关于串口控制GTM900C模块发送短信内容与长度

来源:互联网 发布:php 如何防止抓包截断 编辑:程序博客网 时间:2024/06/05 03:43

在stm32项目开发中或多或少用到GSM功能,这个时候,编写小程序获取短信内容与长度是十分必要的。

程序:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
/************************************************************************
 * 语言:C#
 * 功能:GTM900C模块短信内容与长度获取
 * 时间:2013年10月30日上午
 * 作者:wit_yuan
 * 使用目的:stm32开发项目
************************************************************************/
namespace GTM900C短信翻译工具代码
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            String MessageContext = textBox1.Text;
            String center = "0891683110101605F0";
            String phone = "68";//5155530108F7";

            phone = phone + reversePhoneNumber(textBox4.Text.Trim()) ;
       
//            textBox4.Text = reversePhoneNumber(textBox4.Text.Trim());
            reversePhoneNumber("");
            String content = "";
           
            byte[] buffer = Encoding.Unicode.GetBytes(MessageContext);

            for(int i = 0 ; i < buffer.Length ; i = i + 2)
            {
                string buffer1 = buffer[i + 1].ToString("X");
                string buffer2 = buffer[i].ToString("X");
                if (buffer1.Length == 1)
                {
                    buffer1 = "0" + buffer1;
                }
                if (buffer2.Length == 1)
                {
                    buffer2 = "0" + buffer2;
                }
                content += buffer1 + buffer2;
            }


            String more = "";
            more = (content.Length /2).ToString("X");
            if (more.Length == 1)
            {
                more = "0" + more;
            }

            String phone1 = "11000D91";
            String result = center + phone1 + phone + "000800" + more + content;
            String leng = phone1 + phone + "000800" + more + content;//

            textBox2.Text = "AT+CMGS=" + Convert.ToString(leng.Length /2);   //数据长度

            textBox3.Height = 100;
            textBox3.Text = result;
        }
        private string reversePhoneNumber(String phone)
        {
            char[] getNumber = new char[12];
            getNumber = (phone + "F").ToCharArray();
            char temp;
            for (int i = 0; i < getNumber.Length - 1; i = i + 2)
            {
                temp = getNumber[i];
                getNumber[i] = getNumber[i + 1];
                getNumber[i + 1] = temp;
            }
            return new string(getNumber);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string chinese = textBox5.Text;
            byte[] buffer = Encoding.Unicode.GetBytes(chinese);
            string content = "";
            for (int i = 0; i < buffer.Length; i = i + 2)
            {
                string buffer1 = buffer[i + 1].ToString("X");
                string buffer2 = buffer[i].ToString("X");
                if (buffer1.Length == 1)
                {
                    buffer1 = "0" + buffer1;
                }
                if (buffer2.Length == 1)
                {
                    buffer2 = "0" + buffer2;
                }
                content += buffer1 + buffer2;
            }
            textBox6.Text = content;
        }
    }
}

 

原创粉丝点击