Exemple #1
0
 static SensorManager()
 {
     BuildSensorTypeMap();
     _sensorMgr = new Windows7.Sensors.Internal.SensorManager();
     _eventSink = new SensorManagerEventSink();
     Thread.MemoryBarrier();
     _sensorMgr.SetEventSink(_eventSink);
 }
Exemple #2
0
        private static bool SensorExists(Guid sensorTypeGuid)
        {
            ISensorManager    sensorManager    = null;
            ISensorCollection sensorCollection = null;

            try
            {
                sensorManager = (ISensorManager) new SensorManager();

                var result = sensorManager.GetSensorsByType(
                    sensorTypeGuid,
                    out sensorCollection);
                if (result != S_OK)
                {
                    if (result == E_ELEMENTNOTFOUND)
                    {
                        Debug.WriteLine("The sensor of a specified type is not found.");
                    }
                    return(false);
                }

                sensorCollection.GetCount(out uint count);
                return(0 < count);
            }
            catch (COMException ex)
            {
                switch ((uint)ex.HResult)
                {
                case 0x800704EC:
                    // Message: This program is blocked by group policy. For more information,
                    // contact your system administrator. (Exception from HRESULT: 0x800704EC).
                    // 0x800704EC means 0x04EC -> 1260 -> ERROR_ACCESS_DISABLED_BY_POLICY
                    return(false);

                case 0x80040154:
                    // Message: Class not registered (Exception from HRESULT: 0x80040154
                    // (REGDB_E_CLASSNOTREG)).
                    return(false);
                }
                throw;
            }
            finally
            {
                if (sensorManager is not null)
                {
                    Marshal.FinalReleaseComObject(sensorManager);
                }

                if (sensorCollection is not null)
                {
                    Marshal.FinalReleaseComObject(sensorCollection);
                }
            }
        }
Exemple #3
0
        private async void InitSockerBot()
        {
            var hostNames    = NetworkInformation.GetHostNames();
            var computerName = hostNames.FirstOrDefault(name => name.Type == HostNameType.DomainName)?.DisplayName ?? "???";



            var pin = await LagoVista.Core.PlatformSupport.Services.Storage.GetKVPAsync <string>("PIN");

            if (String.IsNullOrEmpty(pin))
            {
                var rnd = new Random();
                pin = rnd.Next(1000, 9999).ToString();
                await LagoVista.Core.PlatformSupport.Services.Storage.StoreKVP("PIN", pin);
            }

            Debug.WriteLine("========================================");
            Debug.WriteLine("NOTE: NOTE: NOTE: Your PIN is: " + pin);
            Debug.WriteLine("========================================");

            _logger = new Loggers.DebugLogger();

            switch (AnalyticsInfo.VersionInfo.DeviceFamily)
            {
            case "Windows.IoT":
                var ports = (await LagoVista.Core.PlatformSupport.Services.DeviceManager.GetSerialPortsAsync());
                if (ports.Count == 0)
                {
                    throw new Exception("Could not find any serial ports, a serial port is required.");
                }
                else if (ports.Count > 1)
                {
                    throw new Exception("Found more than one serial port, please add additional logic to select the serial port the mBot is connected to.");
                }

                var serialPortChannel = new SerialPortChannel(ports.First().Id, _logger);
                await serialPortChannel.ConnectAsync();

                _tankBot       = new mBlockTankBot(serialPortChannel, _logger, pin);
                _sensorManager = new SensorManager();
                await _sensorManager.InitAsync();

                _sensorManager.Start();

                break;

            case "Windows.Desktop":
                _tankBot = new SimulatedSoccerBot();

                break;
            }

            ConnectionManager.Start(computerName, _tankBot, _logger, _sensorManager, Constants.WebListenerPort, Constants.TCPListenPort, Constants.UPNPListenPort);
        }
