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.

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
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

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 |
|
3.3.4 GetGlobalSettings
| Results |
| Name |
Type |
Comment |
| Config |
CStructGlobalSettings |
|
| ReturnState |
GInsXmlRpcStdAPI::CGIns_Info_State |
|
3.3.5 AddDevice
| Results |
| Name |
Type |
Comment |
| ReturnState |
GInsXmlRpcStdAPI::CGIns_Info_State |
|
| Routes |
array of std::string |
|
| Device |
CStructDeviceInfo |
|
3.3.6 RemoveDevice
3.3.7 ListDevices
| Results |
| Name |
Type |
Comment |
| Devices |
array of CStructDeviceInfo |
|
| ReturnState |
GInsXmlRpcStdAPI::CGIns_Info_State |
|
3.3.8 StartProcess
3.3.9 StopProcess
3.3.10 AddProcess
| Parameters |
| Name |
Type |
Comment |
3.3.11 RemoveProcess
| Parameters |
| Name |
Type |
Comment |
3.3.12 ListProcesses
| Results |
| Name |
Type |
Comment |
| Result |
array of CStructConfigInfoEntry |
|
| ReturnState |
GInsXmlRpcStdAPI::CGIns_Info_State |
|
3.3.13 Settings
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 |
|
3.3.20 RemoveGroups
3.3.21 GetGroups
| Results |
| Name |
Type |
Comment |
| ReturnState |
GInsXmlRpcStdAPI::CGIns_Info_State |
|
| Groups |
array of CStructGroup |
|
3.3.22 AddGroupElements
3.3.23 RemoveGroupElements