examples/TestMasterSlave/Slave.c
author etisserant
Mon, 02 Jul 2007 18:22:58 +0200
changeset 236 905677ed00f3
parent 201 2966cd34162a
child 284 24bf3d692993
permissions -rw-r--r--
Full preliminary implementation of TPDO transmit type:
- SYNC (N) (1-240)
- RTR only + SYNC (252)
- RTR only (253)
- EVENT, with timer and inhibit time (254 and 255)

User app have to call sendPDOevent(d) to eventually signal mapped data changes.
Callbacks added to 0x140N, TPDO comm parameters for on the fly timers values change.
TestMasterSlave updated.
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     1
/*
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     2
This file is part of CanFestival, a library implementing CanOpen Stack. 
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     3
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     4
Copyright (C): Edouard TISSERANT and Francis DUPIN
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     5
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     6
See COPYING file for copyrights details.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     7
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     8
This library is free software; you can redistribute it and/or
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
     9
modify it under the terms of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    10
License as published by the Free Software Foundation; either
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    11
version 2.1 of the License, or (at your option) any later version.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    12
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    13
This library is distributed in the hope that it will be useful,
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    14
but WITHOUT ANY WARRANTY; without even the implied warranty of
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    16
Lesser General Public License for more details.
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    17
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    18
You should have received a copy of the GNU Lesser General Public
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    19
License along with this library; if not, write to the Free Software
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    20
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    21
*/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    22
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    23
#include "Slave.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    24
#include "Master.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    25
#include "TestMasterSlave.h"
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    26
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    27
/*****************************************************************************/
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    28
void TestSlave_heartbeatError(UNS8 heartbeatID)
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    29
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    30
	eprintf("TestSlave_heartbeatError %d\n", heartbeatID);
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    31
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    32
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    33
void TestSlave_initialisation()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    34
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    35
	eprintf("TestSlave_initialisation\n");
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    36
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    37
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    38
void TestSlave_preOperational()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    39
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    40
	eprintf("TestSlave_preOperational\n");
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    41
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    42
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    43
void TestSlave_operational()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    44
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    45
	eprintf("TestSlave_operational\n");
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    46
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    47
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    48
void TestSlave_stopped()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    49
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    50
	eprintf("TestSlave_stopped\n");
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    51
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    52
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    53
void TestSlave_post_sync()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    54
{
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    55
      eprintf("TestSlave_post_sync\n");
201
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    56
      
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    57
      SlaveMap1=1;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    58
      SlaveMap2=1;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    59
      SlaveMap3=0;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    60
      SlaveMap4=0;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    61
      SlaveMap5=1;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    62
      SlaveMap6=0;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    63
      SlaveMap7=1;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    64
      SlaveMap8=0;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    65
      SlaveMap9=16;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    66
      SlaveMap10 = 0xff00ff00;
2966cd34162a Boolean variable mapped in PDO
greg
parents: 172
diff changeset
    67
      SlaveMap11 = 0xabcd;
236
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    68
      SlaveMap12 += SlaveMap12 > 0x80 ? 0 : 1;
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    69
      eprintf("Slave: %d %d %d %d %d %d %d %d %d %x %x %d %d \n",
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    70
      	SlaveMap1, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    71
      	SlaveMap2, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    72
      	SlaveMap3, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    73
      	SlaveMap4, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    74
      	SlaveMap5, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    75
      	SlaveMap6, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    76
      	SlaveMap7, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    77
      	SlaveMap8, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    78
      	SlaveMap9, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    79
      	SlaveMap10,
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    80
      	SlaveMap11, 
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    81
      	SlaveMap12,
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    82
      	SlaveMap13);
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    83
}
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    84
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    85
void TestSlave_post_TPDO()
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    86
{
236
905677ed00f3 Full preliminary implementation of TPDO transmit type:
etisserant
parents: 201
diff changeset
    87
        SlaveMap13 += 1;
0
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    88
	eprintf("TestSlave_post_TPDO\n");
4472ee7c6c3e Commit a new cvs repo.
etisserant
parents:
diff changeset
    89
}
161
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    90
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    91
void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex)
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    92
{
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    93
	/*TODO : 
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    94
	 * - call getODEntry for index and subindex, 
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    95
	 * - save content to file, database, flash, nvram, ...
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    96
	 * 
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    97
	 * To ease flash organisation, index of variable to store
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    98
	 * can be established by scanning d->objdict[d->ObjdictSize]
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
    99
	 * for variables to store.
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   100
	 * 
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   101
	 * */
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   102
	eprintf("TestSlave_storeODSubIndex : %4.4x %2.2x\n", wIndex,  bSubindex);
c4908cc776a9 SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI)
etisserant
parents: 149
diff changeset
   103
}