Exemple #1
0
 /// <summary>
 /// 上级平台
 /// 主链路为服务端
 /// 从链路为客户端
 /// </summary>
 /// <param name="serviceDescriptors"></param>
 /// <returns></returns>
 public static IJT809Builder AddJT809SuperiorPlatform(this IJT809Builder builder, IConfiguration superiorPlatformConfiguration = null, Action <JT809SuperiorPlatformOptions> options = null)
 {
     if (superiorPlatformConfiguration != null)
     {
         builder.Services.Configure <JT809SuperiorPlatformOptions>(superiorPlatformConfiguration.GetSection("JT809SuperiorPlatformConfiguration"));
     }
     if (options != null)
     {
         builder.Services.Configure(options);
     }
     builder.Services.TryAddSingleton <IJT809VerifyCodeGenerator, JT809VerifyCodeGeneratorDefaultImpl>();
     //主从链路客户端和服务端连接处理器
     builder.Services.TryAddScoped <JT809MainServerConnectionHandler>();
     builder.Services.TryAddScoped <JT809SubordinateClientConnectionHandler>();
     //主链路服务端会话管理
     builder.Services.TryAddSingleton <JT809SuperiorMainSessionManager>();
     //主从链路接收消息默认业务处理器
     builder.Services.TryAddSingleton <JT809SuperiorMsgIdReceiveHandlerBase, JT809SuperiorMsgIdReceiveDefaultHandler>();
     //主从链路消息接收处理器
     builder.Services.TryAddScoped <JT809MainServerHandler>();
     builder.Services.TryAddScoped <JT809SubordinateClientHandler>();
     builder.Services.TryAddSingleton <IJT809SubordinateLoginService, JT809SubordinateLoginImplService>();
     builder.Services.TryAddSingleton <IJT809SubordinateLinkNotifyService, JT809SubordinateLinkNotifyImplService>();
     //从链路客户端
     builder.Services.TryAddSingleton <JT809SubordinateClient>();
     //主链路服务端
     builder.Services.AddHostedService <JT809MainServerHost>();
     //上级平台webapi
     builder.Services.TryAddSingleton <JT809SuperiorWebAPIHandlerBase, JT809SuperiorWebAPIDefaultHandler>();
     builder.Services.TryAddScoped <JT809SuperiorWebAPIServerHandler>();
     builder.Services.AddHostedService <JT809MainWebAPIServerHost>();
     return(builder);
 }
 public static IJT809Builder AddJT1078Configure(this IJT809Builder iJT809Builder)
 {
     iJT809Builder.Config.Register(Assembly.GetExecutingAssembly());
     iJT809Builder.Config.BusinessTypeFactory.Register(Assembly.GetExecutingAssembly());
     iJT809Builder.Config.SubBusinessTypeFactory.Register(Assembly.GetExecutingAssembly());
     return(iJT809Builder);
 }
Exemple #3
0
 public static IJT809Builder AddJT1078Configure(this IJT809Builder builder)
 {
     builder.Config.Register(Assembly.GetExecutingAssembly());
     builder.Config.BusinessTypeFactory.SetMap <JT808_JT1078_0x1700>();
     //#warning 不知道是不是jt1078协议的809结构有问题,先按交换的格式(少了数据交换的头部)
     builder.Config.SubBusinessTypeFactory.SetMap <JT808_JT1078_0x1700_0x1701>();
     return(builder);
 }
