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);
        }
示例#3
0
        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);
        }