private enuHWStatus LogError(long _lngErrCode) { if (_lngErrCode > 4099) { _lngErrCode -= 4100; } if (_lngErrCode != 0) { mPosStatus = enuPositionerStatus.Error; if (ErrorList.ContainsKey(_lngErrCode)) { log.Add(ErrorList[_lngErrCode], "ERROR"); } return(enuHWStatus.Error); } else { mPosStatus = enuPositionerStatus.Ready; return(enuHWStatus.Ready); } // TCHAR InputString[255]; // TCHAR TranslatedString[255]; // // Konvertiere ASCII-Zeichenkette nach UNICODE // wcscpy_s(InputString, CString(pcData, lMaxLen)); // LS.TranslateErrMsg(InputString, TranslatedString, 255); //… // Verarbeite TranslatedString }
public enuPositionerStatus ValidateAxisSpeed(enuAxes _axis, ref double _speed) { if (mPosStatus == enuPositionerStatus.Ready) { switch (_axis) { case enuAxes.XAxis: if (_speed > Settings.X.MaxSpeed) { _speed = Settings.X.MaxSpeed; } if (_speed <= 0) { _speed = Settings.X.FailSafeSpeed; } break; case enuAxes.YAxis: if (_speed > Settings.Y.MaxSpeed) { _speed = Settings.Y.MaxSpeed; } if (_speed <= 0) { _speed = Settings.Y.FailSafeSpeed; } break; case enuAxes.ZAxis: if (_speed > Settings.Z.MaxSpeed) { _speed = Settings.Z.MaxSpeed; } if (_speed <= 0) { _speed = Settings.Z.FailSafeSpeed; } break; case enuAxes.AAxis: if (_speed > Settings.A.MaxSpeed) { _speed = Settings.A.MaxSpeed; } if (_speed <= 0) { _speed = Settings.A.FailSafeSpeed; } break; default: mPosStatus = enuPositionerStatus.Error; break; } } return(mPosStatus); }
public enuPositionerStatus GetAxisSpeed(enuAxes _axis, ref double _speed) { double X = 0, Y = 0, Z = 0, A = 0; _speed = 0; if (mPosStatus == enuPositionerStatus.Ready) { HWStatus = LogError(Positioner.GetVel(ref X, ref Y, ref Z, ref A)); } if (mPosStatus == enuPositionerStatus.Ready) // mPosStatus was modified by HWStatus already { switch (_axis) { case enuAxes.XAxis: _speed = X; break; case enuAxes.YAxis: _speed = Y; break; case enuAxes.ZAxis: _speed = Z; break; case enuAxes.AAxis: _speed = A; break; default: mPosStatus = enuPositionerStatus.Error; break; } } return(mPosStatus); }
public enuPositionerStatus GetAxisStatus(enuAxes _axis) { string strStatus = new String('\0', 256); enuPositionerStatus axisState = enuPositionerStatus.Error; switch (strStatus.Substring(AxisIndex(_axis), 1)) { case "M": // Achse ist in Bewegung (Motion) axisState = enuPositionerStatus.Busy; break; case "-": axisState = enuPositionerStatus.NotInitialized; break; case "@": axisState = enuPositionerStatus.Ready; break; case "S": // Achse steht in Endschalter axisState = enuPositionerStatus.Error; break; case "F": axisState = enuPositionerStatus.Error; break; default: axisState = enuPositionerStatus.Error; break; } return(axisState); /* * int intSwitches = 0; * ErrCheck(Positioner.GetSwitches(ref intSwitches)); * * if (intSwitches > 0) * { * return enuPositionerStatus.Error; * //todo: log * } * * if ((intSwitches | 1024) == 1024) * { * ErrCheck(Positioner.RMeasureEx(4)); * } * else if ((intSwitches | 512) == 512) * { * ErrCheck(Positioner.RMeasureEx(2)); * } * else if ((intSwitches | 256) == 256) * { * ErrCheck(Positioner.RMeasureEx(1)); * } * else if ((intSwitches | 4) == 4) * { * ErrCheck(Positioner.CalibrateEx(4)); * } * else if ((intSwitches | 2) == 2) * { * ErrCheck(Positioner.CalibrateEx(2)); * } * else if ((intSwitches | 1) == 1) * { * ErrCheck(Positioner.CalibrateEx(1)); * } * //todo: objLogger.LogEvent(Me, "The stage was moved across the end-switch, stored positions are now invalid!", LL_Warning) * * // return mStatus; //todo: * } */ }