⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deliver.cs

📁 短信串口通信 于短信网关通信协议的封装 C#实现的类库
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using JeasonZhao.Sms.SGIP.Exceptions;

namespace JeasonZhao.Sms.SGIP.Command
{
    public class Deliver : BaseCommand
    {
        public Deliver()
            : base(Commands.Deliver)
        {
        }
        #region 字段列表
        //UserNumber	21	Text	发送短消息的用户手机号,手机号码前加“86”国别标志
        private string m_UserNumber = null;
        //SPNumber	21	Text	SP的接入号码
        private string m_SPNumber = null;
        //TP_pid	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
        private byte m_TP_pid = 0;
        //TP_udhi	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
        private byte m_TP_udhi = 0;
        //MessageCoding	1	Integer	短消息的编码格式。
        private MessageCodings m_MessageCoding = MessageCodings.Gbk;
        //MessageLength	4	Integer	短消息的长度
        private uint m_MessageLength = 0;
        //MessageContent	Message Length	Text	短消息的内容
        private string m_MessageContent = null;
        //Reserve	8	Text	保留,扩展用
        private string m_Reserve = null;
        #endregion
        #region 属性列表
        /// <summary>
        ///UserNumber	21	Text	发送短消息的用户手机号,手机号码前加“86”国别标志
        /// </summary>
        [SmsField(false, 0, 21)]
        public string UserNumber
        {
            get { return m_UserNumber; }
            set { m_UserNumber = value; }
        }
        /// <summary>
        ///SPNumber	21	Text	SP的接入号码
        /// </summary>
        [SmsField(false, 1, 21)]
        public string SPNumber
        {
            get { return m_SPNumber; }
            set { m_SPNumber = value; }
        }
        /// <summary>
        ///TP_pid	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
        /// </summary>
        [SmsField(false, 2, 1)]
        public byte TP_pid
        {
            get { return m_TP_pid; }
            set { m_TP_pid = value; }
        }
        /// <summary>
        ///TP_udhi	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
        /// </summary>
        [SmsField(false, 3, 1)]
        public byte TP_udhi
        {
            get { return m_TP_udhi; }
            set { m_TP_udhi = value; }
        }
        /// <summary>
        ///MessageCoding	1	Integer	短消息的编码格式。
        /// </summary>
        [SmsField(false, 4, 1)]
        public MessageCodings MessageCoding
        {
            get { return m_MessageCoding; }
            set { m_MessageCoding = value; }
        }
        /// <summary>
        ///MessageLength	4	Integer	短消息的长度
        /// </summary>
        [SmsField(false, 5, 4)]
        public uint MessageLength
        {
            get { return m_MessageLength; }
            set { m_MessageLength = value; }
        }
        /// <summary>
        ///MessageContent	Message Length	Text	短消息的内容
        /// </summary>
        [SmsField(false, 6, -1)]
        public string MessageContent
        {
            get { return m_MessageContent; }
            set { m_MessageContent = value; }
        }
        /// <summary>
        ///Reserve	8	Text	保留,扩展用
        /// </summary>
        [SmsField(false, 7, 8)]
        public string Reserve
        {
            get { return m_Reserve; }
            set { m_Reserve = value; }
        }
        #endregion
        protected override void ReadProperties(System.Net.Sockets.Socket sock, PropertyPackage pack)
        {
            if (pack.IsProperty("MessageContent"))
            {
                pack.Attribute.Length = (int)this.m_MessageLength;
            }
            base.ReadProperties(sock, pack);
        }
        protected override bool WriteProperties(System.Net.Sockets.Socket sock, PropertyPackage pack)
        {
            if (pack.IsProperty("MessageLength"))
            {
                m_MessageLength = (uint)(System.Text.Encoding.Default.GetByteCount(null == m_MessageContent ? "" : m_MessageContent));
            }
            return base.WriteProperties(sock,pack);
        }
        protected override bool checkPackage()
        {
            if(m_MessageContent==null || m_MessageContent.Length<1)
            {
                throw new InvalidPackageException("MessageContent不能为空!");
            }
            else if(m_SPNumber==null || m_SPNumber.Length<1)
            {
                throw new InvalidPackageException("SPNumber不能为空!");
            }
            else if(m_UserNumber==null || m_UserNumber.Length<1)
            {
                throw new InvalidPackageException("UserNumber不能为空!");
            }
            return base.checkPackage();
        }

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -