diff --git a/motorApp/NewFocusSrc/devPMNC87xx.cc b/motorApp/NewFocusSrc/devPMNC87xx.cc index c3c87856..a96d98ff 100644 --- a/motorApp/NewFocusSrc/devPMNC87xx.cc +++ b/motorApp/NewFocusSrc/devPMNC87xx.cc @@ -243,14 +243,14 @@ STATIC RTN_STATUS PMNC87xx_build_trans(motor_cmnd command, double *parms, struct // if (dType == PMD8751) // sprintf(buff, "FIN A%d", drive); // else - trans->state = IDLE_STATE; /* No command sent to the controller. */ + // trans->state = IDLE_STATE; /* No command sent to the controller. */ sendMsg = false; break; case HOME_REV: // if (dType == PMD8751) // sprintf(buff, "RIN A%d", drive); // else - trans->state = IDLE_STATE; /* No command sent to the controller. */ + // trans->state = IDLE_STATE; /* No command sent to the controller. */ sendMsg = false; break; case LOAD_POS: @@ -278,10 +278,10 @@ STATIC RTN_STATUS PMNC87xx_build_trans(motor_cmnd command, double *parms, struct case SET_VEL_BASE: if (dType == PMD8753) { - if (abs(intval) > 1999) - intval = 1999; + if (abs(intval) >= MAX_VELOCITY) + intval = MAX_VELOCITY-1; /* Set VEL to maximum to eliminate MPV out-of-range error */ - sprintf(buff, "VEL A%d %d=2000", drive, motor); + sprintf(buff, "VEL A%d %d=%d", drive, motor, MAX_VELOCITY); strcpy(motor_call->message, buff); rtnval = motor_end_trans_com(mr, drvtabptr); @@ -299,14 +299,19 @@ STATIC RTN_STATUS PMNC87xx_build_trans(motor_cmnd command, double *parms, struct break; case SET_VELOCITY: - if (abs(intval) > 2000) - intval = 2000; + if (abs(intval) > MAX_VELOCITY) + intval = MAX_VELOCITY; sprintf(buff, "VEL A%d %d=%d", drive, motor, abs(intval)); break; case SET_ACCEL: /* * The value passed is in steps/sec/sec. */ + if (intval < MIN_ACCEL) + intval = MIN_ACCEL; + else if (intval > MAX_ACCEL) + intval = MAX_ACCEL; + sprintf(buff, "ACC A%d %d=%d", drive, motor, intval); break; case GO: diff --git a/motorApp/NewFocusSrc/drvPMNC87xx.cc b/motorApp/NewFocusSrc/drvPMNC87xx.cc index c6ca1746..8ee38718 100644 --- a/motorApp/NewFocusSrc/drvPMNC87xx.cc +++ b/motorApp/NewFocusSrc/drvPMNC87xx.cc @@ -133,7 +133,7 @@ STATIC int recv_mess(int, char *, int); STATIC RTN_STATUS send_mess(int, char const *, char *); STATIC int send_recv_mess(int, char const *, char *, char const *); STATIC int set_status(int, int); -STATIC void start_status(int); +// STATIC void start_status(int); static long report(int); static long init(); STATIC int motor_init(); @@ -236,9 +236,9 @@ STATIC void query_done(int card, int axis, struct mess_node *nodeptr) * start_status(int card) * if card == -1 then start all cards *********************************************************/ -STATIC void start_status(int card) -{ -} +// STATIC void start_status(int card) +// { +// } /************************************************************** * Parse status and position strings for a card and signal @@ -303,7 +303,7 @@ STATIC int set_status(int card, int signal) pStr = cntrl->chan_select_string[driverID]; recvRtn = send_recv_mess(card, buff, pStr, NULL); CHECKRTN; - Debug(2, "start_status(): ChanSelect_string=%s\n", pStr); + Debug(2, "set_status(): ChanSelect_string=%s\n", pStr); selectMotor = atoi(pStr); } else diff --git a/motorApp/NewFocusSrc/drvPMNCCom.h b/motorApp/NewFocusSrc/drvPMNCCom.h index d5247b20..f443114c 100644 --- a/motorApp/NewFocusSrc/drvPMNCCom.h +++ b/motorApp/NewFocusSrc/drvPMNCCom.h @@ -47,6 +47,11 @@ Last Modified: 2004/08/17 21:28:22 #include "asynDriver.h" #include "asynOctetSyncIO.h" +/* Motor Characteristics - in steps */ +#define MAX_VELOCITY 2000 +#define MIN_ACCEL 16 +#define MAX_ACCEL 32000 + /* Picomotor Network Controllers */ enum PMNC_model {