Antonio Maiorquim / Joystick_S_Controller

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_IHM01A1 by ST

Committer:
Davidroid
Date:
Fri Oct 16 13:30:06 2015 +0000
Revision:
1:b38ebb8ea286
Parent:
0:2887415a46cd
+ Removed Timer Serivce Routine's flag and restored direct callback.; + Restored "L6474_WaitWhileActive()" function.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 0:2887415a46cd 1 /**
Davidroid 0:2887415a46cd 2 ******************************************************************************
Davidroid 0:2887415a46cd 3 * @file Motor_class.h
Davidroid 0:2887415a46cd 4 * @author AST / EST
Davidroid 0:2887415a46cd 5 * @version V0.0.1
Davidroid 0:2887415a46cd 6 * @date 13-April-2015
Davidroid 0:2887415a46cd 7 * @brief This file contains the abstract class describing the interface of a
Davidroid 0:2887415a46cd 8 * motor component.
Davidroid 0:2887415a46cd 9 ******************************************************************************
Davidroid 0:2887415a46cd 10 * @attention
Davidroid 0:2887415a46cd 11 *
Davidroid 0:2887415a46cd 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Davidroid 0:2887415a46cd 13 *
Davidroid 0:2887415a46cd 14 * Redistribution and use in source and binary forms, with or without modification,
Davidroid 0:2887415a46cd 15 * are permitted provided that the following conditions are met:
Davidroid 0:2887415a46cd 16 * 1. Redistributions of source code must retain the above copyright notice,
Davidroid 0:2887415a46cd 17 * this list of conditions and the following disclaimer.
Davidroid 0:2887415a46cd 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
Davidroid 0:2887415a46cd 19 * this list of conditions and the following disclaimer in the documentation
Davidroid 0:2887415a46cd 20 * and/or other materials provided with the distribution.
Davidroid 0:2887415a46cd 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Davidroid 0:2887415a46cd 22 * may be used to endorse or promote products derived from this software
Davidroid 0:2887415a46cd 23 * without specific prior written permission.
Davidroid 0:2887415a46cd 24 *
Davidroid 0:2887415a46cd 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Davidroid 0:2887415a46cd 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Davidroid 0:2887415a46cd 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Davidroid 0:2887415a46cd 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Davidroid 0:2887415a46cd 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Davidroid 0:2887415a46cd 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Davidroid 0:2887415a46cd 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Davidroid 0:2887415a46cd 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Davidroid 0:2887415a46cd 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Davidroid 0:2887415a46cd 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Davidroid 0:2887415a46cd 35 *
Davidroid 0:2887415a46cd 36 ******************************************************************************
Davidroid 0:2887415a46cd 37 */
Davidroid 0:2887415a46cd 38
Davidroid 0:2887415a46cd 39
Davidroid 0:2887415a46cd 40 /* Generated with Stm32CubeTOO -----------------------------------------------*/
Davidroid 0:2887415a46cd 41
Davidroid 0:2887415a46cd 42
Davidroid 0:2887415a46cd 43 /* Revision ------------------------------------------------------------------*/
Davidroid 0:2887415a46cd 44 /*
Davidroid 0:2887415a46cd 45 Repository: http://svn.x-nucleodev.codex.cro.st.com/svnroot/X-NucleoDev
Davidroid 0:2887415a46cd 46 Branch/Trunk/Tag: trunk
Davidroid 0:2887415a46cd 47 Based on: X-CUBE-SPN1/trunk/Drivers/BSP/Components/Common/motor.h
Davidroid 0:2887415a46cd 48 Revision: 0
Davidroid 0:2887415a46cd 49 */
Davidroid 0:2887415a46cd 50
Davidroid 0:2887415a46cd 51
Davidroid 0:2887415a46cd 52 /* Define to prevent from recursive inclusion --------------------------------*/
Davidroid 0:2887415a46cd 53
Davidroid 0:2887415a46cd 54 #ifndef __MOTOR_CLASS_H
Davidroid 0:2887415a46cd 55 #define __MOTOR_CLASS_H
Davidroid 0:2887415a46cd 56
Davidroid 0:2887415a46cd 57
Davidroid 0:2887415a46cd 58 /* Includes ------------------------------------------------------------------*/
Davidroid 0:2887415a46cd 59
Davidroid 0:2887415a46cd 60 #include <Component_class.h>
Davidroid 0:2887415a46cd 61
Davidroid 0:2887415a46cd 62
Davidroid 0:2887415a46cd 63 /* Classes ------------------------------------------------------------------*/
Davidroid 0:2887415a46cd 64
Davidroid 0:2887415a46cd 65 /** An abstract class for Motor components.
Davidroid 0:2887415a46cd 66 */
Davidroid 0:2887415a46cd 67 class Motor : public Component
Davidroid 0:2887415a46cd 68 {
Davidroid 0:2887415a46cd 69 public:
Davidroid 0:2887415a46cd 70 /* ACTION 1 --------------------------------------------------------------*
Davidroid 0:2887415a46cd 71 * Declare here the interface's methods. *
Davidroid 0:2887415a46cd 72 * They should be: *
Davidroid 0:2887415a46cd 73 * + Methods with the same name of the C component's virtual table *
Davidroid 0:2887415a46cd 74 * (and extended virtual table, if any)'s functions, provided that *
Davidroid 0:2887415a46cd 75 * the component's driver implements them (i.e.: the corresponding *
Davidroid 0:2887415a46cd 76 * pointer to function is not "0"). *
Davidroid 0:2887415a46cd 77 * *
Davidroid 0:2887415a46cd 78 * Example: *
Davidroid 0:2887415a46cd 79 * virtual int GetValue(float *pfData) = 0; *
Davidroid 0:2887415a46cd 80 *------------------------------------------------------------------------*/
Davidroid 1:b38ebb8ea286 81 virtual uint16_t GetAcceleration(void) = 0;
Davidroid 1:b38ebb8ea286 82 virtual uint16_t GetCurrentSpeed(void) = 0;
Davidroid 1:b38ebb8ea286 83 virtual uint16_t GetDeceleration(void) = 0;
Davidroid 1:b38ebb8ea286 84 virtual motorState_t GetDeviceState(void) = 0;
Davidroid 1:b38ebb8ea286 85 virtual uint8_t GetFwVersion(void) = 0;
Davidroid 1:b38ebb8ea286 86 virtual int32_t GetMark(void) = 0;
Davidroid 1:b38ebb8ea286 87 virtual uint16_t GetMaxSpeed(void) = 0;
Davidroid 1:b38ebb8ea286 88 virtual uint16_t GetMinSpeed(void) = 0;
Davidroid 1:b38ebb8ea286 89 virtual int32_t GetPosition(void) = 0;
Davidroid 1:b38ebb8ea286 90 virtual void GoHome(void) = 0;
Davidroid 1:b38ebb8ea286 91 virtual void GoMark(void) = 0;
Davidroid 1:b38ebb8ea286 92 virtual void GoTo(int32_t targetPosition) = 0;
Davidroid 1:b38ebb8ea286 93 virtual void HardStop(void) = 0;
Davidroid 1:b38ebb8ea286 94 virtual void Move(motorDir_t direction, uint32_t stepCount) = 0;
Davidroid 1:b38ebb8ea286 95 virtual void Run(motorDir_t direction) = 0;
Davidroid 1:b38ebb8ea286 96 virtual bool SetAcceleration(uint16_t newAcc) = 0;
Davidroid 1:b38ebb8ea286 97 virtual bool SetDeceleration(uint16_t newDec) = 0;
Davidroid 1:b38ebb8ea286 98 virtual void SetHome(void) = 0;
Davidroid 1:b38ebb8ea286 99 virtual void SetMark(void) = 0;
Davidroid 1:b38ebb8ea286 100 virtual bool SetMaxSpeed(uint16_t newMaxSpeed) = 0;
Davidroid 1:b38ebb8ea286 101 virtual bool SetMinSpeed(uint16_t newMinSpeed) = 0;
Davidroid 1:b38ebb8ea286 102 virtual bool SoftStop(void) = 0;
Davidroid 1:b38ebb8ea286 103 virtual void StepClockHandler(void) = 0;
Davidroid 1:b38ebb8ea286 104 virtual void WaitWhileActive(void) = 0;
Davidroid 1:b38ebb8ea286 105 virtual void CmdDisable(void) = 0;
Davidroid 1:b38ebb8ea286 106 virtual void CmdEnable(void) = 0;
Davidroid 1:b38ebb8ea286 107 virtual uint32_t CmdGetParam(uint32_t param) = 0;
Davidroid 1:b38ebb8ea286 108 virtual uint16_t CmdGetStatus(void) = 0;
Davidroid 1:b38ebb8ea286 109 virtual void CmdNop(void) = 0;
Davidroid 1:b38ebb8ea286 110 virtual void CmdSetParam(uint32_t param, uint32_t value) = 0;
Davidroid 1:b38ebb8ea286 111 virtual uint16_t ReadStatusRegister(void) = 0;
Davidroid 1:b38ebb8ea286 112 virtual void ReleaseReset(void) = 0;
Davidroid 1:b38ebb8ea286 113 virtual void Reset(void) = 0;
Davidroid 1:b38ebb8ea286 114 virtual void SelectStepMode(motorStepMode_t stepMod) = 0;
Davidroid 1:b38ebb8ea286 115 virtual void SetDirection(motorDir_t direction) = 0;
Davidroid 1:b38ebb8ea286 116 virtual void ErrorHandler(uint16_t error) = 0;
Davidroid 0:2887415a46cd 117 };
Davidroid 0:2887415a46cd 118
Davidroid 0:2887415a46cd 119 #endif /* __MOTOR_CLASS_H */
Davidroid 0:2887415a46cd 120
Davidroid 0:2887415a46cd 121 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/