Exemple #1
0
        // ustawianie nastepnego punktu kalibracji
        public void SetNextCalibrationPoint(double x, double y, double z = 0)
        {
            if (!calibrated)
            {
                // tu wypada spr sensownosc punktu
                calibrationPoints[nextPointIndex] = new Point3D(x, y, z);
                nextPointIndex++;

                mainEngine.AddTextToLog("Punkt kalibracji: " + x.ToString() + " " + y.ToString() + " " + z.ToString());
            }
            if (nextPointIndex == 6) // tu jeszcze inne rzeczy trzeba sprawdzic (np. sensownosc punktow)
            {
                if (mainEngine.GetAppState() == ApplicationState.Calibration)
                {
                    computeCalibrationCoeffs();
                    mainEngine.SetAppState(ApplicationState.Calibrated);
                    calibrated = true;
                    mainEngine.AddTextToLog("Kalibracja zakonczona!");
                }
                else
                {
                    // cos poszlo zle, skoro apka nie byla w stanie kalibracji a kalibracja sie odbywala...
                }
            }
        }
Exemple #2
0
 // dodawanie obiektu 'na plansze' wg wspolrzednych Kinecta
 public void AddUsedObject(string name, double kx, double ky, double kz)
 {
     if (possibleObjects.ContainsKey(name))
     {
         SingleObject obj = possibleObjects[name];
         if (!ExistsUsedObject(name))
         {
             obj.KinectMoveTo(kx, ky, kz);
             usedObjects.Add(name, obj);
             mainEngine.AddTextToLog("ObjectManager: dodano na plansze obiekt o nazwie " + name);
         }
         else
         {
             mainEngine.AddTextToLog("ObjectManager: na planszy juz istnieje obiekt o nazwie " + name);
         }
     }
     else
     {
         mainEngine.AddTextToLog("ObjectManager: nie obsluguje obiektu o nazwie " + name
                                 + " na pozycje (" + kx
                                 + "," + ky + "," + kz + ")");
     }
 }
        public void Start()
        {
            recognizerInfo = GetKinectRecognizer();

            if (recognizerInfo != null)
            {
                this.speechEngine = new SpeechRecognitionEngine(recognizerInfo.Id);

                // komendy do kalibracji
                Choices calibration = new Choices();
                calibration.Add(new SemanticResultValue("calibrate", "CALIB_CALIBRATE"));
                calibration.Add(new SemanticResultValue("mark", "CALIB_MARK"));

                GrammarBuilder gbCalibration = new GrammarBuilder {
                    Culture = recognizerInfo.Culture
                };
                gbCalibration.Append(calibration);
                Grammar gCalibration = new Grammar(gbCalibration);

                // do obslugi bez wykorzystywania nazw obiektow
                Choices objNoNames = new Choices();
                objNoNames.Add(new SemanticResultValue("move", "ONN_MOVE"));
                objNoNames.Add(new SemanticResultValue("there", "ONN_THERE"));
                objNoNames.Add(new SemanticResultValue("remove", "ONN_REMOVE"));

                GrammarBuilder gbONN = new GrammarBuilder {
                    Culture = recognizerInfo.Culture
                };
                gbONN.Append(objNoNames);
                Grammar gONN = new Grammar(gbONN);

                // ladowanie gramatyk
                speechEngine.LoadGrammar(gCalibration);
                speechEngine.LoadGrammar(gONN);

                speechEngine.SpeechRecognized          += speechEngine_SpeechRecognized;
                speechEngine.SpeechRecognitionRejected += speechEngine_SpeechRecognitionRejected;

                speechEngine.SetInputToAudioStream(
                    mainEngine.GetKinectSensor().AudioSource.Start(), new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
                speechEngine.RecognizeAsync(RecognizeMode.Multiple);
            }
            else
            {
                // cos zle z Kinectem
                mainEngine.AddTextToLog("SpeechRecognizer: " + "recognizerInfo = null");
            }
            mainEngine.AddTextToLog("SpeechRec: " + "started");
        }
Exemple #4
0
        protected override void OnMessage(MessageEventArgs e)
        {
            var msg = "";

            JObject myJson = JObject.Parse(e.Data);

            System.Diagnostics.Debug.WriteLine("onmes: " + myJson.ToString());

            if (myJson["type"].ToString().Contains("configure:"))
            {
                if (myJson["type"].ToString().Equals("configure:object_types"))
                {
                    foreach (JObject obj in myJson["message"])
                    {
                        //engine.AddTextToLog(obj["name"] + " " + obj["width"] + " " + obj["height"]);
                        engine.GetObjectManager().AddObjectType(obj["name"].ToString(), int.Parse(obj["width"].ToString()), int.Parse(obj["height"].ToString()));
                    }
                }
                else if (myJson["type"].ToString().Equals("configure:objects"))
                {
                    foreach (JObject obj in myJson["message"])
                    {
                        //engine.AddTextToLog(obj["name"] + " " + obj["width"] + " " + obj["height"]);
                        string type = obj["type"].ToString();
                        if (engine.GetObjectManager().ExistsObjectType(type))
                        {
                            ObjectType objType = engine.GetObjectManager().GetObjectTypes()[type];
                            engine.GetObjectManager().AddPossibleObject(new SingleObject(type, obj["name"].ToString(), objType.GetWidth(), objType.GetHeight()));
                        }
                        else
                        {
                            // error: nie ma takiego typu
                        }
                    }
                }
                else if (myJson["type"].ToString().Equals("configure:sizing"))
                {
                    int height = int.Parse(myJson["message"]["height"].ToString());
                    int width  = int.Parse(myJson["message"]["width"].ToString());
                    int gutter = int.Parse(myJson["message"]["gutter"].ToString());

                    engine.GetCalibrator().SetScreenHeight(height);
                    engine.GetCalibrator().SetScreenWidth(width);
                }

                myJson["type"] = myJson["type"].ToString().Replace("configure:", "reconfigured:");
            }
            else if (myJson["type"].ToString().Equals("calibration:listen_to_start"))
            {
                /*send(SpeechRecognizer.Orders.CALIBRATE); //tylko dla mockowania, do usuniecia jak bedzie kinect, on wysle sygnal po rozpoznaniu slowa
                 * while (count < markers.Length)
                 * {
                 *  send(SpeechRecognizer.Orders.MARK);  //tylko dla mockowania, do usuniecia jak bedzie kinect, on wysle sygnal po rozpoznaniu slowa
                 * }
                 *
                 * send(SpeechRecognizer.Orders.DONE);
                 * return;*/
                engine.GetSpeechRecognizer().CreateAndLoadGrammarWithObjectsNames(engine.GetObjectManager().GetPossibleObjectsNames());
            }
            else if (myJson["type"].ToString().Equals("work:init"))
            {
                send(SpeechRecognizer.Orders.WORK);
                if (engine.SetAppStateToWorking())
                {
                    engine.AddTextToLog("Aplikacja w pelni gotowa do dzialania!");
                }
                else
                {
                    engine.AddTextToLog("Wystapil blad przy aktywacji aplikacji! Zresetuj program!");
                }
                return;
            }
            else if (myJson["type"].ToString().Equals("object:set_active"))
            {
                engine.GetObjectManager().SelectObject(myJson["message"]["name"].ToString());
                return;
            }
            if (_name.IsEmpty())
            {
                msg = myJson.ToString();
            }
            else
            {
                msg = String.Format("{0}: {1}", _name, myJson.ToString());
            }

            if (engine != null)
            {
                //engine.AddTextToLog(msg);
            }

            Broadcast(msg);
            System.Diagnostics.Debug.WriteLine("aaa");
        }