[windows] remove unsupported platform (#3878)

This commit is contained in:
Kamil Sroka 2019-06-06 20:55:18 +02:00 committed by Jonathan Hui
parent e482edb0f1
commit c14cc60962
305 changed files with 1125 additions and 45292 deletions

View File

@ -1,65 +0,0 @@
#
# Copyright (c) 2016, 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.
#
version: 0.1.{build}
image: Visual Studio 2015
configuration:
- Release
platform:
- x64
- x86
- arm
clone_depth: 10
install:
- cmd: Bcdedit.exe -set TESTSIGNING ON
# Configure logging
- cmd: reg import tools\windows\ThreadEtw.reg
- ps: Restart-Computer -Force
- ps: Start-Sleep -s 10
before_build:
- cmd: ren "C:\Program Files (x86)\Windows Kits\10\include\00wdf" "wdf"
build:
project: etc/visual-studio/openthread.sln
verbosity: minimal
after_build:
- ps: $env:Platform2 = $env:Platform
- ps: If ($env:Platform2 -eq "x86") { $env:Platform2 = "Win32" }
# Set up the release directories
- cmd: .appveyor\make_release.cmd
# Install driver (only runs on x64)
- cmd: .appveyor\install_driver.cmd
test_script:
# Run the unit tests
- cmd: .appveyor\run_unit_tests.cmd
# Run the tests for the driver (only runs on x64)
#- cmd: .appveyor\test_driver.cmd
artifacts:
- path: release
name: release
- path: build\bin\AppPackages
name: app

View File

@ -1,43 +0,0 @@
REM
REM Copyright (c) 2016, The OpenThread Authors.
REM All rights reserved.
REM
REM Redistribution and use in source and binary forms, with or without
REM modification, are permitted provided that the following conditions are met:
REM 1. Redistributions of source code must retain the above copyright
REM notice, this list of conditions and the following disclaimer.
REM 2. Redistributions in binary form must reproduce the above copyright
REM notice, this list of conditions and the following disclaimer in the
REM documentation and/or other materials provided with the distribution.
REM 3. Neither the name of the copyright holder nor the
REM names of its contributors may be used to endorse or promote products
REM derived from this software without specific prior written permission.
REM
REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
REM AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
REM IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
REM ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
REM LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
REM CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
REM SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
REM INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
REM CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
REM ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
REM POSSIBILITY OF SUCH DAMAGE.
REM
IF NOT "%Platform%"=="x64" GOTO :EOF
pushd %APPVEYOR_BUILD_FOLDER%\build\bin\%Platform2%\%Configuration%\sys
REM Install the certifications to the cert stores
certutil -addstore root otLwf.cer
certutil -addstore TrustedPublisher otLwf.cer
cd otLwf
REM Install the NDIS LWF driver, otLwf.sys
netcfg.exe -v -l otlwf.inf -c s -i otLwf
popd

View File

@ -1,87 +0,0 @@
REM
REM Copyright (c) 2016, The OpenThread Authors.
REM All rights reserved.
REM
REM Redistribution and use in source and binary forms, with or without
REM modification, are permitted provided that the following conditions are met:
REM 1. Redistributions of source code must retain the above copyright
REM notice, this list of conditions and the following disclaimer.
REM 2. Redistributions in binary form must reproduce the above copyright
REM notice, this list of conditions and the following disclaimer in the
REM documentation and/or other materials provided with the distribution.
REM 3. Neither the name of the copyright holder nor the
REM names of its contributors may be used to endorse or promote products
REM derived from this software without specific prior written permission.
REM
REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
REM AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
REM IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
REM ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
REM LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
REM CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
REM SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
REM INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
REM CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
REM ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
REM POSSIBILITY OF SUCH DAMAGE.
REM
pushd %APPVEYOR_BUILD_FOLDER%
REM Make the release directories
mkdir release
mkdir release\include
mkdir release\include\openthread\
mkdir release\include\openthread\missing
mkdir release\include\openthread\platform
mkdir release\libs
mkdir release\symbols
mkdir release\symbols\TraceFormat
REM Copy the relavant include headers
copy include\openthread\commissioner.h release\include\openthread
copy include\openthread\dataset.h release\include\openthread
copy include\openthread\error.h release\include\openthread
copy include\openthread\instance.h release\include\openthread
copy include\openthread\ip6.h release\include\openthread
copy include\openthread\joiner.h release\include\openthread
copy include\openthread\link.h release\include\openthread
copy include\openthread\message.h release\include\openthread
copy include\openthread\netdata.h release\include\openthread
copy include\openthread\thread.h release\include\openthread
copy include\openthread\types.h release\include\openthread
copy include\openthread\platform\toolchain.h release\include\openthread\platform
copy src\missing\stdbool\stdbool.h release\include\openthread\missing
copy src\missing\stdint\stdint.h release\include\openthread\missing
REM Copy the relavant binaries
copy build\bin\%Platform2%\%Configuration%\sys\otlwf\* release
copy build\bin\%Platform2%\%Configuration%\sys\otlwf.cer release
copy build\bin\%Platform2%\%Configuration%\sys\otlwf.pdb release\symbols
copy build\bin\%Platform2%\%Configuration%\sys\ottmp\* release
copy build\bin\%Platform2%\%Configuration%\sys\ottmp.cer release
copy build\bin\%Platform2%\%Configuration%\sys\ottmp.pdb release\symbols
copy build\bin\%Platform2%\%Configuration%\dll\otApi.dll release
copy build\bin\%Platform2%\%Configuration%\dll\otApi.lib release\libs
copy build\bin\%Platform2%\%Configuration%\dll\otApi.pdb release\symbols
copy build\bin\%Platform2%\%Configuration%\dll\otNodeApi.dll release
copy build\bin\%Platform2%\%Configuration%\dll\otNodeApi.lib release\libs
copy build\bin\%Platform2%\%Configuration%\dll\otNodeApi.pdb release\symbols
copy build\bin\%Platform2%\%Configuration%\exe\otCli.exe release
copy build\bin\%Platform2%\%Configuration%\exe\otCli.pdb release\symbols
copy build\bin\%Platform2%\%Configuration%\exe\otTestRunner.exe release
copy build\bin\%Platform2%\%Configuration%\exe\otTestRunner.pdb release\symbols
REM Copy the tools
copy tools\windows\* release
copy tools\windows\%Platform%\otInstall.exe release
copy "C:\Program Files (x86)\Windows Kits\10\Tools\%Platform%\devcon.exe" release
REM Generate the trace format files to decode the WPP logs
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\x64\TracePdb.exe" -f release\symbols\*.pdb -p release\symbols\TraceFormat
popd

View File

@ -1,31 +0,0 @@
REM
REM Copyright (c) 2016, The OpenThread Authors.
REM All rights reserved.
REM
REM Redistribution and use in source and binary forms, with or without
REM modification, are permitted provided that the following conditions are met:
REM 1. Redistributions of source code must retain the above copyright
REM notice, this list of conditions and the following disclaimer.
REM 2. Redistributions in binary form must reproduce the above copyright
REM notice, this list of conditions and the following disclaimer in the
REM documentation and/or other materials provided with the distribution.
REM 3. Neither the name of the copyright holder nor the
REM names of its contributors may be used to endorse or promote products
REM derived from this software without specific prior written permission.
REM
REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
REM AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
REM IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
REM ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
REM LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
REM CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
REM SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
REM INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
REM CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
REM ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
REM POSSIBILITY OF SUCH DAMAGE.
REM
IF "%Platform%"=="arm" GOTO :EOF
vstest.console /logger:Appveyor /inIsolation /platform:%Platform% build\bin\%Platform2%\%Configuration%\dll\UnitTests.dll

View File

@ -1,47 +0,0 @@
REM
REM Copyright (c) 2016, The OpenThread Authors.
REM All rights reserved.
REM
REM Redistribution and use in source and binary forms, with or without
REM modification, are permitted provided that the following conditions are met:
REM 1. Redistributions of source code must retain the above copyright
REM notice, this list of conditions and the following disclaimer.
REM 2. Redistributions in binary form must reproduce the above copyright
REM notice, this list of conditions and the following disclaimer in the
REM documentation and/or other materials provided with the distribution.
REM 3. Neither the name of the copyright holder nor the
REM names of its contributors may be used to endorse or promote products
REM derived from this software without specific prior written permission.
REM
REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
REM AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
REM IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
REM ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
REM LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
REM CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
REM SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
REM INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
REM CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
REM ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
REM POSSIBILITY OF SUCH DAMAGE.
REM
IF NOT "%Platform%"=="x64" GOTO :EOF
pushd %APPVEYOR_BUILD_FOLDER%\release
REM Query the driver state
sc query otlwf
REM Run the basic driver test
otTestRunner.exe ..\tests\scripts\thread-cert Test_otLwf* appveyor
REM Grab the logs
mkdir logs
logman stop Thread -ets
copy %SystemRoot%\System32\LogFiles\WMI\Thread.* logs
popd

7
.gitattributes vendored
View File

@ -36,10 +36,3 @@ configure.ac eol=lf
Makefile.am eol=lf
Makefile.in eol=lf
Makefile eol=lf
# Files normalized to always keep Windows line endings
*.vcxproj eol=crlf
*.vcxproj.filters eol=crlf
*.sln eol=crlf
*.rc text eol=crlf
*.inf text eol=crlf

View File

@ -37,7 +37,7 @@ The OpenThread Project follows the "Fork-and-Pull" model for accepting contribut
Setup your GitHub fork and continuous-integration services:
1. Fork the [OpenThread repository](https://github.com/openthread/openthread) by clicking "Fork" on the web UI.
2. Enable [Travis CI](https://travis-ci.org/) and [AppVeyor](https://ci.appveyor.com/) by logging in the respective services with your GitHub account and enabling your newly created fork. We use Travis CI for Linux-based continuous integration checks and AppVeyor for Windows-based continuous integration checks. All contributions must pass these checks to be accepted.
2. Enable [Travis CI](https://travis-ci.org/) by logging in the respective service with your GitHub account and enabling your newly created fork. We use Travis CI for Linux-based continuous integration checks. All contributions must pass these checks to be accepted.
Setup your local development environment:

View File

@ -1,6 +1,5 @@
[![OpenThread][ot-logo]][ot-repo]
[![Build Status][ot-travis-svg]][ot-travis]
[![Build Status][ot-appveyor-svg]][ot-appveyor]
[![Coverage Status][ot-codecov-svg]][ot-codecov]
[![Build Status][ot-docker-dev-svg]][ot-docker-dev]
@ -26,8 +25,6 @@ More information about Thread can be found at [threadgroup.org](http://threadgro
[ot-logo]: doc/images/openthread_logo.png
[ot-travis]: https://travis-ci.org/openthread/openthread
[ot-travis-svg]: https://travis-ci.org/openthread/openthread.svg?branch=master
[ot-appveyor]: https://ci.appveyor.com/project/jwhui/openthread
[ot-appveyor-svg]: https://ci.appveyor.com/api/projects/status/r5qwyhn9p26nmfk3?svg=true
[ot-codecov]: https://codecov.io/gh/openthread/openthread
[ot-codecov-svg]: https://codecov.io/gh/openthread/openthread/branch/master/graph/badge.svg
[ot-docker-dev]: https://hub.docker.com/r/openthread/environment
@ -35,7 +32,7 @@ More information about Thread can be found at [threadgroup.org](http://threadgro
# Who supports OpenThread?
<a href="https://www.arm.com/"><img src="doc/images/ot-contrib-arm.png" alt="ARM" width="200px"></a><a href="https://www.cascoda.com/"><img src="doc/images/ot-contrib-cascoda.png" alt="Cascoda" width="200px"></a><a href="https://www.google.com/"><img src="doc/images/ot-contrib-google.png" alt="Google" width="200px"></a><a href="https://www.microsoft.com/en-us/"><img src="doc/images/ot-contrib-ms.png" alt="Microsoft" width="200px"></a><a href="http://www.nordicsemi.com/"><img src="doc/images/ot-contrib-nordic.png" alt="Nordic" width="200px"></a><a href="http://www.nxp.com/"><img src="doc/images/ot-contrib-nxp.png" alt="NXP" width="200px"></a><a href="https://www.particle.io/"><img src="doc/images/ot-contrib-particle.png" alt="Particle" width="200px"></a><a href="http://www.qorvo.com/"><img src="doc/images/ot-contrib-qorvo.png" alt="Qorvo" width="200px"></a><a href="https://www.qualcomm.com/"><img src="doc/images/ot-contrib-qc.png" alt="Qualcomm" width="200px"></a><a href="https://www.st.com/"><img src="doc/images/ot-contrib-stm.png" alt="STMicroelectronics" width="200px"></a><a href="https://www.synopsys.com/"><img src="doc/images/ot-contrib-synopsys.png" alt="Synopsys" width="200px"></a><a href="https://www.ti.com/"><img src="doc/images/ot-contrib-ti.png" alt="Texas Instruments" width="200px"></a><a href="https://www.zephyrproject.org/"><img src="doc/images/ot-contrib-zephyr.png" alt="Zephyr Project" width="200px"></a>
<a href="https://www.arm.com/"><img src="doc/images/ot-contrib-arm.png" alt="ARM" width="200px"></a><a href="https://www.cascoda.com/"><img src="doc/images/ot-contrib-cascoda.png" alt="Cascoda" width="200px"></a><a href="https://www.google.com/"><img src="doc/images/ot-contrib-google.png" alt="Google" width="200px"></a><a href="http://www.nordicsemi.com/"><img src="doc/images/ot-contrib-nordic.png" alt="Nordic" width="200px"></a><a href="http://www.nxp.com/"><img src="doc/images/ot-contrib-nxp.png" alt="NXP" width="200px"></a><a href="https://www.particle.io/"><img src="doc/images/ot-contrib-particle.png" alt="Particle" width="200px"></a><a href="http://www.qorvo.com/"><img src="doc/images/ot-contrib-qorvo.png" alt="Qorvo" width="200px"></a><a href="https://www.qualcomm.com/"><img src="doc/images/ot-contrib-qc.png" alt="Qualcomm" width="200px"></a><a href="https://www.st.com/"><img src="doc/images/ot-contrib-stm.png" alt="STMicroelectronics" width="200px"></a><a href="https://www.synopsys.com/"><img src="doc/images/ot-contrib-synopsys.png" alt="Synopsys" width="200px"></a><a href="https://www.ti.com/"><img src="doc/images/ot-contrib-ti.png" alt="Texas Instruments" width="200px"></a><a href="https://www.zephyrproject.org/"><img src="doc/images/ot-contrib-zephyr.png" alt="Zephyr Project" width="200px"></a>
# Getting started

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{f8c22844-9b93-4978-80df-8af2b37a7abb}</ProjectGuid>
<RootNamespace>ot</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<PackageCertificateKeyFile>..\..\examples\apps\windows\OpenThread_TemporaryKey.pfx</PackageCertificateKeyFile>
</PropertyGroup>
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\app\</OutDir>
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
<AppxPackageDir>..\..\build\bin\AppPackages\</AppxPackageDir>
<AppxBundle>Never</AppxBundle>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
</PreprocessorDefinitions>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\apps\windows;
..\..\include;
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalDependencies>
%(AdditionalDependencies);
..\..\build\bin\$(Platform)\$(Configuration)\dll\otApi.lib;
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\apps\windows\ClientArgs.h" />
<ClInclude Include="..\..\examples\apps\windows\ClientControl.xaml.h">
<DependentUpon>..\..\examples\apps\windows\ClientControl.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="..\..\examples\apps\windows\DatagramClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\DatagramListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\Factory.h" />
<ClInclude Include="..\..\examples\apps\windows\IClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\IListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\Protocol.h" />
<ClInclude Include="..\..\examples\apps\windows\IAsyncThreadNotify.h" />
<ClInclude Include="..\..\examples\apps\windows\IMainPageUIElements.h" />
<ClInclude Include="..\..\examples\apps\windows\ListenerArgs.h" />
<ClInclude Include="..\..\examples\apps\windows\otAdapter.h" />
<ClInclude Include="..\..\examples\apps\windows\otApi.h" />
<ClInclude Include="..\..\examples\apps\windows\pch.h" />
<ClInclude Include="..\..\examples\apps\windows\App.xaml.h">
<DependentUpon>..\..\examples\apps\windows\App.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="..\..\examples\apps\windows\MainPage.xaml.h">
<DependentUpon>..\..\examples\apps\windows\MainPage.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="..\..\examples\apps\windows\ServerControl.xaml.h">
<DependentUpon>..\..\examples\apps\windows\ServerControl.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="..\..\examples\apps\windows\StreamClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\StreamListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\TalkConsts.h" />
<ClInclude Include="..\..\examples\apps\windows\TalkGrid.xaml.h">
<DependentUpon>..\..\examples\apps\windows\TalkGrid.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="..\..\examples\apps\windows\TalkHelper.h" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="..\..\examples\apps\windows\App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="..\..\examples\apps\windows\ClientControl.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="..\..\examples\apps\windows\MainPage.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="..\..\examples\apps\windows\ServerControl.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="..\..\examples\apps\windows\TalkGrid.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="..\..\examples\apps\windows\Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
<None Include="..\..\examples\apps\windows\OpenThread_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\LockScreenLogo.scale-200.png" />
<Image Include="Assets\SplashScreen.scale-200.png" />
<Image Include="Assets\Square150x150Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Image Include="Assets\StoreLogo.png" />
<Image Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\windows\App.xaml.cpp">
<DependentUpon>..\..\examples\apps\windows\App.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="..\..\examples\apps\windows\ClientControl.xaml.cpp">
<DependentUpon>..\..\examples\apps\windows\ClientControl.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="..\..\examples\apps\windows\DatagramClientContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\DatagramListenerContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\Factory.cpp" />
<ClCompile Include="..\..\examples\apps\windows\MainPage.xaml.cpp">
<DependentUpon>..\..\examples\apps\windows\MainPage.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="..\..\examples\apps\windows\pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\examples\apps\windows\ServerControl.xaml.cpp">
<DependentUpon>..\..\examples\apps\windows\ServerControl.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="..\..\examples\apps\windows\StreamClientContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\StreamListenerContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\TalkGrid.xaml.cpp">
<DependentUpon>..\..\examples\apps\windows\TalkGrid.xaml</DependentUpon>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Common">
<UniqueIdentifier>f8c22844-9b93-4978-80df-8af2b37a7abb</UniqueIdentifier>
</Filter>
<Filter Include="Assets">
<UniqueIdentifier>cf539bf1-44af-4a06-be13-5941f6ac2623</UniqueIdentifier>
<Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="..\..\examples\apps\windows\App.xaml" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\windows\App.xaml.cpp" />
<ClCompile Include="..\..\examples\apps\windows\MainPage.xaml.cpp" />
<ClCompile Include="..\..\examples\apps\windows\pch.cpp" />
<ClCompile Include="..\..\examples\apps\windows\Factory.cpp" />
<ClCompile Include="..\..\examples\apps\windows\ClientControl.xaml.cpp" />
<ClCompile Include="..\..\examples\apps\windows\ServerControl.xaml.cpp" />
<ClCompile Include="..\..\examples\apps\windows\TalkGrid.xaml.cpp" />
<ClCompile Include="..\..\examples\apps\windows\DatagramClientContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\DatagramListenerContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\StreamClientContext.cpp" />
<ClCompile Include="..\..\examples\apps\windows\StreamListenerContext.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\apps\windows\pch.h" />
<ClInclude Include="..\..\examples\apps\windows\App.xaml.h" />
<ClInclude Include="..\..\examples\apps\windows\MainPage.xaml.h" />
<ClInclude Include="..\..\examples\apps\windows\otAdapter.h" />
<ClInclude Include="..\..\examples\apps\windows\otApi.h" />
<ClInclude Include="..\..\examples\apps\windows\IAsyncThreadNotify.h" />
<ClInclude Include="..\..\examples\apps\windows\IMainPageUIElements.h" />
<ClInclude Include="..\..\examples\apps\windows\ListenerArgs.h" />
<ClInclude Include="..\..\examples\apps\windows\ClientArgs.h" />
<ClInclude Include="..\..\examples\apps\windows\Protocol.h" />
<ClInclude Include="..\..\examples\apps\windows\IListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\Factory.h" />
<ClInclude Include="..\..\examples\apps\windows\IClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\ClientControl.xaml.h" />
<ClInclude Include="..\..\examples\apps\windows\ServerControl.xaml.h" />
<ClInclude Include="..\..\examples\apps\windows\TalkGrid.xaml.h" />
<ClInclude Include="..\..\examples\apps\windows\DatagramClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\DatagramListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\StreamClientContext.h" />
<ClInclude Include="..\..\examples\apps\windows\StreamListenerContext.h" />
<ClInclude Include="..\..\examples\apps\windows\TalkConsts.h" />
<ClInclude Include="..\..\examples\apps\windows\TalkHelper.h" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\LockScreenLogo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\SplashScreen.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square150x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\StoreLogo.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Wide310x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="..\..\examples\apps\windows\Package.appxmanifest" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\examples\apps\windows\OpenThread_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<Page Include="..\..\examples\apps\windows\MainPage.xaml" />
<Page Include="..\..\examples\apps\windows\TalkGrid.xaml" />
<Page Include="..\..\examples\apps\windows\ClientControl.xaml" />
<Page Include="..\..\examples\apps\windows\ServerControl.xaml" />
</ItemGroup>
</Project>

View File

@ -1,102 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{FD64BF17-8D36-4578-8D13-77B123BE30D3}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\dll\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
$(VCInstallDir)UnitTest\include;
..\..\include;
..\..\src;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
%(PreprocessorDefinitions)
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>
%(AdditionalLibraryDirectories);
$(VCInstallDir)UnitTest\lib;
</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\tests\unit\test_aes.cpp" />
<ClCompile Include="..\..\tests\unit\test_hmac_sha256.cpp" />
<ClCompile Include="..\..\tests\unit\test_link_quality.cpp" />
<ClCompile Include="..\..\tests\unit\test_lowpan.cpp" />
<ClCompile Include="..\..\tests\unit\test_mac_frame.cpp" />
<ClCompile Include="..\..\tests\unit\test_message.cpp" />
<ClCompile Include="..\..\tests\unit\test_message_queue.cpp" />
<ClCompile Include="..\..\tests\unit\test_ncp_buffer.cpp" />
<ClCompile Include="..\..\tests\unit\test_platform.cpp" />
<ClCompile Include="..\..\tests\unit\test_priority_queue.cpp" />
<ClCompile Include="..\..\tests\unit\test_timer.cpp" />
<ClCompile Include="..\..\tests\unit\test_toolchain_c.c" />
<ClCompile Include="..\..\tests\unit\test_toolchain.cpp" />
<ClCompile Include="..\..\tests\unit\test_util.cpp" />
<ClCompile Include="..\..\tests\unit\test_windows.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\tests\unit\test_platform.h" />
<ClInclude Include="..\..\tests\unit\test_lowpan.hpp" />
<ClInclude Include="..\..\tests\unit\test_util.h" />
<ClInclude Include="..\..\tests\unit\test_util.hpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="libopenthread-ncp-uart.vcxproj">
<Project>{d94867d2-6dae-47e2-962a-5e8e658134d1}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread.vcxproj">
<Project>{dd5018be-54c6-4fd4-9f8d-08d52fc0cd40}</Project>
</ProjectReference>
<ProjectReference Include="mbedtls.vcxproj">
<Project>{4111c8bb-d354-4348-ad3c-eb6832e84831}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\tests\unit\test_aes.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_hmac_sha256.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_link_quality.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_lowpan.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_mac_frame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_message.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_message_queue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_priority_queue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_timer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_toolchain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_util.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_windows.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_platform.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\tests\unit\test_ncp_buffer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\tests\unit\test_platform.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\tests\unit\test_lowpan.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\tests\unit\test_util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\tests\unit\test_util.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{28834498-3837-44A5-8F67-249ABAB7B97D}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OTDLL;
OTBUILD;
OPENTHREAD_FTD=1;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\cli\cli.cpp" />
<ClCompile Include="..\..\src\cli\cli_commissioner.cpp" />
<ClCompile Include="..\..\src\cli\cli_dataset.cpp" />
<ClCompile Include="..\..\src\cli\cli_instance.cpp" />
<ClCompile Include="..\..\src\cli\cli_joiner.cpp" />
<ClCompile Include="..\..\src\cli\cli_server.cpp" />
<ClCompile Include="..\..\src\cli\cli_uart.cpp" />
<ClCompile Include="..\..\src\core\utils\missing_strnlen.c" />
<ClCompile Include="..\..\src\core\utils\parse_cmdline.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\cli\cli.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_commissioner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_dataset.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_instance.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_joiner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_server.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_uart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{41B32069-632E-4578-855B-A36EBFA80B56}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\cli\cli.cpp" />
<ClCompile Include="..\..\src\cli\cli_commissioner.cpp" />
<ClCompile Include="..\..\src\cli\cli_dataset.cpp" />
<ClCompile Include="..\..\src\cli\cli_joiner.cpp" />
<ClCompile Include="..\..\src\cli\cli_server.cpp" />
<ClCompile Include="..\..\src\cli\cli_uart.cpp" />
<ClCompile Include="..\..\src\cli\cli_udp.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\cli\cli.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_commissioner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_dataset.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_joiner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_server.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_uart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cli\cli_udp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OPENTHREAD_ENABLE_NCP_SPI=1;
OPENTHREAD_ENABLE_NCP_UART=0;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\changed_props_set.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_ftd.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_mtd.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_radio.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_dispatcher.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_buffer.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_spi.cpp" />
<ClCompile Include="..\..\src\ncp\spinel.c" />
<ClCompile Include="..\..\src\ncp\spinel_decoder.cpp" />
<ClCompile Include="..\..\src\ncp\spinel_encoder.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\changed_props_set.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_base.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_buffer.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_spi.hpp" />
<ClInclude Include="..\..\src\ncp\spinel.h" />
<ClInclude Include="..\..\src\ncp\spinel_decoder.hpp" />
<ClInclude Include="..\..\src\ncp\spinel_encoder.hpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\changed_props_set.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_ftd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_mtd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_radio.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_dispatcher.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_buffer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel_decoder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel_encoder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_spi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\changed_props_set.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_base.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_buffer.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_spi.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel_decoder.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel_encoder.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{D94867D2-6DAE-47E2-962A-5E8E658134D1}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OPENTHREAD_ENABLE_NCP_SPI=0;
OPENTHREAD_ENABLE_NCP_UART=1;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\changed_props_set.cpp" />
<ClCompile Include="..\..\src\ncp\hdlc.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_ftd.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_mtd.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_radio.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_base_dispatcher.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_buffer.cpp" />
<ClCompile Include="..\..\src\ncp\ncp_uart.cpp" />
<ClCompile Include="..\..\src\ncp\spinel.c" />
<ClCompile Include="..\..\src\ncp\spinel_decoder.cpp" />
<ClCompile Include="..\..\src\ncp\spinel_encoder.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\changed_props_set.hpp" />
<ClInclude Include="..\..\src\ncp\hdlc.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_base.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_buffer.hpp" />
<ClInclude Include="..\..\src\ncp\ncp_uart.hpp" />
<ClInclude Include="..\..\src\ncp\spinel.h" />
<ClInclude Include="..\..\src\ncp\spinel_decoder.hpp" />
<ClInclude Include="..\..\src\ncp\spinel_encoder.hpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,81 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\changed_props_set.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\hdlc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_ftd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_mtd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_radio.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_base_dispatcher.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_buffer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\ncp_uart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel_decoder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ncp\spinel_encoder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\changed_props_set.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\hdlc.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_base.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_buffer.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\ncp_uart.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel_decoder.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\ncp\spinel_encoder.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{30723C38-BA3B-44C9-8D64-C5861A26934F}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
_CRT_SECURE_NO_WARNINGS;
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OPENTHREAD_ENABLE_NCP_SPI=1;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\examples\platforms;
..\..\src\core;
</AdditionalIncludeDirectories>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\platforms\posix\alarm.c" />
<ClCompile Include="..\..\examples\platforms\posix\entropy.c" />
<ClCompile Include="..\..\examples\platforms\posix\flash-windows-stubs.c" />
<ClCompile Include="..\..\examples\platforms\posix\logging.c" />
<ClCompile Include="..\..\examples\platforms\posix\misc.c" />
<ClCompile Include="..\..\examples\platforms\posix\radio.c" />
<ClCompile Include="..\..\examples\platforms\posix\spi-stubs.c" />
<ClCompile Include="..\..\examples\platforms\posix\system.c" />
<ClCompile Include="..\..\examples\platforms\posix\uart-windows.c" />
<ClCompile Include="..\..\examples\platforms\utils\settings_flash.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\platforms\posix\platform-posix.h" />
<ClInclude Include="..\..\examples\platforms\utils\flash.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{af2a0e04-134d-40b3-84d4-82c8c622f9ae}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\platforms\posix\alarm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\flash-windows-stubs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\logging.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\misc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\entropy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\radio.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\spi-stubs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\system.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\posix\uart-windows.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\platforms\utils\settings_flash.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\platforms\posix\platform-posix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\platforms\utils\flash.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,268 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\core\api\commissioner_api.cpp" />
<ClCompile Include="..\..\src\core\api\border_router_api.cpp" />
<ClCompile Include="..\..\src\core\api\dataset_api.cpp" />
<ClCompile Include="..\..\src\core\api\dataset_ftd_api.cpp" />
<ClCompile Include="..\..\src\core\api\icmp6_api.cpp" />
<ClCompile Include="..\..\src\core\api\ip6_api.cpp" />
<ClCompile Include="..\..\src\core\api\instance_api.cpp" />
<ClCompile Include="..\..\src\core\api\joiner_api.cpp" />
<ClCompile Include="..\..\src\core\api\link_api.cpp" />
<ClCompile Include="..\..\src\core\api\link_raw_api.cpp" />
<ClCompile Include="..\..\src\core\api\logging_api.cpp" />
<ClCompile Include="..\..\src\core\api\message_api.cpp" />
<ClCompile Include="..\..\src\core\api\netdata_api.cpp" />
<ClCompile Include="..\..\src\core\api\random_crypto_api.cpp" />
<ClCompile Include="..\..\src\core\api\random_noncrypto_api.cpp" />
<ClCompile Include="..\..\src\core\api\tasklet_api.cpp" />
<ClCompile Include="..\..\src\core\api\thread_api.cpp" />
<ClCompile Include="..\..\src\core\api\thread_ftd_api.cpp" />
<ClCompile Include="..\..\src\core\api\udp_api.cpp" />
<ClCompile Include="..\..\src\core\coap\coap.cpp" />
<ClCompile Include="..\..\src\core\coap\coap_message.cpp" />
<ClCompile Include="..\..\src\core\coap\coap_secure.cpp" />
<ClCompile Include="..\..\src\core\common\crc16.cpp" />
<ClCompile Include="..\..\src\core\common\entropy.cpp" />
<ClCompile Include="..\..\src\core\common\instance.cpp" />
<ClCompile Include="..\..\src\core\common\logging.cpp" />
<ClCompile Include="..\..\src\core\common\message.cpp" />
<ClCompile Include="..\..\src\core\common\notifier.cpp" />
<ClCompile Include="..\..\src\core\common\random_crypto.cpp" />
<ClCompile Include="..\..\src\core\common\random_manager.cpp" />
<ClCompile Include="..\..\src\core\common\random_noncrypto.cpp" />
<ClCompile Include="..\..\src\core\common\settings.cpp" />
<ClCompile Include="..\..\src\core\common\string.cpp" />
<ClCompile Include="..\..\src\core\common\tasklet.cpp" />
<ClCompile Include="..\..\src\core\common\timer.cpp" />
<ClCompile Include="..\..\src\core\common\tlvs.cpp" />
<ClCompile Include="..\..\src\core\common\trickle_timer.cpp" />
<ClCompile Include="..\..\src\core\crypto\aes_ccm.cpp" />
<ClCompile Include="..\..\src\core\crypto\aes_ecb.cpp" />
<ClCompile Include="..\..\src\core\crypto\hmac_sha256.cpp" />
<ClCompile Include="..\..\src\core\crypto\mbedtls.cpp" />
<ClCompile Include="..\..\src\core\crypto\pbkdf2_cmac.cpp" />
<ClCompile Include="..\..\src\core\crypto\sha256.cpp" />
<ClCompile Include="..\..\src\core\mac\channel_mask.cpp" />
<ClCompile Include="..\..\src\core\mac\link_raw.cpp" />
<ClCompile Include="..\..\src\core\mac\mac.cpp" />
<ClCompile Include="..\..\src\core\mac\mac_filter.cpp" />
<ClCompile Include="..\..\src\core\mac\mac_frame.cpp" />
<ClCompile Include="..\..\src\core\mac\sub_mac.cpp" />
<ClCompile Include="..\..\src\core\mac\sub_mac_callbacks.cpp" />
<ClCompile Include="..\..\src\core\meshcop\announce_begin_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\commissioner.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_local.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_manager.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_manager_ftd.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dtls.cpp" />
<ClCompile Include="..\..\src\core\meshcop\energy_scan_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\joiner.cpp" />
<ClCompile Include="..\..\src\core\meshcop\joiner_router.cpp" />
<ClCompile Include="..\..\src\core\meshcop\leader.cpp" />
<ClCompile Include="..\..\src\core\meshcop\meshcop.cpp" />
<ClCompile Include="..\..\src\core\meshcop\meshcop_tlvs.cpp" />
<ClCompile Include="..\..\src\core\meshcop\panid_query_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\timestamp.cpp" />
<ClCompile Include="..\..\src\core\net\dhcp6_client.cpp" />
<ClCompile Include="..\..\src\core\net\dhcp6_server.cpp" />
<ClCompile Include="..\..\src\core\net\icmp6.cpp" />
<ClCompile Include="..\..\src\core\net\ip6.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_address.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_filter.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_headers.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_mpl.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_routes.cpp" />
<ClCompile Include="..\..\src\core\net\netif.cpp" />
<ClCompile Include="..\..\src\core\net\udp6.cpp" />
<ClCompile Include="..\..\src\core\phy\radio_weak.cpp" />
<ClCompile Include="..\..\src\core\thread\address_resolver.cpp" />
<ClCompile Include="..\..\src\core\thread\announce_begin_server.cpp" />
<ClCompile Include="..\..\src\core\thread\announce_sender.cpp" />
<ClCompile Include="..\..\src\core\thread\child_table.cpp" />
<ClCompile Include="..\..\src\core\thread\energy_scan_server.cpp" />
<ClCompile Include="..\..\src\core\thread\data_poll_manager.cpp" />
<ClCompile Include="..\..\src\core\thread\key_manager.cpp" />
<ClCompile Include="..\..\src\core\thread\link_quality.cpp" />
<ClCompile Include="..\..\src\core\thread\lowpan.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_ftd.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_mtd.cpp" />
<ClCompile Include="..\..\src\core\thread\mle.cpp" />
<ClCompile Include="..\..\src\core\thread\mle_router.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_leader.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_leader_ftd.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_local.cpp" />
<ClCompile Include="..\..\src\core\thread\network_diagnostic.cpp" />
<ClCompile Include="..\..\src\core\thread\panid_query_server.cpp" />
<ClCompile Include="..\..\src\core\thread\router_table.cpp" />
<ClCompile Include="..\..\src\core\thread\src_match_controller.cpp" />
<ClCompile Include="..\..\src\core\thread\thread_netif.cpp" />
<ClCompile Include="..\..\src\core\thread\topology.cpp" />
<ClCompile Include="..\..\src\core\utils\child_supervision.cpp" />
<ClCompile Include="..\..\src\core\utils\parse_cmdline.cpp" />
<ClCompile Include="..\..\src\core\utils\slaac_address.cpp" />
<ClCompile Include="..\..\src\core\utils\jam_detector.cpp" />
<ClCompile Include="..\..\src\core\utils\missing_strnlen.c" />
<ClCompile Include="..\..\src\core\utils\missing_strlcat.c" />
<ClCompile Include="..\..\src\core\utils\missing_strlcpy.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\openthread\link_raw.h" />
<ClInclude Include="..\..\src\core\coap\coap.hpp" />
<ClInclude Include="..\..\src\core\coap\coap_message.hpp" />
<ClInclude Include="..\..\src\core\coap\coap_secure.hpp" />
<ClInclude Include="..\..\src\core\common\code_utils.hpp" />
<ClInclude Include="..\..\src\core\common\crc16.hpp" />
<ClInclude Include="..\..\src\core\common\context.hpp" />
<ClInclude Include="..\..\src\core\common\debug.hpp" />
<ClInclude Include="..\..\src\core\common\encoding.hpp" />
<ClInclude Include="..\..\src\core\common\entropy.hpp" />
<ClInclude Include="..\..\src\core\common\instance.hpp" />
<ClInclude Include="..\..\src\core\common\locator.hpp" />
<ClInclude Include="..\..\src\core\common\locator-getters.hpp" />
<ClInclude Include="..\..\src\core\common\logging.hpp" />
<ClInclude Include="..\..\src\core\common\message.hpp" />
<ClInclude Include="..\..\src\core\common\notifier.hpp" />
<ClInclude Include="..\..\src\core\common\new.hpp" />
<ClInclude Include="..\..\src\core\common\random.hpp" />
<ClInclude Include="..\..\src\core\common\string.hpp" />
<ClInclude Include="..\..\src\core\common\tasklet.hpp" />
<ClInclude Include="..\..\src\core\common\timer.hpp" />
<ClInclude Include="..\..\src\core\common\tlvs.hpp" />
<ClInclude Include="..\..\src\core\common\trickle_timer.hpp" />
<ClInclude Include="..\..\src\core\crypto\aes_ccm.hpp" />
<ClInclude Include="..\..\src\core\crypto\aes_ecb.hpp" />
<ClInclude Include="..\..\src\core\crypto\hmac_sha256.hpp" />
<ClInclude Include="..\..\src\core\crypto\mbedtls.hpp" />
<ClInclude Include="..\..\src\core\crypto\pbkdf2_cmac.h" />
<ClInclude Include="..\..\src\core\crypto\sha256.hpp" />
<ClInclude Include="..\..\src\core\mac\channel_mask.hpp" />
<ClInclude Include="..\..\src\core\mac\mac.hpp" />
<ClInclude Include="..\..\src\core\mac\mac_filter.hpp" />
<ClInclude Include="..\..\src\core\mac\mac_frame.hpp" />
<ClInclude Include="..\..\src\core\mac\sub_mac.hpp" />
<ClInclude Include="..\..\src\core\meshcop\announce_begin_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\commissioner.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset_local.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset_manager.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dtls.hpp" />
<ClInclude Include="..\..\src\core\meshcop\energy_scan_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\joiner.hpp" />
<ClInclude Include="..\..\src\core\meshcop\joiner_router.hpp" />
<ClInclude Include="..\..\src\core\meshcop\leader.hpp" />
<ClInclude Include="..\..\src\core\meshcop\meshcop.hpp" />
<ClInclude Include="..\..\src\core\meshcop\meshcop_tlvs.hpp" />
<ClInclude Include="..\..\src\core\meshcop\panid_query_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\timestamp.hpp" />
<ClInclude Include="..\..\src\core\net\icmp6.hpp" />
<ClInclude Include="..\..\src\core\net\ip6.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_address.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_filter.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_mpl.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_routes.hpp" />
<ClInclude Include="..\..\src\core\net\netif.hpp" />
<ClInclude Include="..\..\src\core\net\socket.hpp" />
<ClInclude Include="..\..\src\core\net\udp6.hpp" />
<ClInclude Include="..\..\src\core\net\phy.hpp" />
<ClInclude Include="..\..\src\core\thread\address_resolver.hpp" />
<ClInclude Include="..\..\src\core\thread\announce_begin_server.hpp" />
<ClInclude Include="..\..\src\core\thread\announce_sender.hpp" />
<ClInclude Include="..\..\src\core\thread\energy_scan_server.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6_client.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6_server.hpp" />
<ClInclude Include="..\..\src\core\thread\child_table.hpp" />
<ClInclude Include="..\..\src\core\thread\data_poll_manager.hpp" />
<ClInclude Include="..\..\src\core\thread\key_manager.hpp" />
<ClInclude Include="..\..\src\core\thread\link_quality.hpp" />
<ClInclude Include="..\..\src\core\thread\lowpan.hpp" />
<ClInclude Include="..\..\src\core\thread\mesh_forwarder.hpp" />
<ClInclude Include="..\..\src\core\thread\mle.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_constants.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_router.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_leader.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_local.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\network_diagnostic.hpp" />
<ClInclude Include="..\..\src\core\thread\network_diagnostic_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\panid_query_server.hpp" />
<ClInclude Include="..\..\src\core\thread\router_table.hpp" />
<ClInclude Include="..\..\src\core\thread\src_match_controller.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_netif.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_uri_paths.hpp" />
<ClInclude Include="..\..\src\core\thread\topology.hpp" />
<ClInclude Include="..\..\src\core\utils\child_supervision.hpp" />
<ClInclude Include="..\..\src\core\utils\parse_cmdline.hpp" />
<ClInclude Include="..\..\src\core\utils\slaac_address.hpp" />
<ClInclude Include="..\..\src\core\utils\jam_detector.hpp" />
<ClInclude Include="..\..\src\core\utils\wrap_string.h" />
<ClInclude Include="..\..\src\core\utils\wrap_stdbool.h" />
<ClInclude Include="..\..\src\core\utils\wrap_stdint.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,654 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{c09c2d1c-85fb-4081-8235-925b45ed3c4b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\api">
<UniqueIdentifier>{CE77AA98-FC98-4FC6-BB52-8A886378AB5E}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\common">
<UniqueIdentifier>{a59636b8-d046-46b7-992b-76572ca72bd1}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\coap">
<UniqueIdentifier>{7c989f53-480b-42d4-a2dc-454adafda818}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\crypto">
<UniqueIdentifier>{444ab8c6-6b83-4a5b-9059-67f469da1331}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\mac">
<UniqueIdentifier>{a49a9cc3-6a37-48a6-8049-b10c9cecd193}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\meshcop">
<UniqueIdentifier>{0e7f4f58-a115-4ce8-8e3b-1094fb79af52}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\net">
<UniqueIdentifier>{9a61353a-8613-4496-9ee8-c3d2800c5ac6}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\thread">
<UniqueIdentifier>{c14a7a3f-089f-47ee-80db-1caf1b47ab6b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\utils">
<UniqueIdentifier>{A0D2E990-DC5E-4B56-A552-888F97214A17}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\missing">
<UniqueIdentifier>{F0DDA90-D13F-4B56-A552-328F97124A81}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{b4905c15-9702-4ff0-8d57-e7926337d50f}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\coap">
<UniqueIdentifier>{c2f72132-0df1-4dba-b24f-0ab683874538}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\common">
<UniqueIdentifier>{92f20ce7-8f87-4a1c-bc0b-d7fa3dfd3b60}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\crypto">
<UniqueIdentifier>{c618ddc9-5c66-485f-a0ff-ebabb3508568}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\mac">
<UniqueIdentifier>{90294598-e94b-4c07-a531-93335a8955d9}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\net">
<UniqueIdentifier>{0c76d116-0b4d-4fec-a0d8-5ca127913124}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\thread">
<UniqueIdentifier>{702145f9-0e66-4e45-b3d4-d43f2cf17e10}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\meshcop">
<UniqueIdentifier>{635aaabf-80f0-40e2-9218-22ff75bc0e32}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\utils">
<UniqueIdentifier>{5ac96cb9-6257-4387-9238-27649915463a}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\api">
<UniqueIdentifier>{25a5662d-0709-4698-8fd9-3abfde8f0fc6}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\missing">
<UniqueIdentifier>{971969f2-f6ec-50b4-806a-97965c934cef}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\core\api\commissioner_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\border_router_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\dataset_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\dataset_ftd_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\icmp6_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\ip6_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\instance_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\joiner_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\link_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\link_raw_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\logging_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\message_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\netdata_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\tasklet_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\thread_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\thread_ftd_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\udp_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap_message.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap_secure.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\instance.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\logging.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\message.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\notifier.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\settings.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\string.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\tasklet.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\timer.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\tlvs.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\trickle_timer.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\aes_ccm.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\channel_mask.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\link_raw.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac_filter.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac_frame.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\sub_mac.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\sub_mac_callbacks.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\dhcp6_client.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\dhcp6_server.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\icmp6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_address.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_filter.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_headers.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_mpl.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_routes.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\netif.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\phy\radio_weak.cpp">
<Filter>Source Files\phy</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\address_resolver.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\child_table.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\data_poll_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\energy_scan_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\key_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\link_quality.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\lowpan.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_mtd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mle.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mle_router.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_leader.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_leader_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_local.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\panid_query_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\router_table.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\src_match_controller.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\thread_netif.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\topology.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\udp6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\commissioner.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_local.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_manager_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dtls.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\energy_scan_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\joiner.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\joiner_router.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\leader.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\panid_query_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\timestamp.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\meshcop_tlvs.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\aes_ecb.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\hmac_sha256.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\mbedtls.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\pbkdf2_cmac.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\sha256.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\child_supervision.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\parse_cmdline.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\slaac_address.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\jam_detector.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\wrap_strnlen.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\wrap_strlcpy.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\wrap_strlcat.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\announce_begin_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\announce_begin_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\announce_sender.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\crc16.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_diagnostic.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\core\coap\coap.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\coap\coap_message.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\coap\coap_secure.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\code_utils.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\context.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\debug.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\encoding.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\instance.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\locator.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\locator-getters.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\logging.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\message.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\notifier.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\new.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\string.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\tasklet.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\timer.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\tlvs.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\trickle_timer.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\aes_ccm.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\channel_mask.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac_filter.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac_frame.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\sub_mac.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6_client.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6_server.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\icmp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_address.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_filter.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_mpl.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_routes.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\netif.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\socket.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\udp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\phy\phy.hpp">
<Filter>Header Files\phy</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\address_resolver.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\announce_begin_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\announce_sender.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\child_table.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\data_poll_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\energy_scan_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\key_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\link_quality.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\lowpan.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mesh_forwarder.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_constants.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_router.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_leader.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_local.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\panid_query_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\router_table.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\src_match_controller.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_netif.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_uri_paths.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\topology.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\announce_begin_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\commissioner.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset_local.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dtls.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\energy_scan_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\joiner.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\joiner_router.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\leader.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\panid_query_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\timestamp.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\aes_ecb.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\hmac_sha256.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\mbedtls.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\pbkdf2_cmac.h">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\sha256.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\child_supervision.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\parse_cmdline.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\slaac_address.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\jam_detector.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrap_string.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrap_stdbool.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrap_stdint.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\crc16.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\link_raw.h">
<Filter>Header Files\api</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_diagnostic.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_diagnostic_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,299 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{9B33C190-5D07-40BF-9536-68843DC5D7AF}</ProjectGuid>
<TemplateGuid>{8c0e3d8b-df43-455b-815a-4a0e72973bc6}</TemplateGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<Configuration>Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
<RootNamespace>ot</RootNamespace>
<DriverType>KMDF</DriverType>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup Label="PropertySheets">
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_PROJECT_CORE_CONFIG_FILE="openthread-core-windows-config.h";
WINDOWS_LOGGING;
OPENTHREAD_FTD=1;
HAVE_STDBOOL_H=1;
HAVE_STDINT_H=1;
OT_STRING_WINDOWS_WORKAROUND=1;
OTBUILD;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\examples\drivers\windows\include;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
..\..\examples\drivers\windows\include_c99;
</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4100;4706;4748;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatWarningAsError>true</TreatWarningAsError>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppAdditionalOptions>-km %(WppAdditionalOptions)</WppAdditionalOptions>
<WppModuleName>otCore</WppModuleName>
<WppSearchString>WPP_INIT_TRACING</WppSearchString>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\core\api\commissioner_api.cpp" />
<ClCompile Include="..\..\src\core\api\border_router_api.cpp" />
<ClCompile Include="..\..\src\core\api\dataset_api.cpp" />
<ClCompile Include="..\..\src\core\api\dataset_ftd_api.cpp" />
<ClCompile Include="..\..\src\core\api\icmp6_api.cpp" />
<ClCompile Include="..\..\src\core\api\ip6_api.cpp" />
<ClCompile Include="..\..\src\core\api\instance_api.cpp" />
<ClCompile Include="..\..\src\core\api\joiner_api.cpp" />
<ClCompile Include="..\..\src\core\api\link_api.cpp" />
<ClCompile Include="..\..\src\core\api\message_api.cpp" />
<ClCompile Include="..\..\src\core\api\netdata_api.cpp" />
<ClCompile Include="..\..\src\core\api\random_crypto_api.cpp" />
<ClCompile Include="..\..\src\core\api\random_noncrypto_api.cpp" />
<ClCompile Include="..\..\src\core\api\tasklet_api.cpp" />
<ClCompile Include="..\..\src\core\api\thread_api.cpp" />
<ClCompile Include="..\..\src\core\api\thread_ftd_api.cpp" />
<ClCompile Include="..\..\src\core\api\udp_api.cpp" />
<ClCompile Include="..\..\src\core\coap\coap.cpp" />
<ClCompile Include="..\..\src\core\coap\coap_message.cpp" />
<ClCompile Include="..\..\src\core\coap\coap_secure.cpp" />
<ClCompile Include="..\..\src\core\common\entropy.cpp" />
<ClCompile Include="..\..\src\core\common\crc16.cpp" />
<ClCompile Include="..\..\src\core\common\instance.cpp" />
<ClCompile Include="..\..\src\core\common\logging.cpp" />
<ClCompile Include="..\..\src\core\common\message.cpp" />
<ClCompile Include="..\..\src\core\common\notifier.cpp" />
<ClCompile Include="..\..\src\core\common\random_crypto.cpp" />
<ClCompile Include="..\..\src\core\common\random_manager.cpp" />
<ClCompile Include="..\..\src\core\common\random_noncrypto.cpp" />
<ClCompile Include="..\..\src\core\common\settings.cpp" />
<ClCompile Include="..\..\src\core\common\string.cpp" />
<ClCompile Include="..\..\src\core\common\tasklet.cpp" />
<ClCompile Include="..\..\src\core\common\timer.cpp" />
<ClCompile Include="..\..\src\core\common\tlvs.cpp" />
<ClCompile Include="..\..\src\core\common\trickle_timer.cpp" />
<ClCompile Include="..\..\src\core\crypto\aes_ccm.cpp" />
<ClCompile Include="..\..\src\core\crypto\aes_ecb.cpp" />
<ClCompile Include="..\..\src\core\crypto\hmac_sha256.cpp" />
<ClCompile Include="..\..\src\core\crypto\mbedtls.cpp" />
<ClCompile Include="..\..\src\core\crypto\pbkdf2_cmac.cpp" />
<ClCompile Include="..\..\src\core\crypto\sha256.cpp" />
<ClCompile Include="..\..\src\core\mac\channel_mask.cpp" />
<ClCompile Include="..\..\src\core\mac\mac.cpp" />
<ClCompile Include="..\..\src\core\mac\mac_filter.cpp" />
<ClCompile Include="..\..\src\core\mac\mac_frame.cpp" />
<ClCompile Include="..\..\src\core\mac\sub_mac.cpp" />
<ClCompile Include="..\..\src\core\mac\sub_mac_callbacks.cpp" />
<ClCompile Include="..\..\src\core\meshcop\commissioner.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_local.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_manager.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dataset_manager_ftd.cpp" />
<ClCompile Include="..\..\src\core\meshcop\dtls.cpp" />
<ClCompile Include="..\..\src\core\meshcop\announce_begin_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\energy_scan_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\joiner.cpp" />
<ClCompile Include="..\..\src\core\meshcop\joiner_router.cpp" />
<ClCompile Include="..\..\src\core\meshcop\leader.cpp" />
<ClCompile Include="..\..\src\core\meshcop\meshcop.cpp" />
<ClCompile Include="..\..\src\core\meshcop\meshcop_tlvs.cpp" />
<ClCompile Include="..\..\src\core\meshcop\panid_query_client.cpp" />
<ClCompile Include="..\..\src\core\meshcop\timestamp.cpp" />
<ClCompile Include="..\..\src\core\net\dhcp6_client.cpp" />
<ClCompile Include="..\..\src\core\net\dhcp6_server.cpp" />
<ClCompile Include="..\..\src\core\net\icmp6.cpp" />
<ClCompile Include="..\..\src\core\net\ip6.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_address.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_filter.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_headers.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_mpl.cpp" />
<ClCompile Include="..\..\src\core\net\ip6_routes.cpp" />
<ClCompile Include="..\..\src\core\net\netif.cpp" />
<ClCompile Include="..\..\src\core\net\udp6.cpp" />
<ClCompile Include="..\..\src\core\phy\radio_weak.cpp" />
<ClCompile Include="..\..\src\core\thread\address_resolver.cpp" />
<ClCompile Include="..\..\src\core\thread\announce_begin_server.cpp" />
<ClCompile Include="..\..\src\core\thread\announce_sender.cpp" />
<ClCompile Include="..\..\src\core\thread\child_table.cpp" />
<ClCompile Include="..\..\src\core\thread\data_poll_manager.cpp" />
<ClCompile Include="..\..\src\core\thread\energy_scan_server.cpp" />
<ClCompile Include="..\..\src\core\thread\key_manager.cpp" />
<ClCompile Include="..\..\src\core\thread\link_quality.cpp" />
<ClCompile Include="..\..\src\core\thread\lowpan.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_ftd.cpp" />
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_mtd.cpp" />
<ClCompile Include="..\..\src\core\thread\mle.cpp" />
<ClCompile Include="..\..\src\core\thread\mle_router.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_leader.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_leader_ftd.cpp" />
<ClCompile Include="..\..\src\core\thread\network_data_local.cpp" />
<ClCompile Include="..\..\src\core\thread\network_diagnostic.cpp" />
<ClCompile Include="..\..\src\core\thread\panid_query_server.cpp" />
<ClCompile Include="..\..\src\core\thread\router_table.cpp" />
<ClCompile Include="..\..\src\core\thread\src_match_controller.cpp" />
<ClCompile Include="..\..\src\core\thread\thread_netif.cpp" />
<ClCompile Include="..\..\src\core\thread\topology.cpp" />
<ClCompile Include="..\..\src\core\utils\child_supervision.cpp" />
<ClCompile Include="..\..\src\core\utils\parse_cmdline.cpp" />
<ClCompile Include="..\..\src\core\utils\slaac_address.cpp" />
<ClCompile Include="..\..\src\core\utils\jam_detector.cpp" />
<ClCompile Include="..\..\src\core\utils\missing_strlcat.c" />
<ClCompile Include="..\..\src\core\utils\missing_strlcpy.c" />
<ClCompile Include="..\..\src\core\utils\missing_strnlen.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\include\openthread-core-windows-config.h" />
<ClInclude Include="..\..\include\openthread\coap.h" />
<ClInclude Include="..\..\include\openthread\commissioner.h" />
<ClInclude Include="..\..\include\openthread\crypto.h" />
<ClInclude Include="..\..\include\openthread\border_router.h" />
<ClInclude Include="..\..\include\openthread\dataset.h" />
<ClInclude Include="..\..\include\openthread\dataset_ftd.h" />
<ClInclude Include="..\..\include\openthread\error.h" />
<ClInclude Include="..\..\include\openthread\icmp6.h" />
<ClInclude Include="..\..\include\openthread\instance.h" />
<ClInclude Include="..\..\include\openthread\ip6.h" />
<ClInclude Include="..\..\include\openthread\jam_detection.h" />
<ClInclude Include="..\..\include\openthread\joiner.h" />
<ClInclude Include="..\..\include\openthread\link.h" />
<ClInclude Include="..\..\include\openthread\message.h" />
<ClInclude Include="..\..\include\openthread\netdata.h" />
<ClInclude Include="..\..\include\openthread\tasklet.h" />
<ClInclude Include="..\..\include\openthread\thread.h" />
<ClInclude Include="..\..\include\openthread\thread_ftd.h" />
<ClInclude Include="..\..\include\openthread-windows-config.h" />
<ClInclude Include="..\..\include\openthread\udp.h" />
<ClInclude Include="..\..\src\core\coap\coap.hpp" />
<ClInclude Include="..\..\src\core\coap\coap_message.hpp" />
<ClInclude Include="..\..\src\core\coap\coap_secure.hpp" />
<ClInclude Include="..\..\src\core\common\code_utils.hpp" />
<ClInclude Include="..\..\src\core\common\context.hpp" />
<ClInclude Include="..\..\src\core\common\crc16.hpp" />
<ClInclude Include="..\..\src\core\common\debug.hpp" />
<ClInclude Include="..\..\src\core\common\entropy.hpp" />
<ClInclude Include="..\..\src\core\common\encoding.hpp" />
<ClInclude Include="..\..\src\core\common\instance.hpp" />
<ClInclude Include="..\..\src\core\common\locator.hpp" />
<ClInclude Include="..\..\src\core\common\locator-getters.hpp" />
<ClInclude Include="..\..\src\core\common\logging.hpp" />
<ClInclude Include="..\..\src\core\common\message.hpp" />
<ClInclude Include="..\..\src\core\common\notifier.hpp" />
<ClInclude Include="..\..\src\core\common\new.hpp" />
<ClInclude Include="..\..\src\core\common\random.hpp" />
<ClInclude Include="..\..\src\core\common\random_manager.hpp" />
<ClInclude Include="..\..\src\core\common\string.hpp" />
<ClInclude Include="..\..\src\core\common\tasklet.hpp" />
<ClInclude Include="..\..\src\core\common\timer.hpp" />
<ClInclude Include="..\..\src\core\common\tlvs.hpp" />
<ClInclude Include="..\..\src\core\common\trickle_timer.hpp" />
<ClInclude Include="..\..\src\core\crypto\aes_ccm.hpp" />
<ClInclude Include="..\..\src\core\crypto\aes_ecb.hpp" />
<ClInclude Include="..\..\src\core\crypto\hmac_sha256.hpp" />
<ClInclude Include="..\..\src\core\crypto\mbedtls.hpp" />
<ClInclude Include="..\..\src\core\crypto\pbkdf2_cmac.h" />
<ClInclude Include="..\..\src\core\crypto\sha256.hpp" />
<ClInclude Include="..\..\src\core\mac\link_raw.hpp" />
<ClInclude Include="..\..\src\core\mac\channel_mask.hpp" />
<ClInclude Include="..\..\src\core\mac\mac.hpp" />
<ClInclude Include="..\..\src\core\mac\mac_filter.hpp" />
<ClInclude Include="..\..\src\core\mac\mac_frame.hpp" />
<ClInclude Include="..\..\src\core\mac\sub_mac.hpp" />
<ClInclude Include="..\..\src\core\meshcop\announce_begin_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\commissioner.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset_local.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dataset_manager.hpp" />
<ClInclude Include="..\..\src\core\meshcop\dtls.hpp" />
<ClInclude Include="..\..\src\core\meshcop\energy_scan_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\joiner.hpp" />
<ClInclude Include="..\..\src\core\meshcop\joiner_router.hpp" />
<ClInclude Include="..\..\src\core\meshcop\leader.hpp" />
<ClInclude Include="..\..\src\core\meshcop\meshcop.hpp" />
<ClInclude Include="..\..\src\core\meshcop\meshcop_tlvs.hpp" />
<ClInclude Include="..\..\src\core\meshcop\panid_query_client.hpp" />
<ClInclude Include="..\..\src\core\meshcop\timestamp.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6_client.hpp" />
<ClInclude Include="..\..\src\core\net\dhcp6_server.hpp" />
<ClInclude Include="..\..\src\core\net\icmp6.hpp" />
<ClInclude Include="..\..\src\core\net\ip6.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_address.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_filter.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_mpl.hpp" />
<ClInclude Include="..\..\src\core\net\ip6_routes.hpp" />
<ClInclude Include="..\..\src\core\net\netif.hpp" />
<ClInclude Include="..\..\src\core\net\socket.hpp" />
<ClInclude Include="..\..\src\core\net\udp6.hpp" />
<ClInclude Include="..\..\src\core\phy\phy.hpp" />
<ClInclude Include="..\..\src\core\openthread-core-config.h" />
<ClInclude Include="..\..\src\core\openthread-core-default-config.h" />
<ClInclude Include="..\..\src\core\thread\address_resolver.hpp" />
<ClInclude Include="..\..\src\core\meshcop\announce_begin_server.hpp" />
<ClInclude Include="..\..\src\core\meshcop\announce_sender.hpp" />
<ClInclude Include="..\..\src\core\thread\child_table.hpp" />
<ClInclude Include="..\..\src\core\thread\data_poll_manager.hpp" />
<ClInclude Include="..\..\src\core\thread\energy_scan_server.hpp" />
<ClInclude Include="..\..\src\core\thread\key_manager.hpp" />
<ClInclude Include="..\..\src\core\thread\link_quality.hpp" />
<ClInclude Include="..\..\src\core\thread\lowpan.hpp" />
<ClInclude Include="..\..\src\core\thread\mesh_forwarder.hpp" />
<ClInclude Include="..\..\src\core\thread\mle.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_constants.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_router.hpp" />
<ClInclude Include="..\..\src\core\thread\mle_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_leader.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_local.hpp" />
<ClInclude Include="..\..\src\core\thread\network_data_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\network_diagnostic.hpp" />
<ClInclude Include="..\..\src\core\thread\network_diagnostic_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\panid_query_server.hpp" />
<ClInclude Include="..\..\src\core\thread\router_table.hpp" />
<ClInclude Include="..\..\src\core\thread\src_match_controller.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_netif.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_tlvs.hpp" />
<ClInclude Include="..\..\src\core\thread\thread_uri_paths.hpp" />
<ClInclude Include="..\..\src\core\thread\topology.hpp" />
<ClInclude Include="..\..\src\core\utils\child_supervision.hpp" />
<ClInclude Include="..\..\src\core\utils\parse_cmdline.hpp" />
<ClInclude Include="..\..\src\core\utils\slaac_address.hpp" />
<ClInclude Include="..\..\src\core\utils\jam_detector.hpp" />
<ClInclude Include="..\..\src\core\utils\wrap_string.h" />
<ClInclude Include="..\..\src\core\utils\wrap_stdbool.h" />
<ClInclude Include="..\..\src\core\utils\wrap_stdint.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,714 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{c09c2d1c-85fb-4081-8235-925b45ed3c4b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\api">
<UniqueIdentifier>{B78747A9-11C2-4784-B825-D48FD388FE2F}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\common">
<UniqueIdentifier>{a59636b8-d046-46b7-992b-76572ca72bd1}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\coap">
<UniqueIdentifier>{7c989f53-480b-42d4-a2dc-454adafda818}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\crypto">
<UniqueIdentifier>{444ab8c6-6b83-4a5b-9059-67f469da1331}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\mac">
<UniqueIdentifier>{a49a9cc3-6a37-48a6-8049-b10c9cecd193}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\meshcop">
<UniqueIdentifier>{50a39acc-fab6-4e2a-85b7-d764be5299f5}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\net">
<UniqueIdentifier>{9a61353a-8613-4496-9ee8-c3d2800c5ac6}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\thread">
<UniqueIdentifier>{c14a7a3f-089f-47ee-80db-1caf1b47ab6b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\utils">
<UniqueIdentifier>{A0D2E990-DC5E-4B56-A552-888F97214A17}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\missing">
<UniqueIdentifier>{F0DDA90-D13F-4B56-A552-328F97124A81}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{b4905c15-9702-4ff0-8d57-e7926337d50f}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\coap">
<UniqueIdentifier>{c2f72132-0df1-4dba-b24f-0ab683874538}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\common">
<UniqueIdentifier>{92f20ce7-8f87-4a1c-bc0b-d7fa3dfd3b60}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\crypto">
<UniqueIdentifier>{c618ddc9-5c66-485f-a0ff-ebabb3508568}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\mac">
<UniqueIdentifier>{90294598-e94b-4c07-a531-93335a8955d9}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\meshcop">
<UniqueIdentifier>{8f54e8b3-d8fb-4fed-88ce-42b39f171d0b}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\net">
<UniqueIdentifier>{0c76d116-0b4d-4fec-a0d8-5ca127913124}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\thread">
<UniqueIdentifier>{702145f9-0e66-4e45-b3d4-d43f2cf17e10}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\utils">
<UniqueIdentifier>{5ac96cb9-6257-4387-9238-27649915463a}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\api">
<UniqueIdentifier>{63a27d20-b039-46b4-aff9-63ace2010b9b}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\openthread">
<UniqueIdentifier>{2b66635d-fb09-421b-9942-8c43df5c8c77}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\missing">
<UniqueIdentifier>{971969f2-f6ec-50b4-806a-97965c934cef}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\core\api\commissioner_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\border_router_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\dataset_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\dataset_ftd_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\icmp6_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\ip6_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\instance_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\joiner_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\link_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\message_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\netdata_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\tasklet_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\thread_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\thread_ftd_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\api\udp_api.cpp">
<Filter>Source Files\api</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap_message.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\coap\coap_secure.cpp">
<Filter>Source Files\coap</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\instance.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\logging.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\message.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\notifier.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\settings.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\string.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\tasklet.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\timer.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\tlvs.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\trickle_timer.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\aes_ccm.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\channel_mask.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac_filter.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\mac_frame.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\sub_mac.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\mac\sub_mac_callbacks.cpp">
<Filter>Source Files\mac</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\dhcp6_client.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\dhcp6_server.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\icmp6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_address.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_filter.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_headers.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_mpl.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\ip6_routes.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\netif.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\phy\radio_weak.cpp">
<Filter>Source Files\phy</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\address_resolver.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\child_table.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\data_poll_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\energy_scan_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\key_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\link_quality.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\lowpan.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mesh_forwarder_mtd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mle.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\mle_router.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_leader.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_leader_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_data_local.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\network_diagnostic.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\panid_query_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\router_table.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\src_match_controller.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\thread_netif.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\topology.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\net\udp6.cpp">
<Filter>Source Files\net</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\commissioner.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_local.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_manager.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dataset_manager_ftd.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\dtls.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\energy_scan_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\joiner.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\joiner_router.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\leader.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\panid_query_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\timestamp.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\meshcop_tlvs.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\aes_ecb.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\hmac_sha256.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\pbkdf2_cmac.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\crypto\sha256.cpp">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\child_supervision.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\parse_cmdline.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\slaac_address.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\jam_detector.cpp">
<Filter>Source Files\utils</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\announce_begin_server.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\thread\announce_sender.cpp">
<Filter>Source Files\thread</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\meshcop\announce_begin_client.cpp">
<Filter>Source Files\meshcop</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\common\crc16.cpp">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\missing_strlcpy.c">
<Filter>Source Files\missing</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\missing_strlcat.c">
<Filter>Source Files\missing</Filter>
</ClCompile>
<ClCompile Include="..\..\src\core\utils\missing_strnlen.c">
<Filter>Source Files\missing</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\core\openthread-core-config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\coap\coap.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\coap\coap_message.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\coap\coap_secure.hpp">
<Filter>Header Files\coap</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\code_utils.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\context.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\debug.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\encoding.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\instance.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\locator.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\locator-getters.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\logging.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\message.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\notifier.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\new.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\string.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\tasklet.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\timer.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\tlvs.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\trickle_timer.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\aes_ccm.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\channel_mask.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac_filter.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\mac_frame.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\sub_mac.hpp">
<Filter>Header Files\mac</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6_client.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\dhcp6_server.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\icmp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_address.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_filter.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_mpl.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\ip6_routes.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\netif.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\socket.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\net\udp6.hpp">
<Filter>Header Files\net</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\phy\phy.hpp">
<Filter>Header Files\phy</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\address_resolver.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\child_table.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\data_poll_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\energy_scan_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\key_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\link_quality.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\lowpan.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mesh_forwarder.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_constants.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_router.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\mle_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_leader.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_local.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_data_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_diagnostic.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\network_diagnostic_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\panid_query_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\router_table.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\src_match_controller.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_netif.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\thread_uri_paths.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\thread\topology.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\commissioner.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset_local.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dataset_manager.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\dtls.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\energy_scan_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\joiner.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\joiner_router.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\leader.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\panid_query_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\timestamp.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\tlvs.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\aes_ecb.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\hmac_sha256.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\mbedtls.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\pbkdf2_cmac.h">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\crypto\sha256.hpp">
<Filter>Header Files\crypto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\child_supervision.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\parse_cmdline.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\slaac_address.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\jam_detector.hpp">
<Filter>Header Files\utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\announce_begin_server.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\announce_sender.hpp">
<Filter>Header Files\thread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\meshcop\announce_begin_client.hpp">
<Filter>Header Files\meshcop</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\common\crc16.hpp">
<Filter>Header Files\common</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread-windows-config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\openthread-core-default-config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\include\openthread-core-windows-config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\coap.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\commissioner.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\crypto.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\border_router.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\dataset.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\dataset_ftd.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\error.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\icmp6.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\instance.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\ip6.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\jam_detection.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\joiner.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\link.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\message.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\netdata.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\tasklet.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\thread.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\thread_ftd.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\include\openthread\udp.h">
<Filter>Header Files\openthread</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\mac\link_raw.hpp">
<Filter>Header Files\api</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrapper_string.h">
<Filter>Header Files\missing</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrapper_stdbool.h">
<Filter>Header Files\missing</Filter>
</ClInclude>
<ClInclude Include="..\..\src\core\utils\wrapper_stdint.h">
<Filter>Header Files\missing</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,86 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{4111C8BB-D354-4348-AD3C-EB6832E84831}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>mbedtls</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
;%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
..\..\include;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
..\..\third_party\mbedtls\repo\include\mbedtls
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\aes.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\bignum.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ccm.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher_wrap.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cmac.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ctr_drbg.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\debug.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecjpake.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp_curves.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy_poll.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md_wrap.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\memory_buffer_alloc.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform_util.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\sha256.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ciphersuites.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cli.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cookie.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_srv.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ticket.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_tls.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Source Files\repo">
<UniqueIdentifier>{0a2ce77e-dccf-408c-aea0-7a781284a936}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\repo\library">
<UniqueIdentifier>{859819dc-e84e-4854-ad32-2819d60da38b}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\aes.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\bignum.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ccm.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher_wrap.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cmac.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ctr_drbg.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\debug.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecjpake.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp_curves.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy_poll.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md_wrap.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\memory_buffer_alloc.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform_util.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\sha256.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ciphersuites.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cli.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cookie.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_srv.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ticket.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_tls.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{69BE8E8C-CF1E-46D6-932B-DB435F47059B}</ProjectGuid>
<TemplateGuid>{8c0e3d8b-df43-455b-815a-4a0e72973bc6}</TemplateGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<Configuration>Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
<RootNamespace>ot</RootNamespace>
<DriverType>KMDF</DriverType>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup Label="PropertySheets">
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
..\..\include;
..\..\src\core;
..\..\third_party\mbedtls;
..\..\third_party\mbedtls\repo\include;
..\..\third_party\mbedtls\repo\include\mbedtls;
..\..\examples\drivers\windows\include_c99;
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
MBEDTLS_CONFIG_FILE="mbedtls-config.h";
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
HAVE_STDBOOL_H=1;
HAVE_STDINT_H=1;
</PreprocessorDefinitions>
<DisableSpecificWarnings>4132;4242;4245;4603;4627;4986;4987;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\aes.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\bignum.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ccm.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher_wrap.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cmac.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ctr_drbg.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\debug.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecjpake.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp_curves.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy_poll.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md_wrap.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\memory_buffer_alloc.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform_util.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\sha256.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ciphersuites.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cli.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cookie.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_srv.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ticket.c" />
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_tls.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Source Files\repo">
<UniqueIdentifier>{0a2ce77e-dccf-408c-aea0-7a781284a936}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\repo\library">
<UniqueIdentifier>{87ec68b3-5bec-4c60-b764-c2daf3ffcfb2}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\aes.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\bignum.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ccm.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cipher_wrap.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\cmac.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ctr_drbg.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\debug.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecjpake.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ecp_curves.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\entropy_poll.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\md_wrap.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\memory_buffer_alloc.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\platform_util.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\sha256.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ciphersuites.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cli.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_cookie.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_srv.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_ticket.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\mbedtls\repo\library\ssl_tls.c">
<Filter>Source Files\repo\library</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
</Project>

View File

@ -1,383 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config files", "config files", "{53F4EEF6-B96D-4887-B9CF-CD21E8BECD15}"
ProjectSection(SolutionItems) = preProject
..\..\.appveyor.yml = ..\..\.appveyor.yml
..\..\.codecov.yml = ..\..\.codecov.yml
..\..\.travis.yml = ..\..\.travis.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{76EA541E-CAB1-4DB5-A39F-E3DB2A78CDDD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{95BD0669-04C8-4EEB-B3CC-0535B03F4468}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{35F6AB71-5BD2-4D53-8A51-D75CCD4CCC3D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "third_party", "third_party", "{873E9D16-2A08-41FC-B301-79C95B3A8F98}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread", "libopenthread.vcxproj", "{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread_k", "libopenthread_k.vcxproj", "{9B33C190-5D07-40BF-9536-68843DC5D7AF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedtls", "mbedtls.vcxproj", "{4111C8BB-D354-4348-AD3C-EB6832E84831}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedtls_k", "mbedtls_k.vcxproj", "{69BE8E8C-CF1E-46D6-932B-DB435F47059B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "UnitTests.vcxproj", "{FD64BF17-8D36-4578-8D13-77B123BE30D3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread-windows", "libopenthread-windows.vcxproj", "{30723C38-BA3B-44C9-8D64-C5861A26934F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread-cli", "libopenthread-cli.vcxproj", "{41B32069-632E-4578-855B-A36EBFA80B56}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ot-cli", "ot-cli.vcxproj", "{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread-ncp-spi", "libopenthread-ncp-spi.vcxproj", "{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread-ncp-uart", "libopenthread-ncp-uart.vcxproj", "{D94867D2-6DAE-47E2-962A-5E8E658134D1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ot-ncp-spi", "ot-ncp-spi.vcxproj", "{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ot-ncp-uart", "ot-ncp-uart.vcxproj", "{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "drivers", "drivers", "{61E8A4A0-8138-49DB-97B4-3BEC87C8E133}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otLwf", "otLwf.vcxproj", "{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otApi", "otApi.vcxproj", "{ED0EA262-C222-42C7-98D3-E70C72978ED2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenthread-cli-windows", "libopenthread-cli-windows.vcxproj", "{28834498-3837-44A5-8F67-249ABAB7B97D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otCli", "otCli.vcxproj", "{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otNodeApi", "otNodeApi.vcxproj", "{B7C6F344-7287-4930-AF38-223622BD8CBB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "otTestRunner", "otTestRunner.csproj", "{D5577E51-FA31-4802-8669-1DB32805935E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spinel_k", "spinel_k.vcxproj", "{A55766B5-58B6-4519-835E-5A4B7C164B5A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ottmp", "ottmp.vcxproj", "{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|ARM.ActiveCfg = Debug|ARM
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|ARM.Build.0 = Debug|ARM
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|x64.ActiveCfg = Debug|x64
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|x64.Build.0 = Debug|x64
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|x86.ActiveCfg = Debug|Win32
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Debug|x86.Build.0 = Debug|Win32
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|ARM.ActiveCfg = Release|ARM
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|ARM.Build.0 = Release|ARM
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|x64.ActiveCfg = Release|x64
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|x64.Build.0 = Release|x64
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|x86.ActiveCfg = Release|Win32
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40}.Release|x86.Build.0 = Release|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|ARM.ActiveCfg = Debug|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|ARM.Build.0 = Debug|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|ARM.Deploy.0 = Debug|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|x64.ActiveCfg = Debug|x64
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|x64.Build.0 = Debug|x64
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|x86.ActiveCfg = Debug|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|x86.Build.0 = Debug|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Debug|x86.Deploy.0 = Debug|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|ARM.ActiveCfg = Release|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|ARM.Build.0 = Release|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|ARM.Deploy.0 = Release|ARM
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|x64.ActiveCfg = Release|x64
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|x64.Build.0 = Release|x64
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|x86.ActiveCfg = Release|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|x86.Build.0 = Release|Win32
{9B33C190-5D07-40BF-9536-68843DC5D7AF}.Release|x86.Deploy.0 = Release|Win32
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|ARM.ActiveCfg = Debug|ARM
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|ARM.Build.0 = Debug|ARM
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|x64.ActiveCfg = Debug|x64
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|x64.Build.0 = Debug|x64
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|x86.ActiveCfg = Debug|Win32
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Debug|x86.Build.0 = Debug|Win32
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|ARM.ActiveCfg = Release|ARM
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|ARM.Build.0 = Release|ARM
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|x64.ActiveCfg = Release|x64
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|x64.Build.0 = Release|x64
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|x86.ActiveCfg = Release|Win32
{4111C8BB-D354-4348-AD3C-EB6832E84831}.Release|x86.Build.0 = Release|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|ARM.ActiveCfg = Debug|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|ARM.Build.0 = Debug|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|ARM.Deploy.0 = Debug|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|x64.ActiveCfg = Debug|x64
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|x64.Build.0 = Debug|x64
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|x86.ActiveCfg = Debug|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|x86.Build.0 = Debug|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Debug|x86.Deploy.0 = Debug|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|ARM.ActiveCfg = Release|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|ARM.Build.0 = Release|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|ARM.Deploy.0 = Release|ARM
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|x64.ActiveCfg = Release|x64
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|x64.Build.0 = Release|x64
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|x86.ActiveCfg = Release|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|x86.Build.0 = Release|Win32
{69BE8E8C-CF1E-46D6-932B-DB435F47059B}.Release|x86.Deploy.0 = Release|Win32
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|ARM.ActiveCfg = Debug|ARM
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|ARM.Build.0 = Debug|ARM
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|x64.ActiveCfg = Debug|x64
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|x64.Build.0 = Debug|x64
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|x86.ActiveCfg = Debug|Win32
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Debug|x86.Build.0 = Debug|Win32
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|ARM.ActiveCfg = Release|ARM
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|ARM.Build.0 = Release|ARM
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|x64.ActiveCfg = Release|x64
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|x64.Build.0 = Release|x64
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|x86.ActiveCfg = Release|Win32
{FD64BF17-8D36-4578-8D13-77B123BE30D3}.Release|x86.Build.0 = Release|Win32
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|ARM.ActiveCfg = Debug|ARM
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|ARM.Build.0 = Debug|ARM
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|x64.ActiveCfg = Debug|x64
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|x64.Build.0 = Debug|x64
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|x86.ActiveCfg = Debug|Win32
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Debug|x86.Build.0 = Debug|Win32
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|ARM.ActiveCfg = Release|ARM
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|ARM.Build.0 = Release|ARM
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|x64.ActiveCfg = Release|x64
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|x64.Build.0 = Release|x64
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|x86.ActiveCfg = Release|Win32
{30723C38-BA3B-44C9-8D64-C5861A26934F}.Release|x86.Build.0 = Release|Win32
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|ARM.ActiveCfg = Debug|ARM
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|ARM.Build.0 = Debug|ARM
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|x64.ActiveCfg = Debug|x64
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|x64.Build.0 = Debug|x64
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|x86.ActiveCfg = Debug|Win32
{41B32069-632E-4578-855B-A36EBFA80B56}.Debug|x86.Build.0 = Debug|Win32
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|ARM.ActiveCfg = Release|ARM
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|ARM.Build.0 = Release|ARM
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|x64.ActiveCfg = Release|x64
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|x64.Build.0 = Release|x64
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|x86.ActiveCfg = Release|Win32
{41B32069-632E-4578-855B-A36EBFA80B56}.Release|x86.Build.0 = Release|Win32
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|ARM.ActiveCfg = Debug|ARM
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|ARM.Build.0 = Debug|ARM
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|x64.ActiveCfg = Debug|x64
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|x64.Build.0 = Debug|x64
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|x86.ActiveCfg = Debug|Win32
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Debug|x86.Build.0 = Debug|Win32
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|ARM.ActiveCfg = Release|ARM
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|ARM.Build.0 = Release|ARM
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|x64.ActiveCfg = Release|x64
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|x64.Build.0 = Release|x64
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|x86.ActiveCfg = Release|Win32
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}.Release|x86.Build.0 = Release|Win32
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|ARM.ActiveCfg = Debug|ARM
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|ARM.Build.0 = Debug|ARM
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|x64.ActiveCfg = Debug|x64
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|x64.Build.0 = Debug|x64
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|x86.ActiveCfg = Debug|Win32
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Debug|x86.Build.0 = Debug|Win32
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|ARM.ActiveCfg = Release|ARM
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|ARM.Build.0 = Release|ARM
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|x64.ActiveCfg = Release|x64
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|x64.Build.0 = Release|x64
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|x86.ActiveCfg = Release|Win32
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2}.Release|x86.Build.0 = Release|Win32
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|ARM.ActiveCfg = Debug|ARM
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|ARM.Build.0 = Debug|ARM
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|x64.ActiveCfg = Debug|x64
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|x64.Build.0 = Debug|x64
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|x86.ActiveCfg = Debug|Win32
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Debug|x86.Build.0 = Debug|Win32
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|ARM.ActiveCfg = Release|ARM
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|ARM.Build.0 = Release|ARM
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|x64.ActiveCfg = Release|x64
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|x64.Build.0 = Release|x64
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|x86.ActiveCfg = Release|Win32
{D94867D2-6DAE-47E2-962A-5E8E658134D1}.Release|x86.Build.0 = Release|Win32
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|ARM.ActiveCfg = Debug|ARM
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|ARM.Build.0 = Debug|ARM
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|x64.ActiveCfg = Debug|x64
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|x64.Build.0 = Debug|x64
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|x86.ActiveCfg = Debug|Win32
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Debug|x86.Build.0 = Debug|Win32
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|ARM.ActiveCfg = Release|ARM
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|ARM.Build.0 = Release|ARM
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|x64.ActiveCfg = Release|x64
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|x64.Build.0 = Release|x64
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|x86.ActiveCfg = Release|Win32
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}.Release|x86.Build.0 = Release|Win32
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|ARM.ActiveCfg = Debug|ARM
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|ARM.Build.0 = Debug|ARM
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|x64.ActiveCfg = Debug|x64
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|x64.Build.0 = Debug|x64
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|x86.ActiveCfg = Debug|Win32
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Debug|x86.Build.0 = Debug|Win32
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|ARM.ActiveCfg = Release|ARM
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|ARM.Build.0 = Release|ARM
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|x64.ActiveCfg = Release|x64
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|x64.Build.0 = Release|x64
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|x86.ActiveCfg = Release|Win32
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}.Release|x86.Build.0 = Release|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|ARM.ActiveCfg = Debug|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|ARM.Build.0 = Debug|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|ARM.Deploy.0 = Debug|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x64.ActiveCfg = Debug|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x64.Build.0 = Debug|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x64.Deploy.0 = Debug|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x86.ActiveCfg = Debug|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x86.Build.0 = Debug|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Debug|x86.Deploy.0 = Debug|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|ARM.ActiveCfg = Release|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|ARM.Build.0 = Release|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|ARM.Deploy.0 = Release|ARM
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x64.ActiveCfg = Release|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x64.Build.0 = Release|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x64.Deploy.0 = Release|x64
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x86.ActiveCfg = Release|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x86.Build.0 = Release|Win32
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}.Release|x86.Deploy.0 = Release|Win32
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|ARM.ActiveCfg = Debug|ARM
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|ARM.Build.0 = Debug|ARM
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|x64.ActiveCfg = Debug|x64
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|x64.Build.0 = Debug|x64
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|x86.ActiveCfg = Debug|Win32
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Debug|x86.Build.0 = Debug|Win32
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|ARM.ActiveCfg = Release|ARM
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|ARM.Build.0 = Release|ARM
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|x64.ActiveCfg = Release|x64
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|x64.Build.0 = Release|x64
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|x86.ActiveCfg = Release|Win32
{ED0EA262-C222-42C7-98D3-E70C72978ED2}.Release|x86.Build.0 = Release|Win32
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|ARM.ActiveCfg = Debug|ARM
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|ARM.Build.0 = Debug|ARM
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|x64.ActiveCfg = Debug|x64
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|x64.Build.0 = Debug|x64
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|x86.ActiveCfg = Debug|Win32
{28834498-3837-44A5-8F67-249ABAB7B97D}.Debug|x86.Build.0 = Debug|Win32
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|ARM.ActiveCfg = Release|ARM
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|ARM.Build.0 = Release|ARM
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|x64.ActiveCfg = Release|x64
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|x64.Build.0 = Release|x64
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|x86.ActiveCfg = Release|Win32
{28834498-3837-44A5-8F67-249ABAB7B97D}.Release|x86.Build.0 = Release|Win32
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|ARM.ActiveCfg = Debug|ARM
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|ARM.Build.0 = Debug|ARM
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|x64.ActiveCfg = Debug|x64
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|x64.Build.0 = Debug|x64
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|x86.ActiveCfg = Debug|Win32
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Debug|x86.Build.0 = Debug|Win32
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|ARM.ActiveCfg = Release|ARM
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|ARM.Build.0 = Release|ARM
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|x64.ActiveCfg = Release|x64
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|x64.Build.0 = Release|x64
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|x86.ActiveCfg = Release|Win32
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}.Release|x86.Build.0 = Release|Win32
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|ARM.ActiveCfg = Debug|ARM
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|ARM.Build.0 = Debug|ARM
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|x64.ActiveCfg = Debug|x64
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|x64.Build.0 = Debug|x64
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|x86.ActiveCfg = Debug|Win32
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Debug|x86.Build.0 = Debug|Win32
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|ARM.ActiveCfg = Release|ARM
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|ARM.Build.0 = Release|ARM
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|x64.ActiveCfg = Release|x64
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|x64.Build.0 = Release|x64
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|x86.ActiveCfg = Release|Win32
{B7C6F344-7287-4930-AF38-223622BD8CBB}.Release|x86.Build.0 = Release|Win32
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|ARM.Build.0 = Debug|Any CPU
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|x64.ActiveCfg = Debug|x64
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|x64.Build.0 = Debug|x64
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|x86.ActiveCfg = Debug|Win32
{D5577E51-FA31-4802-8669-1DB32805935E}.Debug|x86.Build.0 = Debug|Win32
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|ARM.ActiveCfg = Release|Any CPU
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|ARM.Build.0 = Release|Any CPU
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|x64.ActiveCfg = Release|x64
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|x64.Build.0 = Release|x64
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|x86.ActiveCfg = Release|Win32
{D5577E51-FA31-4802-8669-1DB32805935E}.Release|x86.Build.0 = Release|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|ARM.ActiveCfg = Debug|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|ARM.Build.0 = Debug|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|ARM.Deploy.0 = Debug|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x64.ActiveCfg = Debug|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x64.Build.0 = Debug|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x64.Deploy.0 = Debug|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x86.ActiveCfg = Debug|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x86.Build.0 = Debug|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Debug|x86.Deploy.0 = Debug|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|ARM.ActiveCfg = Release|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|ARM.Build.0 = Release|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|ARM.Deploy.0 = Release|ARM
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x64.ActiveCfg = Release|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x64.Build.0 = Release|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x64.Deploy.0 = Release|x64
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x86.ActiveCfg = Release|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x86.Build.0 = Release|Win32
{F8C22844-9B93-4978-80DF-8AF2B37A7ABB}.Release|x86.Deploy.0 = Release|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|ARM.ActiveCfg = Debug|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|ARM.Build.0 = Debug|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|ARM.Deploy.0 = Debug|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x64.ActiveCfg = Debug|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x64.Build.0 = Debug|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x64.Deploy.0 = Debug|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x86.ActiveCfg = Debug|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x86.Build.0 = Debug|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Debug|x86.Deploy.0 = Debug|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|ARM.ActiveCfg = Release|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|ARM.Build.0 = Release|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|ARM.Deploy.0 = Release|ARM
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x64.ActiveCfg = Release|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x64.Build.0 = Release|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x64.Deploy.0 = Release|x64
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x86.ActiveCfg = Release|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x86.Build.0 = Release|Win32
{A55766B5-58B6-4519-835E-5A4B7C164B5A}.Release|x86.Deploy.0 = Release|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|ARM.ActiveCfg = Debug|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|ARM.Build.0 = Debug|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|ARM.Deploy.0 = Debug|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x64.ActiveCfg = Debug|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x64.Build.0 = Debug|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x64.Deploy.0 = Debug|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x86.ActiveCfg = Debug|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x86.Build.0 = Debug|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Debug|x86.Deploy.0 = Debug|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|ARM.ActiveCfg = Release|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|ARM.Build.0 = Release|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|ARM.Deploy.0 = Release|ARM
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x64.ActiveCfg = Release|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x64.Build.0 = Release|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x64.Deploy.0 = Release|x64
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x86.ActiveCfg = Release|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x86.Build.0 = Release|Win32
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}.Release|x86.Deploy.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{DD5018BE-54C6-4FD4-9F8D-08D52FC0CD40} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{9B33C190-5D07-40BF-9536-68843DC5D7AF} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{4111C8BB-D354-4348-AD3C-EB6832E84831} = {873E9D16-2A08-41FC-B301-79C95B3A8F98}
{69BE8E8C-CF1E-46D6-932B-DB435F47059B} = {873E9D16-2A08-41FC-B301-79C95B3A8F98}
{FD64BF17-8D36-4578-8D13-77B123BE30D3} = {35F6AB71-5BD2-4D53-8A51-D75CCD4CCC3D}
{30723C38-BA3B-44C9-8D64-C5861A26934F} = {76EA541E-CAB1-4DB5-A39F-E3DB2A78CDDD}
{41B32069-632E-4578-855B-A36EBFA80B56} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF} = {76EA541E-CAB1-4DB5-A39F-E3DB2A78CDDD}
{B92F449E-0FD9-44FC-ACFA-6521A3240CA2} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{D94867D2-6DAE-47E2-962A-5E8E658134D1} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{B4C744EC-B662-46C6-A076-FB58FA8FDF1B} = {76EA541E-CAB1-4DB5-A39F-E3DB2A78CDDD}
{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324} = {76EA541E-CAB1-4DB5-A39F-E3DB2A78CDDD}
{3F1F7F6C-2A33-4635-9880-08FC5BC4E435} = {61E8A4A0-8138-49DB-97B4-3BEC87C8E133}
{ED0EA262-C222-42C7-98D3-E70C72978ED2} = {61E8A4A0-8138-49DB-97B4-3BEC87C8E133}
{28834498-3837-44A5-8F67-249ABAB7B97D} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB} = {61E8A4A0-8138-49DB-97B4-3BEC87C8E133}
{B7C6F344-7287-4930-AF38-223622BD8CBB} = {61E8A4A0-8138-49DB-97B4-3BEC87C8E133}
{D5577E51-FA31-4802-8669-1DB32805935E} = {35F6AB71-5BD2-4D53-8A51-D75CCD4CCC3D}
{A55766B5-58B6-4519-835E-5A4B7C164B5A} = {95BD0669-04C8-4EEB-B3CC-0535B03F4468}
{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D} = {61E8A4A0-8138-49DB-97B4-3BEC87C8E133}
EndGlobalSection
EndGlobal

View File

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{91D3ADEA-F1FE-4433-95B6-F8F6A7CF7BAF}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\platforms;
..\..\include;
..\..\src\core;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<AdditionalDependencies>
mincore.lib;
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="libopenthread-cli.vcxproj">
<Project>{41b32069-632e-4578-855b-a36ebfa80b56}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread.vcxproj">
<Project>{dd5018be-54c6-4fd4-9f8d-08d52fc0cd40}</Project>
</ProjectReference>
<ProjectReference Include="mbedtls.vcxproj">
<Project>{4111c8bb-d354-4348-ad3c-eb6832e84831}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread-windows.vcxproj">
<Project>{30723c38-ba3b-44c9-8d64-c5861a26934f}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\cli\main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\cli\main.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{B4C744EC-B662-46C6-A076-FB58FA8FDF1B}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OPENTHREAD_ENABLE_NCP_SPI=1;
OPENTHREAD_ENABLE_NCP_UART=0;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\platforms;
..\..\include;
..\..\src\core;
</AdditionalIncludeDirectories>
<SDLCheck>true</SDLCheck>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<AdditionalDependencies>
mincore.lib;
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\ncp\main.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="libopenthread.vcxproj">
<Project>{dd5018be-54c6-4fd4-9f8d-08d52fc0cd40}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread-ncp-spi.vcxproj">
<Project>{b92f449e-0fd9-44fc-acfa-6521a3240ca2}</Project>
</ProjectReference>
<ProjectReference Include="mbedtls.vcxproj">
<Project>{4111c8bb-d354-4348-ad3c-eb6832e84831}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread-windows.vcxproj">
<Project>{30723c38-ba3b-44c9-8d64-c5861a26934f}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\ncp\main.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{9EEF9DCD-EA8F-4154-BD02-AB2B31CEC324}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OPENTHREAD_ENABLE_NCP_SPI=0;
OPENTHREAD_ENABLE_NCP_UART=1;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\platforms;
..\..\include;
..\..\src\core;
</AdditionalIncludeDirectories>
<SDLCheck>true</SDLCheck>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<AdditionalDependencies>
mincore.lib;
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\ncp\main.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="libopenthread.vcxproj">
<Project>{dd5018be-54c6-4fd4-9f8d-08d52fc0cd40}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread-ncp-uart.vcxproj">
<Project>{d94867d2-6dae-47e2-962a-5e8e658134d1}</Project>
</ProjectReference>
<ProjectReference Include="mbedtls.vcxproj">
<Project>{4111c8bb-d354-4348-ad3c-eb6832e84831}</Project>
</ProjectReference>
<ProjectReference Include="libopenthread-windows.vcxproj">
<Project>{30723c38-ba3b-44c9-8d64-c5861a26934f}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\apps\ncp\main.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{ED0EA262-C222-42C7-98D3-E70C72978ED2}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\dll\</OutDir>
<CodeAnalysisRuleSet>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets\NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
<ApiValidator_Enable>false</ApiValidator_Enable>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_FTD=1;
OTAPI_EXPORTS;
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\drivers\windows\include;
..\..\examples\drivers\windows\otApi;
..\..\include;
</AdditionalIncludeDirectories>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppModuleName>otApi</WppModuleName>
<EnablePREfast>true</EnablePREfast>
<ExceptionHandling Condition="'$(Platform)'=='ARM'">Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\otApi\precomp.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otApi\dllmain.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\otApi\otApi.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otApi\otApi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otApi\dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\otApi\precomp.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{CAC8A00E-C6C8-4CF0-BA5A-C9A9A601C6DB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<ApplicationType>Windows Store</ApplicationType>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_FTD=1;
OTDLL;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otCli\main.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="libopenthread-cli-windows.vcxproj">
<Project>{28834498-3837-44a5-8f67-249abab7b97d}</Project>
</ProjectReference>
<ProjectReference Include="otApi.vcxproj">
<Project>{ed0ea262-c222-42c7-98d3-e70c72978ed2}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otCli\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,134 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{3F1F7F6C-2A33-4635-9880-08FC5BC4E435}</ProjectGuid>
<TemplateGuid>{8b1800b9-d017-4029-9785-13ef5e5b328e}</TemplateGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<RootNamespace>ot</RootNamespace>
<DriverType>KMDF</DriverType>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup Label="PropertySheets">
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\sys\</OutDir>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreProcessorDefinitions>
%(PreProcessorDefinitions);
NDIS_WDM=1;
NDIS630=1;
OPENTHREAD_FTD=1;
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_PROJECT_CORE_CONFIG_FILE="openthread-core-windows-config.h";
</PreProcessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\examples\drivers\windows\include;
..\..\examples\drivers\windows\include_c99;
..\..\examples\drivers\windows\otLwf;
..\..\src;
..\..\src\core;
</AdditionalIncludeDirectories>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DisableSpecificWarnings>%(DisableSpecificWarnings);4201;4214</DisableSpecificWarnings>
<PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile>
<PreCompiledHeader>Use</PreCompiledHeader>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppAdditionalOptions>-km %(WppAdditionalOptions)</WppAdditionalOptions>
<WppModuleName>otLwf</WppModuleName>
<WppSearchString>WPP_INIT_TRACING</WppSearchString>
<EnablePREfast>true</EnablePREfast>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..;.;</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>
%(AdditionalDependencies);
ndis.lib;
wdmsec.lib;
netio.lib;
uuid.lib;
cng.lib;
</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command Condition="'$(Platform)'=='ARM'">inf2cat /driver:$(TargetDir) /os:8_ARM</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\address.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\alarm.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\command.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\datapath.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\driver.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\eventprocessing.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\iocontrol.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\settings.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\thread.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\tunnel.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\precomp.c">
<AdditionalIncludeDirectories>..;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreProcessorDefinitions>%(PreProcessorDefinitions);NDIS_WDM=1</PreProcessorDefinitions>
<PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile>
<PreCompiledHeader>Create</PreCompiledHeader>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\filter.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\device.c" />
<ClCompile Include="..\..\examples\drivers\windows\otLwf\radio.c" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\command.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\device.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\driver.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\iocontrol.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\nsihelper.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\radio.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\thread.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\tunnel.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\precomp.h" />
<ClInclude Include="..\..\examples\drivers\windows\otLwf\filter.h" />
<ResourceCompile Include="..\..\examples\drivers\windows\otLwf\filter.rc" />
<Inf Include="..\..\examples\drivers\windows\otLwf\otLwf.inf" />
</ItemGroup>
<ItemGroup>
<FilesToPackage Include="$(TargetPath)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="libopenthread_k.vcxproj">
<Project>{9b33c190-5d07-40bf-9536-68843dc5d7af}</Project>
</ProjectReference>
<ProjectReference Include="mbedtls_k.vcxproj">
<Project>{69be8e8c-cf1e-46d6-932b-db435f47059b}</Project>
</ProjectReference>
<ProjectReference Include="spinel_k.vcxproj">
<Project>{a55766b5-58b6-4519-835e-5a4b7c164b5a}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,107 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Driver Files">
<UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
<Extensions>inf;inv;inx;mof;mc;</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Inf Include="..\..\examples\drivers\windows\otLwf\otLwf.inf">
<Filter>Driver Files</Filter>
</Inf>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\precomp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\filter.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\driver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\device.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\nsihelper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\iocontrol.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\radio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\thread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\tunnel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\drivers\windows\otLwf\command.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\filter.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\device.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\precomp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\alarm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\radio.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\driver.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\iocontrol.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\eventprocessing.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\datapath.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\address.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\tunnel.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\thread.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\settings.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otLwf\command.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\examples\drivers\windows\otLwf\filter.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{B7C6F344-7287-4930-AF38-223622BD8CBB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ot</RootNamespace>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\dll\</OutDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
<ApiValidator_Enable>false</ApiValidator_Enable>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
OPENTHREAD_FTD=1;
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OTAPI_EXPORTS;
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\examples\drivers\windows\include;
..\..\examples\drivers\windows\otApi;
..\..\include;
</AdditionalIncludeDirectories>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppModuleName>otNodeApi</WppModuleName>
<EnablePREfast>true</EnablePREfast>
<ExceptionHandling Condition="'$(Platform)'=='ARM'">Sync</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalDependencies>
ntdll.lib;
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\otNodeApi\precomp.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otNodeApi\dllmain.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\otNodeApi\otNodeApi.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="otApi.vcxproj">
<Project>{ed0ea262-c222-42c7-98d3-e70c72978ed2}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\otNodeApi\otNodeApi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\examples\drivers\windows\otNodeApi\dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\drivers\windows\otNodeApi\precomp.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,112 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D5577E51-FA31-4802-8669-1DB32805935E}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>otTestRunner</RootNamespace>
<AssemblyName>otTestRunner</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'">
<DebugSymbols>true</DebugSymbols>
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'">
<IntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\build\obj\$(Platform)\$(Configuration)\otTestRunner\</BaseIntermediateOutputPath>
<OutputPath>..\..\build\bin\$(Platform)\$(Configuration)\exe\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\tests\otTestRunner\Program.cs" />
<Compile Include="..\..\tests\otTestRunner\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\tests\otTestRunner\App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,102 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{1EAFF7C8-8215-4EDA-83B2-EEB56CECE84D}</ProjectGuid>
<TemplateGuid>{497e31cb-056b-4f31-abb8-447fd55ee5a5}</TemplateGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<RootNamespace>ot</RootNamespace>
<TargetVersion>Windows10</TargetVersion>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
<DriverType>KMDF</DriverType>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\sys\</OutDir>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreProcessorDefinitions>
%(PreProcessorDefinitions);
NDIS_MINIPORT_DRIVER=1;
NDIS_WDM=1;
NDIS650_MINIPORT=1;
OTTMP_LEGACY=1;
</PreProcessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\examples\drivers\windows\include;
..\..\examples\drivers\windows\ottmp;
</AdditionalIncludeDirectories>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DisableSpecificWarnings>%(DisableSpecificWarnings);4200;4201;4214</DisableSpecificWarnings>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppAdditionalOptions>-km %(WppAdditionalOptions)</WppAdditionalOptions>
<WppModuleName>ottmp</WppModuleName>
<WppSearchString>WPP_INIT_TRACING</WppSearchString>
<EnablePREfast>true</EnablePREfast>
</ClCompile>
<ResourceCompile>
<PreProcessorDefinitions>
%(PreProcessorDefinitions);
NDIS_MINIPORT_DRIVER=1;
NDIS_WDM=1;
NDIS650_MINIPORT=1;
OTTMP_LEGACY=1;
</PreProcessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..;.;</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>
%(AdditionalDependencies);
ndis.lib;
</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command Condition="'$(Platform)'=='ARM'">inf2cat /driver:$(TargetDir) /os:8_ARM</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\drivers\windows\ottmp\adapter.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\ottmp\device.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\ottmp\driver.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\ottmp\hdlc.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\ottmp\oid.cpp" />
<ClCompile Include="..\..\examples\drivers\windows\ottmp\serial.cpp" />
<ResourceCompile Include="..\..\examples\drivers\windows\ottmp\ottmp.rc" />
<Inf Include="..\..\examples\drivers\windows\ottmp\ottmp.inf" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\adapter.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\device.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\driver.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\hardware.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\hdlc.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\oid.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\pch.hpp" />
<ClInclude Include="..\..\examples\drivers\windows\ottmp\serial.hpp" />
</ItemGroup>
<ItemGroup>
<FilesToPackage Include="$(TargetPath)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{BED10704-BFDA-427C-BB01-B08F20AB1718}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{A6C61B28-961C-4B63-892B-A7E5EB2A4B3E}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{0CBFC63C-11CB-4E5F-95F1-187BE3F6DA44}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Driver Files">
<UniqueIdentifier>{6C2BAFD4-E244-4FF2-A002-FBCCF14AFA9D}</UniqueIdentifier>
<Extensions>inf;inv;inx;mof;mc;</Extensions>
</Filter>
</ItemGroup>
</Project>

View File

@ -1,72 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="openthread.configuration.props" />
<PropertyGroup Label="Globals">
<ProjectGuid>{A55766B5-58B6-4519-835E-5A4B7C164B5A}</ProjectGuid>
<TemplateGuid>{8c0e3d8b-df43-455b-815a-4a0e72973bc6}</TemplateGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<Configuration>Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
<RootNamespace>ot</RootNamespace>
<DriverType>KMDF</DriverType>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup Label="PropertySheets">
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup>
<OutDir>..\..\build\bin\$(Platform)\$(Configuration)\lib\</OutDir>
<IntDir>..\..\build\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
%(PreprocessorDefinitions);
HAVE_STRNLEN=1;
OPENTHREAD_FTD=1;
HAVE_STDBOOL_H=1;
HAVE_STDINT_H=1;
SPINEL_PLATFORM_DOESNT_IMPLEMENT_ERRNO_VAR=1;
OPENTHREAD_CONFIG_FILE="openthread-windows-config.h";
OPENTHREAD_PROJECT_CORE_CONFIG_FILE="openthread-core-windows-config.h";
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
..\..\include;
..\..\src\core;
..\..\examples\drivers\windows\include_c99;
</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4100;4706;4748;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatWarningAsError>true</TreatWarningAsError>
<WppEnabled>true</WppEnabled>
<WppScanConfigurationData>..\..\include\openthread\platform\logging-windows.h</WppScanConfigurationData>
<WppAdditionalOptions>-km %(WppAdditionalOptions)</WppAdditionalOptions>
<WppModuleName>otCore</WppModuleName>
<WppSearchString>WPP_INIT_TRACING</WppSearchString>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\spinel.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\spinel.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{C034F7F4-3CBD-4B9A-A033-0D76A195B581}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{7A95885E-AD23-439A-B283-9BDE0E39D84E}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{1E1DF93E-9746-4688-A1F0-7B59378CF28F}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\ncp\spinel.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\ncp\spinel.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -35,10 +35,6 @@ DIST_SUBDIRS = \
apps \
$(NULL)
EXTRA_DIST = \
drivers \
$(NULL)
# Always build (e.g. for 'make all') these subdirectories.
SUBDIRS = \

View File

@ -1,35 +0,0 @@
<!--
Copyright (c) 2016, 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.
-->
<Application
x:Class="ot.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ot"
RequestedTheme="Dark">
</Application>

View File

@ -1,146 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include "MainPage.xaml.h"
using namespace ot;
using namespace Platform;
using namespace Windows::ApplicationModel;
using namespace Windows::ApplicationModel::Activation;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Interop;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
/// <summary>
/// Initializes the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
App::App()
{
InitializeComponent();
Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending);
}
/// <summary>
/// Invoked when the application is launched normally by the end user. Other entry points
/// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)
{
#if _DEBUG
// Show graphics profiling information while debugging.
if (IsDebuggerPresent())
{
// Display the current frame rate counters
DebugSettings->EnableFrameRateCounter = true;
}
#endif
auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content);
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == nullptr)
{
// Create a Frame to act as the navigation context and associate it with
// a SuspensionManager key
rootFrame = ref new Frame();
rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed);
if (e->PreviousExecutionState == ApplicationExecutionState::Terminated)
{
// TODO: Restore the saved session state only when appropriate, scheduling the
// final launch steps after the restore is complete
}
if (e->PrelaunchActivated == false)
{
if (rootFrame->Content == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
}
// Place the frame in the current Window
Window::Current->Content = rootFrame;
// Ensure the current window is active
Window::Current->Activate();
}
}
else
{
if (e->PrelaunchActivated == false)
{
if (rootFrame->Content == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
}
// Ensure the current window is active
Window::Current->Activate();
}
}
}
/// <summary>
/// Invoked when application execution is being suspended. Application state is saved
/// without knowing whether the application will be terminated or resumed with the contents
/// of memory still intact.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e)
{
(void) sender; // Unused parameter
(void) e; // Unused parameter
//TODO: Save application state and stop any background activity
}
/// <summary>
/// Invoked when Navigation to a certain page fails
/// </summary>
/// <param name="sender">The Frame which failed navigation</param>
/// <param name="e">Details about the navigation failure</param>
void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e)
{
throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name);
}

View File

@ -1,50 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "App.g.h"
namespace ot
{
/// <summary>
/// Provides application-specific behavior to supplement the default Application class.
/// </summary>
ref class App sealed
{
protected:
virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override;
internal:
App();
private:
void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e);
void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e);
};
}

View File

@ -1,43 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public ref class ClientArgs sealed
{
public:
property Windows::Networking::HostName^ ServerHostName;
property Platform::String^ ServerPort;
property Windows::Networking::HostName^ ClientHostName;
property Platform::String^ ClientPort;
};
} // namespace ot

View File

@ -1,142 +0,0 @@
<!--
Copyright (c) 2016, 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.
-->
<UserControl
x:Class="ot.ClientControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ot"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
Text="Server IP :"
/>
<TextBox
Grid.Row="0"
Grid.Column="2"
x:Name="ServerIP"
MinWidth="500"
/>
<TextBlock
Grid.Row="2"
Grid.Column="0"
Text="Server Port :"
/>
<TextBox
Grid.Row="2"
Grid.Column="2"
x:Name="ServerPort"
Width="100"
HorizontalAlignment="Left"
/>
<TextBlock
Grid.Row="4"
Grid.Column="0"
Text="Client IP :"
/>
<TextBox
Grid.Row="4"
Grid.Column="2"
x:Name="ClientIP"
MinWidth="500"
/>
<TextBlock
Grid.Row="6"
Grid.Column="0"
Text="Client Port :"
/>
<TextBox
Grid.Row="6"
Grid.Column="2"
x:Name="ClientPort"
Width="100"
HorizontalAlignment="Left"
/>
<Button
Grid.Row="8"
Grid.Column="0"
Grid.ColumnSpan="3"
Width="75"
Content="Connect"
Click="Connect_Click"
/>
<TextBlock
Grid.Row="10"
Grid.Column="0"
Text="Input :"
/>
<TextBox
Grid.Row="10"
Grid.Column="2"
x:Name="Input"
MinWidth="300"
/>
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Top"
Grid.Row="12"
Grid.Column="0"
Grid.ColumnSpan="3"
>
<Button
Width="75"
Content="Send"
Click="Send_Click"
Margin="0,0,75,0"
/>
<Button
Width="75"
Content="Exit"
Click="Exit_Click"
/>
</StackPanel>
</Grid>
</UserControl>

View File

@ -1,188 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include <algorithm>
#include "ClientControl.xaml.h"
#include "Factory.h"
#include "TalkHelper.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
std::atomic<int> ClientControl::_clientPort{ TalkConsts::DEF_CLIENT_PORT_INIT };
ClientControl::ClientControl()
{
InitializeComponent();
ServerPort->Text = DEF_SERVER_PORT.ToString();
auto clientPort = _clientPort.load();
ClientPort->Text = clientPort.ToString();
}
void
ClientControl::Init(
IAsyncThreadNotify^ notify,
IMainPageUIElements^ mainPageUIElements)
{
_notify = std::move(notify);
_mainPageUIElements = std::move(mainPageUIElements);
}
void
ClientControl::ProtocolChanged(
Protocol protocol)
{
_protocol = protocol;
}
void
ClientControl::Connect_Click(
Object^ sender,
RoutedEventArgs^ e)
{
try
{
auto clientArgs = ref new ClientArgs();
auto serverIP = ServerIP->Text;
if (serverIP->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Server IP");
}
// check valid chars of Ipv6 Address
if (!TalkHelper::AllValidIpv6Chars(serverIP->Data(), serverIP->Data() + serverIP->Length()))
{
throw Exception::CreateException(E_INVALIDARG, "Not a valid Server IPv6 address");
}
clientArgs->ServerHostName = ref new HostName(serverIP);
if (ServerPort->Text->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Server Port");
}
clientArgs->ServerPort = ServerPort->Text;
auto clientIP = ClientIP->Text;
if (clientIP->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Client IP");
}
// check valid chars of Ipv6 Address
if (!TalkHelper::AllValidIpv6Chars(clientIP->Data(), clientIP->Data() + clientIP->Length()))
{
throw Exception::CreateException(E_INVALIDARG, "Not a valid client IPv6 address");
}
clientArgs->ClientHostName = ref new HostName(clientIP);
if (ClientPort->Text->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Client Port");
}
clientArgs->ClientPort = ClientPort->Text;
auto cleintContext = Factory::CreateClientContext(_notify, clientArgs, _protocol);
cleintContext->Connect_Click(sender, e);
// fix Only usage of each socket address (protocol/network address/port)
// is normally permitted.
auto clientPort = ++_clientPort;
ClientPort->Text = clientPort.ToString();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Connecting failed with input error: " + ex->Message,
NotifyType::Error);
}
}
void
ClientControl::Send_Click(
Object^ sender,
RoutedEventArgs^ e)
{
try
{
auto input = Input->Text;
if (input->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Input");
}
if (!CoreApplication::Properties->HasKey("clientContext"))
{
throw Exception::CreateException(E_UNEXPECTED, "Not Connected");
}
auto clientContext = dynamic_cast<IClientContext^>(
CoreApplication::Properties->Lookup("clientContext"));
if (clientContext == nullptr)
{
throw Exception::CreateException(E_UNEXPECTED, "No clientContext");
}
clientContext->Send_Click(sender, e, input);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Sending message failed with error: " + ex->Message,
NotifyType::Error);
}
}
void
ClientControl::Exit_Click(
Object^ sender,
RoutedEventArgs^ e)
{
_mainPageUIElements->TalkGrid->Visibility = Xaml::Visibility::Collapsed;
_mainPageUIElements->ThreadGrid->Visibility = Xaml::Visibility::Visible;
}

