public void Test2()
        {
            // 心跳会话包
            JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789012");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));

            // 文本信息包
            JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create("123456789012", new JT808_0x8300
            {
                TextFlag = 5,
                TextInfo = "smallchi 518"
            });
            var data = JT808Serializer.Serialize(jT808Package2);

            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto();

            jT808UnificationSendRequestDto.TerminalPhoneNo = "123456789012";
            jT808UnificationSendRequestDto.Data            = data;

            HttpClient httpClient = new HttpClient();
            // 调用内置的http服务接收文本信息下发
            var    result  = httpClient.PostAsync("http://127.0.0.1:828/jt808api/UnificationSend", new StringContent(JsonConvert.SerializeObject(jT808UnificationSendRequestDto))).Result;
            string content = result.Content.ReadAsStringAsync().Result;
            JT808ResultDto <bool> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <bool> >(content);

            Assert.Equal(200, jt808Result.Code);
            Assert.True(jt808Result.Data);
            SimpleTcpClient.Down();
        }
Exemplo n.º 2
0
        /// <summary>
        /// 统一下发信息
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public async ValueTask <JT808ResultDto <bool> > UnificationSend(JT808UnificationSendRequestDto parameter)
        {
            var response = await HttpClient.PostAsJsonAsync(JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend, parameter);

            response.EnsureSuccessStatusCode();
            var value = await response.Content.ReadFromJsonAsync <JT808ResultDto <bool> >();

            return(value);
        }
        /// <summary>
        /// 基于Udp的统一下发信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JT808HttpResponse UnificationUdpSend(JT808HttpRequest request)
        {
            if (string.IsNullOrEmpty(request.Json))
            {
                return(EmptyHttpResponse());
            }
            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject <JT808UnificationSendRequestDto>(request.Json);
            var result = jT808UnificationUdpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data);

            return(CreateJT808HttpResponse(result));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 统一下发信息
        /// </summary>
        /// <param name="jT808UnificationSendRequestDto"></param>
        /// <returns></returns>
        public JT808ResultDto <bool> UnificationSend(JT808UnificationSendRequestDto jT808UnificationSendRequestDto)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, JT808NettyConstants.JT808WebApiRouteTable.UnificationSend);

            request.Content = new StringContent(JsonSerializer.Serialize(jT808UnificationSendRequestDto));
            var response = HttpClient.SendAsync(request).Result;

            response.EnsureSuccessStatusCode();
            var value = JsonSerializer.Deserialize <JT808ResultDto <bool> >(response.Content.ReadAsByteArrayAsync().Result);

            return(value);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 统一下发信息
        /// </summary>
        /// <param name="jT808UnificationSendRequestDto"></param>
        /// <returns></returns>
        public async ValueTask <JT808ResultDto <bool> > UnificationSend(JT808UnificationSendRequestDto jT808UnificationSendRequestDto)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, JT808GatewayConstants.JT808WebApiRouteTable.UnificationSend);

            request.Content = new StringContent(JsonSerializer.Serialize(jT808UnificationSendRequestDto));
            var response = await HttpClient.SendAsync(request);

            response.EnsureSuccessStatusCode();
            var data = await response.Content.ReadAsStreamAsync();

            var value = await JsonSerializer.DeserializeAsync <JT808ResultDto <bool> >(data);

            return(value);
        }
        public void UnificationSendTest()
        {
            var ch = WebExt.CreateEmbeddedChannel();
            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto
            {
                TerminalPhoneNo = "123456789",
                Data            = new byte[] { 1, 2, 3, 4 }
            };

            byte[] content = JsonSerializer.SerializeToUtf8Bytes(jT808UnificationSendRequestDto);
            ch.WriteInbound(WebExt.CreatePostRequest(JT808NettyConstants.JT808WebApiRouteTable.UnificationSend, content));
            var result = ch.As <bool>();

            Assert.False(result.Data);
            Assert.Equal(JT808ResultCode.Ok, result.Code);
            Assert.Equal("offline", result.Message);
        }
        public void UnificationSendTest()
        {
            JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>();

            jT808ResultDto.Data = true;
            jT808ResultDto.Code = 200;
            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto
            {
                TerminalPhoneNo = "123456789",
                Data            = new byte[] { 1, 2, 3, 4 }
            };
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.UnificationSend, JsonSerializer.Serialize(jT808UnificationSendRequestDto), JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.UnificationSend(jT808UnificationSendRequestDto);

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(jT808ResultDto.Data, result.Data);
        }
Exemplo n.º 8
0
        public async Task <ActionResult <JT808ResultDto <bool> > > UnificationSend([FromBody] JT808UnificationSendRequestDto parameter)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                resultDto.Data = await SessionManager.TrySendByTerminalPhoneNoAsync(parameter.TerminalPhoneNo, Convert.FromHexString(parameter.HexData));

                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(resultDto);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 统一下发信息
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public byte[] UnificationSend(string json)
        {
            if (string.IsNullOrEmpty(json))
            {
                return(EmptyHttpResponse());
            }
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonSerializer.Deserialize <JT808UnificationSendRequestDto>(json);
                resultDto.Data = SessionManager.TrySendByTerminalPhoneNoAsync(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.HexData.ToHexBytes())
                                 .GetAwaiter()
                                 .GetResult();
                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(CreateHttpResponse(resultDto));
        }