Skip to content

Commit

Permalink
Merge pull request #608 from NordicSemiconductor/feature/light-lc
Browse files Browse the repository at this point in the history
Light LC Server UI (Mode, Occupancy Mode, Light OnOff)
  • Loading branch information
philips77 authored Feb 28, 2024
2 parents 18abe09 + 818945a commit a208996
Show file tree
Hide file tree
Showing 6 changed files with 1,022 additions and 0 deletions.
1 change: 1 addition & 0 deletions Example/Source/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
elementIndex: 0)),
Model(sigModelId: .genericOnOffClientModelId, delegate: GenericOnOffClientDelegate()),
Model(sigModelId: .genericLevelClientModelId, delegate: GenericLevelClientDelegate()),
Model(sigModelId: .lightLCClientModelId, delegate: LightLCClientDelegate()),
// A simple vendor model:
Model(vendorModelId: .simpleOnOffClientModelId,
companyId: .nordicSemiconductorCompanyId,
Expand Down
72 changes: 72 additions & 0 deletions Example/Source/Mesh Network/LightLCClientDelegate.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* Copyright (c) 2019, Nordic Semiconductor
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

import Foundation
import NordicMesh

class LightLCClientDelegate: ModelDelegate {

let messageTypes: [UInt32 : MeshMessage.Type]
let isSubscriptionSupported: Bool = true

var publicationMessageComposer: MessageComposer? {
return nil
}

init() {
let types: [StaticMeshMessage.Type] = [
LightLCModeStatus.self,
LightLCOccupancyModeStatus.self,
LightLCLightOnOffStatus.self,
LightLCPropertyStatus.self
]
messageTypes = types.toMap()
}

// MARK: - Message handlers

func model(_ model: Model, didReceiveAcknowledgedMessage request: AcknowledgedMeshMessage,
from source: Address, sentTo destination: MeshAddress) -> MeshResponse {
fatalError("Not possible")
}

func model(_ model: Model, didReceiveUnacknowledgedMessage message: UnacknowledgedMeshMessage,
from source: Address, sentTo destination: MeshAddress) {
// The status message may be received here if the Light LC Server model
// has been configured to publish. Ignore this message.
}

func model(_ model: Model, didReceiveResponse response: MeshResponse,
toAcknowledgedMessage request: AcknowledgedMeshMessage,
from source: Address) {
// Ignore.
}

}
Loading

0 comments on commit a208996

Please sign in to comment.