Printable versions
This Page
All Pages
PDF (0.1 MB)





IGatePlugIn GpsGate v2.0 and later

An ActiveX class that implements IGatePlugIn can be used as an EndPoint-PlugIn or Filter-PlugIn in GpsGate.

A Chain can be built from zero to many Filter-PlugIns and (always) one EndPoint-PlugIn.
Chains of (Filters + EndPoint) PlugIns is what you see in the drop downs in the GpsGate Settings dialog. A Chain can act as an Input or Output Chain. In the middle we have a GpsGate switch, with many Output Chains and typically one Input Chains are copnnected to. When GpsGate is configured as an Input MUX, we can have many Inputs as well.

Data going in the direction from an EndPoint to the GpsGate switch, is said to go "upstream". Data in the other direction is said to go "downstream".

File and folder structure Chains are defined by ggXML files (XML format). You can find those files in the "Chains" directory in the GpsGate 2.0 program directory. In this directory "template" chains are found. If you write your own PlugIn or want to create a new Chain simply by combining the existing PlugIns in a new way, you want to save a new ggXML file in the "Chains" directory.

In the "Instances" directory you find ggXML files of Chains that are currently active in GpsGate. The settings for each Chains are saved in the ggXML files as well.

In "HistoryInput" and "HistoryOutput" you find Chains that have been removed or closed, and are not currently active in GpsGate. Those Chains can be found in the drop downs of the GpsGate Settings dialog.

Here is a typical sequence of how GpsGate will access a PlugIn.

First the PlugIn is created. IGatePlugIn.GatePlugInEvents is called to give the PlugIn access to its callback interface. And IGatePlugIn.GateCustomData is called to give the PlugIn its state (saved variables).

When a PlugIn is shown in a dropdown GpsGate will call IGatePlugIn.StatusText to get a short description of it. This text should only be a few charachters long. The description from each PlugIn building up a Chain will be merged and shown as one line describing the Chain.

Before a PlugIn is enabled GpsGate sets IGatePlugIn.IsInput and IGatePlugIn.IsEndPoint. And then finally sets IGatePlugIn.Enabled to true.

If there is an error while enabling the PlugIn an OLE/ActiveX exception should be raised by the PlugIn. Or IGatePlugInEvents.RaiseError should be called.

During run-time GpsGate will call IGatePlugIn.DataFromUpperPlugIn and IGatePlugIn.DataFromLowerPlugIn with data that streams in from other PlugIns in the same Chain. Call IGatePlugInEvents.DataToUpperPlugIn and IGatePlugInEvents.DataToLowerPlugIn to pass on data.

If an error occurs. IGatePlugInEvents.RaiseError should be called. GpsGate will in that case set IGatePlugIn.Enabled to false.

The PlugIn can at anytime call IGatePlugInEvents.StatusChanged, this message will be show to the user. (If the user has the GpsGate Settings dialog opened, and has selected the Chain the PlugIn is part of.)

GpsGate can enable and disable a PlugIn any number of times. If GpsGate fails to enable a PlugIn, a new try will often be made within 10 seconds. This is controlled by <RetryConnect>

Here are some guides:
How to make a PlugIn using Visual Basic 6.0

© 2017 Franson Technology AB, All rights reserved, Contact | | Affiliate |