PSI sics-cvs-psi-complete-tree-post-site-support
This commit is contained in:
85
choco.c
85
choco.c
@@ -12,6 +12,7 @@
|
||||
#include <assert.h>
|
||||
#include "fortify.h"
|
||||
#include "sics.h"
|
||||
#include "site.h"
|
||||
#define CHOCOINTERNAL
|
||||
#include "choco.h"
|
||||
|
||||
@@ -174,9 +175,6 @@
|
||||
*/
|
||||
|
||||
extern pCodri MakeSimChopper(void);
|
||||
extern pCodri MakeDoChoDriver(char *pHost, int iPort, int iChannel,
|
||||
int iSingle);
|
||||
extern pCodri MakeCookerDriver(char *pHost, int iPort, int iChannel);
|
||||
/*-----------------------------------------------------------------------*/
|
||||
int ChocoFactory(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
int argc, char *argv[])
|
||||
@@ -187,6 +185,7 @@ extern pCodri MakeCookerDriver(char *pHost, int iPort, int iChannel);
|
||||
char pBueffel[132];
|
||||
int iRet, iPort, iChannel;
|
||||
int iSingle = 0;
|
||||
pSite site = NULL;
|
||||
|
||||
if(argc < 3)
|
||||
{
|
||||
@@ -206,78 +205,20 @@ extern pCodri MakeCookerDriver(char *pHost, int iPort, int iChannel);
|
||||
{
|
||||
pDriv = MakeSimChopper();
|
||||
}
|
||||
else if(strcmp(argv[2],"docho") == 0)
|
||||
{
|
||||
if(argc < 6)
|
||||
{
|
||||
SCWrite(pCon,
|
||||
"ERROR: Insufficient number of arguments to install Dornier Chopper driver",
|
||||
eError);
|
||||
return 0;
|
||||
}
|
||||
iRet = Tcl_GetInt(pSics->pTcl,argv[4],&iPort);
|
||||
if(iRet != TCL_OK)
|
||||
{
|
||||
sprintf(pBueffel,"ERROR: expected integer as port number, got %s",
|
||||
argv[4]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
iRet = Tcl_GetInt(pSics->pTcl,argv[5],&iChannel);
|
||||
if(iRet != TCL_OK)
|
||||
{
|
||||
sprintf(pBueffel,"ERROR: expected integer as channel number, got %s",
|
||||
argv[4]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
if(argc > 6)
|
||||
{
|
||||
iRet = Tcl_GetInt(pSics->pTcl,argv[6],&iSingle);
|
||||
if(iRet != TCL_OK)
|
||||
{
|
||||
sprintf(pBueffel,
|
||||
"ERROR: expected integer as single flag, got %s",
|
||||
argv[6]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
pDriv = MakeDoChoDriver(argv[3],iPort,iChannel,iSingle);
|
||||
}
|
||||
else if(strcmp(argv[2],"sanscook") == 0)
|
||||
{
|
||||
if(argc < 6)
|
||||
{
|
||||
SCWrite(pCon,
|
||||
"ERROR: Insufficient number of arguments to install SANS Cooker driver",
|
||||
eError);
|
||||
return 0;
|
||||
}
|
||||
iRet = Tcl_GetInt(pSics->pTcl,argv[4],&iPort);
|
||||
if(iRet != TCL_OK)
|
||||
{
|
||||
sprintf(pBueffel,"ERROR: expected integer as port number, got %s",
|
||||
argv[4]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
iRet = Tcl_GetInt(pSics->pTcl,argv[5],&iChannel);
|
||||
if(iRet != TCL_OK)
|
||||
{
|
||||
sprintf(pBueffel,"ERROR: expected integer as channel number, got %s",
|
||||
argv[4]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
pDriv = MakeCookerDriver(argv[3],iPort,iChannel);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(pBueffel,"ERROR: Driver %s NOT supported for MakeController",
|
||||
site = getSite();
|
||||
if(site != NULL){
|
||||
pDriv = site->CreateControllerDriver(pCon,argc-2,&argv[2]);
|
||||
} else {
|
||||
pDriv = NULL;
|
||||
}
|
||||
if(pDriv == NULL){
|
||||
sprintf(pBueffel,"ERROR: Driver %s NOT supported for MakeController",
|
||||
argv[2]);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if( (pNew == NULL) || (pDes == NULL) || (pDriv == NULL) )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user