00001 /* ParameterTypes.h - Parameter Extraction type definitions header file */ 00002 00003 /* 00004 * Software License Agreement (BSD License) 00005 * 00006 * Copyright (c) 2011, Yaskawa America, Inc. 00007 * All rights reserved. 00008 * 00009 * Redistribution and use in binary form, with or without modification, 00010 * is permitted provided that the following conditions are met: 00011 * 00012 * * Redistributions in binary form must reproduce the above copyright 00013 * notice, this list of conditions and the following disclaimer in the 00014 * documentation and/or other materials provided with the distribution. 00015 * * Neither the name of the Yaskawa America, Inc., nor the names 00016 * of its contributors may be used to endorse or promote products derived 00017 * from this software without specific prior written permission. 00018 * 00019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00021 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00023 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00024 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00025 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00026 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00027 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00029 * POSSIBILITY OF SUCH DAMAGE. 00030 */ 00031 00032 #ifndef _INC_MOTOMANPARAMETER_TYPES_H 00033 #define _INC_MOTOMANPARAMETER_TYPES_H 00034 00035 #ifdef __cplusplus 00036 extern "C" { 00037 #endif 00038 00039 typedef struct 00040 { 00041 float PtoR[MAX_PULSE_AXES]; //Array to store PULSE TO RADIAN conversion factors for each axes 00042 } PULSE_TO_RAD; 00043 00044 typedef struct 00045 { 00046 float PtoM[MAX_PULSE_AXES]; //Array to store PULSE TO METER conversion factors for each axes 00047 } PULSE_TO_METER; 00048 00049 typedef enum 00050 { 00051 AXIS_ROTATION, 00052 AXIS_LINEAR, 00053 AXIS_INVALID 00054 } AXIS_TYPE; 00055 00056 typedef struct 00057 { 00058 AXIS_TYPE type[MAX_PULSE_AXES]; //Array to store whether axis is rotational or linear 00059 } AXIS_MOTION_TYPE; 00060 00061 typedef struct 00062 { 00063 BOOL bValid; //TRUE if ulSourceAxis != 0 00064 INT32 ulSourceAxis; 00065 INT32 ulCorrectionAxis; 00066 float fCorrectionRatio; 00067 } FB_AXIS_CORRECTION; 00068 00069 typedef struct 00070 { 00071 FB_AXIS_CORRECTION correction[MAX_PULSE_AXES]; 00072 } FB_PULSE_CORRECTION_DATA; 00073 00074 typedef struct 00075 { 00076 UINT32 qtyOfOutFiles; 00077 UINT32 qtyOfHighPriorityTasks; 00078 UINT32 qtyOfNormalPriorityTasks; 00079 } TASK_QTY_INFO; 00080 00081 typedef struct 00082 { 00083 UINT16 periodInMilliseconds; 00084 } GP_INTERPOLATION_PERIOD; 00085 00086 typedef struct 00087 { 00088 UINT32 maxIncrement[MAX_PULSE_AXES]; 00089 } MAX_INCREMENT_INFO; 00090 00091 typedef struct 00092 { 00093 int ctrlGrp; //Robot control group 00094 int IpCycleInMilliseconds; //Interpolation Cycle in milliseconds 00095 MAX_INCREMENT_INFO info; //Maximum increment per interpolation cycle 00096 } MAX_INC_PIPC; 00097 00098 typedef struct 00099 { 00100 INT32 maxLimit[MAX_PULSE_AXES]; 00101 INT32 minLimit[MAX_PULSE_AXES]; 00102 } JOINT_PULSE_LIMITS; 00103 00104 typedef struct 00105 { 00106 INT32 maxLimit[MAX_PULSE_AXES]; 00107 } JOINT_ANGULAR_VELOCITY_LIMITS; 00108 00109 typedef struct 00110 { 00111 BOOL bFeedbackSpeedEnabled; 00112 ULONG cioAddressForAxis[MAX_PULSE_AXES][2]; 00113 } JOINT_FEEDBACK_SPEED_ADDRESSES; 00114 00115 #ifdef __cplusplus 00116 } 00117 #endif 00118 00119 #endif