예제 #1
0
 public override byte[] ToBytes()
 {
     return(TLUtils.Combine(
                TLUtils.SignatureToBytes(Signature),
                Ip.ToBytes(),
                IpV6.ToBytes(),
                Port.ToBytes(),
                PeerTag.ToBytes()));
 }
예제 #2
0
        /// <summary>
        /// FileVersion.Current - 400 bytes
        /// </summary>
        /// <returns></returns>
        public byte[] ToBytes()
        {
            var bytes = new List <byte>();

            ProInfo.FileVersion      = FileVersion;
            UpdateDynDNS.FileVersion = FileVersion;

            switch (FileVersion)
            {
            case FileVersion.Current:
                bytes.AddRange(Ip?.ToBytes(0, 4) ?? new byte[4]);
                bytes.AddRange(SubNet?.ToBytes(0, 4) ?? new byte[4]);
                bytes.AddRange(Gate?.ToBytes(0, 4) ?? new byte[4]);
                bytes.AddRange(Mac?.ToBytes(0, 6) ?? new byte[6]);
                bytes.Add((byte)TcpType);
                bytes.Add((byte)MiniType);
                bytes.Add((byte)Debug);
                bytes.AddRange(ProInfo.ToBytes());
                bytes.Add((byte)Com0Config);
                bytes.Add((byte)Com1Config);
                bytes.Add((byte)Com2Config);
                bytes.Add((byte)RefreshFlashTimer);
                bytes.Add((byte)PlugNPlay);
                bytes.Add((byte)ResetDefault);
                bytes.Add((byte)ComBaudRate0);
                bytes.Add((byte)ComBaudRate1);
                bytes.Add((byte)ComBaudRate2);
                bytes.Add((byte)UserNameMode);
                bytes.Add((byte)EnableCustomerUnit);
                bytes.Add((byte)UsbMode);
                bytes.Add((byte)NetworkNumber);
                bytes.Add((byte)PanelType);
                bytes.AddRange(PanelName.ToBytes(20));
                bytes.Add((byte)EnablePanelName);
                bytes.Add((byte)PabelNumber);
                bytes.AddRange(DynDNSUser.ToBytes(32));
                bytes.AddRange(DynDNSPassword.ToBytes(32));
                bytes.AddRange(DynDNSDomain.ToBytes(32));
                bytes.Add((byte)DynDNSMode);
                bytes.Add((byte)DynDNSProvider);
                bytes.AddRange(((ushort)DynDNSUpdateTime).ToBytes());
                bytes.Add((byte)SntpMode);
                bytes.AddRange(((short)TimeZone).ToBytes());
                bytes.AddRange(((uint)SerialNumber).ToBytes());
                bytes.AddRange(UpdateDynDNS.ToBytes());
                bytes.AddRange(((ushort)MstpNetworkNumber).ToBytes());
                bytes.Add((byte)BBMDEn);
                bytes.Add((byte)SdExist);
                bytes.AddRange(((ushort)ModbusPort).ToBytes());
                bytes.Add((byte)ModbusId);
                bytes.AddRange(((uint)ObjectInstance).ToBytes());
                bytes.AddRange(((uint)TimeUpdateSince1970).ToBytes());
                bytes.Add((byte)TimeZoneSummerDaytime);
                bytes.AddRange(SntpServer.ToBytes(30));
                bytes.Add((byte)ZegbeeExist);
                bytes.AddRange(new byte[162]);
                break;

            default:
                throw new FileVersionNotImplementedException(FileVersion);
            }

            CheckSize(bytes.Count, GetSize(FileVersion));

            return(bytes.ToArray());
        }
예제 #3
0
        public string GetIpString()
        {
            var ip = Ip.ToBytes();

            return(string.Format("{0}.{1}.{2}.{3}", ip[3], ip[2], ip[1], ip[0]));
        }