Пример #1
0
 public ModifiableProtocol(IPacketEncryptor encryptor=null, IPacketDecryptor decryptor=null, IPacketEncoder encoder=null, IPacketDecoder decoder=null)
 {
     _encryptor = encryptor;
     _decryptor = decryptor;
     _encoder = encoder;
     _decoder = decoder;
 }
Пример #2
0
 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());
 }
Пример #3
0
 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;
 }
Пример #4
0
        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(); // 서버를 가동합니다.
        }
Пример #5
0
        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(); // 서버를 가동합니다.
        }
Пример #6
0
 public static void RegisterDevelopmentDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new MissionChecksumPacket());
 }
Пример #7
0
 public static void RegisterUalbertaDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new NavFilterBiasPacket());
     src.Register(() => new RadioCalibrationPacket());
     src.Register(() => new UalbertaSysStatusPacket());
 }
Пример #8
0
 public IPacketDecoder SetDecoder(IPacketDecoder decoder)
 {
     _decoder = decoder;
     return _decoder;
 }
Пример #9
0
 public static void RegisterStandardDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
 }
Пример #10
0
 public static void RegisterTestDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new TestTypesPacket());
 }
Пример #11
0
 public static void RegisterIcarousDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new IcarousHeartbeatPacket());
     src.Register(() => new IcarousKinematicBandsPacket());
 }
Пример #12
0
 public static void RegisterUavionixDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new UavionixAdsbOutCfgPacket());
     src.Register(() => new UavionixAdsbOutDynamicPacket());
     src.Register(() => new UavionixAdsbTransceiverHealthReportPacket());
 }
Пример #13
0
 public static void RegisterAvssuasDialect(this IPacketDecoder <IPacketV2 <IPayload> > src)
 {
     src.Register(() => new AvssPrsSysStatusPacket());
 }