- Fixed a normalisation problem in diffscan when the first value

did not have enough counts
- Reduced polling frequency in emon
- Fixed a scriptcontext bug which would cause it to dump core in SctTransact
  on interrupts
- Fixed an issue with missing <nl> at the end of batch files
- Added a feature which does not call halt when counting stops in hmcontrol.c
  This is necessary for the BOA CCD
- Initalized doNotFree properly in hipadaba.c
- Added the travelling salesman reflection measurement algorithm
- Added another component to amorset
- Removed old SicsWait from nserver.c
- Added a means to nxscript to write 16 bit data for BOA
- Modified tasub to accept a drivabel as a motor and not only a motor.
  This became necessary to make EIGER work as A2 on EIGER is a virtual
  motor
This commit is contained in:
koennecke
2011-09-23 07:55:49 +00:00
parent 92c0e928a7
commit 3ab4bcdfb9
13 changed files with 107 additions and 78 deletions

View File

@ -77,7 +77,7 @@ typedef struct __MoDriv {
#define BADCOUNT -15
/*-------------------------------------------------------------------
This reruns the command when an emergency stop has been detected.
This ougth to fix the problem that there is still another *ES in the
This ought to fix the problem that there is still another *ES in the
line even after releasing the emergency stop button
--------------------------------------------------------------------*/
static int transactEL734(prs232 self, void *send, int sendLen,
@ -93,8 +93,8 @@ static int transactEL734(prs232 self, void *send, int sendLen,
oldTimeout = getRS232Timeout(self);
setRS232Timeout(self, 0);
if (availableRS232(self)) {
len = sizeof(rubbish);
readRS232(self, rubbish, &len);
len = sizeof(rubbish);
readRS232(self, rubbish, &len);
}
setRS232Timeout(self, oldTimeout);
@ -102,15 +102,17 @@ static int transactEL734(prs232 self, void *send, int sendLen,
/*
Actually do something. Some controllers send one erroneus *ES when the
emergency stop had been released. Therefore we believe an emergency stop
message only at the second try. This is the logic below.
message only at the second try. This is the logic below. Some also send
more \r\n style rubbish on emergency stops too. This is what we try to
read away in the while loop below too.
*/
status = transactRS232(self, send, sendLen, reply, replylen);
if (status >= 1) {
pReply = (char *) reply;
if (strstr(pReply, "*ES") != NULL) {
if (availableRS232(self)) {
len = replylen;
readRS232TillTerm(self, reply, &len);
while(availableRS232(self)) {
len = sizeof(rubbish);
readRS232(self, rubbish, &len);
}
status = transactRS232(self, send, sendLen, reply, replylen);
if (status >= 1) {