Exemple #4
0
 private void StartTCPServer(int port, ITankBot soccerBot, ISensorManager sensorManager)
 {
     try
     {
         Server = new Server(_logger, port, soccerBot, sensorManager);
         Server.Start();
     }
     catch (Exception ex)
     {
         _logger.NotifyUserError("ConnectionManager_StartTCPServer", ex.Message);
     }
 }
Exemple #5
0
        public Server(ITankBotLogger logger, int port, ITankBot soccerBot, ISensorManager sensorManager)
        {
            _port    = port;
            _logger  = logger;
            _tankBot = soccerBot;

            _sensorManager = sensorManager;

            _clients = new ConcurrentDictionary <string, IClient>();

            _watchDog          = new System.Threading.Timer(_watchDog_Tick, null, 0, 2500);
            _sensorUpdateTimer = new System.Threading.Timer(_sensorUpdateTimer_Tick, null, 0, 100);
        }
Exemple #6
0
 public SensorController(IMapper mapper,
                         ISensorManager sensorManager,
                         IIconManager iconManager,
                         ISensorTypeManager sensorTypeManager,
                         UserManager <AppUser> userManager,
                         IHostingEnvironment env)
 {
     _sensorManager     = sensorManager;
     _sensorTypeManager = sensorTypeManager;
     _iconManager       = iconManager;
     _mapper            = mapper;
     _userManager       = userManager;
     _env = env;
 }
Exemple #7
0
    public void Test()
    {
        var mgr = new ISensorManager();

        foreach (var s in mgr.GetSensorsByCategory(Sensors.SENSOR_CATEGORY_ALL).Enumerate())
        {
            Console.WriteLine($"{s.GetFriendlyName()}: {s.GetID()}");
            var vals = s.GetProperties(null);
            foreach (var pv in vals.Enumerate())
            {
                Console.WriteLine($"  {pv.Item2}");
            }
        }
    }
 public ValueController(
     IToastManager messageManager,
     IHistoryManager historyTestManager,
     ISensorManager sensorManager,
     IActionService actionService,
     IInvSensorNotificationManager notificationManager,
     UserManager <AppUser> userManager,
     IEmailSender emailSender)
 {
     _historyManager      = historyTestManager;
     _actionService       = actionService;
     _toastManager        = messageManager;
     _sensorManager       = sensorManager;
     _notificationManager = notificationManager;
     _userManager         = userManager;
     _emailSender         = emailSender;
 }
Exemple #9
0
        protected virtual void Initialize(ISensorManager i_Parent)
        {
            if (i_Parent == null)
            {
                return;
            }

            Samples    = new SampleList(this);
            TimeStamps = new SampleList(this);
            Alarm      = new SensorAlarm(this);

            InitializeParent(i_Parent);
            InitializeCalibration();

            Samples.OnSampleAdded    += ParentSensorManager.SampleAdded;
            TimeStamps.OnSampleAdded += ParentSensorManager.TimeStampAdded;
        }
Exemple #10
0
        public SensorTestPage() : base()
        {
            latestAccelerometerData = null;
            latestMagneticFieldData = null;

            ISensorManager sensorManager = DependencyService.Get <ISensorManager>();

            _ConnectionManager = DependencyService.Get <IConnectionManager>();
            ISensor gyroSensor = sensorManager[SensorType.Gyroscope];

            gyroSensor.Activate();
            gyroSensor.OnSensorDataUpdated += _SensorDataHandler;
            ISensor accelerometerSensor = sensorManager[SensorType.Accelerometer];

            accelerometerSensor.Activate();
            accelerometerSensor.OnSensorDataUpdated += _SensorDataHandler;
            ISensor magneticField = sensorManager[SensorType.MagneticField];

            magneticField.Activate();
            magneticField.OnSensorDataUpdated += _SensorDataHandler;
            ISensor rotationVectorSensor = sensorManager[SensorType.RotationVector];

            rotationVectorSensor.Activate();
            rotationVectorSensor.OnSensorDataUpdated += _SensorDataHandler;
            IVelocitySensor velocitySensor = sensorManager[SensorType.Velocity] as IVelocitySensor;

            velocitySensor.Activate();
            velocitySensor.OnSensorDataUpdated += _SensorDataHandler;
            Button resetButton = new Button();

            resetButton.Text     = "RESET";
            resetButton.Clicked += (object sender, EventArgs e) => { velocitySensor.Reset(); };

            ControllerContentView = new StackLayout
            {
                Children =
                {
                    new Label {
                        Text = "Sensor Testttt"
                    },
                    resetButton
                }
            };
        }
        public NextIdeaController()
        {
            ISensorManager sensorManager = DependencyService.Get <ISensorManager>();

            _ConnectionManager   = DependencyService.Get <IConnectionManager>();
            rotationVectorSensor = sensorManager[SensorType.RotationVector];
            rotationVectorSensor.Activate();
            rotationVectorSensor.OnSensorDataUpdated += _SensorDataHandler;


            Content = new StackLayout {
                Children =
                {
                    new Label {
                        Text = "NextIdea DEBUG Controller"
                    }
                }
            };
        }
