public ErrorCode GetState(out int state) { int errCode = ReceiveCAN(COND_STATUS_1 | (int)_baseArbId); PigeonState retval = GetState(errCode, _cache); state = (int)retval; return(SetLastError((ErrorCode)errCode)); }
public PigeonState GetState() { int errCode = ReceiveCAN(COND_STATUS_1 | (int)_baseArbId); PigeonState retval = GetState(errCode, _cache); SetLastError((ErrorCode)errCode); return(retval); }
public PigeonState GetState() { int errCode = ReceiveCAN(COND_STATUS_1); PigeonState retval = GetState(errCode, _cache); HandleError(errCode); return(retval); }
public PigeonState GetState(int errCode, ulong statusFrame) { CheckFirmVers(); PigeonState retval = PigeonState.NoComm; if (errCode != 0) { /* bad frame */ } else { /* good frame */ byte b2 = (byte)(statusFrame >> 0x10); MotionDriverState mds = (MotionDriverState)(b2 & 0x1f); switch (mds) { case MotionDriverState.Error: case MotionDriverState.Init0: case MotionDriverState.WaitForPowerOff: case MotionDriverState.ConfigAg: case MotionDriverState.SelfTestAg: case MotionDriverState.StartDMP: case MotionDriverState.ConfigCompass_0: case MotionDriverState.ConfigCompass_1: case MotionDriverState.ConfigCompass_2: case MotionDriverState.ConfigCompass_3: case MotionDriverState.ConfigCompass_4: case MotionDriverState.ConfigCompass_5: case MotionDriverState.SelfTestCompass: case MotionDriverState.WaitForGyroStable: case MotionDriverState.AdditionalAccelAdjust: retval = PigeonState.Initializing; break; case MotionDriverState.Idle: retval = PigeonState.Ready; break; case MotionDriverState.Calibration: case MotionDriverState.LedInstrum: retval = PigeonState.UserCalibration; break; default: retval = PigeonState.Initializing; break; } } return(retval); }
//-------------------------------- ToString functions -----------------------// /* static */ public string ToString(PigeonState state) { string retval = "Unknown"; switch (state) { case PigeonState.Initializing: return("Initializing"); case PigeonState.Ready: return("Ready"); case PigeonState.UserCalibration: return("UserCalibration"); case PigeonState.NoComm: return("NoComm"); } return(retval); }