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