using JT809.DotNetty.Core.Clients; using JT809.DotNetty.Core.Metadata; using JT809.Protocol.Extensions; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using JT809.Protocol.SubMessageBody; using JT809.Protocol.Metadata; using JT809.Protocol.MessageBody; namespace JT809.Inferior.Client { public class JT809InferiorService : IHostedService { private readonly JT809MainClient mainClient; private readonly ILogger logger; public JT809InferiorService( ILoggerFactory loggerFactory, JT809MainClient mainClient) { this.mainClient = mainClient; logger = loggerFactory.CreateLogger(); } public Task StartAsync(CancellationToken cancellationToken) { //5B0000001F0000053B100201341725010000000000270F00000004E8A6F25D var connect = mainClient.Login("127.0.0.1", 809, new JT809_0x1001 { DownLinkIP = "127.0.0.1", DownLinkPort = 1809, UserId = 123456, Password = "12345678" }).Result; if (connect) { Task.Run(() => { while (true) { JT809.Protocol.MessageBody.JT809_0x1200 jT809_0X1200 = new Protocol.MessageBody.JT809_0x1200(); jT809_0X1200.VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色; jT809_0X1200.VehicleNo = "粤A12345"; jT809_0X1200.SubBusinessType = Protocol.Enums.JT809SubBusinessType.实时上传车辆定位信息; jT809_0X1200.SubBodies = new JT809_0x1200_0x1202() { VehiclePosition = new JT809VehiclePositionProperties { Day = (byte)(DateTime.Now.Day), Month = (byte)(DateTime.Now.Month), Year = (ushort)(DateTime.Now.Year), Hour = (byte)(DateTime.Now.Hour), Minute = (byte)(DateTime.Now.Minute), Second = (byte)(DateTime.Now.Second), Alarm = 1, Direction = 2, State = 2, Altitude = 32, Lat = 122334565, Lon = 12354563, Vec1 = 112, Vec2 = 22, Vec3 = 12 } }; var package = JT809.Protocol.Enums.JT809BusinessType.主链路动态信息交换消息.Create(jT809_0X1200); mainClient.SendAsync(new JT809Response(package, 256)); logger.LogDebug($"Thread:{Thread.CurrentThread.ManagedThreadId}-2s"); Thread.Sleep(2000); } }); Task.Run(() => { while (true) { JT809.Protocol.MessageBody.JT809_0x1200 jT809_0X1200 = new Protocol.MessageBody.JT809_0x1200(); jT809_0X1200.VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色; jT809_0X1200.VehicleNo = "粤A12346"; jT809_0X1200.SubBusinessType = Protocol.Enums.JT809SubBusinessType.实时上传车辆定位信息; jT809_0X1200.SubBodies = new JT809_0x1200_0x1202() { VehiclePosition = new JT809VehiclePositionProperties { Day = (byte)(DateTime.Now.Day), Month = (byte)(DateTime.Now.Month), Year = (byte)(DateTime.Now.Year), Hour = (byte)(DateTime.Now.Hour), Minute = (byte)(DateTime.Now.Minute), Second = (byte)(DateTime.Now.Second), Alarm = 1, Direction = 2, State = 2, Altitude = 32, Lat = 122334565, Lon = 12354563, Vec1 = 112, Vec2 = 22, Vec3 = 12 } }; var package = JT809.Protocol.Enums.JT809BusinessType.主链路动态信息交换消息.Create(jT809_0X1200); mainClient.SendAsync(new JT809Response(package, 256)); logger.LogDebug($"Thread:{Thread.CurrentThread.ManagedThreadId}-4s"); Thread.Sleep(4000); } }); } return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } } }