00001 # gcc (Linux) {#gcc} 00002 00003 The following instructions were performed on 00004 00005 $ uname -a 00006 Linux localhost.localdomain 3.17.4-301.fc21.x86_64 #1 SMP Thu Nov 27 19:09:10 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 00007 $ g++ --version 00008 g++ (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6) 00009 00010 ## Copy Files 00011 00012 $ mkdir test 00013 $ cd test 00014 $ tar -xzf /usr/share/doc/gclib/src/gclib_131_examples.tar.gz 00015 $ ls 00016 x_arrays.cpp x_gcommand.cpp x_gmotioncomplete.cpp x_programs.cpp 00017 x_examples.cpp x_ginterrupt.cpp x_gread_gwrite.cpp x_simple.c 00018 x_examples.h x_gmessage.cpp x_grecord.cpp 00019 00020 ## x_simple.c 00021 00022 * In a text editor, open *x_simple.c*. Find the GOpen() call and update the address to match the desired hardware. See the documentation for GOpen() for address formatting options. 00023 00024 ### Compile 00025 00026 $ gcc -Wall -Werror x_simple.c -lgclib -lgclibo -o simple 00027 00028 ### Run 00029 00030 $ ./simple 00031 rc: 0 00032 version: 85.60.131 00033 rc: 0 00034 rc: 0 00035 info: 10.1.3.17, DMC4020 Rev 1.2b, 291 00036 rc: 0 00037 response: 179340166.0000 00038 : 00039 00040 ## x_examples.cpp 00041 * In a text editor, open *x_examples.cpp*. Find the GOpen() call and update the address to match the desired hardware. See the documentation for GOpen() for address formatting options. Don't forget `-s ALL` if data records, interrupts, and messages are to be tested. 00042 * Find the `#if 0` preprocessor block enclosing the example calls. Change to `#if 1` to run the examples. Comment out the function calls to be avoided. Note some calls attempt to move motors and not all functions are compatible with all Galil products. 00043 00044 ### Compile 00045 00046 $ g++ x_*.cpp -lgclib -lgclibo -o example 00047 00048 ### Run 00049 $./example 00050 Library version: 85.60.131 00051 00052 00053 10.1.3.17, DMC4020 Rev 1.2b, 291 00054 00055 ************************************************************************ 00056 Example GRead() and GWrite() usage 00057 ************************************************************************ 00058 00059 Read 155 QR bytes. 00060 00061 ************************************************************************ 00062 Example GCommand() usage 00063 ************************************************************************ 00064 Revision report, ^R^V 00065 DMC4020 Rev 1.2b 00066 : 00067 00068 Command Values 00069 val is 10 00070 val is 11 00071 val is 3.1415 00072 val is 9.869 00073 00074 Command Trimming 00075 > 179798738.0000 00076 :< 00077 > 179798738.0000< 00078 >179798738.0000< 00079 00080 Receiving Binary Data 00081 QR read 155 bytes 00082 00083 Error handling 00084 QD correctly trapped, not allowed, try GArrayDownload() 00085 DL correctly trapped, not allowed, try GProgramDownload() 00086 00087 Modifying timeout 00088 Burning program...OK 00089 00090 ************************************************************************ 00091 Example GProgramDownload() and GProgramUpload() usage 00092 ************************************************************************ 00093 GProgramDownload() correctly errored. Can't fit with level 3 compression 00094 Program Downloaded with compression level 4 00095 Uploading program: 00096 #A;i=0;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1 00097 i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;i=i+1;EN 00098 00099 Program executed as expected 00100 ************************************************************************ 00101 Example GArrayDownload(), GArrayUploadFile() 00102 GArrayDownloadFile(), and GArrayUpload usage 00103 ************************************************************************ 00104 2.0000, 4.0000, 6.0000, 8.0000, 10.0000, 12.0000, 14.0000, 16.0000, 18.0000, 20.0000 00105 00106 2.0000, 1.0000, 3.0000, 5.0000, 10.0000, 12.0000, 14.0000, 16.0000, 18.0000, 20.0000 00107 00108 3.0000, 5.0000, 10.0000 00109 2.0000, 1.0000, 3.0000, 5.0000, 10.0000, 12.0000, 14.0000, 16.0000, 18.0000, 20.0000 00110 00111 00112 ************************************************************************ 00113 Example GRecord() usage 00114 ************************************************************************ 00115 00116 QR-based data record 00117 36100 00118 6000 00119 00120 DR-based data record 00121 36204 00122 36306 00123 36408 00124 36510 00125 36612 00126 36714 00127 36816 00128 36918 00129 37020 00130 37122 00131 37224 00132 00133 QR-based data record with offsets 00134 37224 00135 37224 00136 00137 ************************************************************************ 00138 Example GMessage() usage 00139 ************************************************************************ 00140 0.0000 00141 1.0000 00142 2.0000 00143 3.0000 00144 4.0000 00145 5.0000 00146 6.0000 00147 7.0000 00148 8.0000 00149 9.0000 00150 00151 ************************************************************************ 00152 Example GInterrupt() usage 00153 ************************************************************************ 00154 "UI 8" executed. 00155 00156 ************************************************************************ 00157 Example GMotionComplete() usage 00158 ************************************************************************ 00159 00160 Position: 0, 0 00161 Beginning independent motion... Motion Complete on A 00162 Position: 8000, 0 00163 00164 Position: 0, 0 00165 Beginning vector motion... Motion Complete on vector plane S 00166 Position: 6000, 0 00167 00168 00169 examples.cpp executed OK 00170 main() is finished. Press Enter to exit: 00171