[Libphidget-cvs-commits] CVS: libphidget/src/examples phidget_c.c,1.15,1.16 phidget_cpp.cc,1.8,1.9
Status: Alpha
Brought to you by:
jstrohm
|
From: Jack S. <js...@us...> - 2002-12-15 20:40:16
|
Update of /cvsroot/libphidget/libphidget/src/examples
In directory sc8-pr-cvs1:/tmp/cvs-serv825/examples
Modified Files:
phidget_c.c phidget_cpp.cc
Log Message:
Starting to re-add the interface kit to phidget++
Index: phidget_c.c
===================================================================
RCS file: /cvsroot/libphidget/libphidget/src/examples/phidget_c.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** phidget_c.c 14 Dec 2002 23:38:13 -0000 1.15
--- phidget_c.c 15 Dec 2002 20:40:10 -0000 1.16
***************
*** 51,55 ****
printf("Phidget Name ID ID Serial#\n");
printf("-------------------------------- ------ ------- -------\n");
! printf ("%32s 0x0%x 0x0%x %06d\n",
phidgetTypeName (phidgetType (dev)),
phidgetTypeVendorID (phidgetType (dev)),
--- 51,55 ----
printf("Phidget Name ID ID Serial#\n");
printf("-------------------------------- ------ ------- -------\n");
! printf ("%32s 0x0%x 0x0%x %06d\n",
phidgetTypeName (phidgetType (dev)),
phidgetTypeVendorID (phidgetType (dev)),
Index: phidget_cpp.cc
===================================================================
RCS file: /cvsroot/libphidget/libphidget/src/examples/phidget_cpp.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** phidget_cpp.cc 15 Dec 2002 05:05:28 -0000 1.8
--- phidget_cpp.cc 15 Dec 2002 20:40:11 -0000 1.9
***************
*** 12,15 ****
--- 12,19 ----
#include "CPhidget.h"
#include "CServoController.h"
+ #include "CInterfaceKit.h"
+ #include "CDigitalOut.h"
+ #include "CDigitalIn.h"
+ #include "CAnalogIn.h"
#include "CTextLCD.h"
#include <unistd.h>
***************
*** 224,231 ****
--- 228,242 ----
CServoController *sc = dynamic_cast < CServoController *>(phidget);
+ CInterfaceKit *ik = dynamic_cast < CInterfaceKit *>(phidget);
if (sc != NULL)
printf("Servos: %d\n", sc->servoCount());
else
+ if (ik != NULL)
+ printf("DI: %d DO: %d AI:%d\n",
+ ik->getDigitalInCount(),
+ ik->getDigitalOutCount(),
+ ik->getAnalogInCount());
+ else
printf("Unsupported\n");
}
***************
*** 337,346 ****
{
printf("Arguments:\n\n");
! printf(" -l (default) list all phidets \n");
! printf(" -u {UID} set the working UID\n");
! printf(" -q query the working UID\n");
! printf(" -h help\n");
! printf(" -p {percent} adjust the position of a servo referenced by UID\n");
! printf(" -t {string} send a string to a Text LCD phidget\n");
printf("\n");
}
--- 348,360 ----
{
printf("Arguments:\n\n");
! printf(" -l (default) list all phidets \n");
! printf(" -u {UID} set the working UID\n");
! printf(" -q query the working UID\n");
! printf(" -h help\n");
! printf(" -p {percent} adjust the position of a servo referenced by UID\n");
! printf(" -t {string} send a string to a Text LCD phidget\n");
! printf(" -do {id} {on/off} turn digital output ID on or off\n");
! printf(" -di {id} read digital input ID\n");
! printf(" -ai {id} read analog input ID\n");
printf("\n");
}
***************
*** 366,380 ****
return (processArgs(argn - 2, argv + 2));
} else
! if (arg == "-q")
{
query();
return (processArgs(argn - 1, argv + 1));
} else
! if (arg == "-h")
{
help();
return (processArgs(argn - 1, argv + 1));
} else
! if (arg == "-l")
{
phidgets_ls();
--- 380,394 ----
return (processArgs(argn - 2, argv + 2));
} else
! if (arg == "-q")
{
query();
return (processArgs(argn - 1, argv + 1));
} else
! if (arg == "-h")
{
help();
return (processArgs(argn - 1, argv + 1));
} else
! if (arg == "-l")
{
phidgets_ls();
***************
*** 390,394 ****
return (processArgs(argn - 2, argv + 2));
} else
! if (arg == "-p")
{
if (argn < 2)
--- 404,408 ----
return (processArgs(argn - 2, argv + 2));
} else
! if (arg == "-p")
{
if (argn < 2)
***************
*** 398,404 ****
--- 412,449 ----
moveServo(parm);
return (processArgs(argn - 2, argv + 2));
+ } else
+ if (arg == "-do")
+ {
+ if (argn < 3)
+ throw runtime_error("Need 2 arguments for -do");
+
+ int id= atoi(argv[1]);
+ string value= argv[2];
+
+ CInterfaceKit kit(workingUID);
+ CDigitalOut *out=kit.digitalOut(id);
+
+ if (value=="on")
+ {
+ out->value(true);
+ }
+ else
+ if (value=="off")
+ {
+ out->value(false);
+ }
+ else
+ throw runtime_error("Invalid state to set output");
+
+ return (processArgs(argn - 3, argv + 3));
}
throw runtime_error("Invalid argument:" + arg);
+
+ /*
+ printf(" -do {id} {on/off} turn digital output ID on or off\n");
+ printf(" -di {id} read digital input ID\n");
+ printf(" -ai {id} read analog input ID\n");
+ */
}
|