From ac1bb2af821863018d0cbf420584e8bbea5d8cb2 Mon Sep 17 00:00:00 2001 From: Ron Sluiter Date: Thu, 18 Jun 2009 19:09:58 +0000 Subject: [PATCH] Make omsSetup() error messages more prominent --- motorApp/OmsSrc/drvOms.cc | 45 +++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/motorApp/OmsSrc/drvOms.cc b/motorApp/OmsSrc/drvOms.cc index 5333db8f..33dc1ae1 100644 --- a/motorApp/OmsSrc/drvOms.cc +++ b/motorApp/OmsSrc/drvOms.cc @@ -2,9 +2,9 @@ FILENAME... drvOms.cc USAGE... Driver level support for OMS models VME8, VME44 and VS4. -Version: $Revision: 1.27 $ +Version: $Revision: 1.28 $ Modified By: $Author: sluiter $ -Last Modified: $Date: 2008-03-14 20:36:10 $ +Last Modified: $Date: 2009-06-18 19:09:58 $ */ /* @@ -73,6 +73,7 @@ Last Modified: $Date: 2008-03-14 20:36:10 $ * .13 03-14-08 rls - 64-bit compatiability. * - changed IRS to task comm. mechanism from epicsRingPointer * to epicsRingByte. + * .14 06-18-09 rls - Make omsSetup() error messages more prominent. */ /*========================stepper motor driver ======================== @@ -970,15 +971,25 @@ static void motorIsrDisable(int card) /* Configuration function for module_types data */ /* areas. omsSetup() */ /*****************************************************/ -int omsSetup(int num_cards, /* maximum number of cards in rack */ - void *addrs, /* Base Address(0x0-0xb000 on 4K boundary) */ - unsigned vector, /* noninterrupting(0), valid vectors(64-255) */ - int int_level, /* interrupt level (1-6) */ - int scan_rate) /* polling rate - in HZ */ +RTN_STATUS +omsSetup(int num_cards, /* maximum number of cards in rack */ + void *addrs, /* Base Address(0x0-0xb000 on 4K boundary) */ + unsigned vector,/* noninterrupting(0), valid vectors(64-255) */ + int int_level, /* interrupt level (1-6) */ + int scan_rate) /* polling rate - 1-60 Hz */ { + RTN_STATUS rtncode = OK; + char errbase[] = "\nomsSetup: *** invalid "; if (num_cards < 1 || num_cards > OMS_NUM_CARDS) + { + char format[] = "%snumber of cards specified = %d ***\n"; oms44_num_cards = OMS_NUM_CARDS; + errlogPrintf(format, errbase, num_cards); + errlogPrintf(" *** using maximum number = %d ***\n", OMS_NUM_CARDS); + epicsThreadSleep(5.0); + rtncode = ERROR; + } else oms44_num_cards = num_cards; @@ -989,8 +1000,6 @@ int omsSetup(int num_cards, /* maximum number of cards in rack */ if ((epicsUInt32) addrs & 0xF) #endif { - Debug(1, "omsSetup: invalid base address %p\n", addrs); - oms_addrs = (char *) OMS_NUM_ADDRS; } else oms_addrs = (char *) addrs; @@ -1000,15 +1009,21 @@ int omsSetup(int num_cards, /* maximum number of cards in rack */ { if (vector != 0) { - Debug(1, "omsSetup: invalid interrupt vector %d\n", vector); + char format[] = "%s interrupt vector %d ***\n"; omsInterruptVector = (unsigned) OMS_INT_VECTOR; + errlogPrintf(format, errbase, vector); + epicsThreadSleep(5.0); + rtncode = ERROR; } } if (int_level < 1 || int_level > 6) { - Debug(1, "omsSetup: invalid interrupt level %d\n", int_level); + char format[] = "%s interrupt level %d ***\n"; omsInterruptLevel = OMS_INT_LEVEL; + errlogPrintf(format, errbase, int_level); + epicsThreadSleep(5.0); + rtncode = ERROR; } else omsInterruptLevel = int_level; @@ -1018,11 +1033,13 @@ int omsSetup(int num_cards, /* maximum number of cards in rack */ targs.motor_scan_rate = scan_rate; else { + char format[] = "%s invalid poll rate - %d HZ\n"; targs.motor_scan_rate = SCAN_RATE; - errlogPrintf("%s(%d): invalid poll rate - %d HZ\n", __FILE__, __LINE__, - scan_rate); + errlogPrintf(format, errbase, scan_rate); + epicsThreadSleep(5.0); + rtncode = ERROR; } - return(0); + return(rtncode); } /*****************************************************/