Пример #1
0
        private static void svUpdateListener(SVSubscriber subscriber, object parameter, SVSubscriberASDU asdu)
        {
            Console.WriteLine("RECV ASDU:");

            string svID = asdu.GetSvId();

            if (svID != null)
            {
                Console.WriteLine("  svID=" + svID);
            }

            Console.WriteLine("  smpCnt: " + asdu.GetSmpCnt());
            Console.WriteLine("  confRev: " + asdu.GetConfRev());

            if (asdu.GetDataSize() >= 8)
            {
                Console.WriteLine("  DATA[0]: " + asdu.GetFLOAT32(0));
                Console.WriteLine("  DATA[1]: " + asdu.GetFLOAT32(4));
            }

            if (asdu.GetDataSize() >= 16)
            {
                Console.WriteLine("  DATA[2]: " + asdu.GetTimestamp(8).AsDateTime().ToString());
            }
        }
Пример #2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Starting SV subscriber");

            SVReceiver receiver = new SVReceiver();

            if (args.Length > 0)
            {
                receiver.SetInterfaceId(args [0]);
            }

            SVSubscriber subscriber = new SVSubscriber(null, 0x4000);

            subscriber.SetListener(svUpdateListener, null);

            receiver.AddSubscriber(subscriber);

            receiver.Start();

            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 SV receiver. Running as root?");
            }

            receiver.Dispose();
        }
 public void RemoveSubscriber(SVSubscriber subscriber)
 {
     SVReceiver_removeSubscriber(self, subscriber.self);
 }
 /// <summary>
 /// Add a subscriber to handle
 /// </summary>
 /// <param name="subscriber">Subscriber.</param>
 public void AddSubscriber(SVSubscriber subscriber)
 {
     SVReceiver_addSubscriber(self, subscriber.self);
 }