Exemplo n.º 1
0
        public static void Send(this JT808TcpClient client, JT808Package package, int minBufferSize = 4096)
        {
            package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo;
            JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize);

            client.Send(request);
        }
Exemplo n.º 2
0
        public async ValueTask <bool> SendAsync(JT808ClientRequest message)
        {
            if (disposed)
            {
                return(false);
            }
            if (IsOpen && socketState)
            {
                if (message.Package != null)
                {
                    try
                    {
                        var sendData = JT808Serializer.Serialize(message.Package, DeviceConfig.Version, minBufferSize: message.MinBufferSize);
                        await clientSocket.SendAsync(sendData, SocketFlags.None);

                        SendAtomicCounterService.MsgSuccessIncrement();
                        WriteableTimeout = DateTime.UtcNow.AddSeconds(DeviceConfig.Heartbeat);
                        return(true);
                    }
                    catch (System.Net.Sockets.SocketException ex)
                    {
                        socketState = false;
                        Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]");
                        return(false);
                    }
                    catch (System.Exception ex)
                    {
                        Logger.LogError(ex.Message);
                        return(false);
                    }
                }
                else if (message.HexData != null)
                {
                    try
                    {
                        await clientSocket.SendAsync(message.HexData, SocketFlags.None);

                        SendAtomicCounterService.MsgSuccessIncrement();
                        WriteableTimeout = DateTime.UtcNow.AddSeconds(DeviceConfig.Heartbeat);
                        return(true);
                    }
                    catch (System.Net.Sockets.SocketException ex)
                    {
                        socketState = false;
                        Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]");
                        return(false);
                    }
                    catch (System.Exception ex)
                    {
                        Logger.LogError(ex.Message);
                        return(false);
                    }
                }
            }
            return(false);
        }
        public static void Send(this JT808TcpClient client, JT808Header header, JT808Bodies bodies, int minBufferSize = 1024)
        {
            JT808Package package = new JT808Package();

            package.Header = header;
            package.Bodies = bodies;
            package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo;
            package.Header.MsgNum          = client.DeviceConfig.MsgSNDistributed.Increment();
            JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize);

            client.Send(request);
        }
Exemplo n.º 4
0
        public async ValueTask SendAsync(JT808ClientRequest message)
        {
            if (disposed)
            {
                return;
            }
            if (IsOpen && socketState)
            {
                if (message.Package != null)
                {
                    try
                    {
                        var sendData = JT808Serializer.Serialize(message.Package, minBufferSize: message.MinBufferSize);
                        //clientSocket.Send(sendData);
                        await clientSocket.SendAsync(sendData, SocketFlags.None);

                        SendAtomicCounterService.MsgSuccessIncrement();
                    }
                    catch (System.Net.Sockets.SocketException ex)
                    {
                        socketState = false;
                        Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]");
                    }
                    catch (System.Exception ex)
                    {
                        Logger.LogError(ex.Message);
                    }
                }
                else if (message.HexData != null)
                {
                    try
                    {
                        clientSocket.Send(message.HexData);
                        SendAtomicCounterService.MsgSuccessIncrement();
                    }
                    catch (System.Net.Sockets.SocketException ex)
                    {
                        socketState = false;
                        Logger.LogError($"[{ex.SocketErrorCode.ToString()},{ex.Message},{DeviceConfig.TerminalPhoneNo}]");
                    }
                    catch (System.Exception ex)
                    {
                        Logger.LogError(ex.Message);
                    }
                }
            }
        }
Exemplo n.º 5
0
 public void Send(JT808ClientRequest request)
 {
     if (disposed)
     {
         return;
     }
     if (clientChannel == null)
     {
         throw new NullReferenceException("Channel is empty.");
     }
     if (request == null)
     {
         throw new ArgumentNullException("JT808ClientRequest Parameter is empty.");
     }
     if (clientChannel.Active && clientChannel.Open)
     {
         clientChannel.WriteAndFlushAsync(request);
     }
 }
Exemplo n.º 6
0
 public static async ValueTask SendAsync(this JT808TcpClient client, JT808Package package, int minBufferSize = 4096)
 {
     package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo;
     JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize);
     await client.SendAsync(request);
 }