GI.service

GI.service is the platform independent base application of GI.bench. Its main tasks are:

  • Starts all other software components (GI.bench-UI, GI.config, GI.com, GI.data)
  • Creates XML-RPC routes to all other software components as well as to connected devices (Q.Stations)
  • Contains a minimal GUI for „global control“ (system tray)
  • Provides different API's (XML-RPC, REST,…) as central connection node to GI.bench-UI or third party systems
  • Web-Server

1. System Tray

GI.service runs in system tray and contains a minimal GUI for “global control” of the software components.

s1

ll GI.bench components are registered to GI.service, and can be started/stopped via system tray. The GUI also provides:

  • License information for GI.bench
  • Version information of all software components
  • Port overview of all software components
s2

2. Interfaces

The special feature of GI.service is the availability of multiple Interfaces on a single Port to overlying applications.

Default Port: 8090

2.1 REST API

2.2 XML-RPC

The XML-RPC interface of GI.service is the main communication interface between all software parts. It provides routes to GI.com, GI.config, GI.data and connected devices as well as some service APIs.

Creating XML-RPC Routes:

To have full functionality in GI.bench-UI, GI.service takes care, that all other necessary software parts are started and that all routes/connections to them are established (GI.bench-UI can also be auto-started together with GI.service).

During this process, it automatically sets the XML-RPC Ports for each component. Therfore GI.service scans a range of predefined ports for availability (default XmlRpcPortRange: min=1240, max=1300). When the XML-RPC routes are generated, all the XML-RPC APIs of GI.config, GI.data or GI.com can be accessed directly through GI.service.

The routes are:

  • /GI.config
  • /GI.com
  • /GI.data
s3

Additional routes are created for each device, added to GI.service via GI.bench-UI. The new routes are created with the devices' IP-address and its internal routes to GI.config and GI.com (see overview), for example:

  • /192.168.5.24 → route to the devices XML-RPC interface
  • /192.168.5.24/GI.config → route to Q.Stations GI.config process, for configuration of the controller when connected to GI.service.
  • /192.168.5.24/GI.com → route to Q.Stations GI.com process

2.3 WebServer

3. giservice_ConfigAPI

3.1 Enums

3.1.1 EnumConnectionKind

 

Name Value Comment
Local 0  
Cloud 1  

3.2 Structs

3.2.1 StructRemoteRoute (23.0)

  • Internal type:
    class CStructRemoteRoute : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Hostname std::string  
XmlRpcPort int32_t Default: 0
Name std::string  
 

3.2.2 StructExecConfig (23.2)

  • Internal type:
    class CStructExecConfig : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Name std::string  
AutoStart bool Default: false
StartOnTrayItemDoubleClick bool Default: false
RouteTimeout int32_t Default: 0
Directory std::string  
Executable std::string  
Arguments std::string  
CreateRoute bool Default: true
Hostname std::string  
XmlRpcPort int32_t Default: 0
 

3.2.3 StructConfigInfoEntry (23.3)

  • Internal type:
    class CStructConfigInfoEntry : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Name std::string  
Running bool Default: false
RouteName std::string  
Errors bool Default: false
 

3.2.4 StructDeviceInfoEntry (23.4)

  • Internal type:
    class CStructDeviceInfoEntry : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
ConnectionType std::string  
ConnectionString std::string  
Routes array of std::string  
 

3.2.5 StructPortRange (23.5)

  • Internal type:
    class CStructPortRange : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Min int32_t Default: 0
Max int32_t Default: 0
 

3.2.6 StructConfig (23.6)

  • Internal type:
    class CStructConfig : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
ProjectsDataPath std::string  
TempDataPath std::string  
DataArchiveRootPath std::string  
LogFilePath std::string  
Language std::string  
ExecConfigs array of CStructExecConfig  
APIValidationMode std::string  
 

3.2.7 StructUpdatePartConfig (23.7)

  • Internal type:
    class CStructUpdatePartConfig : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Name std::string  
Version std::string  
Changelog std::string  
UpdateFiles array of std::string  
RemoveFiles array of std::string  
 

3.2.8 StructUpdateConfig (23.8)

  • Internal type:
    class CStructUpdateConfig : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
BuildVersion std::string  
BuildDate std::string  
Parts array of CStructUpdatePartConfig  
 

3.2.9 StructGlobalSettings (23.10)

  • Internal type:
    class CStructGlobalSettings : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
