src/objacces.c
changeset 469 f2b07ea215b5
parent 450 dff8cc600cba
child 539 187058b4a4b8
equal deleted inserted replaced
468:787a54d068d6 469:f2b07ea215b5
    50 ** @param sizeDataGiven
    50 ** @param sizeDataGiven
    51 ** @param code
    51 ** @param code
    52 **
    52 **
    53 ** @return
    53 ** @return
    54 **/
    54 **/
       
    55 #ifdef DEBUG_WAR_CONSOLE_ON
    55 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex,
    56 UNS8 accessDictionaryError(UNS16 index, UNS8 subIndex,
    56                            UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
    57                            UNS8 sizeDataDict, UNS8 sizeDataGiven, UNS32 code)
    57 {
    58 {
    58 #ifdef DEBUG_WAR_CONSOLE_ON
       
    59   MSG_WAR(0x2B09,"Dictionary index : ", index);
    59   MSG_WAR(0x2B09,"Dictionary index : ", index);
    60   MSG_WAR(0X2B10,"           subindex : ", subIndex);
    60   MSG_WAR(0X2B10,"           subindex : ", subIndex);
    61   switch (code) {
    61   switch (code) {
    62   case  OD_NO_SUCH_OBJECT:
    62   case  OD_NO_SUCH_OBJECT:
    63     MSG_WAR(0x2B11,"Index not found ", index);
    63     MSG_WAR(0x2B11,"Index not found ", index);
    82     MSG_WAR(0x2B18,"Value range error : value too high. SDOabort : ", code);
    82     MSG_WAR(0x2B18,"Value range error : value too high. SDOabort : ", code);
    83     break;
    83     break;
    84   default :
    84   default :
    85     MSG_WAR(0x2B20, "Unknown error code : ", code);
    85     MSG_WAR(0x2B20, "Unknown error code : ", code);
    86   }
    86   }
       
    87   return 0;
       
    88 }
       
    89 #else
       
    90 #define accessDictionaryError(index, subIndex, sizeDataDict, sizeDataGiven, code)
    87 #endif
    91 #endif
    88   return 0;
       
    89 }
       
    90 
    92 
    91 /*!
    93 /*!
    92 **
    94 **
    93 **
    95 **
    94 ** @param d
    96 ** @param d
   196 **
   198 **
   197 **
   199 **
   198 ** @param d
   200 ** @param d
   199 ** @param wIndex
   201 ** @param wIndex
   200 ** @param bSubindex
   202 ** @param bSubindex
   201 ** @param pDestData
       
   202 ** @param pExpectedSize
       
   203 ** @param pDataType
       
   204 ** @param checkAccess
       
   205 **
       
   206 ** @return
       
   207 **/
       
   208 UNS32 getODentry( CO_Data* d,
       
   209                   UNS16 wIndex,
       
   210                   UNS8 bSubindex,
       
   211                   void * pDestData,
       
   212                   UNS8 * pExpectedSize,
       
   213                   UNS8 * pDataType,
       
   214                   UNS8 checkAccess)
       
   215 {
       
   216   return _getODentry( d,
       
   217                       wIndex,
       
   218                       bSubindex,
       
   219                       pDestData,
       
   220                       pExpectedSize,
       
   221                       pDataType,
       
   222                       checkAccess,
       
   223                       1);//endianize
       
   224 }
       
   225 
       
   226 /*!
       
   227 **
       
   228 **
       
   229 ** @param d
       
   230 ** @param wIndex
       
   231 ** @param bSubindex
       
   232 ** @param pDestData
       
   233 ** @param pExpectedSize
       
   234 ** @param pDataType
       
   235 ** @param checkAccess
       
   236 **
       
   237 ** @return
       
   238 **/
       
   239 UNS32 readLocalDict( CO_Data* d,
       
   240                      UNS16 wIndex,
       
   241                      UNS8 bSubindex,
       
   242                      void * pDestData,
       
   243                      UNS8 * pExpectedSize,
       
   244                      UNS8 * pDataType,
       
   245                      UNS8 checkAccess)
       
   246 {
       
   247   return _getODentry( d,
       
   248                       wIndex,
       
   249                       bSubindex,
       
   250                       pDestData,
       
   251                       pExpectedSize,
       
   252                       pDataType,
       
   253                       checkAccess,
       
   254                       0);//do not endianize
       
   255 }
       
   256 
       
   257 /*!
       
   258 **
       
   259 **
       
   260 ** @param d
       
   261 ** @param wIndex
       
   262 ** @param bSubindex
       
   263 ** @param pSourceData
   203 ** @param pSourceData
   264 ** @param pExpectedSize
   204 ** @param pExpectedSize
   265 ** @param checkAccess
   205 ** @param checkAccess
   266 ** @param endianize
   206 ** @param endianize
   267 **
   207 **
   363 /*!
   303 /*!
   364 **
   304 **
   365 **
   305 **
   366 ** @param d
   306 ** @param d
   367 ** @param wIndex
   307 ** @param wIndex
   368 ** @param bSubindex
       
   369 ** @param pSourceData
       
   370 ** @param pExpectedSize
       
   371 ** @param checkAccess
       
   372 **
       
   373 ** @return
       
   374 **/
       
   375 UNS32 setODentry( CO_Data* d,
       
   376                   UNS16 wIndex,
       
   377                   UNS8 bSubindex,
       
   378                   void * pSourceData,
       
   379                   UNS8 * pExpectedSize,
       
   380                   UNS8 checkAccess)
       
   381 {
       
   382   return _setODentry( d,
       
   383                       wIndex,
       
   384                       bSubindex,
       
   385                       pSourceData,
       
   386                       pExpectedSize,
       
   387                       checkAccess,
       
   388                       1);//endianize
       
   389 }
       
   390 
       
   391 /*!
       
   392 **
       
   393 **
       
   394 ** @param d
       
   395 ** @param wIndex
       
   396 ** @param bSubindex
       
   397 ** @param pSourceData
       
   398 ** @param pExpectedSize
       
   399 ** @param checkAccess
       
   400 **
       
   401 ** @return
       
   402 **/
       
   403 UNS32 writeLocalDict( CO_Data* d,
       
   404                       UNS16 wIndex,
       
   405                       UNS8 bSubindex,
       
   406                       void * pSourceData,
       
   407                       UNS8 * pExpectedSize,
       
   408                       UNS8 checkAccess)
       
   409 {
       
   410   return _setODentry( d,
       
   411                       wIndex,
       
   412                       bSubindex,
       
   413                       pSourceData,
       
   414                       pExpectedSize,
       
   415                       checkAccess,
       
   416                       0);//do not endianize
       
   417 }
       
   418 
       
   419 /*!
       
   420 **
       
   421 **
       
   422 ** @param d
       
   423 ** @param wIndex
       
   424 ** @param errorCode
   308 ** @param errorCode
   425 ** @param Callback
   309 ** @param Callback
   426 **
   310 **
   427 ** @return
   311 ** @return
   428 **/
   312 **/
   441 **
   325 **
   442 ** @return
   326 ** @return
   443 **/
   327 **/
   444 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
   328 UNS32 RegisterSetODentryCallBack(CO_Data* d, UNS16 wIndex, UNS8 bSubindex, ODCallback_t Callback)
   445 {
   329 {
   446   UNS32 errorCode;
   330 UNS32 errorCode;
   447   ODCallback_t *CallbackList;
   331 ODCallback_t *CallbackList;
   448 
   332 const indextable *odentry;
   449   scanIndexOD (d, wIndex, &errorCode, &CallbackList);
   333 
   450   if(errorCode == OD_SUCCESSFUL && CallbackList)
   334   odentry = scanIndexOD (d, wIndex, &errorCode, &CallbackList);
       
   335   if(errorCode == OD_SUCCESSFUL  &&  CallbackList  &&  bSubindex < odentry->bSubCount) 
   451     CallbackList[bSubindex] = Callback;
   336     CallbackList[bSubindex] = Callback;
   452   return errorCode;
   337   return errorCode;
   453 }
   338 }
   454 
   339 
   455 /*!
   340 /*!