From c90eac18b5d89c4bdb4b447315e879d715b93dfb Mon Sep 17 00:00:00 2001 From: logzhan <719901725@qq.com> Date: Mon, 26 Sep 2022 14:07:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96GeekTrack=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E5=A4=9A=E8=AE=BE=E5=A4=87=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8C=89=E7=85=A7=E8=AE=BE=E5=A4=87ID?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=A7=BF=E6=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3.Docs/GeekTrack SDK设计.xmind | Bin 0 -> 89890 bytes .../{UDP.sln => GeekTrackSDK.sln} | 14 +- .../{UDP => Project}/GeekTrack.cpp | 0 .../GeekTrackSDK.vcxproj} | 0 .../GeekTrackSDK/{UDP => Project}/ReadMe.txt | 0 .../{UDP => Project}/UDP.vcxproj.filters | 0 .../GeekTrackSDK/{UDP => Project}/stdafx.cpp | 0 .../GeekTrackSDK/{UDP => Project}/stdafx.h | 0 .../GeekTrackSDK/{UDP => Project}/targetver.h | 0 4.Software/GeekTrackSDK_V1.0/.gitignore | 378 ++++++++++++++++++ 4.Software/GeekTrackSDK_V1.0/GeekTrackSDK.sln | 37 ++ .../GeekTrackSDK_V1.0/Project/GeekTrack.cpp | 90 +++++ .../Project/GeekTrackSDK.vcxproj | 237 +++++++++++ .../GeekTrackSDK_V1.0/Project/ReadMe.txt | 30 ++ .../Project/UDP.vcxproj.filters | 39 ++ .../GeekTrackSDK_V1.0/Project/stdafx.cpp | 8 + 4.Software/GeekTrackSDK_V1.0/Project/stdafx.h | 15 + .../GeekTrackSDK_V1.0/Project/targetver.h | 8 + .../GeekTrackSDK_V1.0/Src/GeekTrackSDK.h | 16 + 19 files changed, 865 insertions(+), 7 deletions(-) create mode 100644 3.Docs/GeekTrack SDK设计.xmind rename 4.Software/GeekTrackSDK/{UDP.sln => GeekTrackSDK.sln} (71%) rename 4.Software/GeekTrackSDK/{UDP => Project}/GeekTrack.cpp (100%) rename 4.Software/GeekTrackSDK/{UDP/UDP.vcxproj => Project/GeekTrackSDK.vcxproj} (100%) rename 4.Software/GeekTrackSDK/{UDP => Project}/ReadMe.txt (100%) rename 4.Software/GeekTrackSDK/{UDP => Project}/UDP.vcxproj.filters (100%) rename 4.Software/GeekTrackSDK/{UDP => Project}/stdafx.cpp (100%) rename 4.Software/GeekTrackSDK/{UDP => Project}/stdafx.h (100%) rename 4.Software/GeekTrackSDK/{UDP => Project}/targetver.h (100%) create mode 100644 4.Software/GeekTrackSDK_V1.0/.gitignore create mode 100644 4.Software/GeekTrackSDK_V1.0/GeekTrackSDK.sln create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/GeekTrack.cpp create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/GeekTrackSDK.vcxproj create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/ReadMe.txt create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/UDP.vcxproj.filters create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/stdafx.cpp create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/stdafx.h create mode 100644 4.Software/GeekTrackSDK_V1.0/Project/targetver.h create mode 100644 4.Software/GeekTrackSDK_V1.0/Src/GeekTrackSDK.h diff --git a/3.Docs/GeekTrack SDK设计.xmind b/3.Docs/GeekTrack SDK设计.xmind new file mode 100644 index 0000000000000000000000000000000000000000..e19fed28afc785141a106cc7785c09d4fc76bf64 GIT binary patch literal 89890 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�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 literal 0 HcmV?d00001 diff --git a/4.Software/GeekTrackSDK/UDP.sln b/4.Software/GeekTrackSDK/GeekTrackSDK.sln similarity index 71% rename from 4.Software/GeekTrackSDK/UDP.sln rename to 4.Software/GeekTrackSDK/GeekTrackSDK.sln index d510be0..4d7e344 100644 --- a/4.Software/GeekTrackSDK/UDP.sln +++ b/4.Software/GeekTrackSDK/GeekTrackSDK.sln @@ -3,24 +3,24 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.32106.194 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GeekTrackSDK", "UDP\UDP.vcxproj", "{9164B430-3793-48FE-9C4C-77745C628E5B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GeekTrackSDK", "Project\GeekTrackSDK.vcxproj", "{9164B430-3793-48FE-9C4C-77745C628E5B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 + Debug|x86 = Debug|x86 Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|Win32.ActiveCfg = Debug|Win32 - {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|Win32.Build.0 = Debug|Win32 {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x64.ActiveCfg = Debug|x64 {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x64.Build.0 = Debug|x64 - {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|Win32.ActiveCfg = Release|Win32 - {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|Win32.Build.0 = Release|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x86.ActiveCfg = Debug|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x86.Build.0 = Debug|Win32 {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|x64.ActiveCfg = Release|x64 {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|x64.Build.0 = Release|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|x86.ActiveCfg = Release|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/4.Software/GeekTrackSDK/UDP/GeekTrack.cpp b/4.Software/GeekTrackSDK/Project/GeekTrack.cpp similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/GeekTrack.cpp rename to 4.Software/GeekTrackSDK/Project/GeekTrack.cpp diff --git a/4.Software/GeekTrackSDK/UDP/UDP.vcxproj b/4.Software/GeekTrackSDK/Project/GeekTrackSDK.vcxproj similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/UDP.vcxproj rename to 4.Software/GeekTrackSDK/Project/GeekTrackSDK.vcxproj diff --git a/4.Software/GeekTrackSDK/UDP/ReadMe.txt b/4.Software/GeekTrackSDK/Project/ReadMe.txt similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/ReadMe.txt rename to 4.Software/GeekTrackSDK/Project/ReadMe.txt diff --git a/4.Software/GeekTrackSDK/UDP/UDP.vcxproj.filters b/4.Software/GeekTrackSDK/Project/UDP.vcxproj.filters similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/UDP.vcxproj.filters rename to 4.Software/GeekTrackSDK/Project/UDP.vcxproj.filters diff --git a/4.Software/GeekTrackSDK/UDP/stdafx.cpp b/4.Software/GeekTrackSDK/Project/stdafx.cpp similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/stdafx.cpp rename to 4.Software/GeekTrackSDK/Project/stdafx.cpp diff --git a/4.Software/GeekTrackSDK/UDP/stdafx.h b/4.Software/GeekTrackSDK/Project/stdafx.h similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/stdafx.h rename to 4.Software/GeekTrackSDK/Project/stdafx.h diff --git a/4.Software/GeekTrackSDK/UDP/targetver.h b/4.Software/GeekTrackSDK/Project/targetver.h similarity index 100% rename from 4.Software/GeekTrackSDK/UDP/targetver.h rename to 4.Software/GeekTrackSDK/Project/targetver.h diff --git a/4.Software/GeekTrackSDK_V1.0/.gitignore b/4.Software/GeekTrackSDK_V1.0/.gitignore new file mode 100644 index 0000000..aacae44 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/.gitignore @@ -0,0 +1,378 @@ +## +## PROJECT: Mouri Internal Library Essentials +## FILE: .gitignore +## PURPOSE: The root .gitignore file for Mile.Project Project +## +## LICENSE: The MIT License +## +## DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com) +## + +## +## Ignore Mile.Project specific temporary files, build results, +## and files generated by popular Visual Studio add-ons. +## +Output/ + +## +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd diff --git a/4.Software/GeekTrackSDK_V1.0/GeekTrackSDK.sln b/4.Software/GeekTrackSDK_V1.0/GeekTrackSDK.sln new file mode 100644 index 0000000..a11ae6d --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/GeekTrackSDK.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32106.194 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GeekTrackSDK", "Project\GeekTrackSDK.vcxproj", "{9164B430-3793-48FE-9C4C-77745C628E5B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release(DLL)|x64 = Release(DLL)|x64 + Release(DLL)|x86 = Release(DLL)|x86 + Release(EXE)|x64 = Release(EXE)|x64 + Release(EXE)|x86 = Release(EXE)|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x64.ActiveCfg = Debug|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x64.Build.0 = Debug|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x86.ActiveCfg = Debug|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Debug|x86.Build.0 = Debug|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(DLL)|x64.ActiveCfg = Release(DLL)|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(DLL)|x64.Build.0 = Release(DLL)|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(DLL)|x86.ActiveCfg = Release(DLL)|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(DLL)|x86.Build.0 = Release(DLL)|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(EXE)|x64.ActiveCfg = Release|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(EXE)|x64.Build.0 = Release|x64 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(EXE)|x86.ActiveCfg = Release|Win32 + {9164B430-3793-48FE-9C4C-77745C628E5B}.Release(EXE)|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9E9DAEF7-BA4A-4FC9-9AD3-C055B24E1C8F} + EndGlobalSection +EndGlobal diff --git a/4.Software/GeekTrackSDK_V1.0/Project/GeekTrack.cpp b/4.Software/GeekTrackSDK_V1.0/Project/GeekTrack.cpp new file mode 100644 index 0000000..b9ceaff --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/GeekTrack.cpp @@ -0,0 +1,90 @@ +#include"stdafx.h" +#include"GeekTrackSDK.h" +#include +#include +#include +#include + +#pragma comment(lib,"ws2_32.lib") + +/* max suppport diffrent device id. */ +#define MAX_SUPPORT_DEV_NUM 9 + +typedef struct { + EulerAngles_t Pose; +}GeekTrackNode_t; + +GeekTrackNode_t TrackNode[MAX_SUPPORT_DEV_NUM]; + +SOCKET sock; +sockaddr_in from, a; +WSADATA wsdata; +int fromlength = 0; +std::thread* t; + +void GeekTrackUpdate() { + char buf[256]; + int i = 0; + while (1) + { + //ӹ㲥ַϢע󶨵ĵַͽϢĵַDzһ + recvfrom(sock, buf, 256, 0, (struct sockaddr FAR*) &from, (int FAR*) & fromlength); + Sleep(10); + float yaw = 0.0f, roll = 0.0f, pitch = 0.0f; + int id = 0; + int ret = sscanf_s(buf, "%d %f %f %f\n", &id, &yaw, &roll, &pitch); + if (ret > 0 && (id > 0 && id < MAX_SUPPORT_DEV_NUM)) { + TrackNode[id].Pose.x = pitch; + TrackNode[id].Pose.y = roll; + TrackNode[id].Pose.z = yaw; + } + ZeroMemory(buf, 256); + } +} + + +void GeekTrack_Init() { + + bool optval; + //SOCKET⣬汾Ϊ2.0 + WSAStartup(0x0202, &wsdata); + optval = true; + //Ȼֵַһ׽֣һϵĹ㲥ַϢ + a.sin_family = AF_INET; + a.sin_addr.s_addr = 0; + a.sin_port = htons(9000); + + //from.sin_family = AF_INET; + //from.sin_addr.s_addr = INADDR_BROADCAST; + //from.sin_port = htons(5050); + + fromlength = sizeof(SOCKADDR); + //UDPʼ׽ + sock = socket(AF_INET, SOCK_DGRAM, 0); + // ø׽Ϊ㲥ͣ + //setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char FAR *)&optval, sizeof(optval)); + // Ѹ׽ְһĵַ + bind(sock, (sockaddr*)&a, sizeof(sockaddr_in)); + + t = new std::thread(GeekTrackUpdate); + +} + +EulerAngles_t GetEulerAngles(int devId) { + if (devId >= 0 && devId < MAX_SUPPORT_DEV_NUM) { + return TrackNode[devId].Pose; + } +} + +int main() +{ + GeekTrack_Init(); + int devId = 0; + while (1) { + Sleep(50); + printf("%d,%f,%f,%f\n", devId,TrackNode[devId].Pose.x, TrackNode[devId].Pose.y, + TrackNode[devId].Pose.z); + } + system("pause"); + return 0; +} diff --git a/4.Software/GeekTrackSDK_V1.0/Project/GeekTrackSDK.vcxproj b/4.Software/GeekTrackSDK_V1.0/Project/GeekTrackSDK.vcxproj new file mode 100644 index 0000000..309abd5 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/GeekTrackSDK.vcxproj @@ -0,0 +1,237 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release(DLL) + Win32 + + + Release(DLL) + x64 + + + Release + Win32 + + + Release + x64 + + + + {9164B430-3793-48FE-9C4C-77745C628E5B} + Win32Proj + UDP + GeekTrackSDK + 10.0 + + + + Application + true + v142 + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + false + v142 + true + Unicode + + + Application + false + v142 + true + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\Src\ + + + Console + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\Src\ + + + Console + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\Src\;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + ..\Src\;%(AdditionalIncludeDirectories) + + + Console + true + true + true + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + + \ No newline at end of file diff --git a/4.Software/GeekTrackSDK_V1.0/Project/ReadMe.txt b/4.Software/GeekTrackSDK_V1.0/Project/ReadMe.txt new file mode 100644 index 0000000..8b1b64a --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/ReadMe.txt @@ -0,0 +1,30 @@ +======================================================================== + 控制台应用程序:UDP 项目概述 +======================================================================== + +应用程序向导已为您创建了此 UDP 应用程序。 + +本文件概要介绍组成 UDP 应用程序的每个文件的内容。 + + +UDP.vcxproj + 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 + +UDP.vcxproj.filters + 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 + +UDP.cpp + 这是主应用程序源文件。 + +///////////////////////////////////////////////////////////////////////////// +其他标准文件: + +StdAfx.h, StdAfx.cpp + 这些文件用于生成名为 UDP.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 + +///////////////////////////////////////////////////////////////////////////// +其他注释: + +应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 + +///////////////////////////////////////////////////////////////////////////// diff --git a/4.Software/GeekTrackSDK_V1.0/Project/UDP.vcxproj.filters b/4.Software/GeekTrackSDK_V1.0/Project/UDP.vcxproj.filters new file mode 100644 index 0000000..7112534 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/UDP.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + 头文件 + + + 头文件 + + + 源文件 + + + + + 源文件 + + + 源文件 + + + \ No newline at end of file diff --git a/4.Software/GeekTrackSDK_V1.0/Project/stdafx.cpp b/4.Software/GeekTrackSDK_V1.0/Project/stdafx.cpp new file mode 100644 index 0000000..c6af952 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : ֻ׼ļԴļ +// UDP.pch ΪԤͷ +// stdafx.obj ԤϢ + +#include "stdafx.h" + +// TODO: STDAFX.H +// κĸͷļڴļ diff --git a/4.Software/GeekTrackSDK_V1.0/Project/stdafx.h b/4.Software/GeekTrackSDK_V1.0/Project/stdafx.h new file mode 100644 index 0000000..baa4bbc --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/stdafx.h @@ -0,0 +1,15 @@ +// stdafx.h : ׼ϵͳļİļ +// Ǿʹõĵ +// ضĿİļ +// + +#pragma once + +#include "targetver.h" + +#include +#include + + + +// TODO: ڴ˴óҪͷļ diff --git a/4.Software/GeekTrackSDK_V1.0/Project/targetver.h b/4.Software/GeekTrackSDK_V1.0/Project/targetver.h new file mode 100644 index 0000000..7a7d2c8 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Project/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// SDKDDKVer.h õ߰汾 Windows ƽ̨ + +// ҪΪǰ Windows ƽ̨Ӧó WinSDKVer.h +// WIN32_WINNT ΪҪֵ֧ƽ̨Ȼٰ SDKDDKVer.h + +#include diff --git a/4.Software/GeekTrackSDK_V1.0/Src/GeekTrackSDK.h b/4.Software/GeekTrackSDK_V1.0/Src/GeekTrackSDK.h new file mode 100644 index 0000000..4c11288 --- /dev/null +++ b/4.Software/GeekTrackSDK_V1.0/Src/GeekTrackSDK.h @@ -0,0 +1,16 @@ +#ifndef _GEEKTRACK_SDK_H_ +#define _GEEKTRACK_SDK_H_ + +extern "C" { + +typedef struct { + float x, y, z; +}EulerAngles_t; + + +__declspec(dllexport) void GeekTrack_Init(); + +__declspec(dllexport) EulerAngles_t GetEulerAngles(); +} + +#endif \ No newline at end of file