summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/04_dds4ccm.html
blob: dc943287082535993e8387e84692afc4bdd15e31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!--//$Id$  -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>DDS4CCM Tutorial Shapes - DDS4CCM</title>
</head>

<body>
  <table width="100%" border="0">
    <tr>
      <td align="left"><a href="./03_executors.html">Previous<a></td>
      <td align="center"><img width="4%" height="5%" src="./images/images.png"/></td>
      <td align="right"><a href="./05_coding.html">Next<a></td>
    </tr>
  </table>
  <hr />

  <h1>DDS4CCM basics</h1>
  <p>
    The DDS4CCM connector itself is a CCM component placed between your component
    and DDS itself.<br/>
    In DDS there're basically two entities: DataWriters and DataReaders.
    To gain access to these entities, the DDS4CCM connector offers two basic types
    of ports (connectors) : DDS_Event and DDS_State.
    These basic ports have extended ports which allow the user to access the actual
    datareaders and datawriters. It'll depend on the functionality of your component
    which type of basic port you're going to use.<br/>
    A DDS_Event DDS4CCM connector consists of the following extented ports:
    <ul>
      <li>A DDS_Write port</li>
      <li>A DDS_Get port</li>
      <li>A DDS_Listen port</li>
    </ul>
    A DDS_State DDS4CCM connector consists of the following extended ports:
    <ul>
      <li>A DDS_Update port</li>
      <li>A DDS_Read port</li>
      <li>A DDS_Get port</li>
      <li>A DDS_Listen port</li>
      <li>A DDS_StateListen port</li>
    </ul>
  </p>
  <p>
    See <a href="../../../idl/ccm_dds.idl">ccm_dds.idl<a> for a complete overview
    of connector types, extend ports and their methods.
  </p>
  <h2>Example</h2>
  <p>
    The Sender component of this Shapes tutorial writes a ShapeType struct (sample)
    to DDS every time the Controller invokes setSize or setLocation.
    The Sender therefor is connected to a DDS_Event connector and uses the
    DDS_Write extended port. To write a sample, the Sender uses the write_one method
    of the DDS_Write extended port (see ccm_dds.idl and the Shapes Sender
    executor file).
  </p>
  <p>
    The Receiver listens to DDS for data. DDS invokes a listener callback method (
    on_data_available) on the DDS4CCM connector which in turn invokes the
    on_data_available method on the Receiver component. To establish all this
    the Receiver is connected to a DDS_Event connector and uses the DDS_Listen
    extended port (see ccm_dds.idl and the Shapes Receiver executor file).
  </p>
  <p>
    All this will be discussed in more detail later in this tutorial.
  </p>

  <hr />
  <table width="100%" border="0">
    <tr>
      <td align="left"><a href="./03_executors.html">Previous<a></td>
      <td align="center"><img width="4%" height="5%" src="./images/images.png"/></td>
      <td align="right"><a href="./05_coding.html">Next<a></td>
    </tr>
  </table>
</body>