0

LIFXClient フレームワークでスマートランプに接続しようとしていますが、残念ながらこのライブラリの使い方がわかりません。ライブラリは非常にシンプルに見えます。ここにリンクがあります。

この関数で色を変更しようとしています:

LIFXClient.connect(host: .ipv4(IPv4Address("192.168.1.4")!)).then { client in
    return client.light.setColor(color: .orange)
}

しかし、これにより、使用するたびに異なるローカルポートとの新しい接続が作成されます。色をすばやく変更した後、空きポートが不足しているため、ランプとの新しい接続を確立できません。

新しい接続を作成するのではなく、1 つだけを使用するように数日間試みてきましたが、残念ながらこれを行う方法がわかりません。

LIFXClient からランプに接続する関数:

public class LIFXClient: LIFXConnection {
    public class func connect(host: NWEndpoint.Host, port: NWEndpoint.Port = 56700, queue: DispatchQueue = DispatchQueue(label: "LIFX Queue"), source: UInt32 = UInt32.random(), target: UInt64 = 0) -> Promise<LIFXClient> {
        return NWConnection(host: host, port: port, using: .udp).connect(queue: queue).map { connection in
            return LIFXClient(connection: connection, source: source, target: target)
        }
    }
}

client.light 参照のみを保存できれば素晴らしいのですが、残念ながらそれはできません。

var myClient: LIFXClient

LIFXClient.connect(host: .ipv4(IPv4Address("192.168.1.4")!)).then { client in
    myClient = client.light
    return client.light.setColor(color: .orange)
}

このフレームワークの開発者は私に返事をくれません。私にはそれを解決する方法がまったくわかりません。大変お世話になりました。

4

0 に答える 0