View File

@ -1,66 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include <atomic>
#include "ClientControl.g.h"
#include "TalkConsts.h"
#include "IAsyncThreadNotify.h"
#include "IMainPageUIElements.h"
#include "Protocol.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class ClientControl sealed
{
public:
ClientControl();
void Init(IAsyncThreadNotify^ notify, IMainPageUIElements^ mainPageUIElements);
void ProtocolChanged(Protocol protocol);
private:
static constexpr unsigned short DEF_SERVER_PORT = TalkConsts::DEF_SERVER_PORT;
void Connect_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void Send_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void Exit_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
IAsyncThreadNotify^ _notify;
IMainPageUIElements^ _mainPageUIElements;
Protocol _protocol;
static std::atomic<int> _clientPort;
};
} // namespace ot

View File

@ -1,286 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include "DatagramClientContext.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Networking::Sockets;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
DatagramClientContext::DatagramClientContext(
IAsyncThreadNotify^ notify,
DatagramSocket^ client,
ClientArgs^ args) :
_notify{ std::move(notify) },
_client{ std::move(client) },
_args{ std::move(args) }
{
}
DatagramClientContext::~DatagramClientContext()
{
// A Client can be closed in two ways:
// - explicitly: using the 'delete' keyword (client is closed even if there are outstanding references to it).
// - implicitly: removing the last reference to it (i.e., falling out-of-scope).
//
// When a Socket is closed implicitly, it can take several seconds for the local port being used
// by it to be freed/reclaimed by the lower networking layers. During that time, other sockets on the machine
// will not be able to use the port. Thus, it is strongly recommended that Socket instances be explicitly
// closed before they go out of scope(e.g., before application exit). The call below explicitly closes the socket.
if (_client != nullptr)
{
delete _client;
_client = nullptr;
}
}
void
DatagramClientContext::Connect_Click(
Object^ sender,
RoutedEventArgs^ e)
{
task<void> removeContext;
if (CoreApplication::Properties->HasKey("clientContext"))
{
auto clientContext = dynamic_cast<IClientContext^>(
CoreApplication::Properties->Lookup("clientContext"));
if (clientContext == nullptr)
{
throw ref new FailureException(L"No clientContext");
}
removeContext = create_task(clientContext->CancelIO()).then(
[]()
{
CoreApplication::Properties->Remove("clientContext");
});
}
else
{
removeContext = create_task([]() {});
}
_client->MessageReceived += ref new MessageHandler(
this, &DatagramClientContext::OnMessage);
removeContext.then([this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
// Events cannot be hooked up directly to the ScenarioInput2 object, as the object can fall out-of-scope and be
// deleted. This would render any event hooked up to the object ineffective. The ClientContext guarantees that
// both the socket and object that serves its events have the same lifetime.
CoreApplication::Properties->Insert("clientContext", this);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Remove clientContext error: " + ex->Message,
NotifyType::Error);
}
catch (task_canceled&)
{
}
}).then([this]()
{
auto endpointPair = ref new EndpointPair(_args->ClientHostName, _args->ClientPort,
_args->ServerHostName, _args->ServerPort);
_notify->NotifyFromAsyncThread("Start connecting", NotifyType::Status);
create_task(_client->ConnectAsync(endpointPair)).then(
[this, endpointPair](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
_notify->NotifyFromAsyncThread(
"Connect from " + endpointPair->LocalHostName->CanonicalName +
" to " + endpointPair->RemoteHostName->CanonicalName,
NotifyType::Status);
SetConnected(true);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Start binding failed with error: " + ex->Message,
NotifyType::Error);
CoreApplication::Properties->Remove("clientContext");
}
catch (task_canceled&)
{
CoreApplication::Properties->Remove("clientContext");
}
});
});
}
void
DatagramClientContext::Send_Click(
Object^ sender,
RoutedEventArgs^ e,
String^ input)
{
SendMessage(GetDataWriter(), input);
}
IAsyncAction^
DatagramClientContext::CancelIO()
{
return _client->CancelIOAsync();
}
void
DatagramClientContext::SetConnected(
bool connected)
{
_connected = connected;
}
bool
ot::DatagramClientContext::IsConnected() const
{
return _connected;
}
void
ot::DatagramClientContext::OnMessage(
DatagramSocket^ socket,
MessageReceivedEventArgs^ eventArgs)
{
try
{
auto dataReader = eventArgs->GetDataReader();
Receive(dataReader, dataReader->UnconsumedBufferLength);
}
catch (Exception^ ex)
{
auto socketError = SocketError::GetStatus(ex->HResult);
if (socketError == SocketErrorStatus::ConnectionResetByPeer)
{
// This error would indicate that a previous send operation resulted in an ICMP "Port Unreachable" message.
_notify->NotifyFromAsyncThread(
"Peer does not listen on the specific port. Please make sure that you run step 1 first "
"or you have a server properly working on a remote server.",
NotifyType::Error);
}
else if (socketError != SocketErrorStatus::Unknown)
{
_notify->NotifyFromAsyncThread(
"Error happened when receiving a datagram: " + socketError.ToString(),
NotifyType::Error);
}
else
{
throw;
}
}
}
void
DatagramClientContext::Receive(
DataReader^ dataReader,
unsigned int strLen)
{
if (!strLen)
{
return;
}
auto msg = dataReader->ReadString(strLen);
_notify->NotifyFromAsyncThread("Received data from server: \"" + msg + "\"",
NotifyType::Status);
}
void
DatagramClientContext::SendMessage(
DataWriter^ dataWriter,
String^ msg)
{
if (!IsConnected())
{
_notify->NotifyFromAsyncThread("This socket is not yet connected.", NotifyType::Error);
return;
}
try
{
dataWriter->WriteString(msg);
_notify->NotifyFromAsyncThread("Sending - " + msg, NotifyType::Status);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Sending failed with error: " + ex->Message, NotifyType::Error);
}
// Write the locally buffered data to the network. Please note that write operation will succeed
// even if the server is not listening.
create_task(dataWriter->StoreAsync()).then(
[this](task<unsigned int> writeTask)
{
try
{
// Try getting an exception.
writeTask.get();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Send failed with error: " + ex->Message, NotifyType::Error);
}
});
}
Windows::Storage::Streams::DataWriter^
DatagramClientContext::GetDataWriter()
{
if (_dataWriter == nullptr)
{
_dataWriter = ref new DataWriter(_client->OutputStream);
}
return _dataWriter;
}

