Exemple #1
0
        public async Task <bool> Login(
            string ip,
            int port,
            JT809_0x1001 jT809_0x1001)
        {
            if (disposed)
            {
                return(await Task.FromResult(false));
            }
            logger.LogInformation($"ip:{ip},port:{port}");
            this._jT809_0x1001 = jT809_0x1001;
            this.iPEndPoint    = new IPEndPoint(IPAddress.Parse(ip), port);
            bool successed = false;

            try
            {
                //IPAddress[] hostinfo = Dns.GetHostAddresses(host);
                //IPAddress address = hostinfo[0];
                if (channel == null)
                {
                    channel = await bootstrap.ConnectAsync(iPEndPoint);

                    successed = channel.Open && channel.Active;
                    if (channel.Open && channel.Active)
                    {
                        //JT809.Protocol.MessageBody.JT809_0x1001 jT809_0X1001 = jT809_0X1001 new Protocol.MessageBody.JT809_0x1001();
                        //jT809_0X1001.DownLinkIP = downLinkIP;
                        //jT809_0X1001.DownLinkPort = downLinkPort;
                        //jT809_0X1001.UserId = userId;
                        //jT809_0X1001.Password = password;
                        var package = Protocol.Enums.JT809BusinessType.主链路登录请求消息.Create(new JT809Header
                        {
                            MsgGNSSCENTERID = config.HeaderOptions.MsgGNSSCENTERID
                        }, _jT809_0x1001);
                        await channel.WriteAndFlushAsync(new JT809Response(package, 256));

                        //await channel.WriteAsync(new JT809Response(package, 100));
                        logger.LogInformation("等待登录应答结果...");
                        manualResetEvent.Pause();
                    }
                }
            }
            catch (AggregateException ex)
            {
                logger.LogError(ex.InnerException, $"ip:{ip},port:{port}");
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"ip:{ip},port:{port}");
            }
            return(await Task.FromResult(successed));
        }