mirror of
https://github.com/espressif/openthread.git
synced 2026-08-03 09:27:47 +00:00
[posix] remove NCP app (#6428)
The POSIX NCP app(ot-ncp) is simulating of NCP with an RCP. With the latest otbr-agent, this is not needed any more. It is only used in CI tests. This commit removes the app to save maintenance efforts.
This commit is contained in:
@@ -121,13 +121,13 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: ${{ failure() && env.CRASHED_TUN == '1' }}
|
||||
with:
|
||||
name: core-expect-posix
|
||||
name: core-expect-linux
|
||||
path: |
|
||||
./ot-core-dump/*
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: syslog-expect-posix
|
||||
name: syslog-expect-linux
|
||||
path: /var/log/syslog
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
name: cov-expects-linux-2
|
||||
path: tmp/coverage.info
|
||||
|
||||
posix-cli:
|
||||
thread-cert:
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
@@ -167,59 +167,17 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: posix-cli-thread-cert
|
||||
name: thread-cert
|
||||
path: build/posix/tests/scripts/thread-cert
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-posix-cli
|
||||
name: cov-thread-cert
|
||||
path: tmp/coverage.info
|
||||
|
||||
posix-ncp:
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
NODE_TYPE: ncp-sim
|
||||
PYTHONUNBUFFERED: 1
|
||||
READLINE: readline
|
||||
REFERENCE_DEVICE: 1
|
||||
THREAD_VERSION: 1.1
|
||||
VIRTUAL_TIME: 1
|
||||
VIRTUAL_TIME_UART: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
|
||||
sudo apt-get --no-install-recommends install -y libreadline6-dev python3-setuptools python3-wheel lcov
|
||||
python3 -m pip install -r tests/scripts/thread-cert/requirements.txt
|
||||
sudo python3 -m pip install git+https://github.com/openthread/pyspinel
|
||||
- name: Build
|
||||
run: |
|
||||
./bootstrap
|
||||
make -f examples/Makefile-simulation
|
||||
make -f src/posix/Makefile-posix
|
||||
- name: Run
|
||||
run: |
|
||||
VERBOSE=1 OT_NCP_PATH="$PWD/output/posix/bin/ot-ncp" RADIO_DEVICE="$PWD/output/simulation/bin/ot-rcp" make -f src/posix/Makefile-posix check
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: posix-ncp-thread-cert
|
||||
path: build/posix/tests/scripts/thread-cert
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-posix-ncp
|
||||
path: tmp/coverage.info
|
||||
|
||||
posix-ncp-rcp-migrate:
|
||||
ncp-rcp-migrate:
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
@@ -243,7 +201,7 @@ jobs:
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-posix-ncp-rcp-migrate
|
||||
name: cov-ncp-rcp-migrate
|
||||
path: tmp/coverage.info
|
||||
|
||||
pty-linux:
|
||||
@@ -309,10 +267,9 @@ jobs:
|
||||
upload-coverage:
|
||||
needs:
|
||||
- expects-linux
|
||||
- posix-cli
|
||||
- posix-ncp
|
||||
- posix-ncp-rcp-migrate
|
||||
- ncp-rcp-migrate
|
||||
- pty-linux
|
||||
- thread-cert
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
+10
-146
@@ -40,11 +40,15 @@ jobs:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
if: "github.ref != 'refs/heads/main'"
|
||||
|
||||
toranj-ncp:
|
||||
toranj:
|
||||
name: toranj-${{ matrix.TORANJ_RADIO }}
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
TORANJ_RADIO: ['15.4', 'trel', 'multi']
|
||||
env:
|
||||
COVERAGE: 1
|
||||
TORANJ_RADIO : 15.4
|
||||
TORANJ_RADIO : ${{ matrix.TORANJ_RADIO }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -72,158 +76,18 @@ jobs:
|
||||
run: |
|
||||
top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh
|
||||
- name: Generate Coverage
|
||||
if: "matrix.TORANJ_RADIO != 'multi'"
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: "matrix.TORANJ_RADIO != 'multi'"
|
||||
with:
|
||||
name: cov-toranj-ncp
|
||||
name: cov-toranj-${{ matrix.TORANJ_RADIO }}
|
||||
path: tmp/coverage.info
|
||||
|
||||
toranj-rcp:
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
TORANJ_POSIX_RCP_MODEL: 1
|
||||
TORANJ_RADIO : 15.4
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Bootstrap
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
run: |
|
||||
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
|
||||
sudo apt-get --no-install-recommends install -y dbus libdbus-1-dev
|
||||
sudo apt-get --no-install-recommends install -y autoconf-archive
|
||||
sudo apt-get --no-install-recommends install -y bsdtar
|
||||
sudo apt-get --no-install-recommends install -y libtool
|
||||
sudo apt-get --no-install-recommends install -y libglib2.0-dev
|
||||
sudo apt-get --no-install-recommends install -y libboost-dev libboost-signals-dev
|
||||
sudo apt-get --no-install-recommends install -y lcov
|
||||
|
||||
script/git-tool clone --depth=1 --branch=master https://github.com/openthread/wpantund.git
|
||||
cd wpantund
|
||||
./bootstrap.sh
|
||||
./configure
|
||||
sudo make -j2
|
||||
sudo make install
|
||||
- name: Build & Run
|
||||
run: |
|
||||
top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-toranj-rcp
|
||||
path: tmp/coverage.info
|
||||
|
||||
toranj-ncp-trel:
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
TORANJ_RADIO : trel
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
|
||||
sudo apt-get --no-install-recommends install -y dbus libdbus-1-dev
|
||||
sudo apt-get --no-install-recommends install -y autoconf-archive
|
||||
sudo apt-get --no-install-recommends install -y bsdtar
|
||||
sudo apt-get --no-install-recommends install -y libtool
|
||||
sudo apt-get --no-install-recommends install -y libglib2.0-dev
|
||||
sudo apt-get --no-install-recommends install -y libboost-dev libboost-signals-dev
|
||||
sudo apt-get --no-install-recommends install -y lcov
|
||||
|
||||
git clone --depth=1 --branch=master https://github.com/openthread/wpantund.git
|
||||
cd wpantund
|
||||
./bootstrap.sh
|
||||
./configure
|
||||
sudo make -j2
|
||||
sudo make install
|
||||
- name: Build & Run
|
||||
run: |
|
||||
top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-toranj-ncp-trel
|
||||
path: tmp/coverage.info
|
||||
|
||||
toranj-rcp-trel:
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
TORANJ_POSIX_RCP_MODEL: 1
|
||||
TORANJ_RADIO : trel
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
|
||||
sudo apt-get --no-install-recommends install -y dbus libdbus-1-dev
|
||||
sudo apt-get --no-install-recommends install -y autoconf-archive
|
||||
sudo apt-get --no-install-recommends install -y bsdtar
|
||||
sudo apt-get --no-install-recommends install -y libtool
|
||||
sudo apt-get --no-install-recommends install -y libglib2.0-dev
|
||||
sudo apt-get --no-install-recommends install -y libboost-dev libboost-signals-dev
|
||||
sudo apt-get --no-install-recommends install -y lcov
|
||||
|
||||
git clone --depth=1 --branch=master https://github.com/openthread/wpantund.git
|
||||
cd wpantund
|
||||
./bootstrap.sh
|
||||
./configure
|
||||
sudo make -j2
|
||||
sudo make install
|
||||
- name: Build & Run
|
||||
run: |
|
||||
top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh
|
||||
- name: Generate Coverage
|
||||
run: |
|
||||
./script/test generate_coverage gcc
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cov-toranj-rcp-trel
|
||||
path: tmp/coverage.info
|
||||
|
||||
toranj-ncp-multi:
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
COVERAGE: 1
|
||||
TORANJ_RADIO : multi
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
|
||||
sudo apt-get --no-install-recommends install -y dbus libdbus-1-dev
|
||||
sudo apt-get --no-install-recommends install -y autoconf-archive
|
||||
sudo apt-get --no-install-recommends install -y bsdtar
|
||||
sudo apt-get --no-install-recommends install -y libtool
|
||||
sudo apt-get --no-install-recommends install -y libglib2.0-dev
|
||||
sudo apt-get --no-install-recommends install -y libboost-dev libboost-signals-dev
|
||||
sudo apt-get --no-install-recommends install -y lcov
|
||||
|
||||
git clone --depth=1 --branch=master https://github.com/openthread/wpantund.git
|
||||
cd wpantund
|
||||
./bootstrap.sh
|
||||
./configure
|
||||
sudo make -j2
|
||||
sudo make install
|
||||
- name: Build & Run
|
||||
run: |
|
||||
top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh
|
||||
|
||||
upload-coverage:
|
||||
needs:
|
||||
- toranj-ncp
|
||||
- toranj-rcp
|
||||
- toranj-ncp-trel
|
||||
- toranj-rcp-trel
|
||||
- toranj
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
@@ -475,7 +475,6 @@ LOCAL_C_INCLUDES := \
|
||||
LOCAL_CFLAGS := \
|
||||
$(OPENTHREAD_PUBLIC_CFLAGS) \
|
||||
$(OPENTHREAD_PRIVATE_CFLAGS) \
|
||||
-DOPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_CLI \
|
||||
$(OPENTHREAD_PROJECT_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
|
||||
@@ -931,6 +931,8 @@ AM_CONDITIONAL(OPENTHREAD_BUILD_DOCS, [test "${nl_cv_build_docs}" = "yes"])
|
||||
|
||||
AM_CONDITIONAL(OPENTHREAD_POSIX, [test "${with_platform}" = "posix" -o "${with_examples}" = "simulation"])
|
||||
|
||||
AM_CONDITIONAL([OPENTHREAD_ENABLE_SPINEL_RCP], [test OPENTHREAD_PLATFORM_POSIX || test OPENTHREAD_ENABLE_RADIO_ONLY])
|
||||
|
||||
#
|
||||
# Checks for libraries and packages.
|
||||
#
|
||||
|
||||
@@ -93,7 +93,7 @@ EOF
|
||||
|
||||
echo "Step 2. Start retrieving dataset from Radio..."
|
||||
RADIO_NCP_PATH="$PWD/output/simulation/bin/ot-ncp-ftd"
|
||||
"$PWD/output/posix/bin/ot-ncp" -n --radio-version "spinel+hdlc+forkpty://${RADIO_NCP_PATH}?forkpty-arg=1&ncp-dataset=1"
|
||||
"$PWD/output/posix/bin/ot-cli" -n --radio-version "spinel+hdlc+forkpty://${RADIO_NCP_PATH}?forkpty-arg=1&ncp-dataset=1"
|
||||
|
||||
echo "Step 3. Start posix app and check whether PAN dataset is the same..."
|
||||
RADIO_RCP_PATH="$PWD/output/simulation/bin/ot-rcp"
|
||||
|
||||
@@ -71,9 +71,6 @@ build_toranj()
|
||||
{
|
||||
reset_source
|
||||
top_builddir="$OT_BUILDDIR" ./tests/toranj/build.sh cmake
|
||||
|
||||
reset_source
|
||||
top_builddir="$OT_BUILDDIR" ./tests/toranj/build.sh cmake-posix
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -546,14 +546,11 @@ envsetup()
|
||||
if [[ ${OT_NODE_TYPE} == rcp* ]]; then
|
||||
export RADIO_DEVICE="${OT_BUILDDIR}/openthread-simulation-${THREAD_VERSION}/examples/apps/ncp/ot-rcp"
|
||||
export OT_CLI_PATH="${OT_BUILDDIR}/openthread-posix-${THREAD_VERSION}/src/posix/ot-cli"
|
||||
export OT_NCP_PATH="${OT_BUILDDIR}/openthread-posix-${THREAD_VERSION}/src/posix/ot-ncp"
|
||||
|
||||
if [[ ${THREAD_VERSION} == "1.2" ]]; then
|
||||
export RADIO_DEVICE_1_1="${OT_BUILDDIR}/openthread-simulation-1.1/examples/apps/ncp/ot-rcp"
|
||||
export OT_CLI_PATH_1_1="${OT_BUILDDIR}/openthread-posix-1.1/src/posix/ot-cli"
|
||||
export OT_NCP_PATH_1_1="${OT_BUILDDIR}/openthread-posix-1.1/src/posix/ot-ncp"
|
||||
export OT_CLI_PATH_1_2_BBR="${OT_BUILDDIR}/openthread-posix-1.2-bbr/src/posix/ot-cli"
|
||||
export OT_NCP_PATH_1_2_BBR="${OT_BUILDDIR}/openthread-posix-1.2-bbr/src/posix/ot-ncp"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ if OPENTHREAD_ENABLE_MTD
|
||||
noinst_LIBRARIES += libopenthread-spinel-ncp.a
|
||||
endif
|
||||
|
||||
if OPENTHREAD_ENABLE_RADIO_ONLY
|
||||
if OPENTHREAD_ENABLE_SPINEL_RCP
|
||||
noinst_LIBRARIES += libopenthread-spinel-rcp.a
|
||||
endif
|
||||
|
||||
|
||||
@@ -75,14 +75,8 @@ if(OT_DAEMON)
|
||||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||
set(CPACK_PACKAGE_NAME "openthread-daemon")
|
||||
endif()
|
||||
else()
|
||||
if(OT_APP_CLI)
|
||||
include(cli.cmake)
|
||||
endif()
|
||||
|
||||
if(OT_APP_NCP)
|
||||
include(ncp.cmake)
|
||||
endif()
|
||||
elseif(OT_APP_CLI)
|
||||
include(cli.cmake)
|
||||
|
||||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||
set(CPACK_PACKAGE_NAME "openthread-standalone")
|
||||
|
||||
@@ -84,7 +84,6 @@ COMMONCFLAGS := \
|
||||
configure_OPTIONS = \
|
||||
--enable-cli \
|
||||
--enable-ftd \
|
||||
--enable-ncp \
|
||||
--with-platform=posix \
|
||||
$(NULL)
|
||||
|
||||
|
||||
+4
-39
@@ -75,33 +75,6 @@ bin_PROGRAMS = \
|
||||
$(NULL)
|
||||
|
||||
if OPENTHREAD_ENABLE_EXECUTABLE
|
||||
ot_ncp_CPPFLAGS = \
|
||||
$(CPPFLAGS_COMMON) \
|
||||
-DOPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_NCP \
|
||||
$(NULL)
|
||||
|
||||
ot_ncp_SOURCES = \
|
||||
main.c \
|
||||
ncp.cpp \
|
||||
$(NULL)
|
||||
|
||||
ot_ncp_LDADD = \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(NULL)
|
||||
|
||||
ot_ncp_LDFLAGS = \
|
||||
$(LDFLAGS_COMMON) \
|
||||
$(NULL)
|
||||
|
||||
ot_ncp_LIBTOOLFLAGS = \
|
||||
$(LIBTOOLFLAGS_COMMON) \
|
||||
$(NULL)
|
||||
|
||||
if OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
bin_PROGRAMS += \
|
||||
ot-ctl \
|
||||
@@ -113,11 +86,6 @@ bin_PROGRAMS += \
|
||||
ot-cli \
|
||||
$(NULL)
|
||||
endif
|
||||
if OPENTHREAD_ENABLE_NCP
|
||||
bin_PROGRAMS += \
|
||||
ot-ncp \
|
||||
$(NULL)
|
||||
endif
|
||||
endif # OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
|
||||
ot_ctl_SOURCES = \
|
||||
@@ -130,7 +98,6 @@ ot_ctl_CPPFLAGS = \
|
||||
|
||||
ot_daemon_CPPFLAGS = \
|
||||
$(CPPFLAGS_COMMON) \
|
||||
-DOPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_CLI \
|
||||
$(NULL)
|
||||
|
||||
ot_daemon_SOURCES = \
|
||||
@@ -139,12 +106,12 @@ ot_daemon_SOURCES = \
|
||||
|
||||
ot_daemon_LDADD = \
|
||||
$(top_builddir)/src/cli/libopenthread-cli-ftd.a \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(top_builddir)/src/cli/libopenthread-cli-ftd.a \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(top_builddir)/src/lib/spinel/libopenthread-spinel-rcp.a \
|
||||
$(top_builddir)/src/lib/hdlc/libopenthread-hdlc.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(NULL)
|
||||
|
||||
@@ -158,7 +125,6 @@ ot_daemon_LIBTOOLFLAGS = \
|
||||
|
||||
ot_cli_CPPFLAGS = \
|
||||
$(CPPFLAGS_COMMON) \
|
||||
-DOPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_CLI \
|
||||
$(NULL)
|
||||
|
||||
ot_cli_SOURCES = \
|
||||
@@ -168,12 +134,12 @@ ot_cli_SOURCES = \
|
||||
|
||||
ot_cli_LDADD = \
|
||||
$(top_builddir)/src/cli/libopenthread-cli-ftd.a \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(top_builddir)/src/cli/libopenthread-cli-ftd.a \
|
||||
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
|
||||
$(top_builddir)/src/core/libopenthread-ftd.a \
|
||||
$(top_builddir)/src/lib/spinel/libopenthread-spinel-rcp.a \
|
||||
$(top_builddir)/src/lib/hdlc/libopenthread-hdlc.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(NULL)
|
||||
|
||||
@@ -186,7 +152,6 @@ ot_cli_LIBTOOLFLAGS = \
|
||||
$(NULL)
|
||||
|
||||
if OPENTHREAD_ENABLE_LINKER_MAP
|
||||
ot_ncp_LDFLAGS += -Wl,-Map=ot-cli-ftd.map
|
||||
ot_cli_LDFLAGS += -Wl,-Map=ot-cli-mtd.map
|
||||
endif
|
||||
|
||||
|
||||
+1
-20
@@ -82,26 +82,7 @@ python cc2538-bsl/cc2538-bsl.py -b 460800 -e -w -v -p /dev/ttyUSB0 ot-rcp.bin
|
||||
./output/posix/bin/ot-cli 'spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=115200'
|
||||
```
|
||||
|
||||
## Wpantund Support
|
||||
|
||||
**NOTE** Assuming the build system is 64bit Linux and _wpantund_ is already installed and **stopped**.
|
||||
|
||||
### With Simulation
|
||||
|
||||
```sh
|
||||
sudo wpantund -s 'system:./output/posix/bin/ot-ncp spinel+hdlc+forkpty://output/simulation/bin/ot-rcp?forkpty-arg=1'
|
||||
```
|
||||
|
||||
### With Real Device
|
||||
|
||||
```sh
|
||||
# nRF52840
|
||||
sudo wpantund -s 'system:./output/posix/bin/ot-ncp spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
|
||||
# CC2538
|
||||
sudo wpantund -s 'system:./output/posix/bin/ot-ncp spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=115200'
|
||||
```
|
||||
|
||||
## Daemon Mode Support
|
||||
## Daemon Mode
|
||||
|
||||
OpenThread Posix Daemon mode uses a unix socket as input and output, so that OpenThread core can run as a service. And a client can communicate with it by connecting to the socket. The protocol is OpenThread CLI.
|
||||
|
||||
|
||||
@@ -42,7 +42,6 @@ target_include_directories(ot-cli PRIVATE ${COMMON_INCLUDES})
|
||||
|
||||
target_compile_definitions(ot-cli PRIVATE
|
||||
$<$<BOOL:${READLINE}>:HAVE_LIB$<UPPER_CASE:${OT_READLINE}>=1>
|
||||
OPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_CLI
|
||||
${OT_PLATFORM_DEFINES}
|
||||
)
|
||||
|
||||
|
||||
@@ -40,7 +40,6 @@ set_target_properties(
|
||||
target_include_directories(ot-daemon PRIVATE ${COMMON_INCLUDES})
|
||||
|
||||
target_compile_definitions(ot-daemon PRIVATE
|
||||
OPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_CLI
|
||||
${OT_PLATFORM_DEFINES}
|
||||
)
|
||||
|
||||
@@ -53,7 +52,8 @@ target_link_libraries(ot-daemon PRIVATE
|
||||
${OT_PLATFORM_LIB}
|
||||
openthread-ftd
|
||||
${OT_PLATFORM_LIB}
|
||||
openthread-ncp-ftd
|
||||
openthread-hdlc
|
||||
openthread-spinel-rcp
|
||||
${OT_MBEDTLS}
|
||||
)
|
||||
|
||||
|
||||
+4
-32
@@ -53,23 +53,15 @@
|
||||
#define HAVE_LIBREADLINE 0
|
||||
#endif
|
||||
|
||||
#define OT_POSIX_APP_TYPE_NCP 1
|
||||
#define OT_POSIX_APP_TYPE_CLI 2
|
||||
|
||||
#include <openthread/cli.h>
|
||||
#include <openthread/diag.h>
|
||||
#include <openthread/logging.h>
|
||||
#include <openthread/tasklet.h>
|
||||
#include <openthread/thread.h>
|
||||
#include <openthread/platform/radio.h>
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
#include <openthread/ncp.h>
|
||||
#elif OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
#if !OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
#include <openthread/cli.h>
|
||||
|
||||
#include "cli/cli_config.h"
|
||||
#else
|
||||
#error "Unknown posix app type!"
|
||||
#endif
|
||||
#include <common/code_utils.hpp>
|
||||
#include <common/logging.hpp>
|
||||
@@ -295,7 +287,6 @@ static void ParseArg(int aArgCount, char *aArgVector[], PosixConfig *aConfig)
|
||||
aConfig->mPlatformConfig.mRadioUrl = aArgVector[optind];
|
||||
}
|
||||
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
static void PrintRadioUrl(void *aContext, uint8_t aArgsLength, char *aArgs[])
|
||||
{
|
||||
(void)aArgsLength;
|
||||
@@ -304,7 +295,6 @@ static void PrintRadioUrl(void *aContext, uint8_t aArgsLength, char *aArgs[])
|
||||
otPlatformConfig *config = (otPlatformConfig *)aContext;
|
||||
otCliOutputFormat("%s\r\nDone\r\n", config->mRadioUrl);
|
||||
}
|
||||
#endif // OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
|
||||
static otInstance *InitInstance(PosixConfig *aConfig)
|
||||
{
|
||||
@@ -353,12 +343,10 @@ void otPlatReset(otInstance *aInstance)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
otInstance *instance;
|
||||
int rval = 0;
|
||||
PosixConfig config;
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
otInstance * instance;
|
||||
int rval = 0;
|
||||
PosixConfig config;
|
||||
otCliCommand radioUrlCommand = {"radiourl", PrintRadioUrl};
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
// Ensure we terminate this process if the
|
||||
@@ -380,14 +368,10 @@ int main(int argc, char *argv[])
|
||||
setlogmask(setlogmask(0) & LOG_UPTO(LOG_DEBUG));
|
||||
instance = InitInstance(&config);
|
||||
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
otAppNcpInit(instance);
|
||||
#elif OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
#if !OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
otAppCliInit(instance);
|
||||
#endif
|
||||
otCliSetUserCommands(&radioUrlCommand, 1, &config.mPlatformConfig);
|
||||
#endif
|
||||
|
||||
while (true)
|
||||
{
|
||||
@@ -403,12 +387,8 @@ int main(int argc, char *argv[])
|
||||
mainloop.mTimeout.tv_sec = 10;
|
||||
mainloop.mTimeout.tv_usec = 0;
|
||||
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
otAppNcpUpdate(&mainloop);
|
||||
#elif OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
#if !OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
otAppCliUpdate(&mainloop);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
otSysMainloopUpdate(instance, &mainloop);
|
||||
@@ -416,12 +396,8 @@ int main(int argc, char *argv[])
|
||||
if (otSysMainloopPoll(&mainloop) >= 0)
|
||||
{
|
||||
otSysMainloopProcess(instance, &mainloop);
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
otAppNcpProcess(&mainloop);
|
||||
#elif OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
#if !OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
otAppCliProcess(&mainloop);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else if (errno != EINTR)
|
||||
@@ -431,13 +407,9 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
// disable ncp
|
||||
#elif OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_CLI
|
||||
#if !OPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE
|
||||
otAppCliDeinit();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
exit:
|
||||
otInstanceFinalize(instance);
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2020, The OpenThread Authors.
|
||||
# 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.
|
||||
#
|
||||
|
||||
add_executable(ot-ncp
|
||||
main.c
|
||||
ncp.cpp
|
||||
)
|
||||
|
||||
set_target_properties(
|
||||
ot-ncp
|
||||
PROPERTIES
|
||||
C_STANDARD 99
|
||||
CXX_STANDARD 11
|
||||
)
|
||||
|
||||
target_include_directories(ot-ncp PRIVATE ${COMMON_INCLUDES})
|
||||
|
||||
target_compile_definitions(ot-ncp PRIVATE
|
||||
OPENTHREAD_POSIX_APP_TYPE=OT_POSIX_APP_TYPE_NCP
|
||||
${OT_PLATFORM_DEFINES}
|
||||
)
|
||||
|
||||
target_compile_options(ot-ncp PRIVATE
|
||||
${OT_CFLAGS}
|
||||
)
|
||||
|
||||
target_link_libraries(ot-ncp
|
||||
openthread-ncp-ftd
|
||||
${OT_PLATFORM_LIB}
|
||||
openthread-ftd
|
||||
${OT_PLATFORM_LIB}
|
||||
${OT_MBEDTLS}
|
||||
openthread-ncp-ftd
|
||||
)
|
||||
|
||||
install(TARGETS ot-ncp DESTINATION bin)
|
||||
@@ -1,132 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2021, The OpenThread Authors.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "openthread-posix-config.h"
|
||||
#include "platform-posix.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <openthread/ncp.h>
|
||||
#include <openthread/platform/misc.h>
|
||||
|
||||
#include "common/code_utils.hpp"
|
||||
|
||||
#if OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
static const uint8_t *sWriteBuffer = nullptr;
|
||||
static uint16_t sWriteLength = 0;
|
||||
|
||||
static int ncpHdlcSend(const uint8_t *aBuf, uint16_t aBufLength)
|
||||
{
|
||||
sWriteBuffer = aBuf;
|
||||
sWriteLength = aBufLength;
|
||||
|
||||
return aBufLength;
|
||||
}
|
||||
|
||||
extern "C" void otAppNcpInit(otInstance *aInstance)
|
||||
{
|
||||
otNcpHdlcInit(aInstance, ncpHdlcSend);
|
||||
}
|
||||
|
||||
extern "C" void otAppNcpUpdate(otSysMainloopContext *aContext)
|
||||
{
|
||||
FD_SET(STDIN_FILENO, &aContext->mReadFdSet);
|
||||
FD_SET(STDIN_FILENO, &aContext->mErrorFdSet);
|
||||
|
||||
if (aContext->mMaxFd < STDIN_FILENO)
|
||||
{
|
||||
aContext->mMaxFd = STDIN_FILENO;
|
||||
}
|
||||
|
||||
if (sWriteLength > 0)
|
||||
{
|
||||
FD_SET(STDOUT_FILENO, &aContext->mWriteFdSet);
|
||||
FD_SET(STDOUT_FILENO, &aContext->mErrorFdSet);
|
||||
|
||||
if (aContext->mMaxFd < STDOUT_FILENO)
|
||||
{
|
||||
aContext->mMaxFd = STDOUT_FILENO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void otAppNcpProcess(const otSysMainloopContext *aContext)
|
||||
{
|
||||
ssize_t rval;
|
||||
|
||||
if (FD_ISSET(STDIN_FILENO, &aContext->mErrorFdSet))
|
||||
{
|
||||
DieNowWithMessage("stdin", OT_EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (FD_ISSET(STDOUT_FILENO, &aContext->mErrorFdSet))
|
||||
{
|
||||
DieNowWithMessage("stdout", OT_EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (FD_ISSET(STDIN_FILENO, &aContext->mReadFdSet))
|
||||
{
|
||||
uint8_t buffer[256];
|
||||
|
||||
rval = read(STDIN_FILENO, buffer, sizeof(buffer));
|
||||
|
||||
if (rval > 0)
|
||||
{
|
||||
otNcpHdlcReceive(buffer, static_cast<uint16_t>(rval));
|
||||
}
|
||||
else if (rval <= 0)
|
||||
{
|
||||
DieNowWithMessage("UART read", (rval < 0) ? OT_EXIT_ERROR_ERRNO : OT_EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
if ((FD_ISSET(STDOUT_FILENO, &aContext->mWriteFdSet)))
|
||||
{
|
||||
if (sWriteLength > 0)
|
||||
{
|
||||
rval = write(STDOUT_FILENO, sWriteBuffer, sWriteLength);
|
||||
|
||||
if (rval < 0)
|
||||
{
|
||||
DieNow(OT_EXIT_ERROR_ERRNO);
|
||||
}
|
||||
|
||||
sWriteBuffer += rval;
|
||||
sWriteLength -= static_cast<uint16_t>(rval);
|
||||
}
|
||||
|
||||
if (sWriteLength == 0)
|
||||
{
|
||||
otNcpHdlcSendDone();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // OPENTHREAD_POSIX_APP_TYPE == OT_POSIX_APP_TYPE_NCP
|
||||
+9
-27
@@ -102,34 +102,16 @@ else
|
||||
coverage_option=""
|
||||
fi
|
||||
|
||||
case $TORANJ_POSIX_RCP_MODEL in
|
||||
1 | yes)
|
||||
use_posix_with_rcp=yes
|
||||
;;
|
||||
*)
|
||||
use_posix_with_rcp=no
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$use_posix_with_rcp" = "no" ]; then
|
||||
if [ "$TORANJ_RADIO" = "multi" ]; then
|
||||
# Build all combinations
|
||||
./build.sh "${coverage_option}" ncp-15.4 || die "ncp-15.4 build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
./build.sh "${coverage_option}" ncp-trel || die "ncp-trel build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
./build.sh "${coverage_option}" ncp-15.4+trel || die "ncp-15.4+trel build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
else
|
||||
./build.sh "${coverage_option}" ncp-"${TORANJ_RADIO}" || die "ncp build failed"
|
||||
fi
|
||||
if [ "$TORANJ_RADIO" = "multi" ]; then
|
||||
# Build all combinations
|
||||
./build.sh "${coverage_option}" ncp-15.4 || die "ncp-15.4 build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
./build.sh "${coverage_option}" ncp-trel || die "ncp-trel build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
./build.sh "${coverage_option}" ncp-15.4+trel || die "ncp-15.4+trel build failed"
|
||||
(cd ${top_builddir} && make clean) || die "cd and clean failed"
|
||||
else
|
||||
./build.sh "${coverage_option}" rcp || die "rcp build failed"
|
||||
./build.sh "${coverage_option}" posix-"${TORANJ_RADIO}" || die "posix build failed"
|
||||
|
||||
if [ "$TORANJ_RADIO" = "trel" ]; then
|
||||
prepare_trel_link
|
||||
fi
|
||||
./build.sh "${coverage_option}" ncp-"${TORANJ_RADIO}" || die "ncp build failed"
|
||||
fi
|
||||
|
||||
cleanup
|
||||
|
||||
@@ -174,8 +174,6 @@ all_gettable_props = [
|
||||
wpan.WPAN_THREAD_STABLE_LEADER_NETWORK_DATA,
|
||||
]
|
||||
|
||||
all_posix_gettable_props = [wpan.WPAN_RCP_VERSION]
|
||||
|
||||
# note: Partition Id only takes effect after forming one Thread network.
|
||||
node.set(wpan.WPAN_PARTITION_ID, '12345678')
|
||||
|
||||
@@ -187,10 +185,6 @@ verify(int(node.get(wpan.WPAN_PARTITION_ID), 0) == 12345678)
|
||||
for prop in all_gettable_props:
|
||||
node.get(prop)
|
||||
|
||||
if node.using_posix_with_rcp:
|
||||
for prop in all_posix_gettable_props:
|
||||
node.get(prop)
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------------
|
||||
# Test finished
|
||||
|
||||
|
||||
+3
-25
@@ -302,18 +302,11 @@ class Node(object):
|
||||
_VERBOSE = os.getenv('TORANJ_VERBOSE', 'no').lower() in ['true', '1', 't', 'y', 'yes', 'on']
|
||||
_SPEED_UP_FACTOR = 1 # defines the default time speed up factor
|
||||
|
||||
# path to `wpantund`, `wpanctl`, `ot-ncp-ftd`,`ot-ncp` and `ot-rcp`
|
||||
# path to `wpantund`, `wpanctl` and `ot-ncp-ftd`
|
||||
_WPANTUND = '%s/sbin/wpantund' % _WPANTUND_PREFIX
|
||||
_WPANCTL = '%s/bin/wpanctl' % _WPANTUND_PREFIX
|
||||
|
||||
_OT_NCP_FTD = '%s/examples/apps/ncp/ot-ncp-ftd' % _OT_BUILDDIR
|
||||
_OT_NCP_FTD_POSIX = '%s/src/posix/ot-ncp' % _OT_BUILDDIR
|
||||
_OT_RCP = '%s/examples/apps/ncp/ot-rcp' % _OT_BUILDDIR
|
||||
|
||||
# Environment variable used to determine how to run OpenThread
|
||||
# If set to 1, then posix NCP (`ot-ncp`) is used along with a posix RCP `ot-rcp`.
|
||||
# Otherwise, the posix NCP `ot-ncp-ftd` is used
|
||||
_POSIX_ENV_VAR = 'TORANJ_POSIX_RCP_MODEL'
|
||||
|
||||
# determines if the wpantund logs are saved in file or sent to stdout
|
||||
_TUND_LOG_TO_FILE = True
|
||||
@@ -338,19 +331,8 @@ class Node(object):
|
||||
self._interface_name = self._INTFC_NAME_PREFIX + str(index)
|
||||
self._verbose = verbose
|
||||
|
||||
# Check if env variable `TORANJ_POSIX_RCP_MODEL` is defined
|
||||
# and use it to determine if to use operate in "posix-ncp-app".
|
||||
if self._POSIX_ENV_VAR in os.environ:
|
||||
self._use_posix_with_rcp = (os.environ[self._POSIX_ENV_VAR] in ['1', 'yes'])
|
||||
else:
|
||||
self._use_posix_with_rcp = False
|
||||
|
||||
if self._use_posix_with_rcp:
|
||||
ncp_socket_path = 'system:{}{} -s {} spinel+hdlc+uart://{}?forkpty-arg={}'.format(
|
||||
self._OT_NCP_FTD_POSIX, '' if radios is None else radios, self._SPEED_UP_FACTOR, self._OT_RCP, index)
|
||||
else:
|
||||
ncp_socket_path = 'system:{}{} {} {}'.format(self._OT_NCP_FTD, '' if radios is None else radios, index,
|
||||
self._SPEED_UP_FACTOR)
|
||||
ncp_socket_path = 'system:{}{} {} {}'.format(self._OT_NCP_FTD, '' if radios is None else radios, index,
|
||||
self._SPEED_UP_FACTOR)
|
||||
|
||||
cmd = self._WPANTUND + \
|
||||
' -o Config:NCP:SocketPath \"{}\"'.format(ncp_socket_path) + \
|
||||
@@ -395,10 +377,6 @@ class Node(object):
|
||||
def tund_log_file(self):
|
||||
return self._tund_log_file
|
||||
|
||||
@property
|
||||
def using_posix_with_rcp(self):
|
||||
return self._use_posix_with_rcp
|
||||
|
||||
# ------------------------------------------------------------------------------------------------------------------
|
||||
# Executing a `wpanctl` command
|
||||
|
||||
|
||||
Reference in New Issue
Block a user