Ejemplo n.º 1
0
        public static string ToString(this CONTROLLER_STATE state)
        {
            switch (state)
            {
            case CONTROLLER_STATE.BUSY:
                return("BUSY");

            case CONTROLLER_STATE.END:
                return("END");

            case CONTROLLER_STATE.EXECUTED:
                return("EXECUTED");

            case CONTROLLER_STATE.INTERRUPT:
                return("INTERRUPT");

            case CONTROLLER_STATE.STARTING:
                return("STARTING");

            case CONTROLLER_STATE.WAITING:
                return("WAITING");

            case CONTROLLER_STATE.READY:
                return("READY");

            default:
                return("NOT SUPPORTED");
            }
        }
 public virtual bool PickTask(COMMAND cmnd)
 {
     //if (currient.TYPE != 0)
     //{
     //    if (currient.COMPLITE)
     //    {
     //        currient = tasks[0];
     //        RemoveTask();
     //        return true;
     //    }
     //    else if (currient.DEFERRED)
     //    {
     //        currient = tasks[1];
     //        return true;
     //    }
     //}
     //else
     //{
     //    currient = tasks[0];
     //    RemoveTask();
     //    return true;
     //}
     //return false;
     currient = cmnd;
     state    = CONTROLLER_STATE.BUSY;
     return(true);
 }
 public virtual void SetTask(COMMAND task)
 {
     currient = task;
     state    = CONTROLLER_STATE.BUSY;
     //Console.WriteLine("Set task in currient for " + Name);
     CoreExtensions.ConsoleLog(Thread.CurrentThread.Name, "Set task in currient.");
 }
        public virtual void OnState()
        {
            switch (state)
            {
            case CONTROLLER_STATE.READY:
                //if (DeadCount == 5) state = CONTROLLER_STATE.IDLE;
                //else DeadCount--;
                break;

            case CONTROLLER_STATE.IDLE:
                if (DeadCount == 0)
                {
                    state = CONTROLLER_STATE.INTERRUPT;
                }
                else
                {
                    DeadCount--;
                }
                break;

            case CONTROLLER_STATE.STARTING:
                Console.WriteLine("<" + Name + "> STARTING");
                //if (PickTask())
                //{
                //    Console.WriteLine("Pick on " + Name + "task: " + currient.TYPE.ToString());
                //    _state = CONTROLLER_STATE.BUSY;
                //}
                //else if (!currient.COMPLITE && (currient.TYPE == COMMAND_TYPE.NON_CACHE || currient.TYPE == COMMAND_TYPE.NON_CACHE_CTRL))
                //    _state = CONTROLLER_STATE.BUSY;
                //else Console.WriteLine("Currient task on " + Name + ": " + currient.TYPE.ToString());
                break;

            case CONTROLLER_STATE.WAITING:
                Wait();
                state = CONTROLLER_STATE.READY;
                break;

            case CONTROLLER_STATE.BUSY:
                Execute();
                //Remove();
                //if (CommandList.Count == 0)
                //{
                //    Console.WriteLine(Name + " go break.");
                //    state = CONTROLLER_STATE.END;
                //}
                break;

            case CONTROLLER_STATE.INTERRUPT:
                state = CONTROLLER_STATE.WAITING;
                break;

            case CONTROLLER_STATE.END:
                CoreExtensions.ConsoleLog(Thread.CurrentThread.Name, "state.END.");
                break;
            }
            OnStatusChange();
        }
Ejemplo n.º 5
0
        static void OnStatusChanged(object sender, CONTROLLER_STATE state)
        {
            MPController mp;

            if (sender is MPController && ModulesIsReady)
            {
                mp = sender as MPController;
                CoreExtensions.ConsoleLog(Thread.CurrentThread.Name, mp.Name + " on changed state: " + state);
                //if (CommandList.Count == 0)
                //{
                //    mp.state = CONTROLLER_STATE.END;
                //}
                if (state == CONTROLLER_STATE.READY && CommandList.Count != 0)
                {
                    mp.SetTask(CommandList.Dequeue());
                }
            }
            else
            {
                Console.WriteLine("wrong params");
            }
        }
