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(); }
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"); } }
/// <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; }
void ControllerStateChange(CONTROLLER_STATE state) { Debug.LogError("new state " + state); }