- 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:
68
sicslist.c
68
sicslist.c
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user