コード例 #1
0
 public void RemoveSubscriber(GooseSubscriber subscriber)
 {
     if (subscriber.attachedToReceiver)
     {
         GooseReceiver_removeSubscriber(self, subscriber.self);
         subscribers.Remove(subscriber);
         subscriber.attachedToReceiver = false;
     }
 }
コード例 #2
0
 /// <summary>
 /// Add the subscriber to be handled by this receiver instance
 /// </summary>
 /// <remarks>A GooseSubscriber can only be added to one GooseReceiver!</remarks>
 /// <param name="subscriber"></param>
 public void AddSubscriber(GooseSubscriber subscriber)
 {
     if (subscriber.attachedToReceiver == false)
     {
         subscriber.attachedToReceiver = true;
         GooseReceiver_addSubscriber(self, subscriber.self);
         subscribers.Add(subscriber);
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: bphaines/libiec61850-RT
        public static void Main(string[] args)
        {
            Console.WriteLine("Starting GOOSE subscriber...");

            GooseReceiver receiver = new GooseReceiver();

            receiver.SetInterfaceId("eth0");
            //receiver.SetInterfaceId("0"); // on windows use the interface index starting with 0

            GooseSubscriber subscriber = new GooseSubscriber("simpleIOGenericIO/LLN0$GO$gcbAnalogValues");

            // APP-ID has to match the APP-ID of the publisher
            subscriber.SetAppId(4096);
            subscriber.SetListener(gooseListener, null);

            receiver.AddSubscriber(subscriber);

            GooseSubscriber subscriber2 = new GooseSubscriber("simpleIOGenericIO/LLN0$GO$gcbEvents");

            subscriber2.SetAppId(4096);
            subscriber2.SetListener(gooseListener, null);

            receiver.AddSubscriber(subscriber2);

            receiver.Start();

            subscriber = null;

            if (receiver.IsRunning())
            {
                bool running = true;

                /* run until Ctrl-C is pressed */
                Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
                    e.Cancel = true;
                    running  = false;
                };

                while (running)
                {
                    Thread.Sleep(100);
                }

                receiver.Stop();
            }
            else
            {
                Console.WriteLine("Failed to start GOOSE receiver. Running as root?");
            }

            receiver.Dispose();
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: Daybreak2019/DDosAnalysis
		private static void gooseListener (GooseSubscriber subscriber, object parameter)
		{
			Console.WriteLine ("Received GOOSE message:\n-------------------------");

			Console.WriteLine ("  stNum: " + subscriber.GetStNum ());

			Console.WriteLine ("  sqNum: " + subscriber.GetSqNum ());


			MmsValue values = subscriber.GetDataSetValues ();
	
			Console.WriteLine ("  values: " +values.Size ().ToString ());

			foreach (MmsValue value in values) {
				Console.WriteLine ("   value: " + value.ToString ());
			}
		}
コード例 #5
0
 public void RemoveSubscriber(GooseSubscriber subscriber)
 {
     GooseReceiver_removeSubscriber(self, subscriber.self);
 }
コード例 #6
0
 public void AddSubscriber(GooseSubscriber subscriber)
 {
     GooseReceiver_addSubscriber(self, subscriber.self);
 }