Ejemplo n.º 6
0
    /// <summary>
    /// Callback for controller state changes
    /// </summary>
    /// <param name="obj">New Controller state</param>
    void ControllerCallbacks_OnControllerStateChanged(CONTROLLER_STATE obj)
    {
        switch (obj)
        {
        case CONTROLLER_STATE.DEVICE_NOT_FOUND:
            TroubleShootScreen.SetActive(false);
            PairRequest.SetActive(false);
            LoadingCircle.SetActive(true);
            InstructionsText.text = "Connecting.. \n\nPlease Ensure The Blue Light Is Blinking On The Connector \n\nPlease Press The Controller Button Once Again";
            StartCoroutine(BlinkLED());
            Button2.SetActive(true);
            Button.SetActive(false);
            break;

        case CONTROLLER_STATE.FOUND_CONTROLLER:
            TroubleShootScreen.SetActive(false);
            PairRequest.SetActive(false);
            LoadingCircle.SetActive(true);
            Blinking = false;
            Button2.SetActive(false);
            Button1.SetActive(false);
            Button.SetActive(false);
            InstructionsText.text = "Connecting.. \n\nController Found!";
            break;

        case CONTROLLER_STATE.RECONNECTING:
            TroubleShootScreen.SetActive(false);
            PairRequest.SetActive(false);
            LoadingCircle.SetActive(true);
            StartCoroutine(BlinkLED());
            Button2.SetActive(true);
            Button.SetActive(false);
            InstructionsText.text = "Connecting.. \n\nPlease Ensure The Blue Light Is Blinking On The Connector \n\nPlease Press The Controller Button Once Again";
            break;

        case CONTROLLER_STATE.TROUBLESHOOT:
            TroubleShootScreen.SetActive(true);
            PairRequest.SetActive(false);
            LoadingCircle.SetActive(false);
            InstructionsText.text = "";
            StartCoroutine(TroubleShootBlink());
            Blinking = false;
            Button2.SetActive(true);
            Button1.SetActive(true);
            Button.SetActive(false);
            break;

        case CONTROLLER_STATE.BLE_INACTIVE:
            Blinking = false;
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                InstructionsText.text = "Please ensure Bluetooth is enabled in the Control Center \n\nPlease Press The Controller Button Once Again";
            }
            else if (Application.platform == RuntimePlatform.Android)
            {
                InstructionsText.text = "Please ensure Bluetooth is enabled \n\nPress Connect Once Again";
            }
            else
            {
                InstructionsText.text = "Please ensure Bluetooth is enabled \n\nPress Connect Once Again";
            }

            if (Application.platform != RuntimePlatform.IPhonePlayer)
            {
                Button.SetActive(true);
                ButtonText.text = "Connect";
            }

            PairRequest.SetActive(false);
            Button2.SetActive(true);
            Button1.SetActive(false);
            LoadingCircle.SetActive(false);
            break;

        case CONTROLLER_STATE.PAIR_REQUEST:
            TroubleShootScreen.SetActive(false);
            PairRequest.SetActive(true);
            LoadingCircle.SetActive(true);
            StartCoroutine(BlinkLED());
            Button2.SetActive(true);
            Button.SetActive(false);
            InstructionsText.text = "";
            break;

        case CONTROLLER_STATE.SUBSCRIBED:
            Controller.sprite = Controller_HL;
            Blinking          = false;
            TSBlinking        = false;
            TroubleShootScreen.SetActive(false);
            PairRequest.SetActive(false);
            LoadingCircle.SetActive(false);
            Button2.SetActive(false);
            Button1.SetActive(false);
            InstructionsText.text = "Controller Connected! \n\nPress Ready To Begin";
            ButtonText.text       = "Ready";
            Button.SetActive(true);
            break;
        }
    }
 public void OnExecuted()
 {
     ExecuteEvent?.Invoke(this, currient);
     state = CONTROLLER_STATE.READY;
 }
Ejemplo n.º 8
0
 void ControllerStateChange(CONTROLLER_STATE state)
 {
     Debug.LogError("new state " + state);
 }