コード例 #1
0
        private void loadSTTsButton_Click(object sender, EventArgs e)
        {
            FSM_STT mySTTCD = new FSM_STT("CDPLAYER", "TestFSM.ObjectModel",
                                          "Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");

            STT_State beginState   = mySTTCD.addState("Begin");
            STT_State playState    = mySTTCD.addState("Playing");
            STT_State pauseState   = mySTTCD.addState("Paused");
            STT_State stoppedState = mySTTCD.addState("Stopped");

            // Transitions

            beginState.addTransition("startPlaying", playState);
            beginState.addTransition("stop", stoppedState);
            playState.addTransition("pause", pauseState);
            playState.addTransition("stop", stoppedState);
            pauseState.addTransition("startPlaying", playState);
            pauseState.addTransition("stop", stoppedState);
            stoppedState.addTransition("startPlaying", playState);
            mySTTCD.setInitialState(beginState);

            Debug.WriteLine("FSMSTT create complete " + mySTTCD.getRefClassName());

            // ACTOR

            FSM_STT mySTTACTOR = new FSM_STT("ACTOR", "TestFSM.ObjectModel",
                                             "Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");

            STT_State inWingsState = mySTTACTOR.addState("InWings");
            STT_State onStageState = mySTTACTOR.addState("OnStage");
            STT_State driedState   = mySTTACTOR.addState("Dried");
            STT_State bowingState  = mySTTACTOR.addState("Bowing");
            STT_State endedState   = mySTTACTOR.addState("Ended");

            mySTTACTOR.setInitialState(inWingsState);
            mySTTACTOR.setDeleteWhenEndStateReached();
            mySTTACTOR.setTaskModel(taskAllocation.taskPerInstance);

            // Transitions

            inWingsState.addTransition("receiveCue", onStageState);
            onStageState.addTransition("endOfScene", inWingsState);
            onStageState.addTransition("forgetLine", driedState);
            driedState.addTransition("getPrompt", onStageState);
            driedState.addTransition("endOfScene", inWingsState);
            inWingsState.addTransition("endOfPLay", bowingState);
            bowingState.addTransition("applauseStopped", endedState);
            bowingState.addTransition("applauseStopped", endedState);

            Debug.WriteLine("Form1 - FSMSTT create complete " + mySTTACTOR.getRefClassName());

            this.initialiseSTTsListBox(); // list of STTs loaded in memory
        }
    void Start()
    {
        m_headers = new Dictionary <string, string>();
        m_headers["Authorization"] = string.Format("Bearer {0}", MY_TOKEN);
        m_headers["Content-Type"]  = "application/json";
        m_sttState = STT_State.Disconnected;


        UIBinding.OnModelName(MODEL_NAME);

        if (AutoConnect)
        {
            ConnectToStreamingServer();
        }
    }
    public void StopStreaming()
    {
        if (m_ws == null)
        {
            Debug.Log("Stream not connected.");
            return;
        }

        if (m_sttState == STT_State.Stopped)
        {
            return;
        }

        var stopStreaming = new StopStreamingPayload();
        var msg           = JsonUtility.ToJson(stopStreaming);

        m_ws.Send(msg);

        m_sttState = STT_State.Stopped;

        UIBinding.OnStreamingStopped();
    }
    public void ConnectToStreamingServer()
    {
        if (MY_TOKEN == string.Empty)
        {
            Debug.LogError("Token cannot be empty when trying to connect to the server.");
            return;
        }

        var wsUrl = string.Format(
            "wss://{0}/model/{1}/predict-rt?token={2}&interim=true&user_id={3}",
            API_BASE,
            MODEL_ID,
            MY_TOKEN,
            "username");

        m_ws = new WebSocket(wsUrl);

        m_ws.OnOpen += (sender, e) =>
        {
            Debug.Log("WebSocket connected");
            m_sttState = STT_State.Stopped;
            UIBinding.OnWSConnected();
        };

        m_ws.OnMessage += (sender, e) => {
            var message = JsonUtility.FromJson <ServerToClientMessage>(e.Data);
            switch (message.type)
            {
            case "ready":
            {
                var streamingStatus = JsonUtility.FromJson <StreamingServerStatus>(e.Data);
                UIBinding.OnConnectionResult(streamingStatus);
            }
            break;

            case "failure":
            {
                var streamingStatus = JsonUtility.FromJson <StreamingServerStatus>(e.Data);
                UIBinding.OnConnectionResult(streamingStatus);
                Debug.LogErrorFormat("Server ({0}) not ready.", streamingStatus.id);
            }
            break;

            case "intent":
            {
                var rtPrediction = JsonUtility.FromJson <RealTimePredictionResult>(e.Data);
                UIBinding.OnReceivedRealtimeResult(rtPrediction);
            }
            break;
            }
        };

        m_ws.OnError += (sender, e) =>
        {
            Debug.LogErrorFormat("WebSocket Error {0}", e.Message);
            UIBinding.OnWSError(e.Message);
        };

        m_ws.OnClose += (sender, e) =>
        {
            Debug.Log("WebSocket Closed");
            UIBinding.OnWSDisconnected();
        };

        m_ws.Connect();
    }
コード例 #5
0
 private void WriteDifferentOnEntryMethodCode(FSM_STT theSTT, StringBuilder retVal, STT_State state)
 {
     retVal.Append("      // Method for Entry XXXXXX\n\n");
     retVal.Append("      public void ").Append(state.getStateName());
     retVal.Append("__onEntry(FSM_Event evt)\n");
     retVal.Append("      {\n");
     retVal.Append("         Debug.WriteLine( \"");
     retVal.Append(theSTT.getRefClassName()).Append(".").Append(state.getStateName());
     retVal.Append("__onEntry() XXXXXXXXXExecuting in response to event \" + evt.getEventName());\n");
     if (theSTT.getDeleteWhenEndStateReached() && state.getIsFinalState())
     {
         retVal.Append("         //  XXXXXXXXXXXdelete references as this is an end state and the STT demands it\n");
         retVal.Append("         this.derefenceFSM();\n");
     }
     retVal.Append("      }\n\n");
 }