00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <stdio.h>
00012 #include <phidget21.h>
00013
00014
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