Beispiel #1
0
 private void CreateFakeHololensStateMsg()
 {
     hololensStateMsg = new HololensStateMsg(hololens_state.STATE_VISUALIZING, visualization_state.VISUALIZATION_RUN, true);
 }
Beispiel #2
0
 public void SetHololensStateMsgFromROS(HololensStateMsg msg)
 {
     hololensStateMsg     = msg;
     hololensLastStateMsg = msg;
 }
Beispiel #3
0
    // Update is called once per frame
    void Update()
    {
        if (SystemStarter.Instance.calibrated)
        {
            if (interfaceStateMsg != null)
            {
                if (interfaceStateMsg.GetSystemState() == InterfaceStateMsg.SystemState.STATE_VISUALIZE)
                {
                    if (hololensStateMsg != null)
                    {
                        if (hololensStateMsg.GetHololensState() == hololens_state.STATE_VISUALIZING)
                        {
                            //sets current visualization state for program manager
                            ProgramManager.Instance.SetVisualizationState(hololensStateMsg.GetVisualizationState());
                            switch (hololensStateMsg.GetVisualizationState())
                            {
                            case visualization_state.VISUALIZATION_DISABLED:
                                Debug.Log("VISUALIZATION_DISABLED");
                                //when 'back to blocks' pressed
                                ProgramManager.Instance.ClearProgram();
                                hololensStateMsg      = null;
                                visualization_running = false;
                                break;

                            case visualization_state.VISUALIZATION_RUN:
                                if (!visualization_running)
                                {
                                    Debug.Log("VISUALIZATION_RUN");
                                    ProgramManager.Instance.StartVisualization(interfaceStateMsg, hololensStateMsg.GetVisualizeWholeProgram());
                                    //call for service to load current program.. response comes in ROSCommunicationManager's method ServiceCallBack()
                                    ROSCommunicationManager.Instance.ros.CallService("/art/db/program/get", "{\"id\": " + interfaceStateMsg.GetProgramID() + "}");
                                    visualization_running = true;
                                    visualization_stopped = false;
                                    hololensStateMsg      = null;
                                }
                                break;

                            case visualization_state.VISUALIZATION_PAUSE:
                                if (visualization_running)
                                {
                                    Debug.Log("VISUALIZATION_PAUSE");
                                    Time.timeScale        = 0;
                                    visualization_running = false;
                                    hololensStateMsg      = null;
                                }
                                break;

                            case visualization_state.VISUALIZATION_RESUME:
                                if (!visualization_running)
                                {
                                    Debug.Log("VISUALIZATION_RESUME");
                                    Time.timeScale        = 1;
                                    visualization_running = true;
                                    hololensStateMsg      = null;
                                }
                                break;

                            case visualization_state.VISUALIZATION_STOP:
                                if (!visualization_stopped)
                                {
                                    Debug.Log("VISUALIZATION_STOP");
                                    Time.timeScale = 1;
                                    ProgramManager.Instance.StopVisualization();
                                    visualization_running = false;
                                    visualization_stopped = true;
                                    hololensStateMsg      = null;
                                }
                                break;

                            case visualization_state.VISUALIZATION_REPLAY:
                                if (!visualization_running)
                                {
                                    Debug.Log("VISUALIZATION_REPLAY");
                                    ProgramManager.Instance.ReplayVisualization();
                                    visualization_running = true;
                                    visualization_stopped = false;
                                    hololensStateMsg      = null;
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }
    }
Beispiel #4
0
    public new static void CallBack(ROSBridgeMsg msg)
    {
        HololensStateMsg Hmsg = (HololensStateMsg)msg;

        VisualizationManager.Instance.SetHololensStateMsgFromROS(Hmsg);
    }