gclib_record.h

Go to the documentation of this file.
00001 
00007 #ifndef I_210405D9_D9EF_484F_8258_BB29A1BBA217
00008 #define I_210405D9_D9EF_484F_8258_BB29A1BBA217
00009 
00010 
00011 //typedefs to keep the layout of the structs clean and matching the Galil user manual docs
00012 typedef unsigned char UB; //unsigned byte
00013 typedef unsigned short UW; //unsigned word
00014 typedef short SW; //signed word
00015 typedef int SL; //signed long
00016 typedef unsigned int UL; //unsigned long
00017 
00018 #if defined(_MSC_VER) || defined(__GNUC__)
00019 #pragma pack(1)
00020 #else
00021 #error "Need to set structure packing for compiler"
00022 #endif
00023 
00024 
00025 #define GALILDATARECORDMAXLENGTH 512 
00026 
00028 struct GDataRecord4000
00029 {
00030 
00031   /*Offset   type name        description*/
00032 
00033   /*00*/      UB  header_0; 
00034   /*01*/      UB  header_1; 
00035   /*02*/      UB  header_2; 
00036   /*03*/      UB  header_3; 
00037 
00038   /*04-05*/   UW  sample_number; 
00039 
00040   /*06*/      UB  input_bank_0; 
00041   /*07*/      UB  input_bank_1; 
00042   /*08*/      UB  input_bank_2; 
00043   /*09*/      UB  input_bank_3; 
00044   /*10*/      UB  input_bank_4; 
00045   /*11*/      UB  input_bank_5; 
00046   /*12*/      UB  input_bank_6; 
00047   /*13*/    UB  input_bank_7; 
00048   /*14*/    UB  input_bank_8; 
00049   /*15*/      UB  input_bank_9; 
00050 
00051   /*16*/      UB  output_bank_0; 
00052   /*17*/      UB  output_bank_1; 
00053   /*18*/    UB  output_bank_2; 
00054   /*19*/      UB  output_bank_3; 
00055   /*20*/    UB  output_bank_4; 
00056   /*21*/      UB  output_bank_5; 
00057   /*22*/      UB  output_bank_6; 
00058   /*23*/      UB  output_bank_7; 
00059   /*24*/    UB  output_bank_8; 
00060   /*25*/    UB  output_bank_9; 
00061 
00062   /*26-27*/ SW  reserved_0; 
00063   /*28-29*/ SW  reserved_2; 
00064   /*30-31*/ SW  reserved_4; 
00065   /*32-33*/ SW  reserved_6; 
00066   /*34-35*/ SW  reserved_8; 
00067   /*36-37*/ SW  reserved_10; 
00068   /*38-39*/ SW  reserved_12; 
00069   /*40-41*/ SW  reserved_14; 
00070 
00071   /*42*/      UB  ethernet_status_a; 
00072   /*43*/    UB  ethernet_status_b; 
00073   /*44*/      UB  ethernet_status_c; 
00074   /*45*/    UB  ethernet_status_d; 
00075   /*46*/    UB  ethernet_status_e; 
00076   /*47*/      UB  ethernet_status_f; 
00077   /*48*/    UB  ethernet_status_g; 
00078   /*49*/    UB  ethernet_status_h; 
00079 
00080   /*50*/      UB  error_code; 
00081   /*51*/    UB  thread_status; 
00082   /*52-55*/ UL  amplifier_status; 
00083 
00084   /*56-59*/ UL  contour_segment_count; 
00085   /*60-61*/ UW  contour_buffer_available; 
00086 
00087   /*62-63*/ UW  s_plane_segment_count; 
00088   /*64-65*/ UW  s_plane_move_status; 
00089   /*66-69*/ SL  s_distance; 
00090   /*70-71*/ UW  s_plane_buffer_available; 
00091 
00092   /*72-73*/ UW  t_plane_segment_count; 
00093   /*74-75*/ UW  t_plane_move_status; 
00094   /*76-79*/ SL  t_distance; 
00095   /*80-81*/ UW  t_plane_buffer_available; 
00096 
00097   /*82-83*/ UW  axis_a_status; 
00098   /*84*/      UB  axis_a_switches; 
00099   /*85*/      UB  axis_a_stop_code; 
00100   /*86-89*/ SL  axis_a_reference_position; 
00101   /*90-93*/ SL  axis_a_motor_position; 
00102   /*94-97*/ SL  axis_a_position_error; 
00103   /*98-101*/  SL  axis_a_aux_position; 
00104   /*102-105*/ SL  axis_a_velocity; 
00105   /*106-109*/ SL  axis_a_torque; 
00106   /*110-111*/ UW  axis_a_analog_in; 
00107   /*112*/     UB  axis_a_halls; 
00108   /*113*/   UB  axis_a_reserved; 
00109   /*114-117*/ SL  axis_a_variable; 
00110 
00111   /*118-119*/ UW  axis_b_status; 
00112   /*120*/     UB  axis_b_switches; 
00113   /*121*/     UB  axis_b_stop_code; 
00114   /*122-125*/ SL  axis_b_reference_position; 
00115   /*126-129*/ SL  axis_b_motor_position; 
00116   /*130-133*/ SL  axis_b_position_error; 
00117   /*134-137*/ SL  axis_b_aux_position; 
00118   /*138-141*/ SL  axis_b_velocity; 
00119   /*142-145*/ SL  axis_b_torque; 
00120   /*146-147*/ UW  axis_b_analog_in; 
00121   /*148*/     UB  axis_b_halls; 
00122   /*149*/     UB  axis_b_reserved; 
00123   /*150-153*/ SL  axis_b_variable; 
00124 
00125   /*154-155*/ UW  axis_c_status; 
00126   /*156*/   UB  axis_c_switches; 
00127   /*157*/   UB  axis_c_stop_code; 
00128   /*158-161*/ SL  axis_c_reference_position; 
00129   /*162-165*/ SL  axis_c_motor_position; 
00130   /*166-169*/ SL  axis_c_position_error; 
00131   /*170-173*/ SL  axis_c_aux_position; 
00132   /*174-177*/ SL  axis_c_velocity; 
00133   /*178-181*/ SL  axis_c_torque; 
00134   /*182-183*/ UW  axis_c_analog_in; 
00135   /*184*/     UB  axis_c_halls; 
00136   /*185*/     UB  axis_c_reserved; 
00137   /*186-189*/ SL  axis_c_variable; 
00138 
00139   /*190-191*/ UW  axis_d_status; 
00140   /*192*/     UB  axis_d_switches; 
00141   /*193*/   UB  axis_d_stop_code; 
00142   /*194-197*/ SL  axis_d_reference_position; 
00143   /*198-201*/ SL  axis_d_motor_position; 
00144   /*202-205*/ SL  axis_d_position_error; 
00145   /*206-209*/ SL  axis_d_aux_position; 
00146   /*210-213*/ SL  axis_d_velocity; 
00147   /*214-217*/ SL  axis_d_torque; 
00148   /*218-219*/ UW  axis_d_analog_in; 
00149   /*220*/   UB  axis_d_halls; 
00150   /*221*/   UB  axis_d_reserved; 
00151   /*222-225*/ SL  axis_d_variable; 
00152 
00153   /*226-227*/ UW  axis_e_status; 
00154   /*228*/     UB  axis_e_switches; 
00155   /*229*/     UB  axis_e_stop_code; 
00156   /*230-233*/ SL  axis_e_reference_position; 
00157   /*234-237*/ SL  axis_e_motor_position; 
00158   /*238-241*/ SL  axis_e_position_error; 
00159   /*242-245*/ SL  axis_e_aux_position; 
00160   /*246-249*/ SL  axis_e_velocity; 
00161   /*250-253*/ SL  axis_e_torque; 
00162   /*254-255*/ UW  axis_e_analog_in; 
00163   /*256*/   UB  axis_e_halls; 
00164   /*257*/     UB  axis_e_reserved; 
00165   /*258-261*/ SL  axis_e_variable; 
00166 
00167   /*262-263*/ UW  axis_f_status; 
00168   /*264*/     UB  axis_f_switches; 
00169   /*265*/     UB  axis_f_stop_code; 
00170   /*266-269*/ SL  axis_f_reference_position; 
00171   /*270-273*/ SL  axis_f_motor_position; 
00172   /*274-277*/ SL  axis_f_position_error; 
00173   /*278-281*/ SL  axis_f_aux_position; 
00174   /*282-285*/ SL  axis_f_velocity; 
00175   /*286-289*/ SL  axis_f_torque; 
00176   /*290-291*/ UW  axis_f_analog_in; 
00177   /*292*/     UB  axis_f_halls; 
00178   /*293*/     UB  axis_f_reserved; 
00179   /*294-297*/ SL  axis_f_variable; 
00180 
00181   /*298-299*/ UW  axis_g_status; 
00182   /*300*/   UB  axis_g_switches; 
00183   /*301*/   UB  axis_g_stop_code; 
00184   /*302-305*/ SL  axis_g_reference_position; 
00185   /*306-309*/ SL  axis_g_motor_position; 
00186   /*310-313*/ SL  axis_g_position_error; 
00187   /*314-317*/ SL  axis_g_aux_position; 
00188   /*318-321*/ SL  axis_g_velocity; 
00189   /*322-325*/ SL  axis_g_torque; 
00190   /*326-327*/ UW  axis_g_analog_in; 
00191   /*328*/     UB  axis_g_halls; 
00192   /*329*/     UB  axis_g_reserved; 
00193   /*330-333*/ SL  axis_g_variable; 
00194 
00195   /*334-335*/ UW  axis_h_status; 
00196   /*336*/   UB  axis_h_switches; 
00197   /*337*/     UB  axis_h_stop_code; 
00198   /*338-341*/ SL  axis_h_reference_position; 
00199   /*342-345*/ SL  axis_h_motor_position; 
00200   /*346-349*/ SL  axis_h_position_error; 
00201   /*350-353*/ SL  axis_h_aux_position; 
00202   /*354-357*/ SL  axis_h_velocity; 
00203   /*358-361*/ SL  axis_h_torque; 
00204   /*362-363*/ UW  axis_h_analog_in; 
00205   /*364*/     UB  axis_h_halls; 
00206   /*365*/   UB  axis_h_reserved; 
00207   /*366-369*/ SL  axis_h_variable; 
00208 }; //DataRecord4000
00209 
00211 
00218 struct GDataRecord1806
00219 {
00220   /*Offset   type name        description*/
00221 
00222   /*00-01*/   UW  sample_number; 
00223 
00224   /*02*/      UB  input_bank_0; 
00225   /*03*/      UB  input_bank_1; 
00226   /*04*/      UB  input_bank_2; 
00227   /*05*/      UB  input_bank_3; 
00228   /*06*/      UB  input_bank_4; 
00229   /*07*/      UB  input_bank_5; 
00230   /*08*/      UB  input_bank_6; 
00231   /*09*/    UB  input_bank_7; 
00232   /*10*/    UB  input_bank_8; 
00233   /*11*/      UB  input_bank_9; 
00234 
00235   /*12*/      UB  output_bank_0; 
00236   /*13*/      UB  output_bank_1; 
00237   /*14*/    UB  output_bank_2; 
00238   /*15*/      UB  output_bank_3; 
00239   /*16*/    UB  output_bank_4; 
00240   /*17*/      UB  output_bank_5; 
00241   /*18*/      UB  output_bank_6; 
00242   /*19*/      UB  output_bank_7; 
00243   /*20*/    UB  output_bank_8; 
00244   /*21*/    UB  output_bank_9; 
00245 
00246   /*22-23*/ SW  reserved_0; 
00247   /*24-25*/ SW  reserved_2; 
00248   /*26-27*/ SW  reserved_4; 
00249   /*28-29*/ SW  reserved_6; 
00250   /*30-31*/ SW  reserved_8; 
00251   /*32-33*/ SW  reserved_10; 
00252   /*34-35*/ SW  reserved_12; 
00253   /*36-37*/ SW  reserved_14; 
00254 
00255   /*38*/      UB  reserved_16; 
00256   /*39*/    UB  reserved_17; 
00257   /*40*/      UB  reserved_18; 
00258   /*41*/    UB  reserved_19; 
00259   /*42*/    UB  reserved_20; 
00260   /*43*/      UB  reserved_21; 
00261   /*44*/    UB  reserved_22; 
00262   /*45*/    UB  reserved_23; 
00263 
00264   /*46*/      UB  error_code; 
00265   /*47*/    UB  thread_status; 
00266   /*48-51*/ UL  reserved_24; 
00267 
00268   /*52-55*/ UL  contour_segment_count; 
00269   /*56-57*/ UW  contour_buffer_available; 
00270 
00271   /*58-59*/ UW  s_plane_segment_count; 
00272   /*60-61*/ UW  s_plane_move_status; 
00273   /*62-65*/ SL  s_distance; 
00274   /*66-67*/ UW  s_plane_buffer_available; 
00275 
00276   /*68-69*/ UW  t_plane_segment_count; 
00277   /*70-71*/ UW  t_plane_move_status; 
00278   /*72-75*/ SL  t_distance; 
00279   /*76-77*/ UW  t_plane_buffer_available; 
00280 
00281   /*78-79*/ UW  axis_a_status; 
00282   /*80*/      UB  axis_a_switches; 
00283   /*81*/      UB  axis_a_stop_code; 
00284   /*82-85*/ SL  axis_a_reference_position; 
00285   /*86-89*/ SL  axis_a_motor_position; 
00286   /*90-93*/ SL  axis_a_position_error; 
00287   /*94-97*/ SL  axis_a_aux_position; 
00288   /*98-101*/  SL  axis_a_velocity; 
00289   /*102-105*/ SL  axis_a_torque; 
00290   /*106-107*/ UW  axis_a_analog_in; 
00291   /*108*/     UB  axis_a_reserved_0; 
00292   /*109*/   UB  axis_a_reserved_1; 
00293   /*110-113*/ SL  axis_a_variable; 
00294 
00295   /*114-115*/ UW  axis_b_status; 
00296   /*116*/     UB  axis_b_switches; 
00297   /*117*/     UB  axis_b_stop_code; 
00298   /*118-121*/ SL  axis_b_reference_position; 
00299   /*122-125*/ SL  axis_b_motor_position; 
00300   /*126-129*/ SL  axis_b_position_error; 
00301   /*130-133*/ SL  axis_b_aux_position; 
00302   /*134-137*/ SL  axis_b_velocity; 
00303   /*138-141*/ SL  axis_b_torque; 
00304   /*142-143*/ UW  axis_b_analog_in; 
00305   /*144*/     UB  axis_b_reserved_0; 
00306   /*145*/     UB  axis_b_reserved_1; 
00307   /*146-149*/ SL  axis_b_variable; 
00308 
00309   /*150-151*/ UW  axis_c_status; 
00310   /*152*/   UB  axis_c_switches; 
00311   /*153*/   UB  axis_c_stop_code; 
00312   /*154-157*/ SL  axis_c_reference_position; 
00313   /*158-161*/ SL  axis_c_motor_position; 
00314   /*162-165*/ SL  axis_c_position_error; 
00315   /*166-169*/ SL  axis_c_aux_position; 
00316   /*170-173*/ SL  axis_c_velocity; 
00317   /*174-177*/ SL  axis_c_torque; 
00318   /*178-179*/ UW  axis_c_analog_in; 
00319   /*180*/     UB  axis_c_reserved_0; 
00320   /*181*/     UB  axis_c_reserved_1; 
00321   /*182-185*/ SL  axis_c_variable; 
00322 
00323   /*186-187*/ UW  axis_d_status; 
00324   /*188*/     UB  axis_d_switches; 
00325   /*189*/   UB  axis_d_stop_code; 
00326   /*190-193*/ SL  axis_d_reference_position; 
00327   /*194-197*/ SL  axis_d_motor_position; 
00328   /*198-201*/ SL  axis_d_position_error; 
00329   /*202-205*/ SL  axis_d_aux_position; 
00330   /*206-209*/ SL  axis_d_velocity; 
00331   /*210-213*/ SL  axis_d_torque; 
00332   /*214-215*/ UW  axis_d_analog_in; 
00333   /*216*/   UB  axis_d_reserved_0; 
00334   /*217*/   UB  axis_d_reserved_1; 
00335   /*218-221*/ SL  axis_d_variable; 
00336 
00337   /*222-223*/ UW  axis_e_status; 
00338   /*224*/     UB  axis_e_switches; 
00339   /*225*/     UB  axis_e_stop_code; 
00340   /*226-229*/ SL  axis_e_reference_position; 
00341   /*230-233*/ SL  axis_e_motor_position; 
00342   /*234-237*/ SL  axis_e_position_error; 
00343   /*238-241*/ SL  axis_e_aux_position; 
00344   /*242-245*/ SL  axis_e_velocity; 
00345   /*256-249*/ SL  axis_e_torque; 
00346   /*250-251*/ UW  axis_e_analog_in; 
00347   /*252*/   UB  axis_e_reserved_0; 
00348   /*253*/     UB  axis_e_reserved_1; 
00349   /*254-257*/ SL  axis_e_variable; 
00350 
00351   /*258-259*/ UW  axis_f_status; 
00352   /*260*/     UB  axis_f_switches; 
00353   /*261*/     UB  axis_f_stop_code; 
00354   /*262-265*/ SL  axis_f_reference_position; 
00355   /*266-269*/ SL  axis_f_motor_position; 
00356   /*270-273*/ SL  axis_f_position_error; 
00357   /*274-277*/ SL  axis_f_aux_position; 
00358   /*278-281*/ SL  axis_f_velocity; 
00359   /*282-285*/ SL  axis_f_torque; 
00360   /*286-287*/ UW  axis_f_analog_in; 
00361   /*288*/     UB  axis_f_reserved_0; 
00362   /*289*/     UB  axis_f_reserved_1; 
00363   /*290-293*/ SL  axis_f_variable; 
00364 
00365   /*294-295*/ UW  axis_g_status; 
00366   /*296*/   UB  axis_g_switches; 
00367   /*297*/   UB  axis_g_stop_code; 
00368   /*298-301*/ SL  axis_g_reference_position; 
00369   /*302-305*/ SL  axis_g_motor_position; 
00370   /*306-309*/ SL  axis_g_position_error; 
00371   /*310-313*/ SL  axis_g_aux_position; 
00372   /*314-317*/ SL  axis_g_velocity; 
00373   /*318-321*/ SL  axis_g_torque; 
00374   /*322-323*/ UW  axis_g_analog_in; 
00375   /*324*/     UB  axis_g_reserved_0; 
00376   /*325*/     UB  axis_g_reserved_1; 
00377   /*326-329*/ SL  axis_g_variable; 
00378 
00379   /*330-331*/ UW  axis_h_status; 
00380   /*332*/   UB  axis_h_switches; 
00381   /*333*/     UB  axis_h_stop_code; 
00382   /*334-337*/ SL  axis_h_reference_position; 
00383   /*338-341*/ SL  axis_h_motor_position; 
00384   /*342-345*/ SL  axis_h_position_error; 
00385   /*346-349*/ SL  axis_h_aux_position; 
00386   /*350-353*/ SL  axis_h_velocity; 
00387   /*354-357*/ SL  axis_h_torque; 
00388   /*358-359*/ UW  axis_h_analog_in; 
00389   /*360*/     UB  axis_h_reserved_0; 
00390   /*361*/   UB  axis_h_reserved_1; 
00391   /*362-365*/ SL  axis_h_variable; 
00392 }; //DataRecord1806
00393 
00395 struct GDataRecord2103
00396 {
00397 
00398   /*Offset   type name        description*/
00399 
00400   /*00*/      UB  header_0; 
00401   /*01*/      UB  header_1; 
00402   /*02*/      UB  header_2; 
00403   /*03*/      UB  header_3; 
00404 
00405   /*04-05*/   UW  sample_number; 
00406 
00407   /*06*/      UB  input_bank_0; 
00408   /*07*/      UB  input_bank_1; 
00409   /*08*/      UB  input_bank_2; 
00410   /*09*/      UB  input_bank_3; 
00411   /*10*/      UB  input_bank_4; 
00412   /*11*/      UB  input_bank_5; 
00413   /*12*/      UB  input_bank_6; 
00414   /*13*/    UB  input_bank_7; 
00415   /*14*/    UB  input_bank_8; 
00416   /*15*/      UB  input_bank_9; 
00417 
00418   /*16*/      UB  output_bank_0; 
00419   /*17*/      UB  output_bank_1; 
00420   /*18*/    UB  output_bank_2; 
00421   /*19*/      UB  output_bank_3; 
00422   /*20*/    UB  output_bank_4; 
00423   /*21*/      UB  output_bank_5; 
00424   /*22*/      UB  output_bank_6; 
00425   /*23*/      UB  output_bank_7; 
00426   /*24*/    UB  output_bank_8; 
00427   /*25*/    UB  output_bank_9; 
00428 
00429   /*26*/      UB  error_code; 
00430   /*27*/    UB  general_status; 
00431 
00432   /*28-29*/ UW  s_plane_segment_count; 
00433   /*30-31*/ UW  s_plane_move_status; 
00434   /*32-35*/ SL  s_distance; 
00435 
00436   /*36-37*/ UW  t_plane_segment_count; 
00437   /*38-39*/ UW  t_plane_move_status; 
00438   /*40-43*/ SL  t_distance; 
00439 
00440   /*44-45*/ UW  axis_a_status; 
00441   /*46*/      UB  axis_a_switches; 
00442   /*47*/      UB  axis_a_stop_code; 
00443   /*48-51*/ SL  axis_a_reference_position; 
00444   /*52-55*/ SL  axis_a_motor_position; 
00445   /*56-59*/ SL  axis_a_position_error; 
00446   /*60-63*/ SL  axis_a_aux_position; 
00447   /*64-67*/ SL  axis_a_velocity; 
00448   /*68-69*/ SW  axis_a_torque; 
00449   /*70-71*/ UW  axis_a_analog_in; 
00450 
00451   /*72-73*/ UW  axis_b_status; 
00452   /*74*/      UB  axis_b_switches; 
00453   /*75*/      UB  axis_b_stop_code; 
00454   /*76-79*/ SL  axis_b_reference_position; 
00455   /*80-83*/ SL  axis_b_motor_position; 
00456   /*84-87*/ SL  axis_b_position_error; 
00457   /*88-91*/ SL  axis_b_aux_position; 
00458   /*92-95*/ SL  axis_b_velocity; 
00459   /*96-97*/ SW  axis_b_torque; 
00460   /*98-99*/ UW  axis_b_analog_in; 
00461 
00462   /*100-101*/ UW  axis_c_status; 
00463   /*102*/   UB  axis_c_switches; 
00464   /*103*/   UB  axis_c_stop_code; 
00465   /*104-107*/ SL  axis_c_reference_position; 
00466   /*108-111*/ SL  axis_c_motor_position; 
00467   /*112-115*/ SL  axis_c_position_error; 
00468   /*116-119*/ SL  axis_c_aux_position; 
00469   /*120-123*/ SL  axis_c_velocity; 
00470   /*124-125*/ SW  axis_c_torque; 
00471   /*126-127*/ UW  axis_c_analog_in; 
00472 
00473   /*128-129*/ UW  axis_d_status; 
00474   /*130*/     UB  axis_d_switches; 
00475   /*131*/   UB  axis_d_stop_code; 
00476   /*132-135*/ SL  axis_d_reference_position; 
00477   /*136-139*/ SL  axis_d_motor_position; 
00478   /*140-143*/ SL  axis_d_position_error; 
00479   /*144-147*/ SL  axis_d_aux_position; 
00480   /*148-151*/ SL  axis_d_velocity; 
00481   /*152-153*/ SW  axis_d_torque; 
00482   /*154-155*/ UW  axis_d_analog_in; 
00483 
00484   /*156-157*/ UW  axis_e_status; 
00485   /*158*/     UB  axis_e_switches; 
00486   /*159*/     UB  axis_e_stop_code; 
00487   /*160-163*/ SL  axis_e_reference_position; 
00488   /*164-167*/ SL  axis_e_motor_position; 
00489   /*168-171*/ SL  axis_e_position_error; 
00490   /*172-175*/ SL  axis_e_aux_position; 
00491   /*176-179*/ SL  axis_e_velocity; 
00492   /*180-181*/ SW  axis_e_torque; 
00493   /*182-183*/ UW  axis_e_analog_in; 
00494 
00495   /*184-185*/ UW  axis_f_status; 
00496   /*186*/     UB  axis_f_switches; 
00497   /*187*/     UB  axis_f_stop_code; 
00498   /*188-191*/ SL  axis_f_reference_position; 
00499   /*192-195*/ SL  axis_f_motor_position; 
00500   /*196-199*/ SL  axis_f_position_error; 
00501   /*200-203*/ SL  axis_f_aux_position; 
00502   /*204-207*/ SL  axis_f_velocity; 
00503   /*208-209*/ SW  axis_f_torque; 
00504   /*210-211*/ UW  axis_f_analog_in; 
00505 
00506   /*212-213*/ UW  axis_g_status; 
00507   /*214*/   UB  axis_g_switches; 
00508   /*215*/   UB  axis_g_stop_code; 
00509   /*216-219*/ SL  axis_g_reference_position; 
00510   /*220-223*/ SL  axis_g_motor_position; 
00511   /*224-227*/ SL  axis_g_position_error; 
00512   /*228-231*/ SL  axis_g_aux_position; 
00513   /*232-235*/ SL  axis_g_velocity; 
00514   /*236-237*/ SW  axis_g_torque; 
00515   /*238-239*/ UW  axis_g_analog_in; 
00516 
00517   /*240-241*/ UW  axis_h_status; 
00518   /*242*/   UB  axis_h_switches; 
00519   /*243*/     UB  axis_h_stop_code; 
00520   /*244-247*/ SL  axis_h_reference_position; 
00521   /*248-251*/ SL  axis_h_motor_position; 
00522   /*252-255*/ SL  axis_h_position_error; 
00523   /*256-259*/ SL  axis_h_aux_position; 
00524   /*260-263*/ SL  axis_h_velocity; 
00525   /*264-265*/ SW  axis_h_torque; 
00526   /*266-267*/ UW  axis_h_analog_in; 
00527 }; //DataRecord2013
00528 
00530 struct GDataRecord1802
00531 {
00532 
00533   /*Offset   type name        description*/
00534 
00535   /*00*/      UB  header_0; 
00536   /*01*/      UB  header_1; 
00537   /*02*/      UB  header_2; 
00538   /*03*/      UB  header_3; 
00539 
00540   /*04-05*/   UW  sample_number; 
00541 
00542   /*06*/      UB  input_bank_0; 
00543   /*07*/      UB  input_bank_1; 
00544   /*08*/      UB  input_bank_2; 
00545   /*09*/      UB  input_bank_3; 
00546   /*10*/      UB  input_bank_4; 
00547   /*11*/      UB  input_bank_5; 
00548   /*12*/      UB  input_bank_6; 
00549   /*13*/    UB  input_bank_7; 
00550   /*14*/    UB  input_bank_8; 
00551   /*15*/      UB  input_bank_9; 
00552 
00553   /*16*/      UB  output_bank_0; 
00554   /*17*/      UB  output_bank_1; 
00555   /*18*/    UB  output_bank_2; 
00556   /*19*/      UB  output_bank_3; 
00557   /*20*/    UB  output_bank_4; 
00558   /*21*/      UB  output_bank_5; 
00559   /*22*/      UB  output_bank_6; 
00560   /*23*/      UB  output_bank_7; 
00561   /*24*/    UB  output_bank_8; 
00562   /*25*/    UB  output_bank_9; 
00563 
00564   /*26*/      UB  error_code; 
00565   /*27*/    UB  general_status; 
00566 
00567   /*28-29*/ UW  s_plane_segment_count; 
00568   /*30-31*/ UW  s_plane_move_status; 
00569   /*32-35*/ SL  s_distance; 
00570 
00571   /*36-37*/ UW  t_plane_segment_count; 
00572   /*38-39*/ UW  t_plane_move_status; 
00573   /*40-43*/ SL  t_distance; 
00574 
00575   /*44-45*/ UW  axis_a_status; 
00576   /*46*/      UB  axis_a_switches; 
00577   /*47*/      UB  axis_a_stop_code; 
00578   /*48-51*/ SL  axis_a_reference_position; 
00579   /*52-55*/ SL  axis_a_motor_position; 
00580   /*56-59*/ SL  axis_a_position_error; 
00581   /*60-63*/ SL  axis_a_aux_position; 
00582   /*64-67*/ SL  axis_a_velocity; 
00583   /*68-69*/ SW  axis_a_torque; 
00584 
00585   /*70-71*/ UW  axis_b_status; 
00586   /*72*/      UB  axis_b_switches; 
00587   /*73*/      UB  axis_b_stop_code; 
00588   /*74-77*/ SL  axis_b_reference_position; 
00589   /*78-81*/ SL  axis_b_motor_position; 
00590   /*82-85*/ SL  axis_b_position_error; 
00591   /*86-89*/ SL  axis_b_aux_position; 
00592   /*90-93*/ SL  axis_b_velocity; 
00593   /*94-95*/ SW  axis_b_torque; 
00594 
00595   /*96-97*/ UW  axis_c_status; 
00596   /*98*/    UB  axis_c_switches; 
00597   /*99*/    UB  axis_c_stop_code; 
00598   /*100-103*/ SL  axis_c_reference_position; 
00599   /*104-107*/ SL  axis_c_motor_position; 
00600   /*108-111*/ SL  axis_c_position_error; 
00601   /*112-115*/ SL  axis_c_aux_position; 
00602   /*116-119*/ SL  axis_c_velocity; 
00603   /*120-121*/ SW  axis_c_torque; 
00604 
00605   /*122-123*/ UW  axis_d_status; 
00606   /*124*/     UB  axis_d_switches; 
00607   /*125*/   UB  axis_d_stop_code; 
00608   /*126-129*/ SL  axis_d_reference_position; 
00609   /*130-133*/ SL  axis_d_motor_position; 
00610   /*134-137*/ SL  axis_d_position_error; 
00611   /*138-141*/ SL  axis_d_aux_position; 
00612   /*142-145*/ SL  axis_d_velocity; 
00613   /*146-147*/ SW  axis_d_torque; 
00614 
00615   /*148-149*/ UW  axis_e_status; 
00616   /*150*/     UB  axis_e_switches; 
00617   /*151*/     UB  axis_e_stop_code; 
00618   /*152-155*/ SL  axis_e_reference_position; 
00619   /*156-159*/ SL  axis_e_motor_position; 
00620   /*160-163*/ SL  axis_e_position_error; 
00621   /*164-167*/ SL  axis_e_aux_position; 
00622   /*168-171*/ SL  axis_e_velocity; 
00623   /*172-173*/ SW  axis_e_torque; 
00624 
00625   /*174-175*/ UW  axis_f_status; 
00626   /*176*/     UB  axis_f_switches; 
00627   /*177*/     UB  axis_f_stop_code; 
00628   /*178-181*/ SL  axis_f_reference_position; 
00629   /*182-185*/ SL  axis_f_motor_position; 
00630   /*186-189*/ SL  axis_f_position_error; 
00631   /*190-193*/ SL  axis_f_aux_position; 
00632   /*194-197*/ SL  axis_f_velocity; 
00633   /*198-199*/ SW  axis_f_torque; 
00634 
00635   /*200-201*/ UW  axis_g_status; 
00636   /*202*/   UB  axis_g_switches; 
00637   /*203*/   UB  axis_g_stop_code; 
00638   /*204-207*/ SL  axis_g_reference_position; 
00639   /*208-211*/ SL  axis_g_motor_position; 
00640   /*212-215*/ SL  axis_g_position_error; 
00641   /*216-219*/ SL  axis_g_aux_position; 
00642   /*220-223*/ SL  axis_g_velocity; 
00643   /*224-225*/ SW  axis_g_torque; 
00644 
00645   /*226-227*/ UW  axis_h_status; 
00646   /*228*/   UB  axis_h_switches; 
00647   /*229*/     UB  axis_h_stop_code; 
00648   /*230-233*/ SL  axis_h_reference_position; 
00649   /*234-237*/ SL  axis_h_motor_position; 
00650   /*238-241*/ SL  axis_h_position_error; 
00651   /*242-245*/ SL  axis_h_aux_position; 
00652   /*246-249*/ SL  axis_h_velocity; 
00653   /*250-251*/ SW  axis_h_torque; 
00654 }; //DataRecord1802
00655 
00657 struct GDataRecord30000
00658 {
00659 
00660   /*Offset   type name        description*/
00661 
00662   /*00*/      UB  header_0; 
00663   /*01*/      UB  header_1; 
00664   /*02*/      UB  header_2; 
00665   /*03*/      UB  header_3; 
00666 
00667   /*04-05*/   UW  sample_number; 
00668 
00669   /*06*/      UB  input_bank_0; 
00670   /*07*/      UB  input_bank_1; 
00671   
00672   /*08*/      UB  output_bank_0; 
00673   /*09*/      UB  output_bank_1; 
00674   
00675   /*10*/      UB  error_code; 
00676   /*11*/    UB  thread_status; 
00677   
00678   /*12-13*/ UW  input_analog_2; 
00679 
00680   /*14-15*/ UW  output_analog_1; 
00681   /*16-17*/ UW  output_analog_2; 
00682   
00683   /*18-21*/ UL  amplifier_status; 
00684 
00685   /*22-25*/ UL  contour_segment_count; 
00686   /*26-27*/ UW  contour_buffer_available; 
00687 
00688   /*28-29*/ UW  s_plane_segment_count; 
00689   /*30-31*/ UW  s_plane_move_status; 
00690   /*32-35*/ SL  s_distance; 
00691   /*36-37*/ UW  s_plane_buffer_available; 
00692 
00693   /*38-39*/ UW  axis_a_status; 
00694   /*40*/      UB  axis_a_switches; 
00695   /*41*/      UB  axis_a_stop_code; 
00696   /*42-45*/ SL  axis_a_reference_position; 
00697   /*46-49*/ SL  axis_a_motor_position; 
00698   /*50-53*/ SL  axis_a_position_error; 
00699   /*54-57*/ SL  axis_a_aux_position; 
00700   /*58-61*/ SL  axis_a_velocity; 
00701   /*62-65*/ SL  axis_a_torque; 
00702   /*66-67*/ UW  axis_a_analog_in; 
00703   /*68*/      UB  axis_a_halls; 
00704   /*69*/    UB  axis_a_reserved; 
00705   /*70-73*/ SL  axis_a_variable; 
00706 }; //DataRecord30000
00707 
00709 struct GDataRecord47000_ENC
00710 {
00711 
00712   /*Offset   type name        description*/
00713 
00714   /*00*/      UB  header_0; 
00715   /*01*/      UB  header_1; 
00716   /*02*/      UB  header_2; 
00717   /*03*/      UB  header_3; 
00718 
00719   /*04-05*/   UW  sample_number; 
00720   /*06*/      UB  error_code; 
00721   /*07*/    UB  general_status; 
00722 
00723   /*08-09*/ UW  output_analog_0; 
00724   /*10-11*/ UW  output_analog_1; 
00725   /*12-13*/ UW  output_analog_2; 
00726   /*14-15*/ UW  output_analog_3; 
00727   /*16-17*/ UW  output_analog_4; 
00728   /*18-19*/ UW  output_analog_5; 
00729   /*20-21*/ UW  output_analog_6; 
00730   /*22-23*/ UW  output_analog_7; 
00731 
00732   /*24-25*/ UW  input_analog_0; 
00733   /*26-27*/ UW  input_analog_1; 
00734   /*28-29*/ UW  input_analog_2; 
00735   /*30-31*/ UW  input_analog_3; 
00736   /*32-33*/ UW  input_analog_4; 
00737   /*34-35*/ UW  input_analog_5; 
00738   /*36-37*/ UW  input_analog_6; 
00739   /*38-39*/ UW  input_analog_7; 
00740 
00741   /*40-41*/ UW  output_bank_0; 
00742 
00743   /*42-43*/ UW  input_bank_0; 
00744 
00745   /*44-47*/ UL  pulse_count_0; 
00746   /*48-51*/ SL  zc_variable; 
00747   /*52-55*/ SL  zd_variable; 
00748 
00749   /*56-59*/ SL  encoder_0; 
00750   /*60-63*/ SL  encoder_1; 
00751   /*64-67*/ SL  encoder_2; 
00752   /*68-71*/ SL  encoder_3; 
00753 
00754 }; //GDataRecord47000_ENC
00755 
00757 struct GDataRecord47300_ENC
00758 {
00759 
00760   /*Offset   type name        description*/
00761 
00762   /*00*/      UB  header_0; 
00763   /*01*/      UB  header_1; 
00764   /*02*/      UB  header_2; 
00765   /*03*/      UB  header_3; 
00766 
00767   /*04-05*/   UW  sample_number; 
00768   /*06*/      UB  error_code; 
00769   /*07*/    UB  general_status; 
00770 
00771   /*08-09*/ UW  output_analog_0; 
00772   /*10-11*/ UW  output_analog_1; 
00773   /*12-13*/ UW  output_analog_2; 
00774   /*14-15*/ UW  output_analog_3; 
00775   /*16-17*/ UW  output_analog_4; 
00776   /*18-19*/ UW  output_analog_5; 
00777   /*20-21*/ UW  output_analog_6; 
00778   /*22-23*/ UW  output_analog_7; 
00779 
00780   /*24-25*/ UW  input_analog_0; 
00781   /*26-27*/ UW  input_analog_1; 
00782   /*28-29*/ UW  input_analog_2; 
00783   /*30-31*/ UW  input_analog_3; 
00784   /*32-33*/ UW  input_analog_4; 
00785   /*34-35*/ UW  input_analog_5; 
00786   /*36-37*/ UW  input_analog_6; 
00787   /*38-39*/ UW  input_analog_7; 
00788 
00789   /*40-41*/ UW  output_bank_0; 
00790   /*42-43*/ UW  output_bank_1; 
00791 
00792   /*44-45*/ UW  input_bank_0; 
00793   /*46-47*/ UW  input_bank_1; 
00794 
00795   /*48-51*/ UL  pulse_count_0; 
00796   /*52-55*/ SL  zc_variable; 
00797   /*56-59*/ SL  zd_variable; 
00798 
00799   /*60-63*/ SL  encoder_0; 
00800   /*64-67*/ SL  encoder_1; 
00801   /*68-71*/ SL  encoder_2; 
00802   /*72-75*/ SL  encoder_3; 
00803 
00804 }; //GDataRecord47300_ENC
00805 
00807 struct GDataRecord47300_24EX
00808 {
00809 
00810   /*Offset   type name        description*/
00811 
00812   /*00*/      UB  header_0; 
00813   /*01*/      UB  header_1; 
00814   /*02*/      UB  header_2; 
00815   /*03*/      UB  header_3; 
00816 
00817   /*04-05*/   UW  sample_number; 
00818   /*06*/      UB  error_code; 
00819   /*07*/    UB  general_status; 
00820 
00821   /*08-09*/ UW  output_analog_0; 
00822   /*10-11*/ UW  output_analog_1; 
00823   /*12-13*/ UW  output_analog_2; 
00824   /*14-15*/ UW  output_analog_3; 
00825   /*16-17*/ UW  output_analog_4; 
00826   /*18-19*/ UW  output_analog_5; 
00827   /*20-21*/ UW  output_analog_6; 
00828   /*22-23*/ UW  output_analog_7; 
00829 
00830   /*24-25*/ UW  input_analog_0; 
00831   /*26-27*/ UW  input_analog_1; 
00832   /*28-29*/ UW  input_analog_2; 
00833   /*30-31*/ UW  input_analog_3; 
00834   /*32-33*/ UW  input_analog_4; 
00835   /*34-35*/ UW  input_analog_5; 
00836   /*36-37*/ UW  input_analog_6; 
00837   /*38-39*/ UW  input_analog_7; 
00838 
00839   /*40-41*/ UW  output_bank_0; 
00840   /*42-43*/ UW  output_bank_1; 
00841 
00842   /*44-45*/ UW  input_bank_0; 
00843   /*46-47*/ UW  input_bank_1; 
00844 
00845   /*48-51*/ UL  pulse_count_0; 
00846   /*52-55*/ SL  zc_variable; 
00847   /*56-59*/ SL  zd_variable; 
00848 
00849   /*60-61*/ UW output_bank_2; 
00850   /*62-63*/ UW output_back_3; 
00851   
00852   /*64-65*/ UW input_bank_2; 
00853   /*66-67*/ UW input_bank_3; 
00854 
00855 }; //GDataRecord47300_24EX
00856 
00857 
00859 
00869 union GDataRecord
00870 {
00871 
00872   struct GDataRecord4000 dmc4000; 
00873   struct GDataRecord4000 dmc4103; 
00874   struct GDataRecord4000 dmc50000;
00875 
00876   struct GDataRecord30000 dmc30000;
00877 
00878   struct GDataRecord2103 dmc2103; 
00879 
00880   struct GDataRecord1806 dmc1806; 
00881 
00882   struct GDataRecord1802 dmc1802; 
00883 
00884   struct GDataRecord47000_ENC rio47000; 
00885   struct GDataRecord47300_ENC rio47300; 
00886   struct GDataRecord47300_24EX rio47300_24ex; 
00887 
00888   unsigned char byte_array[GALILDATARECORDMAXLENGTH]; 
00889 };
00890 
00891 
00892 #if defined(_MSC_VER) || defined(__GNUC__)
00893 #pragma pack() //return pack to default
00894 #else
00895 #error "Need to return structure packing for compiler"
00896 #endif
00897 
00898 #endif //I_210405D9_D9EF_484F_8258_BB29A1BBA217