public ModifiableProtocol(IPacketEncryptor encryptor=null, IPacketDecryptor decryptor=null, IPacketEncoder encoder=null, IPacketDecoder decoder=null) { _encryptor = encryptor; _decryptor = decryptor; _encoder = encoder; _decoder = decoder; }
public static void RegisterPythonArrayTestDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new ArrayTest0Packet()); src.Register(() => new ArrayTest1Packet()); src.Register(() => new ArrayTest3Packet()); src.Register(() => new ArrayTest4Packet()); src.Register(() => new ArrayTest5Packet()); src.Register(() => new ArrayTest6Packet()); src.Register(() => new ArrayTest7Packet()); src.Register(() => new ArrayTest8Packet()); }
public static ChannelPipe CreateChannelPipe(IPacketEncoder encoder, IPacketDecoder decoder, IChannelHandler handler) { var pipe = new ChannelPipe(); pipe.SetCreateChannelAction((channel) => { channel.SetConfig("encoder", encoder); channel.SetConfig("decoder", decoder); channel.SetConfig("handler", handler); }); return pipe; }
public Client(IPacketEncoder encoder, IPacketDecoder decoder) { // Properties를 생성합니다. Properties는 Netronics의 각종 설정을 의미합니다. var properties = Properties.CreateProperties(new IPEndPoint(IPAddress.Loopback, 9999), // 서버의 아이피와 포트를 설정합니다. new ChannelPipe().SetCreateChannelAction(channel => { channel.SetConfig("encoder", encoder); // 해당 Channel의 Packet Encoder을 설정합니다. channel.SetConfig("decoder", decoder); // 해당 Channel의 Packet Decoder을 설정합니다. channel.SetConfig("handler", this); // 해당 Channel의 Handler을 설정합니다. //기본적인 switch는 같은 채널은 같은 스래드에서 처리되기때문에 메시지 처리가 같은 스레드에서 일어날것. })); netronics = new global::Netronics.Client(properties); // 위에서 만든 Properties를 바탕으로 Netronics 객체를 생성합니다. netronics.Start(); // 서버를 가동합니다. }
public Server(IPacketEncoder encoder, IPacketDecoder decoder) { // Properties를 생성합니다. Properties는 Netronics의 각종 설정을 의미합니다. var properties = Properties.CreateProperties(new IPEndPoint(IPAddress.Any, 9999), // 클라이언트를 받을 아이피와 포트를 설정합니다. new ChannelPipe().SetCreateChannelAction(channel => // 각 클라이언트가 접속하면 Channel을 생성하는 과정이 시작되는데 옵션을 아래와 같이 넣을 수 있습니다. { Console.WriteLine("전달하기 전 Channel의 설정"); channel.SetConfig("encoder", encoder); // 해당 Channel의 Packet Encoder을 설정합니다. channel.SetConfig("decoder", decoder); // 해당 Channel의 Packet Decoder을 설정합니다. channel.SetConfig("handler", this); // 해당 Channel의 Handler을 설정합니다. channel.SetConfig("switch", new RandemSwitch()); //랜덤으로 전달되는지 확인 ReceiveSwitch 테스트 Console.WriteLine("Channel을 Netronics로 전달"); })); netronics = new Netronics(properties); // 위에서 만든 Properties를 바탕으로 Netronics 객체를 생성합니다. netronics.Start(); // 서버를 가동합니다. }
public static void RegisterDevelopmentDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new MissionChecksumPacket()); }
public static void RegisterUalbertaDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new NavFilterBiasPacket()); src.Register(() => new RadioCalibrationPacket()); src.Register(() => new UalbertaSysStatusPacket()); }
public IPacketDecoder SetDecoder(IPacketDecoder decoder) { _decoder = decoder; return _decoder; }
public static void RegisterStandardDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { }
public static void RegisterTestDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new TestTypesPacket()); }
public static void RegisterIcarousDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new IcarousHeartbeatPacket()); src.Register(() => new IcarousKinematicBandsPacket()); }
public static void RegisterUavionixDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new UavionixAdsbOutCfgPacket()); src.Register(() => new UavionixAdsbOutDynamicPacket()); src.Register(() => new UavionixAdsbTransceiverHealthReportPacket()); }
public static void RegisterAvssuasDialect(this IPacketDecoder <IPacketV2 <IPayload> > src) { src.Register(() => new AvssPrsSysStatusPacket()); }