[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"); + */ } |