View File

@ -1,78 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "IClientContext.h"
#include "IAsyncThreadNotify.h"
#include "ClientArgs.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DatagramClientContext sealed : public IClientContext
{
public:
using DatagramSocket = Windows::Networking::Sockets::DatagramSocket;
DatagramClientContext(IAsyncThreadNotify^ notify, DatagramSocket^ client, ClientArgs^ args);
virtual ~DatagramClientContext();
virtual void Connect_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
virtual void Send_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e, Platform::String^ input);
virtual Windows::Foundation::IAsyncAction^ CancelIO();
private:
using MessageReceivedEventArgs = Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs;
using MessageHandler = Windows::Foundation::TypedEventHandler<DatagramSocket^, MessageReceivedEventArgs^>;
using DataReader = Windows::Storage::Streams::DataReader;
using DataWriter = Windows::Storage::Streams::DataWriter;
using Args = ClientArgs;
void SetConnected(bool connected);
bool IsConnected() const;
void OnMessage(DatagramSocket^ socket, MessageReceivedEventArgs^ eventArgs);
void Receive(DataReader^, unsigned int strLen);
void SendMessage(DataWriter^, String^ msg);
DataWriter^ GetDataWriter();
IAsyncThreadNotify^ _notify;
DatagramSocket^ _client;
Args^ _args;
bool _connected = false;
DataReader^ _dataReader;
DataWriter^ _dataWriter;
};
} // namespace ot

