示例#1
0
 public JT809MainClient(
     JT809HeaderOptions jT809HeaderOptions,
     IJT809ManualResetEvent jT809ManualResetEvent,
     IServiceProvider provider,
     ILoggerFactory loggerFactory)
 {
     JT809HeaderOptions    = jT809HeaderOptions;
     this.serviceProvider  = provider;
     this.logger           = loggerFactory.CreateLogger <JT809MainClient>();
     this.manualResetEvent = jT809ManualResetEvent;
     group     = new MultithreadEventLoopGroup();
     bootstrap = new Bootstrap();
     bootstrap.Group(group)
     .Channel <TcpSocketChannel>()
     .Option(ChannelOption.TcpNodelay, true)
     .Handler(new ActionChannelInitializer <ISocketChannel>(channel =>
     {
         IChannelPipeline pipeline = channel.Pipeline;
         //下级平台1分钟发送心跳
         //上级平台是3分钟没有发送就断开连接
         using (var scope = serviceProvider.CreateScope())
         {
             pipeline.AddLast("jt809MainClientBuffer", new DelimiterBasedFrameDecoder(int.MaxValue,
                                                                                      Unpooled.CopiedBuffer(new byte[] { JT809Package.BEGINFLAG }),
                                                                                      Unpooled.CopiedBuffer(new byte[] { JT809Package.ENDFLAG })));
             pipeline.AddLast("jt809MainClientSystemIdleState", new IdleStateHandler(180, 60, 200));
             pipeline.AddLast("jt809MainClientEncode", scope.ServiceProvider.GetRequiredService <JT809Encoder>());
             pipeline.AddLast("jt809MainClientDecode", scope.ServiceProvider.GetRequiredService <JT809Decoder>());
             pipeline.AddLast("jt809MainClientConnection", scope.ServiceProvider.GetRequiredService <JT809MainClientConnectionHandler>());
             pipeline.AddLast("jt809MainClientServer", scope.ServiceProvider.GetRequiredService <JT809MainClientHandler>());
         }
     }));
 }
示例#2
0
 private JT809GlobalConfig()
 {
     Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
     Encoding         = Encoding.GetEncoding("GBK");
     MsgSNDistributed = new DefaultMsgSNDistributedImpl();
     HeaderOptions    = new JT809HeaderOptions();
     SkipCRCCode      = false;
     initCrcTable();
 }
 public JT809InferiorService(
     JT809HeaderOptions jT809HeaderOptions,
     ILoggerFactory loggerFactory,
     JT809MainClient mainClient)
 {
     JT809HeaderOptions = jT809HeaderOptions;
     this.mainClient    = mainClient;
     logger             = loggerFactory.CreateLogger <JT809InferiorService>();
 }
 public JT809SubordinateLinkNotifyImplService(
     JT809HeaderOptions jT809HeaderOptions,
     ILoggerFactory loggerFactory,
     IJT809Config jT809Config,
     IOptions <JT809Configuration> jT809ConfigurationAccessor,
     JT809SuperiorMainSessionManager jT809SuperiorMainSessionManager
     )
 {
     JT809Serializer    = jT809Config.GetSerializer();
     JT809HeaderOptions = jT809HeaderOptions;
     this.logger        = loggerFactory.CreateLogger <JT809SubordinateLinkNotifyImplService>();
     configuration      = jT809ConfigurationAccessor.Value;
     this.jT809SuperiorMainSessionManager = jT809SuperiorMainSessionManager;
 }
示例#5
0
 /// <summary>
 /// 设置头部选项
 /// </summary>
 /// <param name="jT809HeaderOptions"></param>
 /// <returns></returns>
 public JT809GlobalConfig SetHeaderOptions(JT809HeaderOptions jT809HeaderOptions)
 {
     instance.Value.HeaderOptions = jT809HeaderOptions;
     return(instance.Value);
 }