gclib 2.0.9
Communications API for Galil controllers and PLCs
 
Loading...
Searching...
No Matches
remote_server.cpp
Go to the documentation of this file.
1
10#include "examples.h"
11
12#include <iostream> //std::cout
13
14#ifdef _WIN32
15 #include <conio.h>
16#elif __linux__
17 #include <ncurses.h>
18#endif
19
20using namespace std;
21
22void print_server_message(const char* message)
23{
24#ifdef _WIN32
25 std::cout << message << std::endl;
26#elif __linux__
28 printw("\n");
29#endif
30}
31
40{
41 bool loop = true;
43 char buf[G_SMALL_BUFFER];
44
45 char instructions[] = "<p> Publish this server to the network\n"
46 "<r> Remove this server from the network\n"
47 "<q> Quit\n";
48
49#ifdef _WIN32
50 cout << instructions << std::endl;
51#elif __linux__
52 //These functions set up the ncurses library to capture keyboard input
53 initscr(); // Initialization of ncurses library
54 cbreak(); // Capture one character at a time
55 noecho(); // Do not write back entered characters to the console
56 printw(instructions); //Print instructions to console
57#endif
58
59 while (loop)
60 {
61#ifdef _WIN32
62 switch (_getch()) //Capture keypress
63#elif __linux__
64 switch (getch()) //Capture keypress
65#endif
66 {
67 case 'q': //Quit
68 loop = false;
69 break;
70 case 'p': //Publish this server to the network
71 e(GPublishServer(server_name, true, false));
72 print_server_message("Published Server");
73 break;
74 case 'r': //Remove this server from the network
75 e(GPublishServer(server_name, false, false));
76 print_server_message("Removed Server");
77 break;
78 }
79 }
80#if __linux__
81 endwin(); //Restores terminal to previous state
82#endif
83
84 return GALIL_EXAMPLE_OK;
85}
GCLIB_DLL_EXPORTED GReturn GCALL GPublishServer(GCStringIn name, GOption publish, GOption save)
Uses GUtility(), G_UTIL_GCAPS_PUBLISH_SERVER to publish local gcaps server to the local network.
Definition gclibo.c:189
int GReturn
Every function returns a value of type GReturn. See gclib_errors.h for possible values.
Definition gclib.h:93
#define G_SMALL_BUFFER
Most reads from Galil are small. This value will easily hold most, e.g. TH, TZ, etc.
Definition gclib.h:89
void e(GReturn rc)
A trivial, C++ style return code check used in Galil's examples and demos.
Definition examples.h:33
GReturn message(GCon g)
Demonstrates how to receive messages from the controller and detect differences in Trace and crashed ...
Definition message.cpp:14
GReturn remote_server(const char *server_name)
Publishes local gcaps server to the network.
GReturn vector(GCon g, char *file)
Puts controller into Vector Mode and accepts a file defining vector points.
Definition vector.cpp:36