View File

@ -1,278 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include "DatagramListenerContext.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Networking::Sockets;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
DatagramListenerContext::DatagramListenerContext(
IAsyncThreadNotify^ notify,
DatagramSocket^ listener,
ListenerArgs^ args) :
_notify{ std::move(notify) },
_listener{ std::move(listener) },
_args{ std::move(args) }
{
}
DatagramListenerContext::~DatagramListenerContext()
{
// A Listener can be closed in two ways:
// - explicitly: using the 'delete' keyword (listener is closed even if there are outstanding references to it).
// - implicitly: removing the last reference to it (i.e., falling out-of-scope).
//
// When a Socket is closed implicitly, it can take several seconds for the local port being used
// by it to be freed/reclaimed by the lower networking layers. During that time, other sockets on the machine
// will not be able to use the port. Thus, it is strongly recommended that Socket instances be explicitly
// closed before they go out of scope(e.g., before application exit). The call below explicitly closes the socket.
if (_listener != nullptr)
{
delete _listener;
_listener = nullptr;
}
}
void
DatagramListenerContext::Listen_Click(
Object^ sender,
RoutedEventArgs^ e)
{
task<void> removeContext;
if (CoreApplication::Properties->HasKey("listenerContext"))
{
auto listenerContext = dynamic_cast<IListenerContext^>(
CoreApplication::Properties->Lookup("listenerContext"));
if (listenerContext == nullptr)
{
throw ref new FailureException(L"No listenerContext");
}
removeContext = create_task(listenerContext->CancelIO()).then(
[]()
{
CoreApplication::Properties->Remove("listenerContext");
});
}
else
{
removeContext = create_task([]() {});
}
_listener->MessageReceived += ref new MessageHandler(
this, &DatagramListenerContext::OnMessage);
removeContext.then([this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
// Events cannot be hooked up directly to the ScenarioInput1 object, as the object can fall out-of-scope and be
// deleted. This would render any event hooked up to the object ineffective. The ListenerContext guarantees that
// both the listener and object that serves its events have the same lifetime.
CoreApplication::Properties->Insert("listenerContext", this);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Remove listenerContext error: " + ex->Message,
NotifyType::Error);
}
catch (task_canceled&)
{
}
}).then([this]()
{
_notify->NotifyFromAsyncThread("Start listening", NotifyType::Status);
create_task(_listener->BindEndpointAsync(_args->ServerHostName, _args->ServerPort)).then(
[this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
_notify->NotifyFromAsyncThread(
"Listening on address " + _args->ServerHostName->CanonicalName,
NotifyType::Status);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Start listening failed with error: " + ex->Message,
NotifyType::Error);
CoreApplication::Properties->Remove("listenerContext");
}
});
});
}
IAsyncAction^
DatagramListenerContext::CancelIO()
{
return _listener->CancelIOAsync();
}
void
DatagramListenerContext::OnMessage(
DatagramSocket^ socket,
MessageReceivedEventArgs^ eventArgs)
{
if (_outputStream != nullptr)
{
auto dataReader = eventArgs->GetDataReader();
Receive(dataReader, dataReader->UnconsumedBufferLength, GetDataWriter());
return;
}
// We do not have an output stream yet so create one.
create_task(socket->GetOutputStreamAsync(eventArgs->RemoteAddress, eventArgs->RemotePort)).then(
[this, socket, eventArgs](IOutputStream^ stream)
{
{
std::lock_guard<mutex_t> lock(_mtx);
// It might happen that the OnMessage was invoked more than once before the GetOutputStreamAsync call
// completed. In this case we will end up with multiple streams - just keep one of them.
if (_outputStream == nullptr)
{
_outputStream = stream;
}
}
auto dataReader = eventArgs->GetDataReader();
Receive(dataReader, dataReader->UnconsumedBufferLength, GetDataWriter());
}).then([this](task<void> prevTask)
{
try
{
// Try getting all exceptions from the continuation chain above this point.
prevTask.get();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("On message with an error: " + ex->Message,
NotifyType::Error);
}
catch (task_canceled&)
{
// Do not print anything here - this will usually happen because user closed the client socket.
}
});
}
void
DatagramListenerContext::Receive(
DataReader^ dataReader,
unsigned int strLen,
DataWriter^ dataWriter)
{
if (!strLen)
{
return;
}
auto msg = dataReader->ReadString(strLen);
_notify->NotifyFromAsyncThread("Received data from client: \"" + msg + "\"",
NotifyType::Status);
auto echo = CreateEchoMessage(msg);
EchoMessage(dataWriter, echo);
}
String^
DatagramListenerContext::CreateEchoMessage(
String^ msg)
{
wchar_t buf[256];
auto len = swprintf_s(buf, L"Server%s received data from client : \"%s\"",
_args->ServerName->IsEmpty() ? L"" : (" " + _args->ServerName)->Data(), msg->Data());
len += swprintf_s(&buf[len], _countof(buf) - len, L" - got %d chars",
msg->Length());
return ref new String(buf);
}
void
DatagramListenerContext::EchoMessage(
DataWriter^ dataWriter,
String^ echo)
{
try
{
dataWriter->WriteString(echo);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Echoing failed with error: " + ex->Message,
NotifyType::Error);
}
create_task(dataWriter->StoreAsync()).then(
[this](task<unsigned int> writeTask)
{
try
{
// Try getting all exceptions from the continuation chain above this point.
writeTask.get();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Echo message with an error: " + ex->Message,
NotifyType::Error);
}
});
}
Windows::Storage::Streams::DataWriter^
DatagramListenerContext::GetDataWriter()
{
if (_dataWriter == nullptr)
{
_dataWriter = ref new DataWriter(_outputStream);
}
return _dataWriter;
}

