/// <summary>
        /// 获取报数据
        /// </summary>
        /// <returns>字节数组</returns>
        public byte[] GetPacketData()
        {
            if (DirectoryName.Length > 200)
            {
                throw new ArgumentException("字符过长");
            }
            //21+x
            int len   = 21 + DirectoryNameLen;
            int index = 0;

            packetData          = new byte[len];
            packetData[index++] = (byte)OperationSign;
            packetData[index++] = ElementTool.GetBit7_0(DirectoryID);
            packetData[index++] = ElementTool.GetBit15_8(DirectoryID);
            packetData[index++] = ElementTool.GetBit23_16(DirectoryID);
            packetData[index++] = ElementTool.GetBit31_24(DirectoryID);
            packetData[index++] = DirectoryNameLen;
            var name = UnicodeEncoding.ASCII.GetBytes(DirectoryName);

            Array.Copy(name, 0, packetData, index, name.Length);
            int offset = index + name.Length;
            var start  = QueryStartingTime.GetDataArray();
            var end    = QueryEndTime.GetDataArray();

            Array.Copy(start, 0, packetData, offset, 7);
            offset += 7;
            Array.Copy(end, 0, packetData, offset, 7);
            return(packetData);
        }
示例#2
0
        /// <summary>
        /// 生成系数下载数据
        /// </summary>
        /// <param name="array">数据数组</param>
        /// <param name="len">数据长度</param>
        /// <returns>字节数组</returns>
        public byte[] MakeFactorDownloadData(UInt32[] array, int len)
        {
            int    alllen = 7 + len * 4 + 2;
            var    data = new byte[alllen];
            int    i = 7;
            byte   a = 0, b = 0, c = 0, d = 0;
            UInt16 checkSum = 0;
            var    datalen  = len * 4 + 3;

            data[0]   = 0x68;
            data[1]   = (byte)datalen;
            data[2]   = (byte)datalen;
            data[3]   = 0x68;
            data[4]   = 0x01;
            data[5]   = 0x41;
            data[6]   = 0x90;
            checkSum += data[4];
            checkSum += data[5];
            checkSum += data[6];
            //大端模式
            foreach (var m in array)
            {
                a         = data[i++] = ElementTool.GetBit31_24(m);
                b         = data[i++] = ElementTool.GetBit23_16(m);
                c         = data[i++] = ElementTool.GetBit15_8(m);
                d         = data[i++] = ElementTool.GetBit7_0(m);
                checkSum += (UInt16)(a + b + c + d);
            }
            data[alllen - 2] = ElementTool.GetBit7_0(checkSum);
            data[alllen - 1] = 0x16;
            return(data);
        }
示例#3
0
        /// <summary>
        /// 获取报数据
        /// </summary>
        /// <returns></returns>
        public byte[] GetPacketData()
        {
            try
            {
                int index = 0;
                packetData          = new byte[FileData.Length + 11];
                packetData[index++] = (byte)OperationSign;
                packetData[index++] = ElementTool.GetBit7_0(FileID);
                packetData[index++] = ElementTool.GetBit15_8(FileID);
                packetData[index++] = ElementTool.GetBit23_16(FileID);
                packetData[index++] = ElementTool.GetBit31_24(FileID);
                packetData[index++] = ElementTool.GetBit7_0(FragmentNum);
                packetData[index++] = ElementTool.GetBit15_8(FragmentNum);
                packetData[index++] = ElementTool.GetBit23_16(FragmentNum);
                packetData[index++] = ElementTool.GetBit31_24(FragmentNum);
                packetData[index++] = (byte)Fllow;
                Array.Copy(FileData, 0, packetData, index, FileData.Length);
                packetData[packetData.Length - 1] = GetCheck(FileData);

                return(packetData);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
        /// <summary>
        /// 获取数据数组
        /// </summary>
        /// <returns>数组</returns>
        public byte[] GetArrayData()
        {
            var data = new byte[NameLen + 13];

            data[0] = NameLen;
            var nameByte = UnicodeEncoding.ASCII.GetBytes(Name);

            Array.Copy(nameByte, 0, data, 1, NameLen);
            data[NameLen + 1] = ElementTool.GetBit7_0(Size);
            data[NameLen + 2] = ElementTool.GetBit15_8(Size);
            data[NameLen + 3] = ElementTool.GetBit23_16(Size);
            data[NameLen + 4] = ElementTool.GetBit31_24(Size);
            data[NameLen + 5] = Property;
            Array.Copy(Time.GetDataArray(), 0, data, NameLen + 6, 7);
            attributeData = data;
            return(data);
        }
        /// <summary>
        /// 写文件数据包
        /// </summary>
        /// <returns>文件数据包</returns>
        public byte[] GetPakcketData()
        {
            int len = NameLen + 10;

            pakcketData = new byte[len];
            int index = 0;

            pakcketData[index++] = (byte)OperationSign;
            pakcketData[index++] = NameLen;
            var nameStr = UnicodeEncoding.ASCII.GetBytes(Name);

            Array.Copy(nameStr, 0, pakcketData, index, NameLen);
            index += NameLen;
            pakcketData[index++] = ElementTool.GetBit7_0(FileID);
            pakcketData[index++] = ElementTool.GetBit15_8(FileID);
            pakcketData[index++] = ElementTool.GetBit23_16(FileID);
            pakcketData[index++] = ElementTool.GetBit31_24(FileID);
            pakcketData[index++] = ElementTool.GetBit7_0(Size);
            pakcketData[index++] = ElementTool.GetBit15_8(Size);
            pakcketData[index++] = ElementTool.GetBit23_16(Size);
            pakcketData[index++] = ElementTool.GetBit31_24(Size);
            return(pakcketData);
        }