Exemple #12
0
        public void Start(String tankBotName, ITankBot tankBot, ITankBotLogger logger, ISensorManager sensorManager, int webServerPort, int tcpListenerPort, int uPnPListenerPort)
        {
            _logger           = logger;
            _tankBotName      = tankBotName;
            _tankBot          = tankBot;
            _sensorManager    = sensorManager;
            _webServerPort    = webServerPort;
            _tcpListenerPort  = tcpListenerPort;
            _uPnPListenerPort = uPnPListenerPort;

            var networkInfo = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();

            App.TheApp.HasInternetConnection = networkInfo.GetNetworkConnectivityLevel() == Windows.Networking.Connectivity.NetworkConnectivityLevel.InternetAccess;

            if (App.TheApp.HasInternetConnection)
            {
                MakeDiscoverable(tankBotName);
                StartWebServer(_webServerPort, _tankBotName);
                StartTCPServer(_tcpListenerPort, _tankBot, _sensorManager);
            }
        }
 public SensorControlController(ISensorControlManager sensorControlManager, ISensorManager sensorManager, IMapper mapper)
 {
     _sensorControlManager = sensorControlManager;
     _sensorManager        = sensorManager;
     _mapper = mapper;
 }
Exemple #14
0
 public Voltage0_10V(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #15
0
 public void InitializeParent(ISensorManager i_Parent)
 {
     ParentSensorManager = i_Parent;
 }
Exemple #16
0
 public InternalNTC(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #17
0
 public GenericSensor(ISensorManager i_Parent)
 {
     Initialize(i_Parent);
 }
Exemple #18
0
 public SensorAlarmManager(ISensorManager i_Parent)
 {
     this.ParentSensorManager = i_Parent;
 }
Exemple #19
0
 public StreamHub(ISensorManager sensorManager)
 {
     _sensorManager = sensorManager;
 }
Exemple #20
0
 public GenericNTC_V1(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #21
0
 public DigitalTemperature(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
 public GenericTemperatureSensor(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #23
0
 public TwoPointUserDefinedSensor(ISensorManager parent)
     : base(parent)
 {
 }
Exemple #24
0
 public Humidity(ISensorManager i_Parent)
     : base(i_Parent)
 {
     Calibration = new Base.Sensors.Calibrations.TwoPoint();
 }
Exemple #25
0
 public WeatherSensorsController(ILogger <WeatherSensorsController> logger, ISensorManager sensorManager, IWeatherDataManager weatherDataManager)
 {
     this.logger             = logger;
     this.sensorManager      = sensorManager;
     this.weatherDataManager = weatherDataManager;
 }
Exemple #26
0
 public PredefinedSensor(ISensorManager parent)
     : base(parent)
 {
 }
Exemple #27
0
 public DewPoint(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #28
0
 public Current4_20mA(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }
Exemple #29
0
 public Humidity(ISensorManager i_Parent)
     : base(i_Parent)
 {
 }