Skip to content

Commit

Permalink
Release ver_1.3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Unify Automated committed Mar 31, 2023
1 parent f66742e commit d4f8c9b
Show file tree
Hide file tree
Showing 10,095 changed files with 491,494 additions and 409,177 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
8 changes: 4 additions & 4 deletions .gitattributes
@@ -1,6 +1,6 @@
"zap_2022.1.10_amd64.deb" filter=lfs diff=lfs merge=lfs -text
"slc_cli_linux.zip" filter=lfs diff=lfs merge=lfs -text
"zap_apack_linux.zip" filter=lfs diff=lfs merge=lfs -text
"zap-2022.1.10.dmg" filter=lfs diff=lfs merge=lfs -text
"zap_apack_mac.zip" filter=lfs diff=lfs merge=lfs -text
"slc_cli_mac.zip" filter=lfs diff=lfs merge=lfs -text
"zap_apack_mac.zip" filter=lfs diff=lfs merge=lfs -text
"slc_cli_linux.zip" filter=lfs diff=lfs merge=lfs -text
"zap_2022.1.10_amd64.deb" filter=lfs diff=lfs merge=lfs -text
"zap_apack_linux.zip" filter=lfs diff=lfs merge=lfs -text
3 changes: 2 additions & 1 deletion applications/CMakeLists.txt
@@ -1,6 +1,6 @@
# Fetch dependencies if forced
if(FETCH_GSDK MATCHES ON)
find_package(GeckoSDK 4.2.0 REQUIRED)
find_package(GeckoSDK 4.2.2 REQUIRED)
endif()

# Build options will determine if the applications will be included and build
Expand Down Expand Up @@ -84,6 +84,7 @@ if(NOT APPLE )
if(BUILD_CPCD MATCHES ON)
add_subdirectory(cpcd)
add_subdirectory(cpc-hci-bridge)
add_subdirectory(bt_host_empty)
message(STATUS "CPCd daemon and applications will build")
else()
message(STATUS "CPCd daemon and applications will NOT build")
Expand Down
2 changes: 1 addition & 1 deletion applications/aox/CMakeLists.txt
@@ -1,4 +1,4 @@
find_package(GeckoSDK 4.2.0 REQUIRED)
find_package(GeckoSDK 4.2.2 REQUIRED)

add_subdirectory(components)
add_subdirectory(applications)
112 changes: 112 additions & 0 deletions applications/bt_host_empty/CMakeLists.txt
@@ -0,0 +1,112 @@
find_package(GeckoSDK 4.2.0 REQUIRED)
find_package(CPCD 4.2.0 REQUIRED)
find_package(Python3 COMPONENTS Interpreter REQUIRED)
find_program(MAKE_EXECUTABLE NAMES make REQUIRED)

set(BGBUILD ${GeckoSDK_ROOT_DIR}/protocol/bluetooth/bin/gatt/bgbuild.py)

set(EXPORT_DIR ${CMAKE_CURRENT_BINARY_DIR}/export)
set(AUTOGEN_DIR ${CMAKE_CURRENT_BINARY_DIR}/autogen)
set(BTCONF_DIR ${EXPORT_DIR}/app/bluetooth/example_host/bt_host_empty/config/btconf)
set(BTCONF_FILE ${BTCONF_DIR}/gatt_configuration.btconf)

