Exemple #1
0
        protected override uint FieldToPack(SGIP_Field Field, byte[] Pack, uint Offset)
        {
            if (Field.IsProperty("SMMessageLength"))
            {
                if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                {
                    m_nSMMessageLength = (uint)Encoding.BigEndianUnicode.GetByteCount(m_sMessageContent);
                }
                else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                {
                    m_nSMMessageLength = (uint)Encoding.GetEncoding("gb2312").GetByteCount(m_sMessageContent);
                }
                else
                {
                    m_nSMMessageLength = (uint)Encoding.ASCII.GetByteCount(m_sMessageContent);
                }
                Field.ProInfo.SetValue(this, m_nSMMessageLength, null);
                Field.Build();
            }
            else if (Field.IsProperty("MessageContent"))
            {
                //Field.ProAttribute.Length = (int)(System.Text.Encoding.Default.GetByteCount(null == m_sMessageContent ? "" : m_sMessageContent));
                byte[] buf;
                if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                {
                    buf = Encoding.BigEndianUnicode.GetBytes(m_sMessageContent);
                }
                else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                {
                    buf = Encoding.GetEncoding("gb2312").GetBytes(m_sMessageContent);
                }
                else
                {
                    buf = Encoding.ASCII.GetBytes(m_sMessageContent);
                }
                Array.Copy(buf, 0, Pack, Offset, buf.Length);
                Field.ProAttribute.Length = buf.Length;

                return((uint)buf.Length);
            }
            else if (Field.IsProperty("ChargeNumber"))
            {
                if (m_sChargeNumber != null && m_sChargeNumber.StartsWith("0000") == false &&
                    m_sChargeNumber.Length > 0 && m_sChargeNumber.StartsWith("86") == false)
                {
                    m_sChargeNumber = "86" + m_sChargeNumber;
                }
            }
            else if (Field.IsProperty("UserNumber"))
            {
                if (m_sUserNumber.StartsWith("86") == false)
                {
                    m_sUserNumber = "86" + m_sUserNumber;
                }
            }

            return(base.FieldToPack(Field, Pack, Offset));
        }
Exemple #2
0
        protected override uint PackToField(SGIP_Field Field, byte[] Pack, uint Offset)
        {
            if (Field.IsProperty("MessageContent"))
            {
                //Field.ProAttribute.Length = (int)this.m_nSMMessageLength;
                if (m_nSMMessageLength <= 0)
                {
                    m_sMessageContent         = "";
                    Field.ProAttribute.Length = 0;
                }
                else
                {
                    byte[] buf = new byte[m_nSMMessageLength];
                    Array.Copy(Pack, Offset, buf, 0, m_nSMMessageLength);

                    if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                    {
                        m_sMessageContent = Encoding.BigEndianUnicode.GetString(buf, 0, buf.Length);
                    }
                    else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                    {
                        m_sMessageContent = Encoding.GetEncoding("gb2312").GetString(buf, 0, buf.Length);
                    }
                    else
                    {
                        m_sMessageContent = Encoding.ASCII.GetString(buf, 0, buf.Length);
                    }
                    Field.ProAttribute.Length = (int)m_nSMMessageLength;
                }
                Field.Build();
                return((uint)Field.ProAttribute.Length);
            }
            return(base.PackToField(Field, Pack, Offset));
        }
Exemple #3
0
        protected override uint PackToField(SGIP_Field Field, byte[] Pack, uint Offset)
        {
            if (Field.IsProperty("MessageContent"))
            {
                //Field.ProAttribute.Length = (int)m_nSMMessageLength;

                byte[] buf = new byte[m_nSMMessageLength];
                Array.Copy(Pack, Offset, buf, 0, m_nSMMessageLength);

                if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                {
                    m_sMessageContent = Encoding.BigEndianUnicode.GetString(buf, 0, buf.Length);
                }
                else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                {
                    m_sMessageContent = Encoding.GetEncoding("gb2312").GetString(buf, 0, buf.Length);
                }
                else
                {
                    m_sMessageContent = Encoding.ASCII.GetString(buf, 0, buf.Length);
                }
                Field.ProAttribute.Length = buf.Length;
                Field.Build();

                return (uint)buf.Length;
            }
            return base.PackToField(Field, Pack, Offset);
        }
Exemple #4
0
        protected override uint FieldToPack(SGIP_Field Field, byte[] Pack, uint Offset)
        {
            if (Field.IsProperty("SMMessageLength"))
            {
                if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                {
                    m_nSMMessageLength = (uint)Encoding.BigEndianUnicode.GetByteCount(m_sMessageContent);
                }
                else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                {
                    m_nSMMessageLength = (uint)Encoding.GetEncoding("gb2312").GetByteCount(m_sMessageContent);
                }
                else
                {
                    m_nSMMessageLength = (uint)Encoding.ASCII.GetByteCount(m_sMessageContent);
                }
                Field.ProInfo.SetValue(this, m_nSMMessageLength, null);
                Field.Build();
            }
            else if (Field.IsProperty("MessageContent"))
            {
                //Field.ProAttribute.Length = (int)(System.Text.Encoding.Default.GetByteCount(null == m_sMessageContent ? "" : m_sMessageContent));
                byte[] buf;
                if (m_nMessageCoding == SGIP_MessageCodings.Ucs2)
                {
                    buf = Encoding.BigEndianUnicode.GetBytes(m_sMessageContent);
                }
                else if (m_nMessageCoding == SGIP_MessageCodings.Gbk)
                {
                    buf = Encoding.GetEncoding("gb2312").GetBytes(m_sMessageContent);
                }
                else
                {
                    buf = Encoding.ASCII.GetBytes(m_sMessageContent);
                }
                Array.Copy(buf, 0, Pack, Offset, buf.Length);
                Field.ProAttribute.Length = buf.Length;

                return (uint)buf.Length;
            }
            else if (Field.IsProperty("ChargeNumber"))
            {
                if (m_sChargeNumber != null && m_sChargeNumber.StartsWith("0000") == false
                    && m_sChargeNumber.Length > 0 && m_sChargeNumber.StartsWith("86") == false)
                {
                    m_sChargeNumber = "86" + m_sChargeNumber;
                }
            }
            else if (Field.IsProperty("UserNumber"))
            {
                if (m_sUserNumber.StartsWith("86") == false)
                {
                    m_sUserNumber = "86" + m_sUserNumber;
                }
            }

            return base.FieldToPack(Field, Pack, Offset);
        }