Agents

An AggreGate Agent is a software library inherited into the device's firmware or a small separate application running on a communication module embedded into the device. This hardware/software combination acts as a mediator between a hardware device's "main" firmware and AggreGate Server. The connection between the AggreGate Server and the agent is established over the IP network. The Agent is handling server communications and the conversion of the device's internal data structures into the format of the unified data model.

When using an Agent, data conversion is performed on the device side. Agent converts internal device data and data from its hardware I/O interfaces into the AggreGate protocol and sends it to the AggreGate Server. When receiving instructions from the AggreGate Server, the Agent uses them to control and configure the device.

In effect, an Agent application is composed of two primary parts:

  • Device-Specific side: This part of the code is written specifically for the particular hardware device connected to the Agent hardware platform. This is the only part that has to be modified to make AggreGate work with any new hardware device.

  • Network side: This part of the code handles all AggreGate Server communications. This is a generic part. In effect, it communicates with AggreGate Server using the AggreGate Communications Protocol. This part never has to be changed to make AggreGate work with a new device.

You may think of the AggreGate as a hardware-based driver or protocol converter. If you have a hardware device you wish to plug into AggreGate so it would exploit all of the power and benefits of the system, all you have to do is just include an open-source Agent library to your firmware/software.

Agent application provides AggreGate operators several methods to control, monitor, and configure hardware devices connected to it:

  • It exposes the internal settings of your device to AggreGate Server so that settings such as the Number of Records to Keep (for a time clock) or Maximum Permitted Speed (for a forklift) will be seamlessly displayed and edited in any AggreGate Server User Interface (such as AggreGate Client ).

  • It allows the execution of different operations with the device, such as Perform Self Test or Send Message To Device LCD. Operators may specify input parameters for every operation and view their execution results.

  • It helps to monitor events generated by a device, such as “user has entered the area” for an Access Control Terminal. AggreGate Server stores all device events persistently and provides access to their history for system operators.

Agent Device Driver

Agent has a counterpart on AggreGate Server: a Device Driver called Agent Driver. This driver is responsible for all communications between AggreGate Server and agents.

Using Agent as a Core Hardware Component

Since Tibbo provides a full portfolio of powerful programmable modules and controllers along with the free IDE, another option would be to build your system around a Tibbo processor running the Agent application.

In such a case, you could hook the peripheral components of your system (LCD, keypad, etc.) directly to the Tibbo processor and use it as the main CPU for your system. You would then code your device logic in Tibbo BASIC or C programming languages. This would provide your new device with native AggreGate functionality.

Customizing Agent for Your Devices

The Agent application needs to be customized to connect any existing or newly created device to AggreGate. You just have to include the Agent library in your software/firmware and provide:

  • Definitions for device settings, operations, and events

  • Code that implements reading and writing device settings

  • Code for forwarding operation requests to devices

  • Code for polling the device for events or receiving events asynchronously and sending them to the server

Agent SDK

For information about implementing Agent as a part of a PC-based application based on Java or .NET technology, see the Agent SDK section.

Was this page helpful?