All AgConnect applications must be compiled with the
AGCONNECT
preprocessor definition. The
_AFXDLL
preprocessor definition is also required. If
the AGCONNECT
flag isn't defined, the compiler doesn't
recognize several internal variable types defined in
AgUtMsgCommon.h
.
In addition to source and header files, AgConnect is shipped with a library file, AgConnect.lib that must be linked when generating any AgConnect executables.
All AgConnect applications must have the following variable defined:
char AgEAppName[ ]= "<AppName>";
where <AppName>
is any name you choose, and
is used in AgUtMsg
messages. If your source file is
written in C++, be sure to define AgEAppName
as
follows:
extern "C" {
char AgEAppName[ ]="<AppName>";
}
Any C or C++ program that uses AgConnect functions must include
AgConnect.h
:
#include "AgConnect.h"
Four variables must be defined. First, the context variable,
which identifies the connection being used, should be initialized
to NULL
:
char *connection1 = NULL;
Second, AgConnect requires a file name string to be defined. The file name can be set to NULL, in which case the default file is used, or it can be set to the AgConnect initialization file you wish to use:
char *initFileName = NULL;
Third, AgConnect needs to know the name of the STK connection.
This variable takes the form of server:port
:
static char connectName[256] = "localhost:5001";
Finally, AgConnect must have a place to store the data returned
by Connect commands. Therefore, a variable of type
AgTConReturnInfo
should be defined:
AgTConReturnInfo returnInfo;
At this point, you can initialize AgConnect by calling:
AgConInit(initFileName);
Next, a connection to STK can be opened up with the
AgConOpenSTK()
function:
AgConOpenSTK(&connection1, NULL, connectName);
The context
variable passed to this function should
be passed to any future functions that need to talk to this
connection.
Now that AgConnect is initialized and a connection to STK has been established, commands can be sent to STK using a call similar to the one shown here, which loads a scenario (whose file is "C:\STKData\BasicScenarios\Basic.sc") into STK:
AgConProcessSTKCmd (connection1, "Load / Scenario C:\STKData\BasicScenarios\Basic.sc", &returnInfo);
If at any time you wish to receive an asynchronous packet of data to be returned from STK, use the following command:
AgConGetAsync(connection1, &returnInfo);
When you wish to close the connection to STK, use the following command:
AgConCloseSTK(&connection1);
Finally, the call:
AgConShutdownConnect();
frees the memory internally allocated by the AgConnect library. Subsequent to this call, the application can be shut down.
The example code shows a complete program that opens a connection to STK, loads a scenario, sends the AllAccess Connect command, closes the connection and prints out the data.
STK Programming Interface 11.0.1