Exemple #4
0
 /// <summary>
 /// 下级平台
 /// 主链路为客户端
 /// 从链路为服务端
 /// </summary>
 /// <param name="serviceDescriptors"></param>
 /// <returns></returns>
 public static IJT809Builder AddJT809InferiorPlatformClient(this IJT809Builder builder)
 {
     builder.Services.TryAddSingleton <IJT809ManualResetEvent, JT809InferoprManualResetEvent>();
     //主从链路客户端和服务端连接处理器
     builder.Services.TryAddScoped <JT809MainClientConnectionHandler>();
     //主从链路接收消息默认业务处理器
     builder.Services.TryAddSingleton <JT809InferiorMsgIdReceiveHandlerBase, JT809InferiorMsgIdReceiveDefaultHandler>();
     //主从链路消息接收处理器
     builder.Services.TryAddScoped <JT809MainClientHandler>();
     //主链路客户端
     builder.Services.TryAddSingleton <JT809MainClient>();
     return(builder);
 }
        public static IJT809Builder AddJT1078Configure(this IJT809Builder iJT809Builder)
        {
            iJT809Builder.Config.Register(Assembly.GetExecutingAssembly());
#warning  知道是不是jt1078协议的809结构有问题,先按交换的格式(少了数据交换的头部)
            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x1700>((ushort)JT809_JT1078_BusinessType.主链路时效口令业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1700_0x1701>((ushort)JT809_JT1078_SubBusinessType.时效口令上报消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1700_0x1702>((ushort)JT809_JT1078_SubBusinessType.时效口令请求消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x1800>((ushort)JT809_JT1078_BusinessType.主链路实时音视频业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1800_0x1801>((ushort)JT809_JT1078_SubBusinessType.实时音视频请求应答消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1800_0x1802>((ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输应答消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x1900>((ushort)JT809_JT1078_BusinessType.主链路远程录像检索业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1900_0x1901>((ushort)JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1900_0x1902>((ushort)JT809_JT1078_SubBusinessType.查询音视频资源目录应答消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x1A00>((ushort)JT809_JT1078_BusinessType.主链路远程录像回放业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1A00_0x1A01>((ushort)JT809_JT1078_SubBusinessType.远程录像回放请求应答消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1A00_0x1A02>((ushort)JT809_JT1078_SubBusinessType.远程录像回放控制应答消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x1B00>((ushort)JT809_JT1078_BusinessType.主链路远程录像下载业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1B00_0x1B01>((ushort)JT809_JT1078_SubBusinessType.远程录像下载请求应答消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1B00_0x1B02>((ushort)JT809_JT1078_SubBusinessType.远程录像下载通知消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x1B00_0x1B03>((ushort)JT809_JT1078_SubBusinessType.远程录像下载控制应答消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x9700>((ushort)JT809_JT1078_BusinessType.从链路时效口令业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9700_0x9702>((ushort)JT809_JT1078_SubBusinessType.时效口令请求应答消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x9800>((ushort)JT809_JT1078_BusinessType.从链路实时音视频业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9800_0x9801>((ushort)JT809_JT1078_SubBusinessType.实时音视频请求消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9800_0x9802>((ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x9900>((ushort)JT809_JT1078_BusinessType.从链路远程录像检索业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9900_0x9901>((ushort)JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息应答消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9900_0x9902>((ushort)JT809_JT1078_SubBusinessType.查询音视频资源目录请求消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x9A00>((ushort)JT809_JT1078_BusinessType.从链路远程录像回放业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9A00_0x9A01>((ushort)JT809_JT1078_SubBusinessType.远程录像回放请求消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9A00_0x9A02>((ushort)JT809_JT1078_SubBusinessType.远程录像回放控制消息);

            iJT809Builder.Config.BusinessTypeFactory.SetMap <JT809_JT1078_0x9B00>((ushort)JT809_JT1078_BusinessType.从链路远程录像下载业务类);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9B00_0x9B01>((ushort)JT809_JT1078_SubBusinessType.远程录像下载请求消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9B00_0x9B02>((ushort)JT809_JT1078_SubBusinessType.远程录像下载完成通知应答消息);
            iJT809Builder.Config.SubBusinessTypeFactory.SetMap <JT809_JT1078_0x9B00_0x9B03>((ushort)JT809_JT1078_SubBusinessType.远程录像下载控制消息);
            return(iJT809Builder);
        }
Exemple #6
0
 /// <summary>
 /// 下级平台
 /// 主链路为客户端
 /// 从链路为服务端
 /// </summary>
 /// <param name="serviceDescriptors"></param>
 /// <returns></returns>
 public static IJT809Builder AddJT809InferiorPlatform(this IJT809Builder builder, Action <JT809InferiorPlatformOptions> options)
 {
     builder.Services.Configure(options);
     //主从链路客户端和服务端连接处理器
     builder.Services.TryAddScoped <JT809MainClientConnectionHandler>();
     builder.Services.TryAddScoped <JT809SubordinateServerConnectionHandler>();
     //主链路服务端会话管理
     //serviceDescriptors.TryAddSingleton<JT809MainSessionManager>();
     //主从链路接收消息默认业务处理器
     builder.Services.TryAddSingleton <JT809InferiorMsgIdReceiveHandlerBase, JT809InferiorMsgIdReceiveDefaultHandler>();
     //主从链路消息接收处理器
     builder.Services.TryAddScoped <JT809SubordinateServerHandler>();
     //主链路客户端
     //serviceDescriptors.TryAddSingleton<JT809MainClient>();
     //从链路服务端
     builder.Services.AddHostedService <JT809SubordinateServerHost>();
     return(builder);
 }
Exemple #7
0
 public static IJT809Builder AddJT809Core(this IJT809Builder builder, IConfiguration configuration, Newtonsoft.Json.JsonSerializerSettings settings = null)
 {
     if (settings != null)
     {
         JsonConvert.DefaultSettings = new Func <JsonSerializerSettings>(() =>
         {
             settings.Converters.Add(new JsonIPAddressConverter());
             settings.Converters.Add(new JsonIPEndPointConverter());
             settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
             return(settings);
         });
     }
     builder.Services.Configure <JT809Configuration>(configuration.GetSection("JT809Configuration"));
     builder.Services.TryAddSingleton <JT809SimpleSystemCollectService>();
     //JT809计数器服务工厂
     builder.Services.TryAddSingleton <JT809AtomicCounterServiceFactory>();
     //JT809编解码器
     builder.Services.TryAddScoped <JT809Decoder>();
     builder.Services.TryAddScoped <JT809Encoder>();
     return(builder);
 }
Exemple #8
0
 /// <summary>
 /// 目前只支持0x0200定位
 /// 0704需要拆分出来
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="jt808MsgId">0x0200</param>
 /// <param name="jt808AnalyzeCallback"></param>
 /// <param name="version"></param>
 /// <returns></returns>
 public static IJT809Builder AddJT809_JT808AnalyzeCallback(this IJT809Builder builder, ushort jt808MsgId, JT808AnalyzeCallback jt808AnalyzeCallback, JT809Version version = JT809Version.JTT2011)
 {
     builder.Config.AnalyzeCallbacks.Add(jt808MsgId, jt808AnalyzeCallback);
     return(builder);
 }