| gclib 2.0.7 Communications API for Galil controllers and PLCs |

main.cpp
Go to the documentation of this file.
1
4 #include "Galil.h"
5 #include <iostream>
6 #include <iomanip>
7 #include <Windows.h> //Sleep
8 using namespace std;
9
10 int run(int argc, char *argv[])
11 {
12 try
13 {
14 cout << Galil::libraryVersion() << '\n';
15
16 for (string s : Galil::addresses())
17 cout << s << '\n';
18
19 //Galil g("GALILPCI1");
20 Galil g("192.168.0.100");
21
22 try
23 {
24 g.command("xx"); //will throw string
25 }
26 catch (string s)
27 {
28 cout << s << endl;
29 }
30
31 cout << g.connection() << '\n';
32 cout << "MGTIME: [" << g.command("MG TIME") << "]\n"; //brackets to visually check trimming
33 //g.command("UI 0");
34 //cout << "Interrupt: " << g.interrupt() << '\n'; //30000 Bug 2047 - UDP interrupt payload byte count incorrect
35 g.programDownload("WT 600\rMG \"Message from DMC code\", TIME\rEN");
36 cout << '\n' << g.programUpload() << '\n' << '\n';
37 g.command("XQ");
38
39 Sleep(1000);
40 cout << g.message(700);
41
42
43 vector<double> down;
44 down.push_back(3.1415);
45 down.push_back(2.7183);
46 down.push_back(1.6180);
47 down.push_back(42);
48 g.arrayDownload(down, "mynums");
49 g.arrayUploadFile(); //uses the default arrays.csv
50 g.command("DA *[]");
51 g.arrayDownloadFile(); //uses the default arrays.csv
52 vector<double> up = g.arrayUpload("mynums");
53 for (auto d : up) cout << d << " ";
54 cout << '\n';
55
56 // g.firmwareDownloadFile("\\\\rd3\\applications2\\firmware\\hex2\\4000.dmc\\dmc-4000-r12b-bck.hex");
57 // cout << g.connection() << '\n';
58 // g.firmwareDownloadFile("\\\\rd3\\applications2\\firmware\\hex2\\4000.dmc\\dmc-4000-r12b.hex");
59 // cout << g.connection() << '\n';
60
61 g.write("MG TIME \r");
62 cout << g.read();
63 cout << "\n\n";
64
65 //Data record
66
67
68 vector<string> sources = g.sources();
69 vector<char> r = g.record("QR");
70 for (auto s : sources)
71 {
72 cout << left << setw(10)
73 << g.sourceValue(r, s)
74 << setw(10) << s
75
76 << g.source("Description", s)
77 << ", " << g.source("Units", s)
78 << ", S" << g.source("Scale", s)
79 << " O" << g.source("Offset", s)
80 << '\n';
81 }
82 cout << "\n\n";
83
84 //modify source properties
85 /*g.setSource("Units", "TIME", "seconds");
86 g.setSource("Description", "TIME", "Seconds counter");
87 g.setSource("Scale", "TIME", "1024");
88
89 cout << "TIME" << ""
90 << ", " << g.source("Description", "TIME")
91 << ":" << g.sourceValue(g.record(), "TIME")
92 << " " << g.source("Units", "TIME")
93 << " S:" << g.source("Scale", "TIME")
94 << " O:" << g.source("Offset", "TIME")
95 << '\n';*/
96
97
98 return 0;
99 }
100 catch (string s)
101 {
102 cout << s;
103 return 1;
104 }
105
106 }
107
108
109 int main(int argc, char *argv[])
110 {
111 int rc = run(argc, argv);
112 #ifdef _DEBUG
113 cout << "\n\nPress enter to exit...\n";
114 getchar();
115 #endif
116 return rc;
117 }
Galil.h
Galil
Definition: Galil.h:26
main
int main(int argc, char *argv[])
Main function for Commands Example.
Definition: commands_example.cpp:18