View File

@ -1,79 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include <mutex>
#include "IListenerContext.h"
#include "IAsyncThreadNotify.h"
#include "ListenerArgs.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DatagramListenerContext sealed : public IListenerContext
{
public:
using DatagramSocket = Windows::Networking::Sockets::DatagramSocket;
DatagramListenerContext(IAsyncThreadNotify^ notify, DatagramSocket^ listener, ListenerArgs^ args);
virtual ~DatagramListenerContext();
virtual void Listen_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
virtual Windows::Foundation::IAsyncAction^ CancelIO();
private:
using MessageReceivedEventArgs = Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs;
using MessageHandler = Windows::Foundation::TypedEventHandler<DatagramSocket^, MessageReceivedEventArgs^>;
using DataReader = Windows::Storage::Streams::DataReader;
using DataWriter = Windows::Storage::Streams::DataWriter;
using IOutputStream = Windows::Storage::Streams::IOutputStream;
using Listener = DatagramSocket;
using Args = ListenerArgs;
using mutex_t = std::mutex;
void OnMessage(DatagramSocket^ socket, MessageReceivedEventArgs^ eventArgs);
void Receive(DataReader^, unsigned int strLen, DataWriter^);
String^ CreateEchoMessage(String^ msg);
void EchoMessage(DataWriter^, String^ echo);
DataWriter^ GetDataWriter();
IAsyncThreadNotify^ _notify;
Listener^ _listener;
Args^ _args;
DataWriter^ _dataWriter;
mutable mutex_t _mtx;
// mutex protected data
IOutputStream^ _outputStream;
};
} // namespace ot

