/// <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); }
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); }
/// <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); }
/// <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); }
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); }
/// <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); }