Files
cdev-1.7.2n/extensions/tclnew/tcltest.cc
2022-12-13 12:44:04 +01:00

75 lines
1.6 KiB
C++

#include <tcl.h>
#include <ctype.h>
#include <string.h>
#include <iostream.h>
#include <math.h>
//#include <dl.h>
// cdev includes
#include <cdevSystem.h>
#include <cdevRequestObject.h>
#include <cdevDevice.h>
#include <cdevGroup.h>
#include <cdevData.h>
#include <dlfcn.h>
typedef cdevRequestObject *cdevRequestObjectPtr;
int TcltestCmd(ClientData, Tcl_Interp *interp, int argc, char **argv) {
char **devices = NULL;
int i, n, ndevices;
Tcl_DString ds;
cdevData result;
cdevCallback *cb = NULL;
cdevRequestObjectPtr request, *requests;
int delinfo = 0;
void *handle;
printf("TcltestCmd: \n");
handle = dlopen ("/home/pss060/sls/hunt/cdev-1.6/lib/linux/1.6/caService.so", RTLD_LAZY);
if (!handle) {
fputs (dlerror(), stderr);
exit(1);
}
/*
printf("TcltestCmd: ndevices=1 argv[1]= %s argv[2]=%s\n",argv[1],argv[2]);
request = cdevRequestObject::attachPtr(argv[1], argv[2]);
return TCL_OK;
// free((char*)devices);
printf("have got request object\n");
// send it sync
if(request->send(NULL, result) != CDEV_SUCCESS) {
sprintf(interp->result, "error in send: %s %s", argv[1], argv[2]);
return TCL_ERROR;
} else {
result.asciiDump(stdout);
}
*/
return TCL_OK;
}
extern"C"int Tcltest_Init(Tcl_Interp *interp) {
printf("This is Tcltest_Init \n");
if(Tcl_PkgProvide(interp, "Tcltest", TCLCDEV_VERSION) != TCL_OK) {
return TCL_ERROR;
}
Tcl_CreateCommand(interp,"tcltest", TcltestCmd, (ClientData *) NULL, (Tcl_CmdDeleteProc *) NULL);
printf("end of Tcltest_Init \n");
return TCL_OK;
}