Posts

Post not yet marked as solved
13 Replies
7.7k Views
Hi All,I am unable to set environment variable DYLD_LIBRARY_PATH using launchctl command on El Captian. The below are the commands$ launchctl setenv DYLD_LIBRARY_PATH /Path/to/my/dynamic/libraries$ launchctl getenv DYLD_LIBRARY_PATHThe getenv does not print the path, it returns empty.Thanks,Rashmi
Posted
by Rashmi.
Last updated
.
Post not yet marked as solved
0 Replies
711 Views
Hi,I am working of USB HID devices. The IOHIDManagerOpen fails if the device is connected and application is launched. Below is the code where in I am registering for DeviceAttach and DeviceDetach event. I am able to recieve the attach and detach event, but IOHIDManagerOpen returns fails. In the event of failure I am not able to read or write to the device. Have I missed any thing while registering the device?#include <IOKit/hid/IOHIDManager.h> #include <IOKit/hid/IOHIDKeys.h> #include <CoreFoundation/CoreFoundation.h> #include <pthread.h> #include <sys/time.h> #include <unistd.h> //Reference : https://developer.apple.com/library/content/technotes/tn2187/_index.html // this will be called when the HID Manager matches a new ( hot plugged ) HID device static void Handle_DeviceMatchingCallback( void * inContext, // context from IOHIDManagerRegisterDeviceMatchingCallback IOReturn inResult, // the result of the matching operation void * inSender, // the IOHIDManagerRef for the new device IOHIDDeviceRef inIOHIDDeviceRef // the new HID device ) { printf( "%s( context: %p, result: %x, sender: %p, device: %p ).\n", __PRETTY_FUNCTION__, inContext, inResult, inSender, ( void* ) inIOHIDDeviceRef ); } // Handle_DeviceMatchingCallback // this will be called when a HID device is removed ( unplugged ) static void Handle_RemovalCallback( void * inContext, // context from IOHIDManagerRegisterDeviceMatchingCallback IOReturn inResult, // the result of the removing operation void * inSender, // the IOHIDManagerRef for the device being removed IOHIDDeviceRef inIOHIDDeviceRef // the removed HID device ) { printf( "%s( context: %p, result: %x, sender: %p, device: %p ).\n", __PRETTY_FUNCTION__, inContext, inResult, inSender, ( void* ) inIOHIDDeviceRef ); } // Handle_RemovalCallback int main(int argc, char const *argv[]) { if (argc < 2) { printf("usage:\n\t%s <vid>\n", argv[0]); printf("for example: %s 0x04d8\n", argv[0]); return 1; } IOOptionBits options = kIOHIDManagerOptionNone; IOHIDManagerRef hidMgr = IOHIDManagerCreate(kCFAllocatorDefault, options); if (hidMgr != NULL && CFGetTypeID(hidMgr) == IOHIDManagerGetTypeID()) { printf("Successfully created HIDManager\n" ); long vid = strtol(argv[1], NULL, 16); CFMutableDictionaryRef matchingDictRef = NULL; if(vid) { CFNumberRef vidRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &vid); if(vidRef) { matchingDictRef = CFDictionaryCreateMutable(kCFAllocatorDefault, 0 , &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); if(matchingDictRef) { CFDictionarySetValue(matchingDictRef, CFSTR(kIOHIDVendorIDKey), vidRef); } else { printf("Failed to created mutable dictionary\n"); } CFRelease(vidRef); } else { printf("Failed to create VID NumberRef\n"); } } IOHIDManagerSetDeviceMatching(hidMgr, matchingDictRef); //Register for the call backs IOHIDManagerRegisterDeviceMatchingCallback(hidMgr, Handle_DeviceMatchingCallback, NULL); IOHIDManagerRegisterDeviceRemovalCallback(hidMgr, Handle_RemovalCallback, NULL); IOHIDManagerScheduleWithRunLoop(hidMgr, CFRunLoopGetMain(), kCFRunLoopDefaultMode); IOReturn tIOReturn = IOHIDManagerOpen( hidMgr, kIOHIDOptionsTypeNone ); if(tIOReturn != kIOReturnSuccess) { printf("HIDManager faile to open -> %x\n",tIOReturn); } else { printf("HIDManager opened Successfully\n" ); } } else { return -1; } CFRunLoopRun(); return 0; }Thanks,RV
Posted
by Rashmi.
Last updated
.