set(BT_HOST_EMPTY_SRC_FILES
${EXPORT_DIR}/app/common/util/app_log/app_log.c
${EXPORT_DIR}/app/bluetooth/common_host/app_log/app_log_cli.c
${EXPORT_DIR}/app/bluetooth/common_host/iostream_mock/sl_iostream_handles.c
${EXPORT_DIR}/app/bluetooth/common_host/app_signal/app_signal_posix.c
${EXPORT_DIR}/app/bluetooth/common_host/app_sleep/app_sleep.c
${EXPORT_DIR}/app/bluetooth/common_host/host_comm/host_comm.c
${EXPORT_DIR}/app/bluetooth/common_host/ncp_host/ncp_host.c
${EXPORT_DIR}/app/bluetooth/common_host/tcp/tcp_posix.c
${EXPORT_DIR}/app/bluetooth/common_host/uart/uart_posix.c
${EXPORT_DIR}/app/bluetooth/common_host/cpc/cpc.c
${EXPORT_DIR}/protocol/bluetooth/src/sl_bt_ncp_host.c
${EXPORT_DIR}/protocol/bluetooth/src/sl_bt_ncp_host_api.c
${EXPORT_DIR}/app/bluetooth/common_host/named_socket/named_socket.c
${EXPORT_DIR}/app/bluetooth/common/ncp_gatt/sl_ncp_gatt.c
${EXPORT_DIR}/app/bluetooth/common_host/ncp_version/ncp_version.c
${EXPORT_DIR}/app/bluetooth/common_host/system/system.c
${EXPORT_DIR}/app/bluetooth/example_host/bt_host_empty/app.c
${EXPORT_DIR}/app/bluetooth/example_host/bt_host_empty/main.c
)

set(BT_HOST_EMPTY_INCLUDES
${EXPORT_DIR}/app/common/util/app_log
${EXPORT_DIR}/app/bluetooth/common_host/iostream_mock
${EXPORT_DIR}/app/bluetooth/common_host/app_log
${EXPORT_DIR}/app/bluetooth/common_host/app_log/config
${EXPORT_DIR}/app/common/util/app_assert
${EXPORT_DIR}/app/bluetooth/common_host/app_assert/config
${EXPORT_DIR}/app/bluetooth/common_host/app_signal
${EXPORT_DIR}/app/bluetooth/common_host/app_sleep
${EXPORT_DIR}/app/bluetooth/common_host/host_comm
${EXPORT_DIR}/app/bluetooth/common_host/host_comm/config
${EXPORT_DIR}/app/bluetooth/common_host/ncp_host
${EXPORT_DIR}/app/bluetooth/common_host/ncp_host/config
${EXPORT_DIR}/app/bluetooth/common_host/system
${EXPORT_DIR}/app/bluetooth/common_host/tcp
${EXPORT_DIR}/app/bluetooth/common_host/uart
${EXPORT_DIR}/app/bluetooth/common_host/cpc
${EXPORT_DIR}/platform/common/inc
${EXPORT_DIR}/protocol/bluetooth/inc
${EXPORT_DIR}/app/bluetooth/common_host/named_socket
${EXPORT_DIR}/app/bluetooth/common/ncp_gatt
${EXPORT_DIR}/app/bluetooth/common_host/ncp_version
${EXPORT_DIR}/app/bluetooth/example_host/bt_host_empty
)

add_custom_command(
OUTPUT ${BT_HOST_EMPTY_SRC_FILES} ${BTCONF_FILE}
COMMAND ${MAKE_EXECUTABLE} export EXPORT_DIR=${EXPORT_DIR}
WORKING_DIRECTORY ${GeckoSDK_ROOT_DIR}/app/bluetooth/example_host/bt_host_empty
COMMENT "Export project files"
)

add_custom_command(
OUTPUT ${AUTOGEN_DIR}/gatt_db.c
COMMAND ${Python3_EXECUTABLE} ${BGBUILD} ${BTCONF_DIR} -o ${AUTOGEN_DIR}
DEPENDS ${BTCONF_FILE}
COMMENT "Generate GATT database"
)

add_executable(bt_host_empty
${BT_HOST_EMPTY_SRC_FILES}
${AUTOGEN_DIR}/gatt_db.c
)

add_dependencies(bt_host_empty cpc cpcd)

target_include_directories(bt_host_empty BEFORE PRIVATE
${BT_HOST_EMPTY_INCLUDES}
${cpcd_SOURCE_DIR}/lib
${AUTOGEN_DIR}
)

target_compile_definitions(bt_host_empty PRIVATE
-DHOST_TOOLCHAIN
-DPOSIX
-DCPC
-DSL_CATALOG_APP_LOG_PRESENT
-DSL_CATALOG_NCP_GATT_PRESENT
-DSL_CATALOG_NCP_VERSION_PRESENT
)

