- New drivers for EL737 and EL734 high performance

- Changes to makefiles
This commit is contained in:
cvs
2003-07-08 13:26:54 +00:00
parent cd13637987
commit 3a45c3051d
13 changed files with 1785 additions and 14 deletions

View File

@@ -7,6 +7,11 @@
Mark Koennecke, Juli 1997
Updated to decode the new dornier status messages as coughed up by the new
style Dornier software.
Mark Koennecke, July 2003
Copyright:
Labor fuer Neutronenstreuung
@@ -89,6 +94,95 @@
strcpy(pResult->echo,(const char *)ptr_token);
ptr_src += strlen(ptr_token);
ptr_src = NULL; /* necessary for further search with strtok */
for (;;)
{
/* read text till next separator '/' */
ptr_token = strtok(ptr_src, tok_c);
if (ptr_token == NULL) break;
strcpy(tok_buf,ptr_token);
for (key_id = 0; key_id<=15; key_id++)
{
/* search key ? */
sl = strlen(keys[key_id]);
if (strncmp(&keys[key_id][0], tok_buf, sl) == 0)
{
/* step over key */
for (cnt=0;cnt+sl < TOK_BUF_L; cnt++)
tok_buf[cnt] = tok_buf[cnt+sl];
switch (key_id)
{
case 0: {strcpy(pResult->rm, tok_buf); break;}
case 1: {sscanf(tok_buf,"%d",&pResult->nom_rpm); break;}
case 2: {sscanf(tok_buf,"%d",&pResult->cur_rpm); break;}
case 3: {sscanf(tok_buf,"%d",&pResult->pwr); break;}
case 4: {sscanf(tok_buf,"%f",&pResult->curr); break;}
case 5: {sscanf(tok_buf,"%d",&pResult->rot_temp); break;}
case 6: {sscanf(tok_buf,"%d",&pResult->cont_temp); break;}
case 7: {sscanf(tok_buf,"%d",&pResult->inl_temp); break;}
case 8: {sscanf(tok_buf,"%d",&pResult->outl_temp); break;}
case 9: {sscanf(tok_buf,"%f",&pResult->cool_wat); break;}
case 10: {sscanf(tok_buf,"%f",&pResult->vacuum); break;}
case 11: {sscanf(tok_buf,"%f",&pResult->accel); break;}
case 12: {
if (strcmp(tok_buf, ena_str) == 0)
{pResult->komm = 1; break;}
if (strcmp(tok_buf, dis_str) == 0)
{pResult->komm = 0;break;}
break;
}
case 13: break; /* date */
case 14: break; /* time */
case 15: {sscanf(tok_buf,"%d",&pResult->iHz); break;}
}
}
}
}
return(1);
}
/*--------------------------- analyse Dornier status string ----------------
This is the version for the NGS037 software from Dornier. Main difference
is that the keycodes are in germlish.
-------------------------------------------------------------------------*/
int DecodeNewDornierStatus(char *pText, pDornierStatus pResult)
{
int cnt, key_id, sl, sts;
long err;
char ena_str[] = "ENABLED";
char dis_str[] = "DISABLED";
char keys[16][14] =
{
"MODE:\0 ",
"R_SPEED:\0 ",
"A_SPEED:\0 ",
"P_LOSS:\0 ",
"R_Current:\0 ",
"T_ROT:\0 ",
"T_HHH:\0 ",
"T_INL:\0 ",
"T_OUT:\0",
"F_RATE:\0",
"A_Vac:\0 ",
"V_OSC:\0 ",
"COM: \0 ",
"DATE: \0 ",
"TIME: \0 ",
"Hz:\0 "};
char tok_buf[TOK_BUF_L], *ptr_token, *ptr_src, *ptr;
const char tok_c[] = "/\\\0";
char status[255];
ptr_src = pText;
memset(pResult,0,sizeof(DornierStatus));
/* skip over first token, should be command echo */
ptr_token = strtok(ptr_src, tok_c);
if (ptr_token == NULL) return 0; /* error */
strcpy(pResult->echo,(const char *)ptr_token);
ptr_src += strlen(ptr_token);
ptr_src = NULL; /* necessary for further search with strtok */
for (;;)
{