Skip to content

Commit

Permalink
[Telink] Add Bridge example app demo (#25798)
Browse files Browse the repository at this point in the history
* [Telink] Bridge-App demo draft added

* [Telink] Thermostat endpoint draft added

* [Telink] bridge included to Github CI

* [Telink] Bridged Temperature sensor added

* [Telink] cleanup & styling

* [Telink] Code cleanup

* [Telink] Set correct bridge app name

* [Telink] Fix typo after auto merge

* [Telink] removed needless atribute condition

* [Telink] PRODUCT_ID mod to fix Google Home pairing

* [Telink] added ClusterRevision attributes

* [Telink] fixed attribute handlers(ClusterRevision)

* [Telink] fixed attribute handlers once more

* [Telink] fixed CONFIG_CHIP_OPENTHREAD_TX_POWER

---------

Co-authored-by: Alex Tsitsiura <[email protected]>
  • Loading branch information
2 people authored and pull[bot] committed Jun 5, 2024
1 parent f491bda commit 981581b
Show file tree
Hide file tree
Showing 20 changed files with 2,367 additions and 1 deletion.
12 changes: 12 additions & 0 deletions .github/workflows/examples-telink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ jobs:
- name: clean out build output
run: rm -rf ./out

- name: Build example Telink Bridge App
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-bridge' build"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
telink tlsr9518adk80d bridge-app \
out/telink-tlsr9518adk80d-bridge/zephyr/zephyr.elf \
/tmp/bloat_reports/
- name: clean out build output
run: rm -rf ./out

- name: Build example Telink Contact Sensor App
run: |
./scripts/run_in_build_env.sh \
Expand Down
1 change: 1 addition & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -638,6 +638,7 @@
"qpg-qpg6100-lock",
"telink-tlsr9518adk80d-all-clusters",
"telink-tlsr9518adk80d-all-clusters-minimal",
"telink-tlsr9518adk80d-bridge",
"telink-tlsr9518adk80d-contact-sensor",
"telink-tlsr9518adk80d-light",
"telink-tlsr9518adk80d-light-switch",
Expand Down
1 change: 1 addition & 0 deletions examples/bridge-app/telink/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build/
88 changes: 88 additions & 0 deletions examples/bridge-app/telink/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#
# Copyright (c) 2023 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
cmake_minimum_required(VERSION 3.13.1)

set(BOARD tlsr9518adk80d)

get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH)
get_filename_component(TELINK_COMMON ${CHIP_ROOT}/examples/platform/telink REALPATH)
get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH)

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
else()
unset(LOCAL_DTC_OVERLAY_FILE)
endif()

if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
else()
unset(GLOBAL_DTC_OVERLAY_FILE)
endif()

if(DTC_OVERLAY_FILE)
set(DTC_OVERLAY_FILE
"${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}"
CACHE STRING "" FORCE
)
else()
set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE})
endif()

set(CONF_FILE ${CHIP_ROOT}/config/telink/app/zephyr.conf prj.conf)

# Load NCS/Zephyr build system
list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module)
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})

project(chip-telink-bridge-example)

include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake)
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)

target_compile_options(app PRIVATE -fpermissive)

target_include_directories(app PRIVATE
include
${GEN_DIR}/app-common
${GEN_DIR}/bridge-app
${TELINK_COMMON}/util/include
${TELINK_COMMON}/app/include)

add_definitions(
"-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=<lib/address_resolve/AddressResolve_DefaultImpl.h>"
-DCHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT=16
)

target_sources(app PRIVATE
src/AppTask.cpp
src/main.cpp
src/ZclCallbacks.cpp
src/Device.cpp
src/DeviceCallbacks.cpp
${TELINK_COMMON}/util/src/LEDWidget.cpp
${TELINK_COMMON}/util/src/ButtonManager.cpp
${TELINK_COMMON}/util/src/ThreadUtil.cpp
${TELINK_COMMON}/util/src/PWMDevice.cpp)

chip_configure_data_model(app
INCLUDE_SERVER
ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../bridge-common/bridge-app.zap
)

if(CONFIG_CHIP_OTA_REQUESTOR)
target_sources(app PRIVATE ${TELINK_COMMON}/util/src/OTAUtil.cpp)
endif()
Loading

0 comments on commit 981581b

Please sign in to comment.