set_source_files_properties(
${EXPORT_DIR}/app/bluetooth/common_host/host_comm/host_comm.c
PROPERTIES COMPILE_FLAGS -Wno-stringop-truncation
)

target_link_libraries(bt_host_empty PRIVATE pthread util cpc)
target_link_directories(bt_host_empty PRIVATE ${cpcd_BINARY_DIR})

install(TARGETS bt_host_empty RUNTIME DESTINATION "bin" COMPONENT uic-bt-host-empty)

add_component_to_uic(
uic-bt-host-empty # Package Name
"Universal IOT controller - Bluetooth Host Empty Project"
"${CMAKE_PROJECT_NAME}-bt-host-empty" # Package Debian filename
"${CMAKE_PROJECT_NAME}-cpcd" # Package Depends on
""
""
)
49 changes: 47 additions & 2 deletions applications/dev_ui/dev_gui/debconf/scripts/postinst
@@ -1,8 +1,53 @@
#!/bin/sh
if type "systemctl" > /dev/null; then
# postinst script for uic-dev-gui
#
# see: dh_installdeb(1)

set -e
UIC_VAR_DIR="${CPACK_PACKAGING_INSTALL_PREFIX}/var/lib/uic/"

setup_uic_user() {
if ! getent group uic >/dev/null; then
addgroup --quiet --system uic
fi

if ! getent passwd uic >/dev/null; then
adduser --quiet --system --no-create-home --ingroup uic --home "$UIC_VAR_DIR" --shell /usr/sbin/nologin uic
usermod -a -G dialout uic
fi
}

fix_permissions() {
mkdir -p "$UIC_VAR_DIR"
chown uic "$UIC_VAR_DIR"
}

start_services() {
if type "systemctl" > /dev/null; then
systemctl --system daemon-reload || true
systemctl enable uic-dev-gui-api.service || true
systemctl enable uic-dev-gui-client.service || true
systemctl start uic-dev-gui-api.service || true
systemctl start uic-dev-gui-client.service || true
fi
fi
}

case "$1" in
configure)
setup_uic_user
fix_permissions
start_services
;;

abort-upgrade|abort-remove|abort-deconfigure)
;;

*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

#DEBHELPER#

exit 0
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified applications/dev_ui/dev_gui/doc/assets/img/connect.PNG 100755 → 100644
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified applications/dev_ui/dev_gui/doc/assets/img/very_start.PNG 100755 → 100644
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 95 additions & 34 deletions applications/dev_ui/dev_gui/readme_user.md
Expand Up @@ -4,6 +4,8 @@ The _Unify Framework Developer GUI_ is a Web service that runs on the
_Unify_ gateway. It provides a graphical interface to operate the various features
of the _Unify_ gateway, such as network management, smartstart, multicast, and so on.

**NOTE**: This guide illustrates the capabilities of the Dev GUI. Screenshots and information may be outdated.

## Access Developer GUI

The developer GUI (_Dev GUI_) can be accessed via any browser that can
Expand Down Expand Up @@ -94,7 +96,7 @@ Z-Wave QR Code are encoded as a string of digits. For example:
`9001165290030142138707174462303349713080650447059259001001793030790220000000000400003025780803003`

