phidgetsbclist.c
Go to the documentation of this file.
00001 /*
00002  *  phidgetsbclist.c
00003  *  
00004  *  Displays a dynamic list of PhidgetSBCs on the network.
00005  *
00006  *  Created by Patrick Mcneil on 22/08/08.
00007  *  Copyright 2008 Phidgets Inc.. All rights reserved.
00008  *
00009  */
00010 
00011 #include <stdio.h>
00012 #include <phidget21.h>
00013 
00014 //Define these here because they are not in the standard .h file
00015 typedef struct _CPhidgetSBC *CPhidgetSBCHandle;
00016 typedef struct _CPhidgetSBCManager *CPhidgetSBCManagerHandle;
00017 int CPhidgetSBCManager_create(CPhidgetSBCManagerHandle *sbcm);
00018 int CPhidgetSBCManager_start(CPhidgetSBCManagerHandle sbcm);
00019 int CPhidgetSBCManager_stop(CPhidgetSBCManagerHandle sbcm);
00020 int CPhidgetSBCManager_delete(CPhidgetSBCManagerHandle sbcm);
00021 int CPhidgetSBCManager_set_OnAttach_Handler(CPhidgetSBCManagerHandle sbcm, int ( *fptr)(CPhidgetSBCHandle sbc, void *userPtr), void *userPtr);
00022 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);
00023 int CPhidgetSBC_getFirmwareVersion(CPhidgetSBCHandle sbc, const char **firmwareVersion);
00024 int CPhidgetSBC_getHardwareVersion(CPhidgetSBCHandle sbc, int *hardwareVersion);
00025 int CPhidgetSBC_getMacAddress(CPhidgetSBCHandle sbc, const char **macAddress);
00026 int CPhidgetSBC_getAddress(CPhidgetSBCHandle sbc, const char **ipAddr);
00027 int CPhidgetSBC_getHostname(CPhidgetSBCHandle sbc, const char **hostname);
00028 int CPhidgetSBC_getDeviceName(CPhidgetSBCHandle sbc, const char **name);
00029 
00030 
00031 int display_device_info(CPhidgetSBCHandle sbc)
00032 {
00033         int hardwareVersion;
00034         const char *firmwareVersion, *macAddress, *address, *hostname, *name;
00035         
00036         CPhidgetSBC_getFirmwareVersion(sbc, &firmwareVersion);
00037         CPhidgetSBC_getHardwareVersion(sbc, &hardwareVersion);
00038         CPhidgetSBC_getMacAddress(sbc, &macAddress);
00039         CPhidgetSBC_getHostname(sbc, &hostname);
00040         CPhidgetSBC_getDeviceName(sbc, &name);
00041         if(CPhidgetSBC_getAddress(sbc, &address) != EPHIDGET_OK)
00042                 address = NULL;
00043         
00044         printf("  Device Name:      %s\n",name);
00045         printf("  MAC Address:      %s\n",macAddress);
00046         printf("  Address:          %s\n",address?address:"(Unknown)");
00047         printf("  Hostname:         %s\n",hostname);
00048         printf("  Hardware Version: %d\n",hardwareVersion);
00049         printf("  Firmware Version: %s\n",firmwareVersion);
00050         
00051         return 0;
00052 }
00053 
00054 int attach(CPhidgetSBCHandle sbc, void *userPtr)
00055 {
00056         printf("\n===ATTACH===\n");
00057         display_device_info(sbc);
00058         return 0;
00059 }
00060 
00061 int detach(CPhidgetSBCHandle sbc, void *userPtr)
00062 {
00063         printf("\n===DETACH===\n");
00064         display_device_info(sbc);
00065         return 0;
00066 }
00067 
00068 int error(CPhidgetSBCManagerHandle sbcm, void *userPtr, int errorCode, const char *errorString)
00069 {
00070         printf("Error Event: (%d) %s\n", errorCode, errorString);
00071         return 0;
00072 }
00073 
00074 int main(int argc, char *argv[])
00075 {
00076         int result;
00077         CPhidgetSBCManagerHandle sbcm;
00078         
00079         CPhidgetSBCManager_create(&sbcm);
00080         
00081         CPhidgetSBCManager_set_OnAttach_Handler(sbcm, attach, NULL);
00082         CPhidgetSBCManager_set_OnDetach_Handler(sbcm, detach, NULL);
00083         CPhidgetSBCManager_set_OnError_Handler(sbcm, error, NULL);
00084         
00085         result = CPhidgetSBCManager_start(sbcm);
00086         
00087         if(result != EPHIDGET_OK)
00088         {
00089                 const char *err;
00090                 CPhidget_getErrorDescription(result, &err);
00091                 printf("Error: (%d) %s\n", result, err);
00092                 return 1;
00093         }
00094         
00095         printf("Press any key to end\n");
00096         getchar();
00097         printf("Closing...\n");
00098         
00099         CPhidgetSBCManager_stop(sbcm);
00100         CPhidgetSBCManager_delete(sbcm);
00101         
00102         return 0;
00103 }
00104 


pedal_monitor
Author(s): Pedro Mendes
autogenerated on Fri Jun 6 2014 18:37:21