Exemple #1
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="paramDatas">dtu 返回的用户数据部分</param>
            /// <returns>dtu参数选项数组</returns>
            public DtuParamSettingItem[] Parse(byte[] paramDatas)
            {
                int       i    = 0;
                ArrayList list = new ArrayList();

                while (i < paramDatas.Length - 1)
                {
                    int typePos        = i;
                    int lengthPos      = i + 1;
                    int valuesBeginPos = i + 2;


                    byte type = paramDatas[typePos];
                    byte len  = paramDatas[lengthPos];

                    int valuesLen    = len - 2;
                    int valuesEndPos = valuesBeginPos + valuesLen;

                    if (valuesEndPos < paramDatas.Length)
                    {
                        byte[] values = new byte[valuesLen];
                        Array.Copy(paramDatas, i + 2, values, 0, valuesLen);

                        DtuParamSettingItem dpsi = new DtuParamSettingItem(type, len, values);
                        list.Add(dpsi);
                    }
                }
                if (list.Count > 0)
                {
                    DtuParamSettingItem[] returns = new DtuParamSettingItem[list.Count];
                    for (int idx = 0; idx < list.Count; idx++)
                    {
                        returns[idx] = (DtuParamSettingItem)list[idx];
                    }
                    return(returns);
                }
                else
                {
                    return(null);
                }
            }
Exemple #2
0
            /// <summary>
            /// 
            /// </summary>
            /// <param name="paramDatas">dtu ���ص��û����ݲ���</param>
            /// <returns>dtu����ѡ������</returns>
            public DtuParamSettingItem[] Parse( byte[] paramDatas )
            {
                int i = 0;
                ArrayList list = new ArrayList();

                while( i < paramDatas.Length - 1 )
                {
                    int typePos = i;
                    int lengthPos = i + 1;
                    int valuesBeginPos = i + 2;

                    byte type = paramDatas[ typePos ];
                    byte len = paramDatas[ lengthPos ];

                    int valuesLen = len - 2;
                    int valuesEndPos = valuesBeginPos + valuesLen ;

                    if ( valuesEndPos < paramDatas.Length )
                    {
                        byte[] values = new byte[ valuesLen ];
                        Array.Copy( paramDatas, i + 2, values, 0, valuesLen );

                        DtuParamSettingItem dpsi = new DtuParamSettingItem(type, len, values);
                        list.Add( dpsi );
                    }
                }
                if ( list.Count > 0 )
                {
                    DtuParamSettingItem[] returns = new DtuParamSettingItem[ list.Count ];
                    for( int idx=0; idx<list.Count; idx++ )
                    {
                        returns[ idx ] = (DtuParamSettingItem) list[idx];
                    }
                    return returns;
                }
                else
                {
                    return null;
                }
            }