Use the
[Z-Wave Alliance QR Code decoding tool](https://github.com/Z-Wave-Alliance/qr_code_tool)
[Z-Wave Alliance QR Code decoding tool](https://siliconlabs.github.io/UnifySDK/doc/qr_code_scanner.html)
to parse the digits and show what they represent.
If you do not have access, you can request it at the
[Z-Wave Alliance member portal](https://sdomembers.z-wavealliance.org/).
Expand Down Expand Up @@ -157,51 +159,59 @@ There is currently no support for BLE DSKs in the SmartStart List.

The following are the currently (2022-02-09) supported clusters of the _Dev GUI_:

- On/Off switch
- Binary sensor
- Door lock
- Thermostat
- Color Control
- Level Control
- Identify
- Name and Location
- Scenes
- Locator and Position Estimation
- AoXLocator
- AoXPositionEstimation
- BarrierControl
- Basic
- Binding
- ColorControl
- ConcentrationMeasurement
- ConfigurationParameters
- DoorLock
- ElectricalConductivityMeasurement
- ElectricalMeasurement
- FlowMeasurement
- IASZone
- Power Configuration

### On/Off Switch
- Identify
- IlluminanceMeasurement
- Level
- Metering
- NameAndLocation
- NetworkManagement
- OccupancySensing
- OnOff
- PhMeasurement
- PowerConfiguration
- PressureMeasurement
- RFTelemetry
- Scenes
- SystemMetrics
- TemperatureMeasurement
- Thermostat
- WaterContentMeasurement
- WindSpeedMeasurement
- WindowCovering

After inclusion of an **On/Off** switch and navigating to the switches page, the
page will look something like this:
After inclusion of the node and navigating to the corresponding cluster page,
you have the ability to view/edit cluster attributes and send commands that supported by the cluster.

Cluster page examples:
![On/Off Switch](doc/assets/img/on_off.PNG)

This can control an **On/Off** switch.

### Binary Sensor

After including a **Binary sensor**, a page will look like this:

![Occupancy Sensor](doc/assets/img/occupancy_sensor.PNG)

### Door Lock

The door lock requires secure inclusion to work. The page will look like this:

![Door Lock](doc/assets/img/door_lock.PNG)

When unlocking or locking the door lock, a pop up will ask for a pin to the door
lock:
If the attribute is writable it can be edited by the Dev GUI. Writable attributes are highlighted in yellow:
![Thermostat Set attributes](doc/assets/img/thermostat_modes.PNG)

In case the running command requires a list of params they can be entered in a pop-up window
![Door Lock Pin](doc/assets/img/door_lock_pin.PNG)

### Thermostat

The thermostat can change mode and change set point temperatures.
## Measurements

![Thermostat Set attributes](doc/assets/img/thermostat_modes.PNG)
All *Measurement clusters collected on one "Measurements" page. The first tab on this page is a list of all measurement clusters per node,
the rest provide a list of nodes that support the corresponding cluster:
![All Measurements](doc/assets/img/all_measurements.png)
![Nodes per Measurement](doc/assets/img/nodes_per_measurement.png)

## Groups

Expand Down Expand Up @@ -244,3 +254,54 @@ location column.
After clicking _Update_, the page will look like this.

![Name and Location Overview](doc/assets/img/name_location_nodes.PNG)

## Application Monitoring

All Unify services have the ability to notify client about their start/stop.
So the Application Monitoring page represents the status and version of each application running on the _Unify_ gateway.
![Application Monitoring](doc/assets/img/application_monitoring.png)

## OTA

The OTA page provides information about the device's current firmware:
![OTA](doc/assets/img/ota.png)

If a new version of the firmware is ability, devices can be flashed:
![OTA Flash](doc/assets/img/ota_flash.png)

## Commissionable Devices

Represents a list of commissinable devices provided by Matter Bridge:
![Commissionable Devices](doc/assets/img/commissionable_devices.png)

If DSK is available, the device can be added to the SmartStart list:
![Add Commissionable Devices](doc/assets/img/commissionable_devices_add.png)

## UPTI

Dev GUI application allows user to initiate adapters discovery,
to start/stop trace packages capturing and visualize trace packages.

* Enable/Disable PTI on the Protocol Controller
To `Enable` or `Disable` the PTI functionality for controllers with NCP that support this, you need to toggle `On\Off PTI` switch to the desired position on the `RFTelemetry` page
![ToggleSerialApiPTI](../../upti_cap/assets/enable_serial_api_pti.png).
Note: An enabled pti produces a large number of messages sent via mqtt, so to prevent mqtt overload it is recommended to keep PTI disabled at all times while not in use.
Note: This functionality is available when running the [ZPC](../../zpc/readme_user.md).

* Discovery PTI
To discover the network and identify all PTIs, press `Discovery` button on the `UPTI` page. After some time, all PTIs will be available in a table with information about `Serial Number`, `IP Address` and connection status
![Discovery](../../upti_cap/assets/discover.png).

* Enable/Disable data capture
To `Toggle` capturing data, press `Enable` or `Disable` button. If you `Enable` capturing, you can choose in the pop-up window whether you want to parse additional data or only capture raw data.
![TogglePTI](../../upti_cap/assets/toggle_pti.png)
![EnabledPTI](../../upti_cap/assets/enabled_pti.png)

* View Trace Package
To view a list of trace packages press the `View Trace` button.
You will see the table of captured trace packages with additional data:

![WithAdditionalData](../../upti_cap/assets/with_additional_data.png)

or without additional data:
![WithoutAdditionalData](../../upti_cap/assets/without_additional_data.png)
10 changes: 8 additions & 2 deletions applications/dev_ui/dev_gui/src/App.tsx
Expand Up @@ -188,6 +188,12 @@ class App extends Component<{}, AppState> {
}

handleAppMonitoring(list: any) {
list && Object.keys(list).forEach((item: any) => {
if (this.state.AppMonitoringList[item]?.ApplicationConnected?.Reported !== undefined && list[item].ApplicationName?.Reported !== undefined && this.state.AppMonitoringList[item]?.ApplicationConnected?.Reported !== list[item].ApplicationConnected?.Reported)
if (list[item].ApplicationConnected?.Reported === true)
toast(`${list[item].ApplicationName?.Reported} is back online`, { type: "success" });
else toast(`${list[item].ApplicationName?.Reported} went offline`, { type: "warning" });
});
this.setState({ AppMonitoringList: list });
}

Expand Down Expand Up @@ -245,8 +251,8 @@ class App extends Component<{}, AppState> {
<Switch>
<Route path='/groups' exact render={() => <Groups ref={this.changeGroups} {...baseProps} NodeList={this.state.NodeList} GroupList={this.state.GroupList} />} />
<Route path='/smartstart' exact render={() => <SmartStart ref={this.changeSmartStart} {...baseProps} SmartStartList={this.state.SmartStartList} />} />
<Route path='/scenes/:unid/:ep' exact render={(pr) => <EpScenes ref={this.changeScenes} {...baseProps} Unid={pr.match.params.unid} Ep={pr.match.params.ep} GroupList={this.state.GroupList} NodeList={this.state.NodeList}/>} />
<Route path='/scenes/:unid/:ep/:gid/:sid' exact render={(pr) => <Scene ref={this.changeScenes} {...baseProps} Unid={pr.match.params.unid} Ep={pr.match.params.ep} GroupID={pr.match.params.gid} SceneID={pr.match.params.sid} GroupList={this.state.GroupList} NodeList={this.state.NodeList}/>} />
<Route path='/scenes/:unid/:ep' exact render={(pr) => <EpScenes ref={this.changeScenes} {...baseProps} Unid={pr.match.params.unid} Ep={pr.match.params.ep} GroupList={this.state.GroupList} NodeList={this.state.NodeList} />} />
<Route path='/scenes/:unid/:ep/:gid/:sid' exact render={(pr) => <Scene ref={this.changeScenes} {...baseProps} Unid={pr.match.params.unid} Ep={pr.match.params.ep} GroupID={pr.match.params.gid} SceneID={pr.match.params.sid} GroupList={this.state.GroupList} NodeList={this.state.NodeList} />} />
<Route path='/upti' exact render={() => <UPTI ref={this.changeUPTI} {...baseProps} UPTI={this.state.UPTI} />} />
<Route path='/upti/:serial' render={(pr) => <UPTITrace ref={this.changeUPTITrace}
IsConnected={this.state.IsConnected || false} UPTI={this.state.UPTI} SerialNumber={pr.match.params.serial} SocketServer={this.state.SocketServer} />} />
Expand Down

0 comments on commit d4f8c9b

Please sign in to comment.