Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Ivy application


    1  Services
    2  Properties
       2.1  Patterns syntax
          2.1.1  Patterns replacement
    3  Runtime
    4  Notes
    5  See also

ivy
Function communicate with an Ivy bus
Distribution ivyModule-bin-.zip
Jar files ivyModule.jar
Modules ivy
Provided services through module configuration
Required services through module configuration
Optional properties host
sendPatterns
receivePatterns

The built-in Ivy application allows to communicate with an Ivy bus[1]
For more information about the concepts used in Ivy, see github.com/truillet/ivy
.

Services

Only the services for which the Ivy Application Module is a provider or subscriber will be taken into account. For example:
      <interfaces>
         <subscribe service="aircraft" />
         <subscribe service="scenario" />
      </interfaces>
Note that only the following data types are supported by the Ivy module:
  • short
  • int
  • float
  • double
  • boolean
  • string

Properties

The Ivy application has three optional properties:
  • host: the host name and port for the Ivy bus. Note that this property should be not null if the Ivy Module must create the bus[2]
    For example, we can have for the host property: 127.0.0.1:2010
    , and null if the Ivy Module will only connect to a bus created by another executable
  • sendPatterns: the Ivy patterns for the services sent by the executable connected to the Ivy bus
  • receivePatterns: the Ivy patterns for the services received by the executable connected to the Ivy bus
Note that if none of these properties are defined, no services will be notified or invoked by an executable connected to the Ivy bus, which means that the Ivy module would never execute.

Patterns syntax

The syntax for the sendPatterns and receivePatterns values are strings which may contain ${data_name} expressions. For example:
      <properties>
         <application name="ivy" >
            <module name="module1" >
               <moduleProperty key="sendPatterns" >
                  >mapValue key="outputService1" value="^IMRP ${posX} ${posY}" />
                  >mapValue key="outputService2" value="^IMRP2 ${bool1} ${bool2}" />
               </moduleProperty>
            </module>
         </application>
      </properties>

Patterns replacement

The module will replace the ${data_name} by (.*). For example, in the above case, the module will listen for the following patterns on the Ivy bus:
  • ^IMRP posX=(.*) posY=(.*) ^IMRP2 bool1=(.*) bool2=(.*)
Note that the module will check if the data names exist (and be of supported data types) for the ${data_name} patterns.

Runtime

During runtime:
  • For each service described in the sendPatterns property, the module will listen to the converted patterns from the Ivy bus, and decode the datas according to their types. The associated services will be invoked
  • For each notification from a service described in the receivePatterns property, the module will convert the service datas and send the associated Ivy string to the Ivy bus

Notes

  1. ^ For more information about the concepts used in Ivy, see github.com/truillet/ivy
  2. ^ For example, we can have for the host property: 127.0.0.1:2010

See also


Categories: builtin-applis

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence