示例#1
0
        public void AddAnalyzer(ISkeletonAnalyzer analyzer, ObservableDictionary <string, string> parameters)
        {
            AnalyzerWrapper executor = new AnalyzerWrapper(analyzer, parameters);

            executor.Run();
            _analyzerWrappers.Add(executor);
            _analyzers.Add(analyzer, parameters);
        }
示例#2
0
 public string GetAnalyzerModuleName(ISkeletonAnalyzer analyzer)
 {
     foreach (string moduleName in _skeletonAnalyzers.Keys)
     {
         if (_skeletonAnalyzers[moduleName].GetType().Equals(analyzer.GetType()))
         {
             return(moduleName.ToLower());
         }
     }
     throw new ApplicationException("Module is not in the loaded modules. Something went seriously wrong, please, contact the support department!");
 }
示例#3
0
        private void ConfigureDevices(XPathNavigator navigator, Dictionary <string, IDevice> devices)
        {
            XPathNodeIterator deviceIt = navigator.Select("/Configuration/devices/device[@name]");

            while (deviceIt.MoveNext())
            {
                // parsing of attributes
                string deviceName = deviceIt.Current.GetAttribute("name", "");
                ObservableDictionary <string, string> parametersGroup = ParseParams(deviceIt.Current);

                if (!devices.ContainsKey(deviceName))
                {
                    string strDevices = "";
                    foreach (string str in devices.Keys)
                    {
                        strDevices += (str == "" ? "" : ",") + str;
                    }
                    UIThread.ShowMessage("", "Device " + deviceName + " was not found on this computer!\n " +
                                         devices.Count + " devices installed. \n(" + strDevices + ")");
                    continue;
                }

                IDevice d = devices[deviceName];
                if (!d.IsLoaded)
                {
                    try
                    {
                        d.LoadDriver(parametersGroup);
                    }
                    catch (InitializationFailedException ex)
                    {
                        //   MessageBox.Show(ex.Message, "ConfigureDevices: Unable to load driver", MessageBoxButton.OK, MessageBoxImage.Error);
                        continue;
                    }
                    catch (Exception ex)
                    {
                        UIThread.ShowMessage("", ex.Message);
                        continue;
                    }
                }
                _deviceParameters.Add(deviceName, parametersGroup);

                if (Configuration.RegisteredInputs.Count == 0)
                {
                    continue;
                }

                ObservableDictionary <string, ObservableDictionary <string, string> > parameters = ParseAnalyzersParams(deviceIt.Current);
                foreach (string analyzerFile in parameters.Keys)
                {
                    if (d.GamingInput is ISkeletonInput)
                    {
                        ISkeletonAnalyzer analyzer = InputAnalyzerManager.GetSkeletonAnalyzer(analyzerFile);
                        if (analyzer == null)
                        {
                            Console.Error.WriteLine("ERROR: Analyzer " + analyzerFile + " could not be loaded!!!");
                        }
                        else
                        {
                            _inputAnalyzers.Add(new InputAnalyzer(parameters[analyzerFile], d, analyzer));
                        }
                    }
                    else if (d.GamingInput is IAccelerometerInput)
                    {
                        _inputAnalyzers.Add(new InputAnalyzer(parameters[analyzerFile], d, InputAnalyzerManager.GetAccelerometerAnalyzer(analyzerFile)));
                    }
                    else if (d.GamingInput is IBalanceBoardInput)
                    {
                        _inputAnalyzers.Add(new InputAnalyzer(parameters[analyzerFile], d, InputAnalyzerManager.GetBalanceBoardAnalyzer(analyzerFile)));
                    }
                    else if (d.GamingInput is IEmgSensorInput)
                    {
                        _inputAnalyzers.Add(new InputAnalyzer(parameters[analyzerFile], d, InputAnalyzerManager.GetEmgSignalAnalyzer(analyzerFile)));
                    }
                }
            }
        }
示例#4
0
 public static string GetAnalyzerModuleName(ISkeletonAnalyzer analyzer)
 {
     return(Instance.GetAnalyzerModuleName(analyzer));
 }
示例#5
0
 public string GetAnalyzerModuleName(ISkeletonAnalyzer analyzer)
 {
     _skeletonAnalysisModules.UpdateModules(ANALYZERS_PATH);
     return(_skeletonAnalysisModules.GetModuleName(analyzer));
 }