- Many fixes to accomodate a nitty picky TRICS wishlist

- Added a log facility to scan which includes a variable which is logged but
  not driven during a scan.
- Fixed normal beam operation
This commit is contained in:
koennecke
2006-01-27 11:33:06 +00:00
parent 45fd50265f
commit b737b4d936
17 changed files with 367 additions and 182 deletions

View File

@ -22,10 +22,11 @@ static void listAllObjects(SConnection *pCon, SicsInterp *pSics){
pCom = pSics->pCList;
while(pCom != NULL){
Tcl_DStringAppendElement(&lst,pCom->pName);
Tcl_DStringAppend(&lst,pCom->pName,-1);
pCom = pCom->pNext;
Tcl_DStringAppend(&lst, ", ",-1);
}
Tcl_DStringAppendElement(&lst,"ENDLIST");
Tcl_DStringAppend(&lst,"ENDLIST",-1);
SCWrite(pCon,Tcl_DStringValue(&lst), eValue);
Tcl_DStringFree(&lst);
}
@ -37,45 +38,45 @@ static void listAllObjectData(SConnection *pCon, char *name, pDummy data){
Tcl_DStringInit(&lst);
if(data == NULL){
snprintf(buffer,255,"%s = command", name);
Tcl_DStringAppendElement(&lst,buffer);
snprintf(buffer,255,"%s = command, ", name);
Tcl_DStringAppend(&lst,buffer,-1);
} else {
snprintf(buffer,255,"%s=obj", name);
Tcl_DStringAppendElement(&lst,buffer);
snprintf(buffer,255,"type=%s",data->pDescriptor->name);
Tcl_DStringAppendElement(&lst,buffer);
snprintf(buffer,255,"%s=obj, ", name);
Tcl_DStringAppend(&lst,buffer,-1);
snprintf(buffer,255,"type=%s, ",data->pDescriptor->name);
Tcl_DStringAppend(&lst,buffer,-1);
if(data->pDescriptor->GetInterface(data,DRIVEID) != NULL){
snprintf(buffer,255,"drivable=true");
snprintf(buffer,255,"drivable=true, ");
} else {
snprintf(buffer,255,"drivable=false");
snprintf(buffer,255,"drivable=false, ");
}
Tcl_DStringAppendElement(&lst,buffer);
Tcl_DStringAppend(&lst,buffer,-1);
if(data->pDescriptor->GetInterface(data,COUNTID) != NULL){
snprintf(buffer,255,"countable=true");
snprintf(buffer,255,"countable=true, ");
} else {
snprintf(buffer,255,"countable=false");
snprintf(buffer,255,"countable=false, ");
}
Tcl_DStringAppendElement(&lst,buffer);
Tcl_DStringAppend(&lst,buffer,-1);
if(data->pDescriptor->GetInterface(data,CALLBACKINTERFACE) != NULL){
snprintf(buffer,255,"callback=true");
snprintf(buffer,255,"callback=true, ");
} else {
snprintf(buffer,255,"callback=false");
snprintf(buffer,255,"callback=false, ");
}
Tcl_DStringAppendElement(&lst,buffer);
Tcl_DStringAppend(&lst,buffer,-1);
if(data->pDescriptor->GetInterface(data,ENVIRINTERFACE) != NULL){
snprintf(buffer,255,"environment=true");
snprintf(buffer,255,"environment=true, ");
} else {
snprintf(buffer,255,"environment=false");
snprintf(buffer,255,"environment=false, ");
}
Tcl_DStringAppendElement(&lst,buffer);
Tcl_DStringAppend(&lst,buffer,-1);
prop = data->pDescriptor->pKeys;
while(prop != NULL){
snprintf(buffer,255,"%s=%s",prop->name,prop->value);
Tcl_DStringAppendElement(&lst,buffer);
snprintf(buffer,255,"%s=%s, ",prop->name,prop->value);
Tcl_DStringAppend(&lst,buffer,-1);
prop = prop->pNext;
}
}
Tcl_DStringAppendElement(&lst,"ENDLIST");
Tcl_DStringAppend(&lst,"ENDLIST",-1);
SCWrite(pCon,Tcl_DStringValue(&lst),eValue);
Tcl_DStringFree(&lst);
}
@ -190,7 +191,8 @@ static void listToString(int list,Tcl_DString *txt){
while(status != 0){
pPtr = (char *)LLDnodePtr(list);
if(pPtr != NULL){
Tcl_DStringAppendElement(txt,pPtr);
Tcl_DStringAppend(txt,pPtr,-1);
Tcl_DStringAppend(txt, ", ",-1);
}
status = LLDnodePtr2Next(list);
}
@ -205,7 +207,7 @@ static void printKeyTypes(SicsInterp *pSics, SConnection *pCon,
Tcl_DString result;
if(strcmp(key,"interface") == 0){
SCWrite(pCon,"drivable countable callback environment",eValue);
SCWrite(pCon,"drivable, countable, callback, environment",eValue);
return;
}
@ -254,11 +256,12 @@ static void printObjectsMatchingKeyVal(SicsInterp *pSics,
}
}
if(status == 1){
Tcl_DStringAppendElement(&result,pCom->pName);
Tcl_DStringAppend(&result,pCom->pName,-1);
Tcl_DStringAppend(&result, ", ",-1);
}
pCom = pCom->pNext;
}
Tcl_DStringAppendElement(&result,"ENDLIST");
Tcl_DStringAppend(&result,"ENDLIST",-1);
SCWrite(pCon,Tcl_DStringValue(&result),eValue);
Tcl_DStringFree(&result);
}
@ -368,11 +371,11 @@ static int printServer(SConnection *pCon){
Tcl_DStringInit(&txt);
current = pSICSOptions;
while(current != NULL){
snprintf(buffer,511,"%s=%s",current->name,current->value);
Tcl_DStringAppendElement(&txt,buffer);
snprintf(buffer,511,"%s=%s, ",current->name,current->value);
Tcl_DStringAppend(&txt,buffer,-1);
current = current->pNext;
}
Tcl_DStringAppendElement(&txt,"ENDLIST");
Tcl_DStringAppend(&txt,"ENDLIST",-1);
SCWrite(pCon,Tcl_DStringValue(&txt),eValue);
Tcl_DStringFree(&txt);
return 1;
@ -437,11 +440,12 @@ static void printMatch(SConnection *pCon, SicsInterp *pSics,
current = pSics->pCList;
while(current != NULL){
if(!match(mask,current->pName)){
Tcl_DStringAppendElement(&txt, current->pName);
Tcl_DStringAppend(&txt, current->pName,-1);
Tcl_DStringAppend(&txt, ", ",-1);
}
current = current->pNext;
}
Tcl_DStringAppendElement(&txt,"ENDLIST");
Tcl_DStringAppend(&txt,"ENDLIST",-1);
SCWrite(pCon,Tcl_DStringValue(&txt), eValue);
Tcl_DStringFree(&txt);
}