测试测试通过 | ✗ |
Lang语言 | Obj-CObjective C |
许可 | MIT |
Released最新版本 | 2014年12月 |
由 Nick Forge、Anthony Mittaz、Nick Forge 维护。
LIFXKit 是 Objective-C 的 LIFX SDK。LIFXKit 支持 iOS 和 OS X。
有各种安装方法可供选择。选择最适合您的项目的安装方式
LIFXKit.Framework
。LIFXKit.Framework
添加到您的项目中。LIFXKit.framework
SystemConfiguration.framework
libz.dylib
-ObjC
。编辑
/ 添加构建阶段
/ 添加复制文件构建阶段
)Frameworks
。LIFXKit.framework
添加到“复制文件”构建阶段。LIFXKit.xcodeproj
作为子项目拖动到您的 Xcode 项目中。libLIFXKitMac.a
) 的 libLIFXKit.a
拖到您的 App Target 的链接框架和库列表中。SystemConfiguration.framework
libz.dylib
-ObjC
。Header Search Path
$(OBJROOT)/UninstalledProducts/include
以产生存档构建。一旦您使用任何上述方法中的任何一种配置了您的 Xcode 项目,请在您的源文件中添加 #import <LIFXKit/LIFXKit.h>
并开始编码!
关闭所有灯光
LFXNetworkContext *localNetworkContext = [[LFXClient sharedClient] localNetworkContext];
[localNetworkContext.allLightsCollection setPowerState:LFXPowerStateOff];
打开名为 "Hallway" 的灯光
LFXNetworkContext *localNetworkContext = [[LFXClient sharedClient] localNetworkContext];
LFXLight *hallway = [localNetworkContext.allLightsCollection firstLightForLabel:@"Hallway"];
[hallway setPowerState:LFXPowerStateOn];
打开所有标记为 "Kitchen" 的灯光
LFXNetworkContext *localNetworkContext = [[LFXClient sharedClient] localNetworkContext];
LFXTaggedLightCollection *kitchen = [localNetworkContext taggedLightCollectionForTag:@"Kitchen"];
[kitchen setPowerState:LFXPowerStateOn];
将所有灯光设置为随机颜色
LFXNetworkContext *localNetworkContext = [[LFXClient sharedClient] localNetworkContext];
for (LFXLight *aLight in localNetworkContext.allLightsCollection)
{
LFXHSBKColor *color = [LFXHSBKColor colorWithHue:arc4random()%360 saturation:1.0 brightness:1.0];
[aLight setColor:color];
}
示例代码可以在 /Examples
下找到。
LIFX浏览器
示例代码项目展示了如何进行设备发现、灯光操作、标记灯光集合、灯光状态和灯光控制。它还演示了如何与LIFXKit中的观察者回调API集成。这是编写自己的LIFX兼容应用程序的最佳起点。
在Xcode源列表中名为“私有”的组中的任何源应被视为非公开API,随时可能更改,恕不另行通知。
网络上下文(LFXNetworkContext
)表示你访问LIFX设备的环境。当前SDK仅支持“本地网络上下文”,这指的是可在你的局域网中访问的设备。我们计划添加通过即将推出的云服务访问LIFX设备时的网络上下文。
LIFX底层系统有三种内部寻址类型:设备、标签和广播。设备寻址将定位单个设备,标签寻址将定位具有特定标签的所有设备,广播寻址将定位所有设备。由于底层LIFX二进制协议的工作方式,通过目标标签(使用标记灯光集合)而不是单独定位该标签中的每个设备,你可以看到更高的性能。在针对网络上下文中的所有灯光进行操作时也同样适用——如果你想改变所有灯光的状态,定位-[LFXNetworkContext allLightsCollection]
将比单独定位每个设备快得多。
LFXLight
对象表示单个LIFX灯光,网络上下文中每个设备只会对应一个LFXLight
。
灯光集合(LFXLightCollection
)是封装一组LIFX灯光的类。它们的状态可以像单个灯光一样操作。你可以通过.lights
属性访问灯光集合中的灯光。因为LFXLightCollection
遵循NSFastEnumeration
,所以你可以使用for (LFXLight *aLight in lightCollection) {…}
对灯光集合中的灯光进行枚举。
每个LFXNetworkContext
都有一个.allLightsCollection
属性,你可以通过它获取灯光列表。如果你想以相同的方式操作每个灯光(例如,将每个灯光关闭),你应该直接使用所有灯光集合属性,而不是单独定位每个设备。
标记灯光集合(LFXTaggedLightCollection
)表示包含特定标签的灯光。如果你想操作一个标签内的所有设备,你应该始终使用标记灯光集合,而不是单独处理每个灯光。标记灯光集合在网络上下文中是唯一的。
LIFX 使用“HSBK”颜色表示方式。其中,“HSB”部分指的是HSB颜色空间,而“K”部分则指的是白色点的色彩温度(单位为开尔文)。在完全饱和的状态下,HSBK颜色将与可实现的色域边缘相对应,而在零饱和的状态下,HSBK颜色将与K组件中描述的色彩温度相对应的颜色相匹配。