陀螺仪
来源:互联网 发布:时光~叙发簪淘宝店 编辑:程序博客网 时间:2024/05/11 00:35
很多应用里都要用到苹果iPhone自带的三轴感应器(加速度传感器),希望下面这段代码例子能为您使用iPhone三轴感应器打开思路。
#include <IOKit/IOKitLib.h>
#include <CoreFoundation/CoreFoundation.h>
typedef struct {} *IOHIDEventSystemRef;
typedef struct {} *IOHIDEventRef;
float IOHIDEventGetFloatValue(IOHIDEventRef ref, int param);
void handleHIDEvent(int a, int b, int c, IOHIDEventRef ptr) {
int type = IOHIDEventGetType(ptr);
if (type == 12) {
float x,y,z;
x = IOHIDEventGetFloatValue(ptr, 0xc0000);
y = IOHIDEventGetFloatValue(ptr, 0xc0001);
z = IOHIDEventGetFloatValue(ptr, 0xc0002);
// do whatever you need to do with the gravity
ballSetAccel(x, y);
}
}
#define expect(x) if(!x) { printf("failed: %s/n", #x); return; }
void initialize(int hz) {
mach_port_t master;
expect(0 == IOMasterPort(MACH_PORT_NULL, &master));
int page = 0xff00, usage = 3;
CFNumberRef nums[2];
CFStringRef keys[2];
keys[0] = CFStringCreateWithCString(0, "PrimaryUsagePage", 0);
keys[1] = CFStringCreateWithCString(0, "PrimaryUsage", 0);
nums[0] = CFNumberCreate(0, kCFNumberSInt32Type, &page);
nums[1] = CFNumberCreate(0, kCFNumberSInt32Type, &usage);
CFDictionaryRef dict = CFDictionaryCreate(0, (const void**)keys,
(const void**)nums, 2, &kCFTypeDictionaryKeyCallBacks,&kCFTypeDictionaryValueCallBacks);
expect(dict);
IOHIDEventSystemRef sys = (IOHIDEventSystemRef) IOHIDEventSystemCreate(0);
expect(sys);
CFArrayRef srvs = (CFArrayRef)IOHIDEventSystemCopyMatchingServices(sys, dict, 0, 0, 0);
expect(CFArrayGetCount(srvs)==1);
io_registry_entry_t serv = (io_registry_entry_t)CFArrayGetValueAtIndex(srvs, 0);
expect(serv);
CFStringRef cs = CFStringCreateWithCString(0, "ReportInterval", 0);
int rv = 1000000/hz;
CFNumberRef cn = CFNumberCreate(0, kCFNumberSInt32Type, &rv);
int res = IOHIDServiceSetProperty(serv, cs, cn);
expect(res == 1);
res = IOHIDEventSystemOpen(sys, handleHIDEvent, 0, 0);
expect(res != 0);
}
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- 陀螺仪
- Unity陀螺仪
- 陀螺仪相关
- 手机陀螺仪
- Unity3d 陀螺仪
- 加速度计&陀螺仪
- 陀螺仪使用
- 读书笔记---陀螺仪
- 实现陀螺仪
- Unity3D 陀螺仪
- Unity陀螺仪
- iPhone陀螺仪
- 网络MD5加密验证(Java)
- 代码管理..
- Java实现类Windows导航栏
- chapt 3
- windows2003远程桌面退出后系统自动注销的解决方法 (转) 收藏
- 陀螺仪
- SSH登录
- 雅虎董事会批准30亿美元股票回购计划
- Outlook Tasks
- 如何学习知识
- DataTable、DataRow、DataColumn的用法
- 甲骨文放弃Sun低能耗x86服务器芯片研发项目
- Windows下Django新手安装教程
- 不要一辈子靠技术生存