/* * phidgetsbclist.c * * Displays a dynamic list of PhidgetSBCs on the network. * * Created by Patrick Mcneil on 22/08/08. * Copyright 2008 Phidgets Inc.. All rights reserved. * */ #include #include //Define these here because they are not in the standard .h file typedef struct _CPhidgetSBC *CPhidgetSBCHandle; typedef struct _CPhidgetSBCManager *CPhidgetSBCManagerHandle; int CPhidgetSBCManager_create(CPhidgetSBCManagerHandle *sbcm); int CPhidgetSBCManager_start(CPhidgetSBCManagerHandle sbcm); int CPhidgetSBCManager_stop(CPhidgetSBCManagerHandle sbcm); int CPhidgetSBCManager_delete(CPhidgetSBCManagerHandle sbcm); int CPhidgetSBCManager_set_OnAttach_Handler(CPhidgetSBCManagerHandle sbcm, int ( *fptr)(CPhidgetSBCHandle sbc, void *userPtr), void *userPtr); int CPhidgetSBCManager_set_OnDetach_Handler(CPhidgetSBCManagerHandle sbcm, int ( *fptr)(CPhidgetSBCHandle sbc, void *userPtr), void *userPtr);int CPhidgetSBCManager_set_OnError_Handler(CPhidgetSBCManagerHandle sbcm, int( *fptr)(CPhidgetSBCManagerHandle sbcm, void *userPtr, int errorCode, const char *errorString), void *userPtr); int CPhidgetSBC_getFirmwareVersion(CPhidgetSBCHandle sbc, const char **firmwareVersion); int CPhidgetSBC_getHardwareVersion(CPhidgetSBCHandle sbc, int *hardwareVersion); int CPhidgetSBC_getMacAddress(CPhidgetSBCHandle sbc, const char **macAddress); int CPhidgetSBC_getAddress(CPhidgetSBCHandle sbc, const char **ipAddr); int CPhidgetSBC_getHostname(CPhidgetSBCHandle sbc, const char **hostname); int CPhidgetSBC_getDeviceName(CPhidgetSBCHandle sbc, const char **name); int display_device_info(CPhidgetSBCHandle sbc) { int hardwareVersion; const char *firmwareVersion, *macAddress, *address, *hostname, *name; CPhidgetSBC_getFirmwareVersion(sbc, &firmwareVersion); CPhidgetSBC_getHardwareVersion(sbc, &hardwareVersion); CPhidgetSBC_getMacAddress(sbc, &macAddress); CPhidgetSBC_getHostname(sbc, &hostname); CPhidgetSBC_getDeviceName(sbc, &name); if(CPhidgetSBC_getAddress(sbc, &address) != EPHIDGET_OK) address = NULL; printf(" Device Name: %s\n",name); printf(" MAC Address: %s\n",macAddress); printf(" Address: %s\n",address?address:"(Unknown)"); printf(" Hostname: %s\n",hostname); printf(" Hardware Version: %d\n",hardwareVersion); printf(" Firmware Version: %s\n",firmwareVersion); return 0; } int attach(CPhidgetSBCHandle sbc, void *userPtr) { printf("===ATTACH===\n"); display_device_info(sbc); return 0; } int detach(CPhidgetSBCHandle sbc, void *userPtr) { printf("===DETACH===\n"); display_device_info(sbc); return 0; } int error(CPhidgetSBCManagerHandle sbcm, void *userPtr, int errorCode, const char *errorString) { printf("Error Event: (%d) %s\n", errorCode, errorString); return 0; } int main(int argc, char *argv[]) { int result; CPhidgetSBCManagerHandle sbcm; CPhidgetSBCManager_create(&sbcm); CPhidgetSBCManager_set_OnAttach_Handler(sbcm, attach, NULL); CPhidgetSBCManager_set_OnDetach_Handler(sbcm, detach, NULL); CPhidgetSBCManager_set_OnError_Handler(sbcm, error, NULL); result = CPhidgetSBCManager_start(sbcm); if(result != EPHIDGET_OK) { const char *err; CPhidget_getErrorDescription(result, &err); printf("Error: (%d) %s\n", result, err); return 1; } printf("Press any key to end\n"); getchar(); printf("Closing...\n"); CPhidgetSBCManager_stop(sbcm); CPhidgetSBCManager_delete(sbcm); return 0; } 4linux @ 2001-09-09 12:26:03 by reinelt]reinelt1-10/+14 2001-09-07[lcd4linux @ 2001-09-07 05:58:44 by reinelt]reinelt1-2/+2 2001-09-05[lcd4linux @ 2001-09-05 09:38:52 by reinelt]reinelt2-2/+13 2001-08-08[lcd4linux @ 2001-08-08 05:40:24 by reinelt]reinelt1-3/+7 2001-08-05[lcd4linux @ 2001-08-05 17:13:29 by reinelt]reinelt6-11/+35 2001-06-04[lcd4linux @ 2001-06-04 07:49:58 by reinelt]reinelt2-140/+117 2001-05-31[lcd4linux @ 2001-05-31 10:26:41 by ltoetsch]ltoetsch7-171/+1032 2001-05-27[lcd4linux @ 2001-05-27 17:32:35 by reinelt]reinelt1-47/+50 2001-05-27[lcd4linux @ 2001-05-27 07:19:28 by reinelt]reinelt4-5/+22 2001-05-26[lcd4linux @ 2001-05-26 06:51:28 by reinelt]reinelt1-0/+4 2001-05-06[lcd4linux @ 2001-05-06 10:01:27 by reinelt]reinelt1-2/+7 2001-04-27[lcd4linux @ 2001-04-27 05:04:57 by reinelt]reinelt9-125/+185 2001-03-24[lcd4linux @ 2001-03-24 09:26:25 by reinelt]reinelt1-0/+5 2001-03-24[lcd4linux @ 2001-03-24 09:04:19 by reinelt]reinelt1-0/+5 2001-03-17[lcd4linux @ 2001-03-17 11:44:10 by ltoetsch]ltoetsch1-20/+42 2001-03-17[lcd4linux @ 2001-03-17 11:11:31 by ltoetsch]ltoetsch1-2/+5 2001-03-16[lcd4linux @ 2001-03-16 16:40:17 by ltoetsch]ltoetsch12-24/+112 2001-03-16[lcd4linux @ 2001-03-16 09:28:08 by ltoetsch]ltoetsch5-11/+35 2001-03-15[lcd4linux @ 2001-03-15 15:49:22 by ltoetsch]ltoetsch3-14/+27 2001-03-15[lcd4linux @ 2001-03-15 14:25:05 by ltoetsch]ltoetsch11-125/+278 2001-03-15[lcd4linux @ 2001-03-15 11:10:53 by ltoetsch]ltoetsch1-1/+8 2001-03-15[lcd4linux @ 2001-03-15 09:47:13 by reinelt]reinelt3-16/+31 2001-03-15[lcd4linux @ 2001-03-15 09:13:22 by ltoetsch]ltoetsch1-2/+9 2001-03-14[lcd4linux @ 2001-03-14 16:47:41 by reinelt]reinelt3-41/+59 2001-03-14[lcd4linux @ 2001-03-14 15:30:53 by reinelt]reinelt1-21/+34 2001-03-14[lcd4linux @ 2001-03-14 15:14:59 by reinelt]reinelt8-152/+365 2001-03-14[lcd4linux @ 2001-03-14 13:19:29 by ltoetsch]ltoetsch16-128/+773 2001-03-13[lcd4linux @ 2001-03-13 08:34:15 by reinelt]reinelt6-29/+50 2001-03-13[lcd4linux @ 2001-03-13 08:03:41 by reinelt]reinelt3-1/+35 2001-03-13[lcd4linux @ 2001-03-13 07:53:00 by reinelt]reinelt2-13/+15 2001-03-13[lcd4linux @ 2001-03-13 07:41:22 by reinelt]reinelt3-2/+52 2001-03-12[lcd4linux @ 2001-03-12 13:44:58 by reinelt]reinelt8-58/+232 2001-03-12[lcd4linux @ 2001-03-12 12:49:24 by reinelt]reinelt2-63/+71 2001-03-12[lcd4linux @ 2001-03-12 12:39:36 by reinelt]reinelt14-448/+830 2001-03-09[lcd4linux @ 2001-03-09 16:24:30 by ltoetsch]ltoetsch2-155/+345 2001-03-09[lcd4linux @ 2001-03-09 15:04:53 by reinelt]reinelt3-103/+109 2001-03-09[lcd4linux @ 2001-03-09 14:30:01 by reinelt]reinelt1-0/+7 2001-03-09[lcd4linux @ 2001-03-09 14:24:49 by ltoetsch]ltoetsch3-7/+18 2001-03-09[lcd4linux @ 2001-03-09 13:08:11 by ltoetsch]ltoetsch12-86/+384 2001-03-09[lcd4linux @ 2001-03-09 12:14:24 by reinelt]reinelt4-21/+34 2001-03-08[lcd4linux @ 2001-03-08 15:25:38 by ltoetsch]ltoetsch9-93/+214 2001-03-08[lcd4linux @ 2001-03-08 09:02:04 by reinelt]reinelt4-133/+21 2001-03-08[lcd4linux @ 2001-03-08 08:39:54 by reinelt]reinelt2-4/+12 2001-03-07[lcd4linux @ 2001-03-07 18:10:21 by ltoetsch]ltoetsch10-110/+319 2001-03-05[lcd4linux @ 2001-03-05 18:20:21 by reinelt]reinelt2-13/+25 2001-03-04[lcd4linux @ 2001-03-04 15:01:12 by ltoetsch]ltoetsch1-3/+3 2001-03-02[lcd4linux @ 2001-03-02 20:18:12 by reinelt]reinelt3-36/+89