diff -r 003cc3c63855 -r f49e5a6b7804 doc/doxygen/html/objacces_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/objacces_8h-source.html Fri Jun 08 09:23:56 2007 +0200 @@ -0,0 +1,163 @@ + +
+00001 /* +00002 This file is part of CanFestival, a library implementing CanOpen Stack. +00003 +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN +00005 +00006 See COPYING file for copyrights details. +00007 +00008 This library is free software; you can redistribute it and/or +00009 modify it under the terms of the GNU Lesser General Public +00010 License as published by the Free Software Foundation; either +00011 version 2.1 of the License, or (at your option) any later version. +00012 +00013 This library is distributed in the hope that it will be useful, +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +00016 Lesser General Public License for more details. +00017 +00018 You should have received a copy of the GNU Lesser General Public +00019 License along with this library; if not, write to the Free Software +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +00021 */ +00022 +00034 #ifndef __objacces_h__ +00035 #define __objacces_h__ +00036 +00037 #include <applicfg.h> +00038 +00039 typedef UNS32 (*valueRangeTest_t)(UNS8 typeValue, void *Value); +00040 typedef void (* storeODSubIndex_t)(UNS16 wIndex, UNS8 bSubindex); +00041 void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex); +00042 +00043 #include "data.h" +00044 +00045 +00046 +00047 /* +00048 Print MSG_WAR (s) if error to the access to the object dictionary occurs. +00049 You must uncomment the lines +00050 //#define DEBUG_CAN +00051 //#define DEBUG_WAR_CONSOLE_ON +00052 //#define DEBUG_ERR_CONSOLE_ON +00053 in the file objaccess.c +00054 sizeDataDict : Size of the data defined in the dictionary +00055 sizeDataGiven : Size data given by the user. +00056 code : error code to print. (SDO abort code. See file def.h) +00057 Beware that sometimes, we force the sizeDataDict or sizeDataGiven to 0, when we wants to use +00058 this function but we do not have the access to the right value. One example is +00059 getSDOerror(). So do not take attention to these variables if they are null. +00060 */ +00061 +00062 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex, +00063 UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code); +00064 +00065 +00066 /* Reads an entry from the object dictionary.\n +00067 * \code +00068 * // Example usage: +00069 * UNS8 *pbData; +00070 * UNS8 length; +00071 * UNS32 returnValue; +00072 * +00073 * returnValue = getODentry( (UNS16)0x100B, (UNS8)1, +00074 * (void * *)&pbData, (UNS8 *)&length ); +00075 * if( returnValue != SUCCESSFUL ) +00076 * { +00077 * // error handling +00078 * } +00079 * \endcode +00080 * \param wIndex The index in the object dictionary where you want to read +00081 * an entry +00082 * \param bSubindex The subindex of the Index. e.g. mostly subindex 0 is +00083 * used to tell you how many valid entries you can find +00084 * in this index. Look at the canopen standard for further +00085 * information +00086 * \param ppbData Pointer to the pointer which points to the variable where +00087 * the value of this object dictionary entry should be copied +00088 * \param pdwSize This function writes the size of the copied value (in Byte) +00089 * into this variable. +00090 * \param pDataType : The type of the data. See objdictdef.h +00091 * \param CheckAccess if other than 0, do not read if the data is Write Only +00092 * [Not used today. Put always 0]. +00093 * \return OD_SUCCESSFUL or SDO abort code. (See file def.h) +00094 */ +00095 UNS32 getODentry( CO_Data* d, +00096 UNS16 wIndex, +00097 UNS8 bSubindex, +00098 void * pDestData, +00099 UNS8 * pExpectedSize, +00100 UNS8 * pDataType, +00101 UNS8 checkAccess); +00102 +00103 +00104 /* By this function you can write an entry into the object dictionary\n +00105 * \code +00106 * // Example usage: +00107 * UNS8 B; +00108 * B = 0xFF; // set transmission type +00109 * +00110 * retcode = setODentry( (UNS16)0x1800, (UNS8)2, &B, sizeof(UNS8), 1 ); +00111 * \endocde +00112 * \param wIndex The index in the object dictionary where you want to write +00113 * an entry +00114 * \param bSubindex The subindex of the Index. e.g. mostly subindex 0 is +00115 * used to tell you how many valid entries you can find +00116 * in this index. Look at the canopen standard for further +00117 * information +00118 * \param pbData Pointer to the variable that holds the value that should +00119 * be copied into the object dictionary +00120 * \param dwSize The size of the value (in Byte). +00121 * \param CheckAccess if other than 0, do not read if the data is Read Only or Constant +00122 * \return OD_SUCCESSFUL or SDO abort code. (See file def.h) +00123 */ +00124 UNS32 setODentry( CO_Data* d, +00125 UNS16 wIndex, +00126 UNS8 bSubindex, +00127 void * pSourceData, +00128 UNS8 * pExpectedSize, +00129 UNS8 checkAccess); +00130 +00131 /*The same, without endianisation*/ +00132 UNS32 writeLocalDict( CO_Data* d, +00133 UNS16 wIndex, +00134 UNS8 bSubindex, +00135 void * pSourceData, +00136 UNS8 * pExpectedSize, +00137 UNS8 checkAccess); +00138 +00139 +00140 /* Scan the index of object dictionary. Used only by setODentry and getODentry. +00141 * *errorCode : OD_SUCCESSFUL if index foundor SDO abort code. (See file def.h) +00142 * Return NULL if index not found. Else : return the table part of the object dictionary. +00143 */ +00144 const indextable * scanIndexOD (CO_Data* d, UNS16 wIndex, UNS32 *errorCode, ODCallback_t **Callback); +00145 +00146 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback); +00147 +00148 #endif /* __objacces_h__ */ +