View File

@ -1,86 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include "Factory.h"
#include "StreamListenerContext.h"
#include "DatagramListenerContext.h"
#include "StreamClientContext.h"
#include "DatagramClientContext.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Networking::Sockets;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
IListenerContext^
Factory::CreateListenerContext(
IAsyncThreadNotify^ notify,
ListenerArgs^ listenerArgs,
Protocol protocol)
{
if (protocol == Protocol::TCP)
{
auto listener = ref new StreamSocketListener();
return ref new StreamListenerContext(notify, listener, listenerArgs);
}
else
{
auto listener = ref new DatagramSocket();
return ref new DatagramListenerContext(notify, listener, listenerArgs);
}
}
IClientContext^
Factory::CreateClientContext(
IAsyncThreadNotify^ notify,
ClientArgs^ clientArgs,
Protocol protocol)
{
if (protocol == Protocol::TCP)
{
auto client = ref new StreamSocket();
return ref new StreamClientContext(notify, client, clientArgs);
}
else
{
auto client = ref new DatagramSocket();
return ref new DatagramClientContext(notify, client, clientArgs);
}
}

View File

@ -1,49 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "IAsyncThreadNotify.h"
#include "ListenerArgs.h"
#include "IListenerContext.h"
#include "ClientArgs.h"
#include "IClientContext.h"
#include "Protocol.h"
namespace ot
{
class Factory
{
public:
static IListenerContext^ CreateListenerContext(IAsyncThreadNotify^, ListenerArgs^, Protocol);
static IClientContext^ CreateClientContext(IAsyncThreadNotify^, ClientArgs^, Protocol);
};
} // namespace ot

