Antonio Maiorquim / Joystick_S_Controller

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_IHM01A1 by ST

Committer:
Davidroid
Date:
Wed Oct 14 15:12:18 2015 +0000
Revision:
0:2887415a46cd
Child:
1:b38ebb8ea286
Library to handle the X_NUCLEO_IHM01A1 Motor Control Expansion Board.

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 0:2887415a46cd 81 virtual uint16_t GetAcceleration (void) = 0;
Davidroid 0:2887415a46cd 82 virtual uint16_t GetCurrentSpeed (void) = 0;
Davidroid 0:2887415a46cd 83 virtual uint16_t GetDeceleration (void) = 0;
Davidroid 0:2887415a46cd 84 virtual motorState_t GetDeviceState (void) = 0;
Davidroid 0:2887415a46cd 85 virtual uint8_t GetFwVersion (void) = 0;
Davidroid 0:2887415a46cd 86 virtual int32_t GetMark (void) = 0;
Davidroid 0:2887415a46cd 87 virtual uint16_t GetMaxSpeed (void) = 0;
Davidroid 0:2887415a46cd 88 virtual uint16_t GetMinSpeed (void) = 0;
Davidroid 0:2887415a46cd 89 virtual int32_t GetPosition (void) = 0;
Davidroid 0:2887415a46cd 90 virtual void GoHome (void) = 0;
Davidroid 0:2887415a46cd 91 virtual void GoMark (void) = 0;
Davidroid 0:2887415a46cd 92 virtual void GoTo (int32_t targetPosition) = 0;
Davidroid 0:2887415a46cd 93 virtual void HardStop (void) = 0;
Davidroid 0:2887415a46cd 94 virtual void Move (motorDir_t direction, uint32_t stepCount) = 0;
Davidroid 0:2887415a46cd 95 virtual void Run (motorDir_t direction) = 0;
Davidroid 0:2887415a46cd 96 virtual bool SetAcceleration (uint16_t newAcc) = 0;
Davidroid 0:2887415a46cd 97 virtual bool SetDeceleration (uint16_t newDec) = 0;
Davidroid 0:2887415a46cd 98 virtual void SetHome (void) = 0;
Davidroid 0:2887415a46cd 99 virtual void SetMark (void) = 0;
Davidroid 0:2887415a46cd 100 virtual bool SetMaxSpeed (uint16_t newMaxSpeed) = 0;
Davidroid 0:2887415a46cd 101 virtual bool SetMinSpeed (uint16_t newMinSpeed) = 0;
Davidroid 0:2887415a46cd 102 virtual bool SoftStop (void) = 0;
Davidroid 0:2887415a46cd 103 virtual void StepClockHandler (void) = 0;
Davidroid 0:2887415a46cd 104 virtual void CmdDisable (void) = 0;
Davidroid 0:2887415a46cd 105 virtual void CmdEnable (void) = 0;
Davidroid 0:2887415a46cd 106 virtual uint32_t CmdGetParam (uint32_t param) = 0;
Davidroid 0:2887415a46cd 107 virtual uint16_t CmdGetStatus (void) = 0;
Davidroid 0:2887415a46cd 108 virtual void CmdNop (void) = 0;
Davidroid 0:2887415a46cd 109 virtual void CmdSetParam (uint32_t param, uint32_t value) = 0;
Davidroid 0:2887415a46cd 110 virtual uint16_t ReadStatusRegister (void) = 0;
Davidroid 0:2887415a46cd 111 virtual void ReleaseReset (void) = 0;
Davidroid 0:2887415a46cd 112 virtual void Reset (void) = 0;
Davidroid 0:2887415a46cd 113 virtual void SelectStepMode (motorStepMode_t stepMod) = 0;
Davidroid 0:2887415a46cd 114 virtual void SetDirection (motorDir_t direction) = 0;
Davidroid 0:2887415a46cd 115 virtual void ErrorHandler (uint16_t error) = 0;
Davidroid 0:2887415a46cd 116 };
Davidroid 0:2887415a46cd 117
Davidroid 0:2887415a46cd 118 #endif /* __MOTOR_CLASS_H */
Davidroid 0:2887415a46cd 119
Davidroid 0:2887415a46cd 120 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/