Example #1
0
 /// <summary>
 /// Depart event as a NetworkMonitorEventListener
 /// </summary>
 /// <param name="owme"> DeviceMonitorEvent depart </param>
 public virtual void deviceDeparture(DeviceMonitorEvent devt)
 {
     for (int i = 0; i < devt.DeviceCount; i++)
     {
         Debug.WriteLine("REMOVE: " + devt.getAddressAsStringAt(i));
     }
 }
Example #2
0
 /// <summary>
 /// Arrival event as a NetworkMonitorEventListener
 /// </summary>
 /// <param name="owme"> DeviceMonitorEvent add </param>
 public virtual void deviceArrival(DeviceMonitorEvent devt)
 {
     for (int i = 0; i < devt.DeviceCount; i++)
     {
         Debug.WriteLine("ADD: " + devt.getAddressAsStringAt(i));
     }
 }
Example #3
0
        /// <summary>
        /// Arrival event as a NetworkMonitorEventListener
        /// </summary>
        /// <param name="nme"> NetworkMonitorEvent add </param>
        public virtual void deviceArrival(DeviceMonitorEvent dme)
        {
            for (int i = 0; i < dme.DeviceCount; i++)
            {
                Debug.WriteLine("ADD: " + dme.getPathForContainerAt(i) + dme.getAddressAsStringAt(i));

                // if new devices is a TemperatureContainter the start a thread to read it
                OneWireContainer owc = dme.getContainerAt(i);

                if (owc is TemperatureContainer)
                {
//TODO                    SetValue("TemperatureContainer", owc);
//TODO                    SetValue("OWPath", dme.getPathForContainerAt(i));

                    var t = Task <BackgroundTaskRegistration> .Run(() =>
                    {
                        return(BackgroundTaskHelper.Register(
                                   WatchTempBackgroundTaskEntryPoint,
                                   WatchTempBackgroundTaskName,
                                   new SystemTrigger(SystemTriggerType.TimeZoneChange, false),
                                   null));
                    });

                    t.Wait();

                    // add to vector for later cleanup
                    watchers.Add(t.Result);
                }
            }
        }
Example #4
0
        /// <summary>
        /// Depart event as a NetworkMonitorEventListener
        /// </summary>
        /// <param name="nme"> NetworkMonitorEvent depart </param>
        public virtual void deviceDeparture(DeviceMonitorEvent dme)
        {
            for (int i = 0; i < dme.DeviceCount; i++)
            {
                Debug.WriteLine("REMOVE: " + dme.getPathForContainerAt(i) + dme.getAddressAsStringAt(i));

                // kill the temp watcher
                BackgroundTaskHelper.Unregister(WatchTempBackgroundTaskName);
            }
        }
Example #5
0
        private static string GetEventAsPrintableText(DeviceMonitorEvent ev)
        {
            string message = $"Event type {ev.GetType().Name}, (readers: {string.Join(", ", ev.Readers)})";

            Console.WriteLine("Event select");
            switch (ev)
            {
            case ReadersDetached detached:
                message += "detached";
                subscription?.Dispose();
                break;

            case ReadersAttached attached:
                message     += "attached";
                subscription = monitorFactory
                               .CreateObservable(SCardScope.System, SmartCardReaderName)
                               .Select(GetEventText)
                               .Do(Console.WriteLine)
                               .Subscribe(
                    onNext: _ => { },
                    onError: OnError);
                break;

            case DeviceMonitorInitialized initialized:
                message            += "initialized";
                SmartCardReaderName = ev.Readers.Where(n => !n.Contains("SAM")).First();
                message            += $"             {SmartCardReaderName}";
                subscription        = monitorFactory
                                      .CreateObservable(SCardScope.System, SmartCardReaderName)
                                      .Select(GetEventText)
                                      .Do(Console.WriteLine)
                                      .Subscribe(
                    onNext: _ => { },
                    onError: OnError);

                break;
            }
            return(message);
        }
Example #6
0
 private static void OnNext(DeviceMonitorEvent ev)
 {
     Console.WriteLine($"Event type {ev.GetType()}, (readers: {string.Join(", ", ev.Readers)})");
 }
Example #7
0
 private static string GetEventAsPrintableText(DeviceMonitorEvent ev)
 {
     return($"Event type {ev.GetType().Name}, (readers: {string.Join(", ", ev.Readers)})");
 }