View File

@ -1,45 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public enum class NotifyType
{
Status,
Error,
};
public interface struct IAsyncThreadNotify
{
void NotifyFromAsyncThread(Platform::String^ message, NotifyType type);
};
} // namespace ot

View File

@ -1,43 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public interface struct IClientContext
{
void Connect_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void Send_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e, Platform::String^ input);
Windows::Foundation::IAsyncAction^ CancelIO();
};
} // namespace ot

View File

@ -1,41 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public interface struct IListenerContext
{
void Listen_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
Windows::Foundation::IAsyncAction^ CancelIO();
};
} // namespace ot

View File

@ -1,47 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public interface struct IMainPageUIElements
{
property Windows::UI::Xaml::UIElement^ ThreadGrid
{
Windows::UI::Xaml::UIElement^ get();
}
property Windows::UI::Xaml::UIElement^ TalkGrid
{
Windows::UI::Xaml::UIElement^ get();
}
};
} // namespace ot

View File

@ -1,42 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public ref class ListenerArgs sealed
{
public:
property Platform::String^ ServerName;
property Windows::Networking::HostName^ ServerHostName;
property Platform::String^ ServerPort;
};
} // namespace ot

View File

@ -1,307 +0,0 @@
<!--
Copyright (c) 2016, 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.
-->
<Page
x:Class="ot.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ot"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
IsTabStop="false"
mc:Ignorable="d">
<Grid>
<Grid.Background>
<ImageBrush ImageSource="ms-appx:///Assets/Wide310x150Logo.png" Opacity="0.25" Stretch="Uniform"/>
</Grid.Background>
<!-- Interface List -->
<Grid
x:Name="ThrdGrid"
>
<TextBlock
Text="Thread UX"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="20"
FontSize="50"
/>
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Top"
>
<TextBlock
Text="Interfaces"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="60,90"
FontSize="25"
/>
<Button
x:Name="Talk"
Content="Talk"
Margin="10,0"
/>
</StackPanel>
<ListView
Name="InterfaceList"
Margin="60,130,20,150"
SelectionMode="None">
</ListView>
<!-- Interface Configuration -->
<Grid
x:Name="InterfaceConfiguration"
Background="#B2FFFFFF"
Visibility="Collapsed"
>
<StackPanel
Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
Width="600"
Height="360"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
<TextBlock
Text="Interface Configuration"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="20"
FontSize="25"
/>
<Grid Margin="40,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<TextBlock
Text="Name"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBox
Name="InterfaceConfigName"
Text="Test Network"
Grid.Column="1"
FontSize="18"
VerticalAlignment="Center"
/>
<TextBlock
Text="Key"
FontSize="22"
VerticalAlignment="Center"
Grid.Row="1"
/>
<TextBox
Name="InterfaceConfigKey"
Text="00112233445566778899aabbccddeeff"
Grid.Row="1"
Grid.Column="1"
FontSize="18"
VerticalAlignment="Center"
/>
<TextBlock
Text="Max Children"
FontSize="22"
VerticalAlignment="Center"
Grid.Row="2"
/>
<Slider
Name="InterfaceConfigMaxChildren"
Grid.Row="2"
Grid.Column="1"
Minimum="0"
Maximum="32"
Value="16"
VerticalAlignment="Center"
/>
<TextBlock
Text="Channel"
FontSize="22"
VerticalAlignment="Center"
Grid.Row="3"
/>
<Slider
Name="InterfaceConfigChannel"
Grid.Row="3"
Grid.Column="1"
Minimum="11"
Maximum="24"
Value="11"
VerticalAlignment="Center"
/>
<StackPanel
Grid.Row="5"
Grid.ColumnSpan="2"
HorizontalAlignment="Center"
Orientation="Horizontal">
<Button
Name="InterfaceConfigOkButton"
Content="Ok"
FontSize="22"
Margin="20,0"
/>
<Button
Name="InterfaceConfigCancelButton"
Content="Cancel"
FontSize="22"
Margin="20,0"
/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
<!-- Interface Details -->
<Grid
x:Name="InterfaceDetails"
Background="#B2FFFFFF"
Visibility="Collapsed"
>
<StackPanel
Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
Width="600"
Height="405"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
<TextBlock
Text="Interface Details"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="20"
FontSize="25"
/>
<Grid Margin="40,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<TextBlock
Text="MAC"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceMacAddress"
Text="00:00:00:00:00:00:00:00"
Grid.Column="1"
FontSize="18"
VerticalAlignment="Center"
/>
<TextBlock
Text="ML-EID"
Grid.Row="1"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceML_EID"
Text="::01"
Grid.Row="1"
Grid.Column="1"
FontSize="18"
VerticalAlignment="Center"
/>
<TextBlock
Text="RLOC"
Grid.Row="2"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceRLOC"
Text="::01"
Grid.Row="2"
Grid.Column="1"
FontSize="18"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceNeighborsText"
Text="Neighbors"
Grid.Row="3"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceNeighbors"
Text="0"
Grid.Row="3"
Grid.Column="1"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceChildrenText"
Text="Children"
Grid.Row="4"
FontSize="22"
VerticalAlignment="Center"
/>
<TextBlock
Name="InterfaceChildren"
Text="0"
Grid.Row="4"
Grid.Column="1"
FontSize="22"
VerticalAlignment="Center"
/>
<Button
Name="InterfaceDetailsCloseButton"
Grid.Row="6"
Grid.ColumnSpan="2"
Content="Close"
HorizontalAlignment="Center"
FontSize="22"
/>
</Grid>
</StackPanel>
</Grid>
</Grid>
<local:TalkGrid
x:Name="TlkGrid"
Margin="20"
Visibility="Collapsed"
/>
</Grid>
</Page>

View File

@ -1,419 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include "MainPage.xaml.h"
#include "TalkGrid.xaml.h"
using namespace ot;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
#define GUID_FORMAT L"{%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}"
#define GUID_ARG(guid) guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]
void otLog(PCSTR aFormat, ...)
{
va_list args;
va_start(args, aFormat);
CHAR logString[512] = { 0 };
int charsWritten = vsprintf_s(logString, sizeof(logString), aFormat, args);
if (charsWritten > 0) OutputDebugStringA(logString);
va_end(args);
}
MainPage::MainPage() : _otApi(nullptr)
{
InitializeComponent();
InterfaceConfigCancelButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->InterfaceConfiguration->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
this->_curAdapter = nullptr;
}
);
InterfaceConfigOkButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->InterfaceConfiguration->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
this->ConnectNetwork(_curAdapter);
this->_curAdapter = nullptr;
}
);
InterfaceDetailsCloseButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->InterfaceDetails->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
}
);
Talk->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->ThreadGrid->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
this->TalkGrid->Visibility = Windows::UI::Xaml::Visibility::Visible;
}
);
TlkGrid->Init(this);
}
void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{
Loaded += ref new RoutedEventHandler(this, &MainPage::OnLoaded);
Unloaded += ref new RoutedEventHandler(this, &MainPage::OnUnloaded);
}
void MainPage::OnLoaded(Object^ sender, RoutedEventArgs^ e)
{
try
{
// Initialize api handle
_otApi = ref new otApi();
// Register for state changes
_adapterArrivalToken =
_otApi->AdapterArrival +=
ref new otAdapterArrivalDelegate(
[=](otAdapter^ adapter) {
// Update on the UI thread
this->Dispatcher->RunAsync(
Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler(
[=]() {
this->AddAdapterToList(adapter);
}));
});
// Enumerate the adapter list
auto adapters = _otApi->GetAdapters();
for (auto&& adapter : adapters) {
AddAdapterToList(adapter);
}
}
catch (Exception^)
{
}
}
void MainPage::OnUnloaded(Object^ sender, RoutedEventArgs^ e)
{
if (_otApi)
{
// Unregister
_otApi->AdapterArrival -= _adapterArrivalToken;
// Clear current adapter
_curAdapter = nullptr;
// Remove the adapter list
auto adapters = _otApi->GetAdapters();
for (auto&& adapter : adapters) {
adapter->InvokeAdapterRemoval();
}
// Free the api handle
_otApi = nullptr;
}
}
void MainPage::OnResuming()
{
}
void MainPage::ShowInterfaceDetails(otAdapter^ adapter)
{
try
{
InterfaceMacAddress->Text = otApi::MacToString(adapter->ExtendedAddress);
InterfaceML_EID->Text = adapter->MeshLocalEid->ToString();
InterfaceRLOC->Text = otApi::Rloc16ToString(adapter->Rloc16);
if (adapter->State > otThreadState::Child)
{
uint8_t index = 0;
otChildInfo childInfo;
while (OT_ERROR_NONE == otThreadGetChildInfoByIndex((otInstance*)(void*)adapter->RawHandle, index, &childInfo))
{
index++;
}
WCHAR szText[64] = { 0 };
swprintf_s(szText, 64, L"%d", index);
InterfaceChildren->Text = ref new String(szText);
InterfaceNeighbors->Text = L"unknown";
InterfaceNeighbors->Visibility = Windows::UI::Xaml::Visibility::Visible;
InterfaceNeighborsText->Visibility = Windows::UI::Xaml::Visibility::Visible;
InterfaceChildren->Visibility = Windows::UI::Xaml::Visibility::Visible;
InterfaceChildrenText->Visibility = Windows::UI::Xaml::Visibility::Visible;
}
// Show the details
InterfaceDetails->Visibility = Windows::UI::Xaml::Visibility::Visible;
}
catch (Exception^)
{
}
}
void MainPage::AddAdapterToList(otAdapter^ adapter)
{
try
{
GUID interfaceGuid = adapter->InterfaceGuid;
WCHAR szName[256] = { 0 };
swprintf_s(szName, 256, GUID_FORMAT, GUID_ARG(interfaceGuid));
auto InterfaceStackPanel = ref new StackPanel();
InterfaceStackPanel->Name = ref new String(szName);
InterfaceStackPanel->Orientation = Orientation::Horizontal;
otLog("%S arrival!\n", InterfaceStackPanel->Name->Data());
// Basic description text
auto InterfaceTextBlock = ref new TextBlock();
InterfaceTextBlock->Text = ref new String(L"openthread interface");
InterfaceTextBlock->FontSize = 16;
InterfaceTextBlock->Margin = Thickness(10);
InterfaceTextBlock->TextWrapping = TextWrapping::Wrap;
InterfaceStackPanel->Children->Append(InterfaceTextBlock);
// Connect button
auto ConnectButton = ref new Button();
ConnectButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
ConnectButton->Content = ref new String(L"Connect");
ConnectButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->_curAdapter = adapter;
this->InterfaceConfiguration->Visibility = Windows::UI::Xaml::Visibility::Visible;
}
);
InterfaceStackPanel->Children->Append(ConnectButton);
// Details button
auto DetailsButton = ref new Button();
DetailsButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
DetailsButton->Content = ref new String(L"Details");
DetailsButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->ShowInterfaceDetails(adapter);
}
);
InterfaceStackPanel->Children->Append(DetailsButton);
// Disconnect button
auto DisconnectButton = ref new Button();
DisconnectButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
DisconnectButton->Content = ref new String(L"Disconnect");
DisconnectButton->Click +=
ref new RoutedEventHandler(
[=](Platform::Object^, RoutedEventArgs^) {
this->DisconnectNetwork(adapter);
}
);
InterfaceStackPanel->Children->Append(DisconnectButton);
// Delegate for handling role changes
auto OnAdapterRoleChanged =
[=]() {
GUID interfaceGuid = adapter->InterfaceGuid;
auto state = adapter->State;
auto stateStr = otApi::ThreadStateToString(adapter->State);
WCHAR szText[256] = { 0 };
swprintf_s(szText, 256, GUID_FORMAT L"\r\n\t%s\r\n\t%s",
GUID_ARG(interfaceGuid),
stateStr->Data(),
state >= otThreadState::Child ?
adapter->MeshLocalEid->ToString()->Data() :
L"");
InterfaceTextBlock->Text = ref new String(szText);
otLog("%S state = %S\n", InterfaceStackPanel->Name->Data(), stateStr->Data());
if (state == otThreadState::Disabled)
{
ConnectButton->Visibility = Windows::UI::Xaml::Visibility::Visible;
DetailsButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
DisconnectButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
}
else
{
ConnectButton->Visibility = Windows::UI::Xaml::Visibility::Collapsed;
DetailsButton->Visibility = Windows::UI::Xaml::Visibility::Visible;
DisconnectButton->Visibility = Windows::UI::Xaml::Visibility::Visible;
}
};
// Register for role change callbacks
auto adapterRoleChangedToken =
adapter->NetRoleChanged +=
ref new otNetRoleChangedDelegate(
[=](auto sender) {
// Update the text on the UI thread
this->Dispatcher->RunAsync(
Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler(
[=]() {
OnAdapterRoleChanged();
}
)
);
}
);
// Register for address change callbacks
auto adapterMeshLocalAddresChangedToken =
adapter->IpMeshLocalAddresChanged +=
ref new otIpMeshLocalAddresChangedDelegate(
[=](auto sender) {
// Update the text on the UI thread
this->Dispatcher->RunAsync(
Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler(
[=]() {
OnAdapterRoleChanged();
}
)
);
}
);
// Register for adapter removal callbacks
Windows::Foundation::EventRegistrationToken adapterRemovalToken;
adapterRemovalToken =
adapter->AdapterRemoval +=
ref new otAdapterRemovalDelegate(
[=](otAdapter^ adapter) {
// Unregister
adapter->NetRoleChanged -= adapterRoleChangedToken;
adapter->IpMeshLocalAddresChanged -= adapterMeshLocalAddresChangedToken;
adapter->AdapterRemoval -= adapterRemovalToken;
// Remove the item on the UI thread
this->Dispatcher->RunAsync(
Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler(
[=]() {
for (uint32_t i = 0; i < this->InterfaceList->Items->Size; i++)
{
auto Item = dynamic_cast<StackPanel^>(this->InterfaceList->Items->GetAt(i));
if (Item == InterfaceStackPanel)
{
otLog("%S removal!\n", InterfaceStackPanel->Name->Data());
this->InterfaceList->Items->RemoveAt(i);
break;
}
}
}));
});
// Trigger the initial role change
OnAdapterRoleChanged();
// Add the interface to the list
InterfaceList->Items->Append(InterfaceStackPanel);
}
catch (Exception^)
{
}
}
void MainPage::ConnectNetwork(otAdapter^ adapter)
{
try
{
GUID interfaceGuid = adapter->InterfaceGuid;
WCHAR szName[256] = { 0 };
swprintf_s(szName, 256, GUID_FORMAT, GUID_ARG(interfaceGuid));
otLog("%S starting connection...\n", szName);
// Configure
adapter->NetworkName = InterfaceConfigName->Text;
adapter->MasterKey = InterfaceConfigKey->Text;
adapter->Channel = (uint8_t)InterfaceConfigChannel->Value;
adapter->MaxAllowedChildren = (uint8_t)InterfaceConfigMaxChildren->Value;
adapter->PanId = 0x4567;
// Bring up the interface and start the Thread logic
adapter->IpEnabled = true;
adapter->ThreadEnabled = true;
}
catch (Exception^)
{
}
}
void MainPage::DisconnectNetwork(otAdapter^ adapter)
{
try
{
GUID interfaceGuid = adapter->InterfaceGuid;
WCHAR szName[256] = { 0 };
swprintf_s(szName, 256, GUID_FORMAT, GUID_ARG(interfaceGuid));
otLog("%S disconnecting...\n", szName);
// Stop the Thread network and bring down the interface
adapter->ThreadEnabled = false;
adapter->IpEnabled = false;
}
catch (Exception^)
{
}
}
Windows::UI::Xaml::UIElement^
MainPage::ThreadGrid::get()
{
return ThrdGrid;
}
Windows::UI::Xaml::UIElement^
MainPage::TalkGrid::get()
{
return TlkGrid;
}

View File

@ -1,77 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "MainPage.g.h"
#include "IMainPageUIElements.h"
namespace ot
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public ref class MainPage sealed : public IMainPageUIElements
{
public:
MainPage();
void OnResuming();
void ConnectNetwork(otAdapter^ adapter);
void ShowInterfaceDetails(otAdapter^ adapter);
void DisconnectNetwork(otAdapter^ adapter);
property Windows::UI::Xaml::UIElement^ ThreadGrid
{
virtual Windows::UI::Xaml::UIElement^ get();
}
property Windows::UI::Xaml::UIElement^ TalkGrid
{
virtual Windows::UI::Xaml::UIElement^ get();
}
protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
private:
void OnLoaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void OnUnloaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void AddAdapterToList(otAdapter^ adapter);
otApi^ _otApi;
Windows::Foundation::EventRegistrationToken _adapterArrivalToken;
otAdapter^ _curAdapter;
};
}

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
<Identity Name="7926e3f9-835e-421c-94c1-2812f3569f4a" Publisher="CN=nibanks" Version="1.0.12.0" />
<mp:PhoneIdentity PhoneProductId="7926e3f9-835e-421c-94c1-2812f3569f4a" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>OpenThread</DisplayName>
<PublisherDisplayName>OpenThread</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="ot.App">
<uap:VisualElements DisplayName="OpenThread" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="OpenThread" BackgroundColor="white">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="white" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer" />
<Capability Name="internetClientServer" />
</Capabilities>
</Package>

View File

@ -1,40 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
public enum class Protocol
{
TCP,
UDP,
};
} // namespace ot

View File

@ -1,26 +0,0 @@
# OpenThread App for Windows #
This sample app provides an example of how to interface with the OpenThread API and talk to each other in a
[Universal Windows App](https://developer.microsoft.com/en-us/windows/apps). The app is written in C++ /CX
and provides a simple wrapper around the OpenThread API, hiding the raw C/C++ interface.
The main page of the App is a list of the available interfaces, their current connection state,
their current ML-EID IPv6 address, and buttons to connect/disconnect and to view some more details.
![Interface List](../../../doc/images/windows-app-interface-list.png)
The details list provides some more information, including extended MAC address, RLOC16 and information
about the current children.
![Interface List](../../../doc/images/windows-app-details.png)
The "Talk" button of main page switches the user interface to the talk fuctionality. This app acts
either as a server or a client role and talks to each other over a TCP or a UDP protocol.
The server listens to the clients.
![Talk Functionality](../../../doc/images/windows-app-talk-server.png)
The client sends a message to the server and the server echos that message back to the client.
![Talk Functionality](../../../doc/images/windows-app-talk-client.png)

View File

@ -1,106 +0,0 @@
<!--
Copyright (c) 2016, 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.
-->
<UserControl
x:Class="ot.ServerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ot"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
Text="Server Name :"
/>
<TextBox
Grid.Row="0"
Grid.Column="2"
x:Name="ServerName"
Width="300"
HorizontalAlignment="Left"
/>
<TextBlock
Grid.Row="2"
Grid.Column="0"
Text="Server IP :"
/>
<TextBox
Grid.Row="2"
Grid.Column="2"
x:Name="ServerIP"
MinWidth="500"
/>
<TextBlock
Grid.Row="4"
Grid.Column="0"
Text="Server Port :"
/>
<TextBox
Grid.Row="4"
Grid.Column="2"
x:Name="ServerPort"
Width="100"
HorizontalAlignment="Left"
/>
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Top"
Grid.Row="6"
Grid.Column="0"
Grid.ColumnSpan="3"
>
<Button
Width="75"
Content="Listen"
Click="Listen_Click"
Margin="0,0,75,0"
/>
<Button
Width="75"
Content="Exit"
Click="Exit_Click"
/>
</StackPanel>
</Grid>
</UserControl>

View File

@ -1,124 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include <algorithm>
#include "ServerControl.xaml.h"
#include "Factory.h"
#include "TalkHelper.h"
using namespace ot;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
ServerControl::ServerControl()
{
InitializeComponent();
ServerPort->Text = DEF_PORT.ToString();
}
void
ServerControl::Init(
IAsyncThreadNotify^ notify,
IMainPageUIElements^ mainPageUIElements)
{
_notify = std::move(notify);
_mainPageUIElements = std::move(mainPageUIElements);
}
void
ServerControl::ProtocolChanged(
Protocol protocol)
{
_protocol = protocol;
}
void
ServerControl::Listen_Click(
Object^ sender,
RoutedEventArgs^ e)
{
try
{
auto listenerArgs = ref new ListenerArgs();
listenerArgs->ServerName = ServerName->Text;
auto serverIP = ServerIP->Text;
if (serverIP->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Server IP");
}
// check valid chars of Ipv6 Address
if (!TalkHelper::AllValidIpv6Chars(serverIP->Data(), serverIP->Data() + serverIP->Length()))
{
throw Exception::CreateException(E_INVALIDARG, "Not a valid Server IPv6 address");
}
listenerArgs->ServerHostName = ref new HostName(serverIP);
if (ServerPort->Text->IsEmpty())
{
throw Exception::CreateException(E_INVALIDARG, "No Server Port");
}
listenerArgs->ServerPort = ServerPort->Text;
auto listenerContext = Factory::CreateListenerContext(_notify, listenerArgs, _protocol);
listenerContext->Listen_Click(sender, e);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Listening failed with input error: " + ex->Message,
NotifyType::Error);
}
}
void
ServerControl::Exit_Click(
Object^ sender,
RoutedEventArgs^ e)
{
_mainPageUIElements->TalkGrid->Visibility = Xaml::Visibility::Collapsed;
_mainPageUIElements->ThreadGrid->Visibility = Xaml::Visibility::Visible;
}