AppDataPath std::string  
BaseDirectory std::string  
Port int32_t Default: 0
XmlRpcRoutes_PortRange CStructPortRange  
wwwroot std::string  
RemoteRoutes array of CStructRemoteRoute  
UpdateURL std::string  
 

3.2.10 StructGroup (23.11)

  • Internal type:
    class CStructGroup : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
ID std::string  
Name std::string  
Elements array of std::string  
 

3.2.11 StructProjectMetaData (23.12)

  • Internal type:
    class CStructProjectMetaData : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
Groups array of CStructGroup  
 

3.2.12 StructDeviceInfo (23.13)

  • Internal type:
    class CStructDeviceInfo : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
DeviceInfo GInsXmlRpcStdAPI::CGIns_DeviceInfo  
SystemState DiagnosticAPI::CTypeSystemState  
ConnectionType std::string  
AuthenticationToken std::string  
Traffic array of GInsXmlRpcStdAPI::CGIns_Info_NetworkTraffic  
 

3.2.13 StructProjectInfoEntry (23.14)

  • Internal type:
    class CStructProjectInfoEntry : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
ProjectPath std::string  
ProjectName std::string  
ProjectDate GInsXmlRpcStdAPI::CGIns_Info_DateTimeValue  
 

3.2.14 StructProjectInfo (23.15)

  • Internal type:
    class CStructProjectInfo : public GInsXmlRpc::XmlRpcValue 
Name Type Comment
LoadedProject CStructProjectInfoEntry  
StartedProject CStructProjectInfoEntry  
 

3.3 Methods

3.3.1 Version

 

Results
Name Type Comment
Version std::string Default: "0.1"
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.2 GetConfig

 

Results
Name Type Comment
Config CStructConfig  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.3 SetConfig

 

Parameters
Name Type Comment
AppDataPathConfig CStructConfig  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.4 GetGlobalSettings

 

Results
Name Type Comment
Config CStructGlobalSettings  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.5 AddDevice

 

Parameters
Name Type Comment
ConnectionType GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
ConnectionString std::string  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
Routes array of std::string  
Device CStructDeviceInfo  
 
 

3.3.6 RemoveDevice

 

Parameters
Name Type Comment
Device GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.7 ListDevices

 

Results
Name Type Comment
Devices array of CStructDeviceInfo  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.8 StartProcess

 

Parameters
Name Type Comment
Process GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.9 StopProcess

 

Parameters
Name Type Comment
Process GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.10 AddProcess

 

Parameters
Name Type Comment
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 
 

3.3.11 RemoveProcess

 

Parameters
Name Type Comment
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.12 ListProcesses

 

Results
Name Type Comment
Result array of CStructConfigInfoEntry  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.13 Settings

 

Parameters
Name Type Comment
Localization GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.14 GenerateLicenseRequest

 

Results
Name Type Comment
LicenseRequest std::string  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.15 GetLicenseInformation

 

Results
Name Type Comment
Company std::string  
Name std::string  
ValidSince std::string  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.16 HandleProject

 

Parameters
Name Type Comment
Action GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList Use Type: COptions::CCommon::CHandleProjectType::…
ProjectPath std::string  
ProjectName std::string  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
ReturnValue GInsXmlRpc::XmlRpcValue  
 

3.3.17 GetProjectState

 

Parameters
Name Type Comment
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
ProjectState CStructProjectInfo  
 

3.3.18 CreateGroup

 

Parameters
Name Type Comment
Name std::string  
ID std::string  
 
Results
Name Type Comment
ID std::string  
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.19 SetGroup

 

Parameters
Name Type Comment
Group CStructGroup  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.20 RemoveGroups

 

Parameters
Name Type Comment
IDs GInsXmlRpcStdAPI::CGIns_Edit_ElementListSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.21 GetGroups

 

Parameters
Name Type Comment
IDs GInsXmlRpcStdAPI::CGIns_Edit_ElementListSelectionList  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
Groups array of CStructGroup  
 

3.3.22 AddGroupElements

 

Parameters
Name Type Comment
GroupID GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
ElementIDs array of std::string  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State  
 

3.3.23 RemoveGroupElements

 

Parameters
Name Type Comment
GroupID GInsXmlRpcStdAPI::CGIns_Edit_ElementSelectionList  
ElementIDs array of std::string  
 
Results
Name Type Comment
ReturnState GInsXmlRpcStdAPI::CGIns_Info_State