00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include "amtec_io.h"
00038 #include "amtec_conversion.h"
00039 #include "amtec_commands.h"
00040
00041
00042
00043
00044
00045 void cmdReset(amtec_powercube_device_p dev, int id)
00046 {
00047 unsigned char cmd[1];
00048 cmd[0] = CodeReset;
00049 amtecSendCommand(dev, id, cmd, 1);
00050 }
00051
00052 void cmdHome(amtec_powercube_device_p dev, int id)
00053 {
00054 unsigned char cmd[1];
00055 cmd[0] = CodeHome;
00056 amtecSendCommand(dev, id, cmd, 1);
00057 }
00058
00059 void cmdHalt(amtec_powercube_device_p dev, int id)
00060 {
00061 unsigned char cmd[1];
00062 cmd[0] = CodeHalt;
00063 amtecSendCommand(dev, id, cmd, 1);
00064 }
00065
00066 void cmdRecalcPIDParam(amtec_powercube_device_p dev, int id)
00067 {
00068 unsigned char cmd[1];
00069 cmd[0] = CodeRecalcPIDParam;
00070 amtecSendCommand(dev, id, cmd, 1);
00071 }
00072
00073 void cmdResetTime(amtec_powercube_device_p dev, int id)
00074 {
00075 unsigned char cmd[1];
00076 cmd[0] = CodeResetTime;
00077 amtecSendCommand(dev, id, cmd, 1);
00078 }
00079
00080 void cmdGetExtended(amtec_powercube_device_p dev, int id, unsigned char code)
00081 {
00082 unsigned char cmd[2];
00083 cmd[0] = CodeGetExtended;
00084 cmd[1] = code;
00085 amtecSendCommand(dev, id, cmd, 2);
00086 }
00087
00088 void cmdSetExtendedInt8(amtec_powercube_device_p dev, int id, unsigned char code, char val)
00089 {
00090 unsigned char cmd[3];
00091 cmd[0] = CodeSetExtended;
00092 cmd[1] = code;
00093 convertInt8(val, &(cmd[2]));
00094 amtecSendCommand(dev, id, cmd, 3);
00095 }
00096
00097 void cmdSetExtendedUInt8(amtec_powercube_device_p dev, int id, unsigned char code, unsigned char val)
00098 {
00099 unsigned char cmd[3];
00100 cmd[0] = CodeSetExtended;
00101 cmd[1] = code;
00102 convertUInt8(val, &(cmd[2]));
00103 amtecSendCommand(dev, id, cmd, 3);
00104 }
00105
00106 void cmdSetExtendedInt16(amtec_powercube_device_p dev, int id, unsigned char code, short val)
00107 {
00108 unsigned char cmd[4];
00109 cmd[0] = CodeSetExtended;
00110 cmd[1] = code;
00111 convertInt16(val, &(cmd[2]));
00112 amtecSendCommand(dev, id, cmd, 4);
00113 }
00114
00115 void cmdSetExtendedUInt16(amtec_powercube_device_p dev, int id, unsigned char code, unsigned short val)
00116 {
00117 unsigned char cmd[4];
00118 cmd[0] = CodeSetExtended;
00119 cmd[1] = code;
00120 convertUInt16(val, &(cmd[2]));
00121 amtecSendCommand(dev, id, cmd, 3);
00122 }
00123
00124 void cmdSetExtendedInt32(amtec_powercube_device_p dev, int id, unsigned char code, int val)
00125 {
00126 unsigned char cmd[6];
00127 cmd[0] = CodeSetExtended;
00128 cmd[1] = code;
00129 convertInt32(val, &(cmd[2]));
00130 amtecSendCommand(dev, id, cmd, 3);
00131 }
00132
00133 void cmdSetExtendedUInt32(amtec_powercube_device_p dev, int id, unsigned char code, unsigned int val)
00134 {
00135 unsigned char cmd[6];
00136 cmd[0] = CodeSetExtended;
00137 cmd[1] = code;
00138 convertUInt32(val, &(cmd[2]));
00139 amtecSendCommand(dev, id, cmd, 6);
00140 }
00141
00142 void cmdSetExtendedFloat(amtec_powercube_device_p dev, int id, unsigned char code, float val)
00143 {
00144 unsigned char cmd[6];
00145 cmd[0] = CodeSetExtended;
00146 cmd[1] = code;
00147 convertFloat(val, &(cmd[2]));
00148 amtecSendCommand(dev, id, cmd, 6);
00149 }
00150
00151 void cmdSetMotionInt16(amtec_powercube_device_p dev, int id, unsigned char code, short val)
00152 {
00153 unsigned char cmd[4];
00154 cmd[0] = CodeSetMotion;
00155 cmd[1] = code;
00156 convertInt16(val, &(cmd[2]));
00157 amtecSendCommand(dev, id, cmd, 4);
00158 }
00159
00160 void cmdSetMotionInt32(amtec_powercube_device_p dev, int id, unsigned char code, int val)
00161 {
00162 unsigned char cmd[6];
00163 cmd[0] = CodeSetMotion;
00164 cmd[1] = code;
00165 convertInt32(val, &(cmd[2]));
00166 amtecSendCommand(dev, id, cmd, 6);
00167 }
00168
00169 void cmdSetMotionFloat(amtec_powercube_device_p dev, int id, unsigned char code, float val)
00170 {
00171 unsigned char cmd[6];
00172 cmd[0] = CodeSetMotion;
00173 cmd[1] = code;
00174 convertFloat(val, &(cmd[2]));
00175 amtecSendCommand(dev, id, cmd, 6);
00176 }
00177
00178 void cmdSetFStepMotion(amtec_powercube_device_p dev, int id, unsigned char code, float val1, unsigned short val2)
00179 {
00180 unsigned char cmd[8];
00181 cmd[0] = CodeSetMotion;
00182 cmd[1] = code;
00183 convertFloat(val1, &(cmd[2]));
00184 convertUInt16(val2, &(cmd[6]));
00185 amtecSendCommand(dev, id, cmd, 8);
00186 }
00187
00188 void cmdSetIStepMotion(amtec_powercube_device_p dev, int id, unsigned char code, int val1, unsigned short val2)
00189 {
00190 unsigned char cmd[8];
00191 cmd[0] = CodeSetMotion;
00192 cmd[1] = code;
00193 convertInt32(val1, &(cmd[2]));
00194 convertUInt16(val2, &(cmd[6]));
00195 amtecSendCommand(dev, id, cmd, 8);
00196 }
00197
00198 void cmdSetMotionLoop(amtec_powercube_device_p dev, int id, unsigned char code, float pos, unsigned short period)
00199 {
00200 unsigned char cmd[8];
00201 cmd[0] = CodeSetMotion;
00202 cmd[1] = code;
00203 convertFloat(pos, &(cmd[2]));
00204 convertUInt16(period, &(cmd[6]));
00205 amtecSendCommand(dev, id, cmd, 8);
00206 }
00207
00208
00209
00210
00211
00212 void cmdSetMinPos(amtec_powercube_device_p dev, int id, float pos)
00213 {
00214 cmdSetExtendedFloat(dev, id, CodeMinPos, pos);
00215 }
00216
00217 void cmdSetMaxPos(amtec_powercube_device_p dev, int id, float pos)
00218 {
00219 cmdSetExtendedFloat(dev, id, CodeMaxPos, pos);
00220 }
00221
00222 void cmdSetMaxVel(amtec_powercube_device_p dev, int id, float vel)
00223 {
00224 cmdSetExtendedFloat(dev, id, CodeMaxVel, vel);
00225 }
00226
00227 void cmdSetMaxAcc(amtec_powercube_device_p dev, int id, float acc)
00228 {
00229 cmdSetExtendedFloat(dev, id, CodeMaxAcc, acc);
00230 }
00231
00232 void cmdSetMaxCur(amtec_powercube_device_p dev, int id, float cur)
00233 {
00234 cmdSetExtendedFloat(dev, id, CodeMaxCur, cur);
00235 }
00236
00237 void cmdSetTargetVel(amtec_powercube_device_p dev, int id, float vel)
00238 {
00239 cmdSetExtendedFloat(dev, id, CodeTargetVel, vel);
00240 }
00241
00242 void cmdSetTargetAcc(amtec_powercube_device_p dev, int id, float acc)
00243 {
00244 cmdSetExtendedFloat(dev, id, CodeTargetAcc, acc);
00245 }
00246
00247 void cmdSetConfig(amtec_powercube_device_p dev, int id, unsigned int conf)
00248 {
00249 cmdSetExtendedUInt32(dev, id, CodeConfig, conf);
00250 }
00251
00252 void cmdSetActC0(amtec_powercube_device_p dev, int id, short c0)
00253 {
00254 cmdSetExtendedInt16(dev, id, CodeActC0, c0);
00255 }
00256
00257 void cmdSetActDamp(amtec_powercube_device_p dev, int id, short damp)
00258 {
00259 cmdSetExtendedInt16(dev, id, CodeActDamp, damp);
00260 }
00261
00262 void cmdSetActA0(amtec_powercube_device_p dev, int id, short a0)
00263 {
00264 cmdSetExtendedInt16(dev, id, CodeActA0, a0);
00265 }
00266
00267
00268
00269
00270 int getCorrectResetCode(unsigned char *buf, int len)
00271 {
00272 if(len<3 || buf[2]!=CodeReset)
00273 return(0);
00274 return(1);
00275 }
00276
00277 int getCorrectHomeCode(unsigned char *buf, int len)
00278 {
00279 if(len<3 || buf[2]!=CodeHome)
00280 return(0);
00281 return(1);
00282 }
00283
00284 int getCorrectHaltCode(unsigned char *buf, int len)
00285 {
00286 if(len<3 || buf[2]!=CodeHalt)
00287 return(0);
00288 return(1);
00289 }
00290
00291 int getCorrectRecalcPIDParam(unsigned char *buf, int len)
00292 {
00293 if(len<3 || buf[2]!=CodeRecalcPIDParam)
00294 return(0);
00295 return(1);
00296 }
00297
00298 int getCorrectResetTime(unsigned char *buf, int len)
00299 {
00300 if(len<3 || buf[2]!=CodeResetTime)
00301 return(0);
00302 return(1);
00303 }
00304
00305 int getCorrectSetExtCode(unsigned char *buf, int len, unsigned char code)
00306 {
00307 if(len<4 || buf[2]!=CodeSetExtended || buf[3]!=code)
00308 return(0);
00309 return(1);
00310 }
00311
00312 int getCorrectSetMotionCode(unsigned char *buf, int len, unsigned char code)
00313 {
00314 if(len<4 || buf[2]!=CodeSetMotion || buf[3]!=code)
00315 return(0);
00316 return(1);
00317 }
00318
00319 int getCorrectGetExtInt8(unsigned char *buf, int len, unsigned char code, char *val)
00320 {
00321 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00322 return(0);
00323 *val = convertBytes2Int8(&(buf[4]));
00324 return(1);
00325 }
00326
00327 int getCorrectGetExtUInt8(unsigned char *buf, int len, unsigned char code, unsigned char *val)
00328 {
00329 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00330 return(0);
00331 *val = convertBytes2UInt8(&(buf[4]));
00332 return(1);
00333 }
00334
00335 int getCorrectGetExtInt16(unsigned char *buf, int len, unsigned char code, short *val)
00336 {
00337 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00338 return(0);
00339 *val = convertBytes2Int16(&(buf[4]));
00340 return(1);
00341 }
00342
00343 int getCorrectGetExtUInt16(unsigned char *buf, int len, unsigned char code, unsigned short *val)
00344 {
00345 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00346 return(0);
00347 *val = convertBytes2UInt16(&(buf[4]));
00348 return(1);
00349 }
00350
00351 int getCorrectGetExtInt32(unsigned char *buf, int len, unsigned char code, int *val)
00352 {
00353 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00354 return(0);
00355 *val = convertBytes2Int32(&(buf[4]));
00356 return(1);
00357 }
00358
00359 int getCorrectGetExtUInt32(unsigned char *buf, int len, unsigned char code, unsigned int *val)
00360 {
00361 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00362 return(0);
00363 *val = convertBytes2UInt32(&(buf[4]));
00364 return(1);
00365 }
00366
00367 int getCorrectGetExtFloat(unsigned char *buf, int len, unsigned char code, float *val)
00368 {
00369 if(len<4 || buf[2]!=CodeGetExtended || buf[3]!=code)
00370 return(0);
00371 *val = convertBytes2Float(&(buf[4]));
00372 return(1);
00373 }
00374
00375
00376
00377
00378
00379 char amtecGetInt8(amtec_powercube_device_p dev, int id, unsigned char code)
00380 {
00381 static int len;
00382 static unsigned char buf[MAX_ACMD_SIZE];
00383 static char val;
00384 do {
00385 cmdGetExtended(dev, id, code);
00386 amtecGetAnswer(dev, buf, &len);
00387 } while(!getCorrectGetExtInt8(buf, len, code, &val));
00388 return(val);
00389 }
00390
00391 unsigned char amtecGetUInt8(amtec_powercube_device_p dev, int id, unsigned char code)
00392 {
00393 static int len;
00394 static unsigned char buf[MAX_ACMD_SIZE];
00395 static unsigned char val;
00396 do {
00397 cmdGetExtended(dev, id, code);
00398 amtecGetAnswer(dev, buf, &len);
00399 } while(!getCorrectGetExtUInt8(buf, len, code, &val));
00400 return(val);
00401 }
00402
00403 short amtecGetInt16(amtec_powercube_device_p dev, int id, unsigned char code)
00404 {
00405 static int len;
00406 static unsigned char buf[MAX_ACMD_SIZE];
00407 static short val;
00408 do {
00409 cmdGetExtended(dev, id, code);
00410 amtecGetAnswer(dev, buf, &len);
00411 } while(!getCorrectGetExtInt16(buf, len, code, &val));
00412 return(val);
00413 }
00414
00415 unsigned short amtecGetUInt16(amtec_powercube_device_p dev, int id, unsigned char code)
00416 {
00417 static int len;
00418 static unsigned char buf[MAX_ACMD_SIZE];
00419 static unsigned short val;
00420 do {
00421 cmdGetExtended(dev, id, code);
00422 amtecGetAnswer(dev, buf, &len);
00423 } while(!getCorrectGetExtUInt16(buf, len, code, &val));
00424 return(val);
00425 }
00426
00427 int amtecGetInt32(amtec_powercube_device_p dev, int id, unsigned char code)
00428 {
00429 static int len;
00430 static unsigned char buf[MAX_ACMD_SIZE];
00431 static int val;
00432 do {
00433 cmdGetExtended(dev, id, code);
00434 amtecGetAnswer(dev, buf, &len);
00435 } while(!getCorrectGetExtInt32(buf, len, code, &val));
00436 return(val);
00437 }
00438
00439 unsigned int amtecGetUInt32(amtec_powercube_device_p dev, int id, unsigned char code)
00440 {
00441 static int len;
00442 static unsigned char buf[MAX_ACMD_SIZE];
00443 static unsigned int val;
00444 do {
00445 cmdGetExtended(dev, id, code);
00446 amtecGetAnswer(dev, buf, &len);
00447 } while(!getCorrectGetExtUInt32(buf, len, code, &val));
00448 return(val);
00449 }
00450
00451 float amtecGetFloat(amtec_powercube_device_p dev, int id, unsigned char code)
00452 {
00453 int len;
00454 float val;
00455 unsigned char buf[MAX_ACMD_SIZE];
00456 do {
00457 cmdGetExtended(dev, id, code);
00458 amtecGetAnswer(dev, buf, &len);
00459 } while(!getCorrectGetExtFloat(buf, len, code, &val));
00460 return(val);
00461 }
00462
00463
00464
00465
00466 int amtecReset(amtec_powercube_device_p dev, int id)
00467 {
00468 int len;
00469 unsigned char buf[MAX_ACMD_SIZE];
00470 do {
00471 cmdReset(dev, id);
00472 amtecGetAnswer(dev, buf, &len);
00473 } while(!getCorrectResetCode(buf, len));
00474 return 1;
00475 }
00476
00477 int amtecHome(amtec_powercube_device_p dev, int id)
00478 {
00479 int len;
00480 unsigned char buf[MAX_ACMD_SIZE];
00481 do {
00482 cmdHome(dev, id);
00483 amtecGetAnswer(dev, buf, &len);
00484 } while(!getCorrectHomeCode(buf, len));
00485 return 1;
00486 }
00487
00488 int amtecHalt(amtec_powercube_device_p dev, int id)
00489 {
00490 int len;
00491 unsigned char buf[MAX_ACMD_SIZE];
00492 do {
00493 cmdHalt(dev, id);
00494 amtecGetAnswer(dev, buf, &len);
00495 } while(!getCorrectHaltCode(buf, len));
00496 return 1;
00497 }
00498
00499 int amtecRecalcPIDParam(amtec_powercube_device_p dev, int id)
00500 {
00501 int len;
00502 unsigned char buf[MAX_ACMD_SIZE];
00503 do {
00504 cmdRecalcPIDParam(dev, id);
00505 amtecGetAnswer(dev, buf, &len);
00506 } while(!getCorrectRecalcPIDParam(buf, len));
00507 return 1;
00508 }
00509
00510 int amtecResetTime(amtec_powercube_device_p dev, int id)
00511 {
00512 int len;
00513 unsigned char buf[MAX_ACMD_SIZE];
00514 do {
00515 cmdResetTime(dev, id);
00516 amtecGetAnswer(dev, buf, &len);
00517 } while(!getCorrectResetTime(buf, len));
00518 return 1;
00519 }
00520
00521
00522
00523
00524 int amtecMotionFRamp(amtec_powercube_device_p dev, int id, float position)
00525 {
00526 int len;
00527 unsigned char buf[MAX_ACMD_SIZE];
00528 do {
00529 cmdSetMotionFloat(dev, id, FRAMP_MODE, position);
00530 amtecGetAnswer(dev, buf, &len);
00531 } while(!getCorrectSetMotionCode(buf, len, FRAMP_MODE));
00532 return 1;
00533 }
00534
00535 int amtecMotionFStep(amtec_powercube_device_p dev, int id, float position, unsigned short time)
00536 {
00537 int len;
00538 unsigned char buf[MAX_ACMD_SIZE];
00539 do {
00540 cmdSetFStepMotion(dev, id, FSTEP_MODE, position, time);
00541 amtecGetAnswer(dev, buf, &len);
00542 } while(!getCorrectSetMotionCode(buf, len, FSTEP_MODE));
00543 return 1;
00544 }
00545
00546 int amtecMotionFVel(amtec_powercube_device_p dev, int id, float velocity)
00547 {
00548 int len;
00549 unsigned char buf[MAX_ACMD_SIZE];
00550 do {
00551 cmdSetMotionFloat(dev, id, FVEL_MODE, velocity);
00552 amtecGetAnswer(dev, buf, &len);
00553 } while(!getCorrectSetMotionCode(buf, len, FVEL_MODE));
00554 return 1;
00555 }
00556
00557 int amtecMotionFCur(amtec_powercube_device_p dev, int id, float current)
00558 {
00559 int len;
00560 unsigned char buf[MAX_ACMD_SIZE];
00561 do {
00562 cmdSetMotionFloat(dev, id, FCUR_MODE, current);
00563 amtecGetAnswer(dev, buf, &len);
00564 } while(!getCorrectSetMotionCode(buf, len, FCUR_MODE));
00565 return 1;
00566 }
00567
00568 int amtecMotionIRamp(amtec_powercube_device_p dev, int id, int ticks)
00569 {
00570 int len;
00571 unsigned char buf[MAX_ACMD_SIZE];
00572 do {
00573 cmdSetMotionInt32(dev, id, IRAMP_MODE, ticks);
00574 amtecGetAnswer(dev, buf, &len);
00575 } while(!getCorrectSetMotionCode(buf, len, IRAMP_MODE));
00576 return 1;
00577 }
00578
00579 int amtecMotionIStep(amtec_powercube_device_p dev, int id, int ticks, unsigned short time)
00580 {
00581 int len;
00582 unsigned char buf[MAX_ACMD_SIZE];
00583 do {
00584 cmdSetIStepMotion(dev, id, ISTEP_MODE, ticks, time);
00585 amtecGetAnswer(dev, buf, &len);
00586 } while(!getCorrectSetMotionCode(buf, len, ISTEP_MODE));
00587 return 1;
00588 }
00589
00590 int amtecMotionIVel(amtec_powercube_device_p dev, int id, int ticks)
00591 {
00592 int len;
00593 unsigned char buf[MAX_ACMD_SIZE];
00594 do {
00595 cmdSetMotionInt32(dev, id, IVEL_MODE, ticks);
00596 amtecGetAnswer(dev, buf, &len);
00597 } while(!getCorrectSetMotionCode(buf, len, IVEL_MODE));
00598 return 1;
00599 }
00600
00601 int amtecMotionICur(amtec_powercube_device_p dev, int id, short digits)
00602 {
00603 int len;
00604 unsigned char buf[MAX_ACMD_SIZE];
00605 do {
00606 cmdSetMotionInt16(dev, id, ICUR_MODE, digits);
00607 amtecGetAnswer(dev, buf, &len);
00608 } while(!getCorrectSetMotionCode(buf, len, ICUR_MODE));
00609 return 1;
00610 }
00611
00612 int amtecMotionFCosLoop(amtec_powercube_device_p dev, int id, float val, unsigned short period)
00613 {
00614 int len;
00615 unsigned char buf[MAX_ACMD_SIZE];
00616 do {
00617 cmdSetMotionLoop(dev, id, FCOSLOOP, val, period);
00618 amtecGetAnswer(dev, buf, &len);
00619 } while(!getCorrectSetMotionCode(buf, len, FCOSLOOP));
00620 return 1;
00621 }
00622
00623 int amtecMotionFRampLoop(amtec_powercube_device_p dev, int id, float val)
00624 {
00625 int len;
00626 unsigned char buf[MAX_ACMD_SIZE];
00627 do {
00628 cmdSetMotionFloat(dev, id, FCUR_MODE, val);
00629 amtecGetAnswer(dev, buf, &len);
00630 } while(!getCorrectSetMotionCode(buf, len, FCUR_MODE));
00631 }
00632
00633
00634
00635
00636
00637 float amtecGetDefHomeOffset(amtec_powercube_device_p dev, int id)
00638 {
00639 return(amtecGetFloat(dev, id, CodeDefHomeOffset));
00640 }
00641
00642 float amtecGetDefGearRatio(amtec_powercube_device_p dev, int id)
00643 {
00644 return(amtecGetFloat(dev, id, CodeDefGearRatio));
00645 }
00646
00647 float amtecGetDefLinRatio(amtec_powercube_device_p dev, int id)
00648 {
00649 return(amtecGetFloat(dev, id, CodeDefLinRatio));
00650 }
00651
00652 float amtecGetDefMinPos(amtec_powercube_device_p dev, int id)
00653 {
00654 return(amtecGetFloat(dev, id, CodeDefMinPos));
00655 }
00656
00657 float amtecGetDefMaxPos(amtec_powercube_device_p dev, int id)
00658 {
00659 return(amtecGetFloat(dev, id, CodeDefMaxPos));
00660 }
00661
00662 float amtecGetDefMaxDeltaPos(amtec_powercube_device_p dev, int id)
00663 {
00664 return(amtecGetFloat(dev, id, CodeDefMaxDeltaPos));
00665 }
00666
00667 float amtecGetDefMaxDeltaVel(amtec_powercube_device_p dev, int id)
00668 {
00669 return 0;
00670 }
00671
00672 float amtecGetDefTorqueRatio(amtec_powercube_device_p dev, int id)
00673 {
00674 return(amtecGetFloat(dev, id, CodeDefTorqueRatio));
00675 }
00676
00677 float amtecGetDefCurRatio(amtec_powercube_device_p dev, int id)
00678 {
00679 return(amtecGetFloat(dev, id, CodeDefCurRatio));
00680 }
00681
00682 float amtecGetDefMaxVel(amtec_powercube_device_p dev, int id)
00683 {
00684 return(amtecGetFloat(dev, id, CodeDefMaxVel));
00685 }
00686
00687 float amtecGetDefMaxAcc(amtec_powercube_device_p dev, int id)
00688 {
00689 return(amtecGetFloat(dev, id, CodeDefMaxAcc));
00690 }
00691
00692 float amtecGetDefMaxCur(amtec_powercube_device_p dev, int id)
00693 {
00694 return(amtecGetFloat(dev, id, CodeDefMaxCur));
00695 }
00696
00697 float amtecGetDefHomeVel(amtec_powercube_device_p dev, int id)
00698 {
00699 return(amtecGetFloat(dev, id, CodeDefHomeVel));
00700 }
00701
00702 float amtecGetDefHomeAcc(amtec_powercube_device_p dev, int id)
00703 {
00704 return(amtecGetFloat(dev, id, CodeDefHomeAcc));
00705 }
00706
00707 unsigned int amtecGetDefCubeSerial(amtec_powercube_device_p dev, int id)
00708 {
00709 return(amtecGetUInt32(dev, id, CodeDefCubeSerial));
00710 }
00711
00712 unsigned int amtecGetDefPulsesPerTurn(amtec_powercube_device_p dev, int id)
00713 {
00714 return(amtecGetUInt32(dev, id, CodeDefPulsesPerTurn));
00715 }
00716
00717 unsigned int amtecGetDefConfig(amtec_powercube_device_p dev, int id)
00718 {
00719 return(amtecGetUInt32(dev, id, CodeDefConfig));
00720 }
00721
00722 unsigned short amtecGetDefCubeVersion(amtec_powercube_device_p dev, int id)
00723 {
00724 return(amtecGetUInt16(dev, id, CodeDefCubeVersion));
00725 }
00726
00727 unsigned short amtecGetDefServiceInterval(amtec_powercube_device_p dev, int id)
00728 {
00729 return 0;
00730 }
00731
00732 unsigned short amtecGetDefBrakeTimeOut(amtec_powercube_device_p dev, int id)
00733 {
00734 return(amtecGetUInt16(dev, id, CodeDefBrakeTimeOut));
00735 }
00736
00737 unsigned char amtecGetDefAddress(amtec_powercube_device_p dev, int id)
00738 {
00739 return(amtecGetUInt8(dev, id, CodeDefAddress));
00740 }
00741
00742 unsigned char amtecGetDefPrimBaud(amtec_powercube_device_p dev, int id)
00743 {
00744 return(amtecGetUInt8(dev, id, CodeDefPrimBaud));
00745 }
00746
00747 unsigned char amtecGetDefScndBaud(amtec_powercube_device_p dev, int id)
00748 {
00749 return(amtecGetUInt8(dev, id, CodeDefScndBaud));
00750 }
00751
00752 int amtecGetPosCount(amtec_powercube_device_p dev, int id)
00753 {
00754 return(amtecGetUInt8(dev, id, CodePosCount));
00755 }
00756
00757 int amtecGetRefPosCount(amtec_powercube_device_p dev, int id)
00758 {
00759 return(amtecGetUInt8(dev, id, CodeRefPosCount));
00760 }
00761
00762 unsigned int amtecGetDioSetup(amtec_powercube_device_p dev, int id)
00763 {
00764 return(amtecGetUInt32(dev, id, CodeDioSetup));
00765 }
00766
00767 unsigned int amtecGetCubeState(amtec_powercube_device_p dev, int id)
00768 {
00769 return(amtecGetUInt32(dev, id, CodeCubeState));
00770 }
00771
00772 unsigned int amtecGetTargetPosInc(amtec_powercube_device_p dev, int id)
00773 {
00774 return(amtecGetUInt32(dev, id, CodeTargetPosInc));
00775 }
00776
00777 unsigned int amtecGetTargetVelInc(amtec_powercube_device_p dev, int id)
00778 {
00779 return(amtecGetUInt32(dev, id, CodeTargetVelInc));
00780 }
00781
00782 unsigned int amtecGetTargetAccInc(amtec_powercube_device_p dev, int id)
00783 {
00784 return(amtecGetUInt32(dev, id, CodeTargetAccInc));
00785 }
00786
00787 unsigned int amtecGetStepInc(amtec_powercube_device_p dev, int id)
00788 {
00789 return(amtecGetUInt32(dev, id, CodeStepInc));
00790 }
00791
00792
00793 float amtecGetMinPos(amtec_powercube_device_p dev, int id)
00794 {
00795 return(amtecGetFloat(dev, id, CodeMinPos));
00796 }
00797
00798 float amtecGetMaxPos(amtec_powercube_device_p dev, int id)
00799 {
00800 return(amtecGetFloat(dev, id, CodeMaxPos));
00801 }
00802
00803 float amtecGetMaxVel(amtec_powercube_device_p dev, int id)
00804 {
00805 return(amtecGetFloat(dev, id, CodeMaxVel));
00806 }
00807
00808 float amtecGetMaxAcc(amtec_powercube_device_p dev, int id)
00809 {
00810 return(amtecGetFloat(dev, id, CodeMaxAcc));
00811 }
00812
00813 float amtecGetTargetVel(amtec_powercube_device_p dev, int id)
00814 {
00815 return(amtecGetFloat(dev, id, CodeTargetVel));
00816 }
00817
00818 float amtecGetTargetAcc(amtec_powercube_device_p dev, int id)
00819 {
00820 return(amtecGetFloat(dev, id, CodeTargetAcc));
00821 }
00822
00823 float amtecGetMaxCur(amtec_powercube_device_p dev, int id)
00824 {
00825 return(amtecGetFloat(dev, id, CodeMaxCur));
00826 }
00827
00828 float amtecGetActPos(amtec_powercube_device_p dev, int id)
00829 {
00830 return(amtecGetFloat(dev, id, CodeActPos));
00831 }
00832
00833 unsigned int amtecGetConfig(amtec_powercube_device_p dev __attribute__ ((unused)),
00834 int id __attribute__ ((unused)))
00835 {
00836 return(0);
00837 }
00838
00839 float amtecGetActVel(amtec_powercube_device_p dev, int id)
00840 {
00841 return(amtecGetFloat(dev, id, CodeActVel));
00842 }
00843
00844 float amtecGetCur(amtec_powercube_device_p dev, int id)
00845 {
00846 return(amtecGetFloat(dev, id, CodeCur));
00847 }
00848
00849 short amtecGetActC0(amtec_powercube_device_p dev, int id)
00850 {
00851 return amtecGetInt16(dev, id, CodeActC0);
00852 }
00853
00854 short amtecGetActDamp(amtec_powercube_device_p dev, int id)
00855 {
00856 return amtecGetInt16(dev, id, CodeActDamp);
00857 }
00858
00859 short amtecGetActA0(amtec_powercube_device_p dev, int id)
00860 {
00861 return amtecGetInt16(dev, id, CodeActA0);
00862 }
00863
00864
00865
00866
00867
00868 void amtecSetMinPos(amtec_powercube_device_p dev, int id, float val)
00869 {
00870 int len;
00871 unsigned char buf[MAX_ACMD_SIZE];
00872 do {
00873 cmdSetMinPos(dev, id, val);
00874 amtecGetAnswer(dev, buf, &len);
00875 } while(!getCorrectSetExtCode(buf, len, CodeMinPos));
00876 }
00877
00878 void amtecSetMaxPos(amtec_powercube_device_p dev, int id, float val)
00879 {
00880 int len;
00881 unsigned char buf[MAX_ACMD_SIZE];
00882 do {
00883 cmdSetMaxPos(dev, id, val);
00884 amtecGetAnswer(dev, buf, &len);
00885 } while(!getCorrectSetExtCode(buf, len, CodeMaxPos));
00886 }
00887
00888 void amtecSetMaxAcc(amtec_powercube_device_p dev, int id, float val)
00889 {
00890 int len;
00891 unsigned char buf[MAX_ACMD_SIZE];
00892 do {
00893 cmdSetMaxAcc(dev, id, val);
00894 amtecGetAnswer(dev, buf, &len);
00895 } while(!getCorrectSetExtCode(buf, len, CodeMaxAcc));
00896 }
00897
00898 void amtecSetMaxVel(amtec_powercube_device_p dev, int id, float val)
00899 {
00900 int len;
00901 unsigned char buf[MAX_ACMD_SIZE];
00902 do {
00903 cmdSetMaxVel(dev, id, val);
00904 amtecGetAnswer(dev, buf, &len);
00905 } while(!getCorrectSetExtCode(buf, len, CodeMaxVel));
00906 }
00907
00908 void amtecSetTargetAcc(amtec_powercube_device_p dev, int id, float val)
00909 {
00910 int len;
00911 unsigned char buf[MAX_ACMD_SIZE];
00912 do {
00913 cmdSetTargetAcc(dev, id, val);
00914 amtecGetAnswer(dev, buf, &len);
00915 } while(!getCorrectSetExtCode(buf, len, CodeTargetAcc));
00916 }
00917
00918 void amtecSetTargetVel(amtec_powercube_device_p dev, int id, float val)
00919 {
00920 int len;
00921 unsigned char buf[MAX_ACMD_SIZE];
00922 do {
00923 cmdSetTargetVel(dev, id, val);
00924 amtecGetAnswer(dev, buf, &len);
00925 } while(!getCorrectSetExtCode(buf, len, CodeTargetVel));
00926 }
00927
00928 void amtecSetMaxCur(amtec_powercube_device_p dev, int id, float val)
00929 {
00930 int len;
00931 unsigned char buf[MAX_ACMD_SIZE];
00932 do {
00933 cmdSetMaxCur(dev, id, val);
00934 amtecGetAnswer(dev, buf, &len);
00935 } while(!getCorrectSetExtCode(buf, len, CodeMaxCur));
00936 }
00937
00938 void amtecSetConfig(amtec_powercube_device_p dev, int id, unsigned int conf)
00939 {
00940 int len;
00941 unsigned char buf[MAX_ACMD_SIZE];
00942 do {
00943 cmdSetConfig(dev, id, conf);
00944 amtecGetAnswer(dev, buf, &len);
00945 } while(!getCorrectSetExtCode(buf, len, CodeConfig));
00946 }
00947
00948
00949 void amtecSetActC0(amtec_powercube_device_p dev, int id, short c0)
00950 {
00951 int len;
00952 unsigned char buf[MAX_ACMD_SIZE];
00953 do {
00954 cmdSetActC0(dev, id, c0);
00955 amtecGetAnswer(dev, buf, &len);
00956 } while(!getCorrectSetExtCode(buf, len, CodeActC0));
00957 }
00958
00959 void amtecSetActDamp(amtec_powercube_device_p dev, int id, short damp)
00960 {
00961 int len;
00962 unsigned char buf[MAX_ACMD_SIZE];
00963 do {
00964 cmdSetActDamp(dev, id, damp);
00965 amtecGetAnswer(dev, buf, &len);
00966 } while(!getCorrectSetExtCode(buf, len, CodeActDamp));
00967 }
00968
00969 void amtecSetActA0(amtec_powercube_device_p dev, int id, short a0)
00970 {
00971 int len;
00972 unsigned char buf[MAX_ACMD_SIZE];
00973 do {
00974 cmdSetActA0(dev, id, a0);
00975 amtecGetAnswer(dev, buf, &len);
00976 } while(!getCorrectSetExtCode(buf, len, CodeActA0));
00977 }