View File

@ -1,62 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "ServerControl.g.h"
#include "TalkConsts.h"
#include "IAsyncThreadNotify.h"
#include "IMainPageUIElements.h"
#include "Protocol.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class ServerControl sealed
{
public:
ServerControl();
void Init(IAsyncThreadNotify^ notify, IMainPageUIElements^ mainPageUIElements);
void ProtocolChanged(Protocol protocol);
private:
static constexpr unsigned short DEF_PORT = TalkConsts::DEF_SERVER_PORT;
void Listen_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
void Exit_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
IAsyncThreadNotify^ _notify;
IMainPageUIElements^ _mainPageUIElements;
Protocol _protocol;
};
} // namespace ot

View File

@ -1,325 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include "StreamClientContext.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Networking::Sockets;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
StreamClientContext::StreamClientContext(
IAsyncThreadNotify^ notify,
StreamSocket^ client,
ClientArgs^ args) :
_notify{ std::move(notify) },
_client{ std::move(client) },
_args{ std::move(args) }
{
}
StreamClientContext::~StreamClientContext()
{
// A Client can be closed in two ways:
// - explicitly: using the 'delete' keyword (client is closed even if there are outstanding references to it).
// - implicitly: removing the last reference to it (i.e., falling out-of-scope).
//
// When a Socket is closed implicitly, it can take several seconds for the local port being used
// by it to be freed/reclaimed by the lower networking layers. During that time, other sockets on the machine
// will not be able to use the port. Thus, it is strongly recommended that Socket instances be explicitly
// closed before they go out of scope(e.g., before application exit). The call below explicitly closes the socket.
if (_client != nullptr)
{
delete _client;
_client = nullptr;
}
}
void
StreamClientContext::Connect_Click(
Object^ sender,
RoutedEventArgs^ e)
{
task<void> removeContext;
if (CoreApplication::Properties->HasKey("clientContext"))
{
auto clientContext = dynamic_cast<IClientContext^>(
CoreApplication::Properties->Lookup("clientContext"));
if (clientContext == nullptr)
{
throw ref new FailureException(L"No clientContext");
}
removeContext = create_task(clientContext->CancelIO()).then(
[]()
{
CoreApplication::Properties->Remove("clientContext");
});
}
else
{
removeContext = create_task([]() {});
}
removeContext.then([this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
// Events cannot be hooked up directly to the ScenarioInput2 object, as the object can fall out-of-scope and be
// deleted. This would render any event hooked up to the object ineffective. The ClientContext guarantees that
// both the socket and object that serves its events have the same lifetime.
CoreApplication::Properties->Insert("clientContext", this);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Remove clientContext error: " + ex->Message,
NotifyType::Error);
}
catch (task_canceled&)
{
}
}).then([this]()
{
auto endpointPair = ref new EndpointPair(_args->ClientHostName, _args->ClientPort,
_args->ServerHostName, _args->ServerPort);
_notify->NotifyFromAsyncThread("Start connecting", NotifyType::Status);
create_task(_client->ConnectAsync(endpointPair)).then(
[this, endpointPair](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
_notify->NotifyFromAsyncThread(
"Connect from " + endpointPair->LocalHostName->CanonicalName +
" to " + endpointPair->RemoteHostName->CanonicalName,
NotifyType::Status);
OnConnection(_client);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Start binding failed with error: " + ex->Message,
NotifyType::Error);
CoreApplication::Properties->Remove("clientContext");
}
catch (task_canceled&)
{
CoreApplication::Properties->Remove("clientContext");
}
});
});
}
void
ot::StreamClientContext::Send_Click(
Platform::Object^ sender,
Windows::UI::Xaml::RoutedEventArgs^ e,
Platform::String^ input)
{
SendMessage(GetDataWriter(), input);
}
IAsyncAction^
ot::StreamClientContext::CancelIO()
{
return _client->CancelIOAsync();
}
void
StreamClientContext::OnConnection(
StreamSocket^ streamSocket)
{
SetConnected(true);
ReceiveLoop(streamSocket, GetDataReader());
}
void
StreamClientContext::SetConnected(
bool connected)
{
_connected = connected;
}
bool
StreamClientContext::IsConnected() const
{
return _connected;
}
void
StreamClientContext::ReceiveLoop(
StreamSocket^ streamSocket,
DataReader^ dataReader)
{
// Read first 4 bytes (length of the subsequent string).
create_task(dataReader->LoadAsync(sizeof(UINT32))).then(
[this, dataReader](unsigned int size)
{
if (size < sizeof(UINT32))
{
// The underlying socket was closed before we were able to read the whole data.
cancel_current_task();
}
auto strLen = dataReader->ReadUInt32();
return create_task(dataReader->LoadAsync(strLen)).then(
[this, dataReader, strLen](unsigned int actualStrLen)
{
if (actualStrLen != strLen)
{
// The underlying socket was closed before we were able to read the whole data.
cancel_current_task();
}
Receive(dataReader, strLen);
});
}).then([this, streamSocket, dataReader](task<void> previousTask)
{
try
{
// Try getting all exceptions from the continuation chain above this point.
previousTask.get();
// Everything went ok, so try to receive another string. The receive will continue until the stream is
// broken (i.e. peer closed the socket).
ReceiveLoop(streamSocket, dataReader);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Read stream failed with error: " + ex->Message,
NotifyType::Error);
// Explicitly close the socket.
delete streamSocket;
}
catch (task_canceled&)
{
// Do not print anything here - this will usually happen because user closed the client socket.
// Explicitly close the socket.
delete streamSocket;
}
});
}
void
StreamClientContext::Receive(
DataReader^ dataReader,
unsigned int strLen)
{
if (!strLen)
{
return;
}
auto msg = dataReader->ReadString(strLen);
_notify->NotifyFromAsyncThread("Received data from server: \"" + msg + "\"",
NotifyType::Status);
}
void
StreamClientContext::SendMessage(
DataWriter^ dataWriter,
String^ msg)
{
if (!IsConnected())
{
_notify->NotifyFromAsyncThread("This socket is not yet connected.", NotifyType::Error);
return;
}
try
{
dataWriter->WriteUInt32(msg->Length());
dataWriter->WriteString(msg);
_notify->NotifyFromAsyncThread("Sending - " + msg, NotifyType::Status);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Sending failed with error: " + ex->Message, NotifyType::Error);
}
// Write the locally buffered data to the network. Please note that write operation will succeed
// even if the server is not listening.
create_task(dataWriter->StoreAsync()).then(
[this](task<unsigned int> writeTask)
{
try
{
// Try getting an exception.
writeTask.get();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Send failed with error: " + ex->Message, NotifyType::Error);
}
});
}
Windows::Storage::Streams::DataReader^
StreamClientContext::GetDataReader()
{
if (_dataReader == nullptr)
{
_dataReader = ref new DataReader(_client->InputStream);
}
return _dataReader;
}
Windows::Storage::Streams::DataWriter^
StreamClientContext::GetDataWriter()
{
if (_dataWriter == nullptr)
{
_dataWriter = ref new DataWriter(_client->OutputStream);
}
return _dataWriter;
}

View File

@ -1,79 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "IClientContext.h"
#include "IAsyncThreadNotify.h"
#include "ClientArgs.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class StreamClientContext sealed : public IClientContext
{
public:
using StreamSocket = Windows::Networking::Sockets::StreamSocket;
StreamClientContext(IAsyncThreadNotify^ notify, StreamSocket^ client, ClientArgs^ args);
virtual ~StreamClientContext();
virtual void Connect_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
virtual void Send_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e, Platform::String^ input);
virtual Windows::Foundation::IAsyncAction^ CancelIO();
private:
using DataReader = Windows::Storage::Streams::DataReader;
using DataWriter = Windows::Storage::Streams::DataWriter;
using Args = ClientArgs;
void OnConnection(StreamSocket^);
void SetConnected(bool connected);
bool IsConnected() const;
void ReceiveLoop(StreamSocket^, DataReader^);
void Receive(DataReader^, unsigned int strLen);
void SendMessage(DataWriter^, String^ msg);
DataReader^ GetDataReader();
DataWriter^ GetDataWriter();
IAsyncThreadNotify^ _notify;
StreamSocket^ _client;
Args^ _args;
bool _connected = false;
DataReader^ _dataReader;
DataWriter^ _dataWriter;
};
} // namespace ot

View File

@ -1,288 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include <utility>
#include "StreamListenerContext.h"
using namespace ot;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::ApplicationModel::Core;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::Networking::Sockets;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
StreamListenerContext::StreamListenerContext(
IAsyncThreadNotify^ notify,
StreamSocketListener^ listener,
ListenerArgs^ args) :
_notify{ std::move(notify) },
_listener{ std::move(listener) },
_args{ std::move(args) }
{
}
StreamListenerContext::~StreamListenerContext()
{
// A Listener can be closed in two ways:
// - explicitly: using the 'delete' keyword (listener is closed even if there are outstanding references to it).
// - implicitly: removing the last reference to it (i.e., falling out-of-scope).
//
// When a Socket is closed implicitly, it can take several seconds for the local port being used
// by it to be freed/reclaimed by the lower networking layers. During that time, other sockets on the machine
// will not be able to use the port. Thus, it is strongly recommended that Socket instances be explicitly
// closed before they go out of scope(e.g., before application exit). The call below explicitly closes the socket.
if (_listener != nullptr)
{
delete _listener;
_listener = nullptr;
}
}
void
StreamListenerContext::Listen_Click(
Object^ sender,
RoutedEventArgs^ e)
{
task<void> removeContext;
if (CoreApplication::Properties->HasKey("listenerContext"))
{
auto listenerContext = dynamic_cast<IListenerContext^>(
CoreApplication::Properties->Lookup("listenerContext"));
if (listenerContext == nullptr)
{
throw ref new FailureException(L"No listenerContext");
}
removeContext = create_task(listenerContext->CancelIO()).then(
[]()
{
CoreApplication::Properties->Remove("listenerContext");
});
}
else
{
removeContext = create_task([]() {});
}
_listener->ConnectionReceived += ref new ConnectionHandler(
this, &StreamListenerContext::OnConnection);
removeContext.then([this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
// Events cannot be hooked up directly to the ScenarioInput1 object, as the object can fall out-of-scope and be
// deleted. This would render any event hooked up to the object ineffective. The ListenerContext guarantees that
// both the listener and object that serves its events have the same lifetime.
CoreApplication::Properties->Insert("listenerContext", this);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Remove listenerContext error: " + ex->Message,
NotifyType::Error);
}
catch (task_canceled&)
{
}
}).then([this]()
{
_notify->NotifyFromAsyncThread("Start listening", NotifyType::Status);
create_task(_listener->BindEndpointAsync(_args->ServerHostName, _args->ServerPort)).then(
[this](task<void> prevTask)
{
try
{
// Try getting an exception.
prevTask.get();
_notify->NotifyFromAsyncThread(
"Listening on address " + _args->ServerHostName->CanonicalName,
NotifyType::Status);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread(
"Start listening failed with error: " + ex->Message,
NotifyType::Error);
CoreApplication::Properties->Remove("listenerContext");
}
});
});
}
IAsyncAction^
StreamListenerContext::CancelIO()
{
return _listener->CancelIOAsync();
}
void
StreamListenerContext::OnConnection(
StreamSocketListener^ listener,
ConnectionReceivedEventArgs^ args)
{
auto dataReader = ref new DataReader(args->Socket->InputStream);
auto dataWriter = ref new DataWriter(args->Socket->OutputStream);
ReceiveLoop(args->Socket, dataReader, dataWriter);
}
void
StreamListenerContext::ReceiveLoop(
StreamSocket^ streamSocket,
DataReader^ dataReader,
DataWriter^ dataWriter)
{
// Read first 4 bytes (length of the subsequent string).
create_task(dataReader->LoadAsync(sizeof(UINT32))).then(
[this, streamSocket, dataReader, dataWriter](unsigned int size)
{
if (size < sizeof(UINT32))
{
// The underlying socket was closed before we were able to read the whole data.
cancel_current_task();
}
unsigned int strLen = dataReader->ReadUInt32();
return create_task(dataReader->LoadAsync(strLen)).then(
[this, dataReader, dataWriter, strLen](unsigned int actualStrLen)
{
if (actualStrLen != strLen)
{
// The underlying socket was closed before we were able to read the whole data.
cancel_current_task();
}
Receive(dataReader, strLen, dataWriter);
});
}).then([this, streamSocket, dataReader, dataWriter](task<void> previousTask)
{
try
{
// Try getting all exceptions from the continuation chain above this point.
previousTask.get();
// Everything went ok, so try to receive another string. The receive will continue until the stream is
// broken (i.e. peer closed the socket).
ReceiveLoop(streamSocket, dataReader, dataWriter);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Read stream failed with error: " + ex->Message,
NotifyType::Error);
// Explicitly close the socket.
delete streamSocket;
}
catch (task_canceled&)
{
// Do not print anything here - this will usually happen because user closed the client socket.
// Explicitly close the socket.
delete streamSocket;
}
});
}
void
StreamListenerContext::Receive(
DataReader^ dataReader,
unsigned int strLen,
DataWriter^ dataWriter)
{
if (!strLen)
{
return;
}
auto msg = dataReader->ReadString(strLen);
_notify->NotifyFromAsyncThread("Received data from client: \"" + msg + "\"",
NotifyType::Status);
auto echo = CreateEchoMessage(msg);
EchoMessage(dataWriter, echo);
}
String^
StreamListenerContext::CreateEchoMessage(
String^ msg)
{
wchar_t buf[256];
auto len = swprintf_s(buf, L"Server%s received data from client : \"%s\"",
_args->ServerName->IsEmpty() ? L"" : (" " + _args->ServerName)->Data(), msg->Data());
len += swprintf_s(&buf[len], _countof(buf) - len, L" - got %d chars",
msg->Length());
return ref new String(buf);
}
void
StreamListenerContext::EchoMessage(
DataWriter^ dataWriter,
String^ echo)
{
try
{
dataWriter->WriteUInt32(echo->Length());
dataWriter->WriteString(echo);
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Echoing failed with error: " + ex->Message,
NotifyType::Error);
}
create_task(dataWriter->StoreAsync()).then(
[this](task<unsigned int> writeTask)
{
try
{
// Try getting all exceptions from the continuation chain above this point.
writeTask.get();
}
catch (Exception^ ex)
{
_notify->NotifyFromAsyncThread("Echo message with an error: " + ex->Message,
NotifyType::Error);
}
});
}

View File

@ -1,71 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "IListenerContext.h"
#include "IAsyncThreadNotify.h"
#include "ListenerArgs.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class StreamListenerContext sealed : public IListenerContext
{
public:
using StreamSocketListener = Windows::Networking::Sockets::StreamSocketListener;
StreamListenerContext(IAsyncThreadNotify^ notify, StreamSocketListener^ listener, ListenerArgs^ args);
virtual ~StreamListenerContext();
virtual void Listen_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
virtual Windows::Foundation::IAsyncAction^ CancelIO();
private:
using ConnectionReceivedEventArgs = Windows::Networking::Sockets::StreamSocketListenerConnectionReceivedEventArgs;
using ConnectionHandler = Windows::Foundation::TypedEventHandler<StreamSocketListener^, ConnectionReceivedEventArgs^>;
using DataReader = Windows::Storage::Streams::DataReader;
using DataWriter = Windows::Storage::Streams::DataWriter;
using Listener = StreamSocketListener;
using StreamSocket = Windows::Networking::Sockets::StreamSocket;
using Args = ListenerArgs;
void OnConnection(StreamSocketListener^ listener, ConnectionReceivedEventArgs^ args);
void ReceiveLoop(StreamSocket^, DataReader^, DataWriter^);
void Receive(DataReader^, unsigned int strLen, DataWriter^);
String^ CreateEchoMessage(String^ msg);
void EchoMessage(DataWriter^, String^ echo);
IAsyncThreadNotify^ _notify;
Listener^ _listener;
Args^ _args;
};
} // namespace ot

View File

@ -1,40 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
namespace ot
{
struct TalkConsts
{
static constexpr unsigned short DEF_SERVER_PORT = 51000;
static constexpr unsigned short DEF_CLIENT_PORT_INIT = 51100;
};
} // namespace ot

View File

@ -1,108 +0,0 @@
<!--
Copyright (c) 2016, 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.
-->
<Grid
x:Class="ot.TalkGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ot"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Orientation="Horizontal"
VerticalAlignment="Top"
>
<RadioButton
x:Name="TcpRadio"
Content="TCP"
GroupName="ProtocolGroup"
Checked="Protocol_Changed"
Margin="0,0,20,0"
/>
<RadioButton
x:Name="UdpRadio"
Content="UDP"
GroupName="ProtocolGroup"
Checked="Protocol_Changed"
Margin="0,0,20,0"
/>
</StackPanel>
<StackPanel
Grid.Row="2"
Orientation="Horizontal"
VerticalAlignment="Top"
>
<RadioButton
x:Name="ServerRadio"
Content="Server"
GroupName="RoleGroup"
Checked="Role_Changed"
Margin="0,0,20,0"
/>
<RadioButton
x:Name="ClientRadio"
Content="Client"
GroupName="RoleGroup"
Checked="Role_Changed"
Margin="0,0,20,0"
/>
</StackPanel>
<local:ServerControl
x:Name="ServerRole"
Grid.Row="4"
Visibility="Collapsed"
/>
<local:ClientControl
x:Name="ClientRole"
Grid.Row="4"
Visibility="Collapsed"
/>
<Border
x:Name="StatusBorder"
Grid.Row="6"
>
<TextBlock
x:Name="StatusBlock"
FontWeight="Bold"
Text=""
FontSize="16"
TextWrapping="Wrap"
MaxHeight="80"
/>
</Border>
</Grid>

View File

@ -1,150 +0,0 @@
/*
* Copyright (c) 2016, 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 "pch.h"
#include "TalkGrid.xaml.h"
#include "ClientControl.xaml.h"
#include "ServerControl.xaml.h"
using namespace ot;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI;
using namespace Windows::UI::Core;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
TalkGrid::TalkGrid()
{
InitializeComponent();
TcpRadio->IsChecked = true;
ServerRadio->IsChecked = true;
}
void
TalkGrid::Init(
IMainPageUIElements^ mainPageUIElements)
{
ServerRole->Init(this, mainPageUIElements);
ClientRole->Init(this, mainPageUIElements);
}
void
TalkGrid::NotifyFromAsyncThread(
String^ message,
NotifyType type)
{
Dispatcher->RunAsync(CoreDispatcherPriority::Normal,
ref new DispatchedHandler([this, message, type]()
{
Notify(message, type);
}));
}
void
TalkGrid::Notify(
String^ message,
NotifyType type)
{
switch (type)
{
case NotifyType::Status:
StatusBorder->Background = ref new SolidColorBrush(Colors::Green);
break;
case NotifyType::Error:
StatusBorder->Background = ref new SolidColorBrush(Colors::Red);
break;
default:
break;
}
StatusBlock->Text = message;
// Collapse the StatusBlock if it has no text to conserve real estate.
if (StatusBlock->Text != "")
{
StatusBorder->Visibility = Xaml::Visibility::Visible;
}
else
{
StatusBorder->Visibility = Xaml::Visibility::Collapsed;
}
}
void
TalkGrid::Protocol_Changed(
Object^ sender,
RoutedEventArgs^ e)
{
auto radioBtn = dynamic_cast<RadioButton^>(sender);
if (!radioBtn)
{
return;
}
auto protocol = (radioBtn == TcpRadio) ? Protocol::TCP : Protocol::UDP;
ServerRole->ProtocolChanged(protocol);
ClientRole->ProtocolChanged(protocol);
}
void
TalkGrid::Role_Changed(
Object^ sender,
RoutedEventArgs^ e)
{
auto radioBtn = dynamic_cast<RadioButton^>(sender);
if (!radioBtn)
{
return;
}
if (radioBtn == ServerRadio)
{
// switch to server role UI
ClientRole->Visibility = Xaml::Visibility::Collapsed;
ServerRole->Visibility = Xaml::Visibility::Visible;
}
else
{
// switch to client role UI
ServerRole->Visibility = Xaml::Visibility::Collapsed;
ClientRole->Visibility = Xaml::Visibility::Visible;
}
}

View File

@ -1,61 +0,0 @@
/*
* Copyright (c) 2016, 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.
*/
#pragma once
#include "TalkGrid.g.h"
#include "IAsyncThreadNotify.h"
#include "IMainPageUIElements.h"
#include "Protocol.h"
namespace ot
{
[Windows::Foundation::Metadata::WebHostHidden]
public ref class TalkGrid sealed : public IAsyncThreadNotify
{
public:
TalkGrid();
void Init(IMainPageUIElements^ mainPageUIElements);
// IAsyncThreadMessage
virtual void NotifyFromAsyncThread(String^ message, NotifyType type);
void Notify(String^ message, NotifyType type);
private:
// change protocol
// TCP <-> UDP
void Protocol_Changed(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
// change role from server client (or vice versa)
void Role_Changed(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
};
} // namespace ot

Some files were not shown because too many files have changed in this diff Show More