diff -r 2cb34a4ac65a -r 6b5a4c21e061 doc/doxygen/html/sdo_8c.html
--- a/doc/doxygen/html/sdo_8c.html Tue Jun 05 17:34:33 2007 +0200
+++ b/doc/doxygen/html/sdo_8c.html Tue Jun 05 18:43:21 2007 +0200
@@ -20,6 +20,9 @@
#include "canfestival.h"
+Include dependency graph for sdo.c:
Go to the source code of this file.
Defines | |
UNS8 | getWriteResultNetworkDict (CO_Data *d, UNS8 nodeId, UNS32 *abortCode) |
+Definition in file sdo.c.
Returns the indicator of end transmission from the first byte of the SDO
-Definition at line 75 of file sdo.c. +Definition at line 109 of file sdo.c. +
+Referenced by proceedSDO().
Returns the command specifier (cs, ccs, scs) from the first byte of the SDO
-Definition at line 55 of file sdo.c. +Definition at line 89 of file sdo.c. +
+Referenced by proceedSDO().
Returns the transfer type from the first byte of the SDO
-Definition at line 67 of file sdo.c. +Definition at line 101 of file sdo.c. +
+Referenced by proceedSDO().
Returns the index from the bytes 1 and 2 of the SDO
-Definition at line 83 of file sdo.c. +Definition at line 117 of file sdo.c. +
+Referenced by proceedSDO().
Returns the number of bytes without data from the first byte of the SDO. Coded in 2 bits
-Definition at line 59 of file sdo.c. +Definition at line 93 of file sdo.c. +
+Referenced by proceedSDO().
Returns the number of bytes without data from the first byte of the SDO. Coded in 3 bits
-Definition at line 63 of file sdo.c. +Definition at line 97 of file sdo.c. +
+Referenced by proceedSDO().
Returns the size indicator from the first byte of the SDO
-Definition at line 71 of file sdo.c. +Definition at line 105 of file sdo.c. +
+Referenced by proceedSDO().
Returns the subIndex from the byte 3 of the SDO
-Definition at line 88 of file sdo.c. +Definition at line 121 of file sdo.c. +
+Referenced by proceedSDO().
Returns the toggle from the first byte of the SDO
-Definition at line 79 of file sdo.c. +Definition at line 113 of file sdo.c. +
+Referenced by proceedSDO().
-Definition at line 34 of file sdo.c. +Definition at line 43 of file sdo.c.
-Definition at line 31 of file sdo.c. +Definition at line 40 of file sdo.c.
@@ -360,7 +386,9 @@ if(d->transfers[id].timer != TIMER_NONE) { StopSDO_TIMER(id) StartSDO_TIMER(id) }
-Definition at line 124 of file sdo.c. +Definition at line 160 of file sdo.c. +
+Referenced by proceedSDO().
@@ -384,7 +412,9 @@ d->transfers[id].timer = SetAlarm(d,id,&SDOTimeoutAlarm,MS_TO_TIMEVAL(SDO_TIMEOUT_MS),0);
-Definition at line 120 of file sdo.c. +Definition at line 156 of file sdo.c. +
+Referenced by initSDOline().
@@ -408,7 +438,9 @@ d->transfers[id].timer = DelAlarm(d->transfers[id].timer);
-Definition at line 116 of file sdo.c. +Definition at line 152 of file sdo.c. +
+Referenced by failedSDO(), initSDOline(), and proceedSDO().
-Called by readNetworkDict -
-Definition at line 1198 of file sdo.c. -
-References getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), resetSDOline(), and sendSDO(). +
d | ||
nodeId | ||
index | ||
subIndex | ||
dataType | ||
Callback |
+Verify that there is no SDO communication yet.
+Taking the line ...
+Check which SDO to use to communicate with the node
+looking for the nodeId server
+Send the SDO to the server. Initiate upload, cs=2. +
+Definition at line 1406 of file sdo.c. +
+References getSDOfreeLine(), getSDOlineOnUse(), initSDOline(), resetSDOline(), and sendSDO(). +
+Referenced by readNetworkDict(), and readNetworkDictCallback(). +
+Here is the call graph for this function:
-Called by writeNetworkDict +Called by writeNetworkDict
+
d | ||
nodeId | ||
index | ||
subIndex | ||
count | ||
dataType | ||
data | ||
Callback | ||
endianize |
- -
-Definition at line 318 of file sdo.c. -
-References getSDOlineOnUse(), and resetSDOline(). +
d | ||
nodeId | ||
whoami |
+Definition at line 439 of file sdo.c. +
+References getSDOlineOnUse(), and resetSDOline(). +
+Here is the call graph for this function:
- -
-Definition at line 227 of file sdo.c. -
-References getSDOlineOnUse(), resetSDOline(), sendSDOabort(), and StopSDO_TIMER. +
d | ||
nodeId | ||
whoami | ||
index | ||
subIndex | ||
abortCode |
+Definition at line 307 of file sdo.c. +
+References getSDOlineOnUse(), resetSDOline(), sendSDOabort(), and StopSDO_TIMER. +
+Referenced by proceedSDO(). +
+Here is the call graph for this function:
- -
-Definition at line 1295 of file sdo.c. -
-References getSDOlineOnUse(). +
d | ||
nodeId | ||
data | ||
size | ||
abortCode |
+Looking for the line tranfert.
+Transfert is finished. Put the value in the data. +
+Definition at line 1532 of file sdo.c. +
+References getSDOlineOnUse(). +
+Here is the call graph for this function:
- -
-Definition at line 284 of file sdo.c. +
d | ||
whoami | ||
line |
+Definition at line 388 of file sdo.c. +
+Referenced by _readNetworkDict(), _writeNetworkDict(), and proceedSDO().
- -
-Definition at line 301 of file sdo.c. +
d | ||
nodeId | ||
whoami | ||
line |
+Definition at line 414 of file sdo.c. +
+Referenced by _readNetworkDict(), _writeNetworkDict(), closeSDOtransfer(), failedSDO(), getReadResultNetworkDict(), getWriteResultNetworkDict(), and proceedSDO().
- -
-Definition at line 332 of file sdo.c. +
d | ||
line | ||
nbBytes |
+Definition at line 461 of file sdo.c. +
+Referenced by proceedSDO().
- -
-Definition at line 1329 of file sdo.c. -
-References getSDOlineOnUse(). +
d | ||
nodeId | ||
abortCode |
+Looking for the line tranfert. +
+Definition at line 1573 of file sdo.c. +
+References getSDOlineOnUse(). +
+Here is the call graph for this function:
- -
-Definition at line 263 of file sdo.c. -
-References StartSDO_TIMER, and StopSDO_TIMER. +
d | ||
line | ||
nodeId | ||
index | ||
subIndex | ||
state |
+Definition at line 359 of file sdo.c. +
+References StartSDO_TIMER, and StopSDO_TIMER. +
+Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), and resetSDOline().
- -
-Definition at line 189 of file sdo.c. +
d | ||
line | ||
nbBytes | ||
data |
+Definition at line 250 of file sdo.c. +
+Referenced by proceedSDO().
- -
-Definition at line 157 of file sdo.c. -
-References getODentry(). +
d | ||
line |
+Definition at line 209 of file sdo.c. +
+References getODentry(). +
+Referenced by proceedSDO(). +
+Here is the call graph for this function:
- -
-Definition at line 447 of file sdo.c. -
-References failedSDO(), getSDOc, getSDOcs, getSDOe, getSDOfreeLine(), getSDOindex, getSDOlineOnUse(), getSDOlineRestBytes(), getSDOn2, getSDOn3, getSDOs, getSDOsubIndex, getSDOt, initSDOline(), lineToSDO(), objdictToSDOline(), resetSDOline(), RestartSDO_TIMER, SDOlineToObjdict(), SDOtoLine(), sendSDO(), setSDOlineRestBytes(), and StopSDO_TIMER. +
d | ||
m |
+received or to be transmited.
+The node from which the SDO is received
+node id in 32 bits, for temporary use
+SDO_SERVER or SDO_CLIENT.
+while reading or writing in the local object dictionary.
+SDO to transmit
+Looking for the cobId in the object dictionary.
+Am-I a server ?
+In case of server, the node id of the client may be unknown. So we put the index minus offset
+0x1200 where the cobid received is defined.
+end while
+Am-I client ?
+a) Looking for the cobid received.
+b) cobid found, so reading the node id of the server.
+This SDO was not for us !
+Test if the size of the SDO is ok
+Testing the command specifier
+Allowed : cs = 0, 1, 2, 3, 4. (= all except those for block tranfert).
+cs = other : Not allowed -> abort.
+I am SERVER
+Receiving a download segment data.
+A SDO transfert should have been yet initiated.
+Reset the wathdog
+Toggle test.
+Nb of data to be downloaded
+Store the data in the transfert structure.
+Sending the SDO response, CS = 1
+The node id of the server, (here it is the sender).
+Inverting the toggle for the next segment.
+If it was the last segment,
+Transfering line data to object dictionary.
+The code does not use the "d" of initiate frame. So it is safe if e=s=0
+Release of the line
+I am CLIENT
+It is a request for a previous upload segment. We should find a line opened for this.
+Reset the wathdog
+test of the toggle;
+nb of data to be uploaded
+Storing the data in the line structure.
+Inverting the toggle for the next segment.
+If it was the last segment,
+Put in state finished
+The code is safe for the case e=s=0 in initiate frame.
+more segments to receive
+Sending the request for the next segment.
+I am SERVER
+Receive of an initiate download
+Search if a SDO transfert have been yet initiated
+No line on use. Great !
+Try to open a new line.
+If SDO expedited
+nb of data to be downloaded
+Storing the data in the line structure.
+SDO expedited -> transfert finished. Data can be stored in the dictionary.
+The line will be reseted when it is downloading in the dictionary.
+Transfering line data to object dictionary.
+Release of the line.
+So, if it is not an expedited transfert
+TODO : if e and s = 0, not reading m->data[4] but put nbBytes = 0
+Transfert limited to 255 bytes.
+Sending a SDO, cs=3
+The node id of the server, (here it is the sender).
+I am CLIENT
+It is a response for a previous download segment. We should find a line opened for this.
+Reset the wathdog
+test of the toggle;
+End transmission or downloading next segment. We need to know if it will be the last one.
+At least one transfer to send.
+several segments to download.
+code to send the next segment. (cs = 0; c = 0)
+Last segment.
+code to send the last segment. (cs = 0; c = 1)
+end if I am a CLIENT
+I am SERVER
+Receive of an initiate upload.
+Search if a SDO transfert have been yet initiated
+No line on use. Great !
+Try to open a new line.
+Transfer data from dictionary to the line structure.
+Preparing the response.
+Nb bytes to transfer ?
+The server node Id;
+normal transfert. (segmented).
+code to send the initiate upload response. (cs = 2)
+It takes too much memory to upgrate to 2^32 because the size of data is also coded
+in the object dictionary, at every index and subindex.
+Expedited upload. (cs = 2 ; e = 1)
+Release the line.
+end if I am SERVER
+I am CLIENT
+It is the response for the previous initiate upload request.
+We should find a line opened for this.
+Reset the wathdog
+nb of data to be uploaded
+Storing the data in the line structure.
+SDO expedited -> transfert finished. data are available via getReadResultNetworkDict().
+So, if it is not an expedited transfert
+Storing the nb of data to receive.
+Remember the limitation to 255 bytes to transfert
+Requesting next segment. (cs = 3)
+End if CLIENT
+I am SERVER
+Receiving a upload segment.
+A SDO transfert should have been yet initiated.
+Reset the wathdog
+Toggle test.
+Uploading next segment. We need to know if it will be the last one.
+The segment to transfer is not the last one.
+code to send the next segment. (cs = 0; c = 0)
+Inverting the toggle for the next tranfert.
+Last segment.
+code to send the last segment. (cs = 0; c = 1)
+The server node Id;
+Release the line
+I am CLIENT
+It is the response for the previous initiate download request.
+We should find a line opened for this.
+Reset the watchdog
+more than one request to send
+code to send the next segment. (cs = 0; c = 0)
+The server node Id;
+Last segment.
+code to send the last segment. (cs = 0; c = 1)
+The server node Id;
+Received SDO abort.
+Looking for the line concerned.
+Tips : The end user has no way to know that the server node has received an abort SDO.
+Its is ok, I think.
+If I am CLIENT
+The line *must* be released by the core program.
+Error : Unknown cs +
+Definition at line 608 of file sdo.c. +
+References failedSDO(), getSDOc, getSDOcs, getSDOe, getSDOfreeLine(), getSDOindex, getSDOlineOnUse(), getSDOlineRestBytes(), getSDOn2, getSDOn3, getSDOs, getSDOsubIndex, getSDOt, initSDOline(), lineToSDO(), objdictToSDOline(), resetSDOline(), RestartSDO_TIMER, SDOlineToObjdict(), SDOtoLine(), sendSDO(), setSDOlineRestBytes(), and StopSDO_TIMER. +
+Referenced by canDispatch(). +
+Here is the call graph for this function:
- -
-Definition at line 1282 of file sdo.c. -
-References _readNetworkDict(). +
d | ||
nodeId | ||
index | ||
subIndex | ||
dataType |
+Definition at line 1499 of file sdo.c. +
+References _readNetworkDict(). +
+Here is the call graph for this function:
- -
-Definition at line 1288 of file sdo.c. -
-References _readNetworkDict(). +
d | ||
nodeId | ||
index | ||
subIndex | ||
dataType | ||
Callback |
+Definition at line 1516 of file sdo.c. +
+References _readNetworkDict(). +
+Here is the call graph for this function:
-Reset all sdo buffers -
-Definition at line 131 of file sdo.c. -
-References resetSDOline(). +Reset all sdo buffers
+
d |
+transfer structure initialization +
+Definition at line 169 of file sdo.c. +
+References resetSDOline(). +
+Referenced by switchCommunicationState(). +
+Here is the call graph for this function:
- -
-Definition at line 253 of file sdo.c. -
-References initSDOline(). +
d | ||
line |
+Definition at line 338 of file sdo.c. +
+References initSDOline(). +
+Referenced by _readNetworkDict(), _writeNetworkDict(), closeSDOtransfer(), failedSDO(), proceedSDO(), resetSDO(), and SDOTimeoutAlarm(). +
+Here is the call graph for this function:
- -
-Definition at line 141 of file sdo.c. -
-References setODentry(). +
d | ||
line |
+Definition at line 186 of file sdo.c. +
+References setODentry(). +
+Referenced by proceedSDO(). +
+Here is the call graph for this function:
- -
-Definition at line 93 of file sdo.c. -
-References resetSDOline(), and sendSDOabort(). +
d | ||
id |
+Definition at line 129 of file sdo.c. +
+References resetSDOline(), and sendSDOabort(). +
+Here is the call graph for this function:
- -
-Definition at line 210 of file sdo.c. +
d | ||
line | ||
nbBytes | ||
data |
+Definition at line 279 of file sdo.c. +
+Referenced by proceedSDO().
- -
-Definition at line 354 of file sdo.c. +
d | ||
whoami | ||
sdo |
+get the server->client cobid
+case server. Easy because today only one server SDO is authorized in CanFestival
+case client
+Get the client->server cobid.
+First, have to find at the index where is defined the communication with the server node
+Second, read the cobid client->server
+message copy for sending
+the length of SDO must be 8 +
+Definition at line 498 of file sdo.c. +
+Referenced by _readNetworkDict(), _writeNetworkDict(), proceedSDO(), and sendSDOabort().
- -
-Definition at line 424 of file sdo.c. -
-References sendSDO(). +
d | ||
whoami | ||
index | ||
subIndex | ||
abortCode |
+Definition at line 578 of file sdo.c. +
+References sendSDO(). +
+Referenced by failedSDO(), and SDOTimeoutAlarm(). +
+Here is the call graph for this function:
- -
-Definition at line 342 of file sdo.c. +
d | ||
line | ||
nbBytes |
+Definition at line 479 of file sdo.c. +
+Referenced by proceedSDO().
- -
-Definition at line 1182 of file sdo.c. -
-References _writeNetworkDict(). +
d | ||
nodeId | ||
index | ||
subIndex | ||
count | ||
dataType | ||
data |
+Definition at line 1368 of file sdo.c. +
+References _writeNetworkDict(). +
+Here is the call graph for this function:
-
d | ||
nodeId | ||
index | ||
subIndex | ||
count | ||
dataType | ||
data | ||
Callback |
+Definition at line 1388 of file sdo.c. +
+References _writeNetworkDict(). +
+Here is the call graph for this function:
+