diff -r 6787754b251b -r b6572d0336c3 doc/doxygen/html/sdo_8h-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/sdo_8h-source.html Mon Jun 04 17:59:50 2007 +0200 @@ -0,0 +1,165 @@ + +
+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 +00023 #ifndef __sdo_h__ +00024 #define __sdo_h__ +00025 +00026 struct struct_s_transfer; +00027 +00028 #include "timer.h" +00029 +00030 typedef void (*SDOCallback_t)(CO_Data* d, UNS8 nodeId); +00031 +00032 /* The Transfer structure +00033 Used to store the different segments of +00034 - a SDO received before writing in the dictionary +00035 - the reading of the dictionary to put on a SDO to transmit +00036 */ +00037 +00038 struct struct_s_transfer { +00039 UNS8 nodeId; /*own ID if server, or node ID of the server if client */ +00040 +00041 UNS8 whoami; /* Takes the values SDO_CLIENT or SDO_SERVER */ +00042 UNS8 state; /* state of the transmission : Takes the values SDO_... */ +00043 UNS8 toggle; +00044 UNS32 abortCode; /* Sent or received */ +00045 /* index and subindex of the dictionary where to store */ +00046 /* (for a received SDO) or to read (for a transmit SDO) */ +00047 UNS16 index; +00048 UNS8 subIndex; +00049 UNS32 count; /* Number of data received or to be sent. */ +00050 UNS32 offset; /* stack pointer of data[] +00051 * Used only to tranfer part of a line to or from a SDO. +00052 * offset is always pointing on the next free cell of data[]. +00053 * WARNING s_transfer.data is subject to ENDIANISATION +00054 * (with respect to CANOPEN_BIG_ENDIAN) +00055 */ +00056 UNS8 data [SDO_MAX_LENGTH_TRANSFERT]; +00057 UNS8 dataType; /* Defined in objdictdef.h Value is visible_string +00058 * if it is a string, any other value if it is not a string, +00059 * like 0. In fact, it is used only if client. +00060 */ +00061 TIMER_HANDLE timer; /* Time counter to implement a timeout in milliseconds. +00062 * It is automatically incremented whenever +00063 * the line state is in SDO_DOWNLOAD_IN_PROGRESS or +00064 * SDO_UPLOAD_IN_PROGRESS, and reseted to 0 +00065 * when the response SDO have been received. +00066 */ +00067 SDOCallback_t Callback; /* The user callback func to be called at SDO transaction end */ +00068 }; +00069 typedef struct struct_s_transfer s_transfer; +00070 +00071 +00072 #include "data.h" +00073 +00074 /* The 8 bytes data of the SDO */ +00075 struct BODY{ +00076 UNS8 data[8]; +00077 }; +00078 +00079 /* The SDO structure ...*/ +00080 struct struct_s_SDO { +00081 UNS8 nodeId; /*in any case, Node ID of the server (case sender or receiver).*/ +00082 struct BODY body; +00083 }; +00084 +00085 +00086 typedef struct struct_s_SDO s_SDO; +00087 +00091 void SDOTimeoutAlarm(CO_Data* d, UNS32 id); +00092 +00095 void resetSDO (CO_Data* d); +00096 +00097 +00101 UNS32 SDOlineToObjdict (CO_Data* d, UNS8 line); +00102 +00106 UNS32 objdictToSDOline (CO_Data* d, UNS8 line); +00107 +00111 UNS8 lineToSDO (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data); +00112 +00116 UNS8 SDOtoLine (CO_Data* d, UNS8 line, UNS8 nbBytes, UNS8 * data); +00117 +00126 UNS8 failedSDO (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS16 index, +00127 UNS8 subIndex, UNS32 abortCode); +00128 +00132 void resetSDOline (CO_Data* d, UNS8 line); +00133 +00137 UNS8 initSDOline (CO_Data* d, UNS8 line, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 state); +00138 +00147 UNS8 getSDOfreeLine (CO_Data* d, UNS8 whoami, UNS8 *line); +00148 +00156 UNS8 getSDOlineOnUse (CO_Data* d, UNS8 nodeId, UNS8 whoami, UNS8 *line); +00157 +00162 UNS8 closeSDOtransfer (CO_Data* d, UNS8 nodeId, UNS8 whoami); +00163 +00168 UNS8 getSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 * nbBytes); +00169 +00174 UNS8 setSDOlineRestBytes (CO_Data* d, UNS8 line, UNS8 nbBytes); +00175 +00182 UNS8 sendSDO (CO_Data* d, UNS8 whoami, s_SDO sdo); +00183 +00191 UNS8 sendSDOabort (CO_Data* d, UNS8 whoami, UNS16 index, UNS8 subIndex, UNS32 abortCode); +00192 +00200 UNS8 proceedSDO (CO_Data* d, Message *m); +00201 +00210 UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, +00211 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data); +00216 UNS8 writeNetworkDictCallBack (CO_Data* d, UNS8 nodeId, UNS16 index, +00217 UNS8 subIndex, UNS8 count, UNS8 dataType, void *data, SDOCallback_t Callback); +00225 UNS8 readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, +00226 UNS8 subIndex, UNS8 dataType); +00227 +00232 UNS8 readNetworkDictCallback (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, SDOCallback_t Callback); +00233 +00249 UNS8 getReadResultNetworkDict (CO_Data* d, UNS8 nodeId, void* data, +00250 UNS8 *size, UNS32 * abortCode); +00251 +00268 UNS8 getWriteResultNetworkDict (CO_Data* d, UNS8 nodeId, UNS32 * abortCode); +00269 +00270 +00271 +00272 +00273 #endif +