Issue raised by port to R3.13.1:Last edited: 5rd July, 2000
- Isisp database definition is done using Capfast. I setup the whole schematics in the Db dir as usual and a make clean all build the database without problem. However I had to modify the schematics to build the database correctly: several field definition were assuming wrong default PP and MS value. More comments on this can be found in the Db/capfast.README files.
- Another issue with ISISP is 2 new entries in the scan rates. I fixed this by modifying EPICS core tree, the mods are in menuScan.dbd of the root distribution. Note that to take effect, the clock speed of the mvme147 need be changed (this means with the old release, when we thought we were scanning at 100 Hz, we were actually scanning at 60 Hz.)
- The main issue for the port was the motor record support. It appears the driver used in R3.12 is not compatible with the latest version.
Basically I found out the HOME flag comes from the axis, when one would expect to get it from the encoder. Probably the wiring was done this way, and would need to be changed to get things working properly with the correct driver, this is the part of the code that's been commented out:in src/recMotor.c
/* Get state of motor's or encoder's home switch. */
/*if ((status & EA_PRESENT) && pmr->ueip) {
pmr->athm = (status & RA_HOME) ? 1 : 0;
} else {*/
pmr->athm = (status & RA_HOME) ? 1 : 0;
/*}*/This is gross ... and not commented. Hence I suspect the change was done on the fly.
The best would be to rewire isisp correctly and use the standard motor distibution. The correct line should read:if ((status & EA_PRESENT) && pmr->ueip) {
pmr->athm = (status & RA_HOME) ? 1 : 0;
} else {
pmr->athm = (status & EA_HOME) ? 1 : 0;
}
By fear other modifications might have been done, I left the old dev/drv support as they were (that is only with the modification required to get them compile with R3.13.1)