gclib  307
Communications API for Galil controllers and PLCs
 All Data Structures Files Functions Variables Typedefs Macros Pages
gclib.h
Go to the documentation of this file.
1 
6 #ifndef I_D48432D9_1FA3_4C7D_B44C_05F8B9000ADF
7 #define I_D48432D9_1FA3_4C7D_B44C_05F8B9000ADF
8 
9 //set library visibility for gcc and msvc
10 #if BUILDING_GCLIB && HAVE_VISIBILITY
11 #define GCLIB_DLL_EXPORTED __attribute__((__visibility__("default")))
12 #elif BUILDING_GCLIB && defined _MSC_VER
13 #define GCLIB_DLL_EXPORTED __declspec(dllexport)
14 #elif defined _MSC_VER
15 #define GCLIB_DLL_EXPORTED __declspec(dllimport)
16 #else
17 #define GCLIB_DLL_EXPORTED
18 #endif
19 
20 #include "gclib_record.h" // Galil data record structs and unions.
21 #include "gclib_errors.h" // GReturn error code values and strings.
22 
23 #ifdef _WIN32
24 #define GCALL __stdcall
25 #else
26 #define GCALL
27 #endif
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33  //Constants for function arguments
34 #define G_DR 1
35 #define G_QR 0
36 #define G_BOUNDS -1
37 #define G_CR 0
38 #define G_COMMA 1
39 
40  //Constants for GUtility()
41 #define G_UTIL_TIMEOUT 1
42 #define G_UTIL_TIMEOUT_OVERRIDE 2
43 #define G_USE_INITIAL_TIMEOUT -1
44 #define G_UTIL_VERSION 128
45 #define G_UTIL_INFO 129
46 #define G_UTIL_SLEEP 130
47 #define G_UTIL_ADDRESSES 131
48 #define G_UTIL_IPREQUEST 132
49 #define G_UTIL_ASSIGN 133
50 #define G_UTIL_GCAPS_KEEPALIVE 134
51 
52  //Convenience constants
53 #define G_SMALL_BUFFER 1024
54 #define G_HUGE_BUFFER 524288
55 
56  typedef int GReturn;
57  typedef void* GCon;
58  typedef unsigned int GSize;
59  typedef int GOption;
60  typedef char* GCStringOut;
61  typedef const char* GCStringIn;
62  typedef char* GBufOut;
63  typedef const char* GBufIn;
64  typedef unsigned char GStatus;
65  typedef void* GMemory;
66 
68  GCLIB_DLL_EXPORTED GReturn GCALL GOpen(GCStringIn address, GCon* g);
114  GCLIB_DLL_EXPORTED GReturn GCALL GClose(GCon g);
134  GCLIB_DLL_EXPORTED GReturn GCALL GRead(GCon g, GBufOut buffer, GSize buffer_len, GSize* bytes_read);
155  GCLIB_DLL_EXPORTED GReturn GCALL GWrite(GCon g, GBufIn buffer, GSize buffer_len);
172  GCLIB_DLL_EXPORTED GReturn GCALL GCommand(GCon g, GCStringIn command, GBufOut buffer, GSize buffer_len, GSize* bytes_returned);
187  GCLIB_DLL_EXPORTED GReturn GCALL GProgramDownload(GCon g, GCStringIn program, GCStringIn preprocessor);
236  GCLIB_DLL_EXPORTED GReturn GCALL GProgramUpload(GCon g, GBufOut buffer, GSize buffer_len);
249  GCLIB_DLL_EXPORTED GReturn GCALL GArrayDownload(GCon g, const GCStringIn array_name, GOption first, GOption last, GCStringIn buffer);
266  GCLIB_DLL_EXPORTED GReturn GCALL GArrayUpload(GCon g, const GCStringIn array_name, GOption first, GOption last, GOption delim, GBufOut buffer, GSize buffer_len);
283  GCLIB_DLL_EXPORTED GReturn GCALL GRecord(GCon g, union GDataRecord* record, GOption method);
310  GCLIB_DLL_EXPORTED GReturn GCALL GMessage(GCon g, GCStringOut buffer, GSize buffer_len);
343  GCLIB_DLL_EXPORTED GReturn GCALL GInterrupt(GCon g, GStatus* status_byte);
365  GCLIB_DLL_EXPORTED GReturn GCALL GFirmwareDownload(GCon g, GCStringIn filepath);
386  GCLIB_DLL_EXPORTED GReturn GCALL GUtility(GCon g, GOption request, GMemory memory1, GMemory memory2);
478 #ifdef __cplusplus
479 } //extern "C"
480 #endif
481 
482 #endif //I_D48432D9_1FA3_4C7D_B44C_05F8B9000ADF
int GOption
Option integer for various formatting, etc.
Definition: gclib.h:59
unsigned int GSize
Size of buffers, etc.
Definition: gclib.h:58
GCLIB_DLL_EXPORTED GReturn GCALL GOpen(GCStringIn address, GCon *g)
Open a connection to a Galil Controller.
GCLIB_DLL_EXPORTED GReturn GCALL GWrite(GCon g, GBufIn buffer, GSize buffer_len)
Performs a write on the connection.
GCLIB_DLL_EXPORTED GReturn GCALL GUtility(GCon g, GOption request, GMemory memory1, GMemory memory2)
Provides read/write access to driver settings and convenience features based on the request variable...
void * GMemory
Pointer to untyped memory for use in GUtility().
Definition: gclib.h:65
GCLIB_DLL_EXPORTED GReturn GCALL GRead(GCon g, GBufOut buffer, GSize buffer_len, GSize *bytes_read)
Performs a read on the connection.
char * GBufOut
Data output from the library. No null-termination implied. Returned values may be null-terminated...
Definition: gclib.h:62
GCLIB_DLL_EXPORTED GReturn GCALL GArrayUpload(GCon g, const GCStringIn array_name, GOption first, GOption last, GOption delim, GBufOut buffer, GSize buffer_len)
Uploads array data from the controller's array table.
GCLIB_DLL_EXPORTED GReturn GCALL GMessage(GCon g, GCStringOut buffer, GSize buffer_len)
Provides access to unsolicited messages from the controller.
GCLIB_DLL_EXPORTED GReturn GCALL GInterrupt(GCon g, GStatus *status_byte)
Provides access to PCI and UDP interrupts from the controller.
GCLIB_DLL_EXPORTED GReturn GCALL GFirmwareDownload(GCon g, GCStringIn filepath)
Upgrade firmware.
void * GCon
Connection handle. Unique for each connection in process. Assigned a non-zero value in GOpen()...
Definition: gclib.h:57
GCLIB_DLL_EXPORTED GReturn GCALL GProgramDownload(GCon g, GCStringIn program, GCStringIn preprocessor)
Downloads a program to the controller's program buffer.
GCLIB_DLL_EXPORTED GReturn GCALL GArrayDownload(GCon g, const GCStringIn array_name, GOption first, GOption last, GCStringIn buffer)
Downloads array data to a pre-dimensioned array in the controller's array table.
GCLIB_DLL_EXPORTED GReturn GCALL GCommand(GCon g, GCStringIn command, GBufOut buffer, GSize buffer_len, GSize *bytes_returned)
Performs a command-and-response transaction on the connection.
GCLIB_DLL_EXPORTED GReturn GCALL GProgramUpload(GCon g, GBufOut buffer, GSize buffer_len)
Uploads a program from the controller's program buffer.
int GReturn
Every function returns a value of type GReturn. See gclib_errors.h for possible values.
Definition: gclib.h:56
const char * GCStringIn
C-string input to the library. Implies null-termination.
Definition: gclib.h:61
GCLIB_DLL_EXPORTED GReturn GCALL GRecord(GCon g, union GDataRecord *record, GOption method)
Provides a fresh copy of the controller's data record. Data is cast into a union, GDataRecord...
const char * GBufIn
Data input to the library. No null-termination, function will have a GSize to indicate bytes to write...
Definition: gclib.h:63
unsigned char GStatus
Interrupt status byte.
Definition: gclib.h:64
GCLIB_DLL_EXPORTED GReturn GCALL GClose(GCon g)
Closes a connection to a Galil Controller.
char * GCStringOut
C-string output from the library. Implies null-termination.
Definition: gclib.h:60
#define GCALL
Specify calling convention for Windows.
Definition: gclib.h:24
Data record union, containing all structs and a generic byte array accessor.