├── README.md
├── SimToolsGamePlugin
├── .gitignore
├── GamePlugin.sln
└── GamePlugin
│ ├── GamePlugin.vb
│ ├── GamePlugin.vbproj
│ ├── My Project
│ ├── Application.Designer.vb
│ ├── Application.myapp
│ ├── AssemblyInfo.vb
│ ├── Resources.Designer.vb
│ ├── Resources.resx
│ ├── Settings.Designer.vb
│ ├── Settings.settings
│ └── _svn
│ │ ├── all-wcprops
│ │ ├── entries
│ │ ├── format
│ │ └── text-base
│ │ ├── Application.Designer.vb.svn-base
│ │ ├── Application.myapp.svn-base
│ │ ├── AssemblyInfo.vb.svn-base
│ │ ├── Resources.Designer.vb.svn-base
│ │ ├── Resources.resx.svn-base
│ │ ├── Settings.Designer.vb.svn-base
│ │ └── Settings.settings.svn-base
│ └── bin
│ ├── Debug
│ ├── Game_PluginAPI.dll
│ └── PluginValidator.exe
│ └── Release
│ ├── Game_PluginAPI.dll
│ └── PluginValidator.exe
├── SimpleUdpReciever
├── .gitignore
├── SimpleUdpReciever.sln
└── SimpleUdpReciever
│ ├── Program.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── SimpleUdpReciever.csproj
│ └── UdpState.cs
├── Unity3D
├── Plugin
│ └── QuPlaySimtools.cs
└── QuPlay
│ ├── .gitignore
│ ├── Assets
│ ├── Main.cs
│ ├── Main.cs.meta
│ ├── Main.unity
│ ├── Main.unity.meta
│ ├── QuPlaySimtools.cs
│ └── QuPlaySimtools.cs.meta
│ └── ProjectSettings
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── NavMeshAreas.asset
│ ├── NetworkManager.asset
│ ├── Physics2DSettings.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ └── UnityConnectSettings.asset
└── Unreal
├── Plugins
└── QuPlaySimtools
│ ├── QuPlaySimtools.uplugin
│ ├── Resources
│ └── Icon128.png
│ └── Source
│ └── QuPlaySimtools
│ ├── Private
│ ├── QuPlaySimtools.cpp
│ └── QuPlaySimtoolsBPLibrary.cpp
│ ├── Public
│ ├── QuPlaySimtools.h
│ └── QuPlaySimtoolsBPLibrary.h
│ └── QuPlaySimtools.Build.cs
└── QuPlay
├── .gitignore
├── Config
├── DefaultEditor.ini
├── DefaultEngine.ini
└── DefaultGame.ini
├── Content
├── Main.umap
└── Main_BuiltData.uasset
├── Plugins
└── QuPlaySimtools
│ ├── QuPlaySimtools.uplugin
│ ├── Resources
│ └── Icon128.png
│ └── Source
│ └── QuPlaySimtools
│ ├── Private
│ ├── QuPlaySimtools.cpp
│ └── QuPlaySimtoolsBPLibrary.cpp
│ ├── Public
│ ├── QuPlaySimtools.h
│ └── QuPlaySimtoolsBPLibrary.h
│ └── QuPlaySimtools.Build.cs
├── QuPlay.uproject
└── Source
├── QuPlay.Target.cs
├── QuPlay
├── QuPlay.Build.cs
├── QuPlay.cpp
├── QuPlay.h
├── QuPlayGameModeBase.cpp
└── QuPlayGameModeBase.h
└── QuPlayEditor.Target.cs
/README.md:
--------------------------------------------------------------------------------
1 | # QuplaySimTools
2 |
3 | https://www.xsimulator.net/community/threads/how-to-write-a-game-plugin-for-simtools-2-0-api-documentation.9107/
4 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | x64/
17 | x86/
18 | bld/
19 | [Oo]bj/
20 | [Ll]og/
21 |
22 | # Visual Studio 2015/2017 cache/options directory
23 | .vs/
24 | # Uncomment if you have tasks that create the project's static files in wwwroot
25 | #wwwroot/
26 |
27 | # Visual Studio 2017 auto generated files
28 | Generated\ Files/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # Benchmark Results
44 | BenchmarkDotNet.Artifacts/
45 |
46 | # .NET Core
47 | project.lock.json
48 | project.fragment.lock.json
49 | artifacts/
50 | **/Properties/launchSettings.json
51 |
52 | # StyleCop
53 | StyleCopReport.xml
54 |
55 | # Files built by Visual Studio
56 | *_i.c
57 | *_p.c
58 | *_i.h
59 | *.ilk
60 | *.meta
61 | *.obj
62 | *.pch
63 | *.pdb
64 | *.pgc
65 | *.pgd
66 | *.rsp
67 | *.sbr
68 | *.tlb
69 | *.tli
70 | *.tlh
71 | *.tmp
72 | *.tmp_proj
73 | *.log
74 | *.vspscc
75 | *.vssscc
76 | .builds
77 | *.pidb
78 | *.svclog
79 | *.scc
80 |
81 | # Chutzpah Test files
82 | _Chutzpah*
83 |
84 | # Visual C++ cache files
85 | ipch/
86 | *.aps
87 | *.ncb
88 | *.opendb
89 | *.opensdf
90 | *.sdf
91 | *.cachefile
92 | *.VC.db
93 | *.VC.VC.opendb
94 |
95 | # Visual Studio profiler
96 | *.psess
97 | *.vsp
98 | *.vspx
99 | *.sap
100 |
101 | # Visual Studio Trace Files
102 | *.e2e
103 |
104 | # TFS 2012 Local Workspace
105 | $tf/
106 |
107 | # Guidance Automation Toolkit
108 | *.gpState
109 |
110 | # ReSharper is a .NET coding add-in
111 | _ReSharper*/
112 | *.[Rr]e[Ss]harper
113 | *.DotSettings.user
114 |
115 | # JustCode is a .NET coding add-in
116 | .JustCode
117 |
118 | # TeamCity is a build add-in
119 | _TeamCity*
120 |
121 | # DotCover is a Code Coverage Tool
122 | *.dotCover
123 |
124 | # AxoCover is a Code Coverage Tool
125 | .axoCover/*
126 | !.axoCover/settings.json
127 |
128 | # Visual Studio code coverage results
129 | *.coverage
130 | *.coveragexml
131 |
132 | # NCrunch
133 | _NCrunch_*
134 | .*crunch*.local.xml
135 | nCrunchTemp_*
136 |
137 | # MightyMoose
138 | *.mm.*
139 | AutoTest.Net/
140 |
141 | # Web workbench (sass)
142 | .sass-cache/
143 |
144 | # Installshield output folder
145 | [Ee]xpress/
146 |
147 | # DocProject is a documentation generator add-in
148 | DocProject/buildhelp/
149 | DocProject/Help/*.HxT
150 | DocProject/Help/*.HxC
151 | DocProject/Help/*.hhc
152 | DocProject/Help/*.hhk
153 | DocProject/Help/*.hhp
154 | DocProject/Help/Html2
155 | DocProject/Help/html
156 |
157 | # Click-Once directory
158 | publish/
159 |
160 | # Publish Web Output
161 | *.[Pp]ublish.xml
162 | *.azurePubxml
163 | # Note: Comment the next line if you want to checkin your web deploy settings,
164 | # but database connection strings (with potential passwords) will be unencrypted
165 | *.pubxml
166 | *.publishproj
167 |
168 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
169 | # checkin your Azure Web App publish settings, but sensitive information contained
170 | # in these scripts will be unencrypted
171 | PublishScripts/
172 |
173 | # NuGet Packages
174 | *.nupkg
175 | # The packages folder can be ignored because of Package Restore
176 | **/[Pp]ackages/*
177 | # except build/, which is used as an MSBuild target.
178 | !**/[Pp]ackages/build/
179 | # Uncomment if necessary however generally it will be regenerated when needed
180 | #!**/[Pp]ackages/repositories.config
181 | # NuGet v3's project.json files produces more ignorable files
182 | *.nuget.props
183 | *.nuget.targets
184 |
185 | # Microsoft Azure Build Output
186 | csx/
187 | *.build.csdef
188 |
189 | # Microsoft Azure Emulator
190 | ecf/
191 | rcf/
192 |
193 | # Windows Store app package directories and files
194 | AppPackages/
195 | BundleArtifacts/
196 | Package.StoreAssociation.xml
197 | _pkginfo.txt
198 | *.appx
199 |
200 | # Visual Studio cache files
201 | # files ending in .cache can be ignored
202 | *.[Cc]ache
203 | # but keep track of directories ending in .cache
204 | !*.[Cc]ache/
205 |
206 | # Others
207 | ClientBin/
208 | ~$*
209 | *~
210 | *.dbmdl
211 | *.dbproj.schemaview
212 | *.jfm
213 | *.pfx
214 | *.publishsettings
215 | orleans.codegen.cs
216 |
217 | # Since there are multiple workflows, uncomment next line to ignore bower_components
218 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
219 | #bower_components/
220 |
221 | # RIA/Silverlight projects
222 | Generated_Code/
223 |
224 | # Backup & report files from converting an old project file
225 | # to a newer Visual Studio version. Backup files are not needed,
226 | # because we have git ;-)
227 | _UpgradeReport_Files/
228 | Backup*/
229 | UpgradeLog*.XML
230 | UpgradeLog*.htm
231 |
232 | # SQL Server files
233 | *.mdf
234 | *.ldf
235 | *.ndf
236 |
237 | # Business Intelligence projects
238 | *.rdl.data
239 | *.bim.layout
240 | *.bim_*.settings
241 |
242 | # Microsoft Fakes
243 | FakesAssemblies/
244 |
245 | # GhostDoc plugin setting file
246 | *.GhostDoc.xml
247 |
248 | # Node.js Tools for Visual Studio
249 | .ntvs_analysis.dat
250 | node_modules/
251 |
252 | # TypeScript v1 declaration files
253 | typings/
254 |
255 | # Visual Studio 6 build log
256 | *.plg
257 |
258 | # Visual Studio 6 workspace options file
259 | *.opt
260 |
261 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
262 | *.vbw
263 |
264 | # Visual Studio LightSwitch build output
265 | **/*.HTMLClient/GeneratedArtifacts
266 | **/*.DesktopClient/GeneratedArtifacts
267 | **/*.DesktopClient/ModelManifest.xml
268 | **/*.Server/GeneratedArtifacts
269 | **/*.Server/ModelManifest.xml
270 | _Pvt_Extensions
271 |
272 | # Paket dependency manager
273 | .paket/paket.exe
274 | paket-files/
275 |
276 | # FAKE - F# Make
277 | .fake/
278 |
279 | # JetBrains Rider
280 | .idea/
281 | *.sln.iml
282 |
283 | # CodeRush
284 | .cr/
285 |
286 | # Python Tools for Visual Studio (PTVS)
287 | __pycache__/
288 | *.pyc
289 |
290 | # Cake - Uncomment if you are using it
291 | # tools/**
292 | # !tools/packages.config
293 |
294 | # Tabs Studio
295 | *.tss
296 |
297 | # Telerik's JustMock configuration file
298 | *.jmconfig
299 |
300 | # BizTalk build output
301 | *.btp.cs
302 | *.btm.cs
303 | *.odx.cs
304 | *.xsd.cs
305 |
306 | # OpenCover UI analysis results
307 | OpenCover/
308 |
309 | # Azure Stream Analytics local run output
310 | ASALocalRun/
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Basic Express 2010
4 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GamePlugin", "GamePlugin\GamePlugin.vbproj", "{111AFF88-CCF4-4359-BC0C-A55F4F0A4197}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {111AFF88-CCF4-4359-BC0C-A55F4F0A4197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {111AFF88-CCF4-4359-BC0C-A55F4F0A4197}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {111AFF88-CCF4-4359-BC0C-A55F4F0A4197}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {111AFF88-CCF4-4359-BC0C-A55F4F0A4197}.Release|Any CPU.Build.0 = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/GamePlugin.vb:
--------------------------------------------------------------------------------
1 | Option Explicit On
2 | Option Strict On
3 |
4 | Imports Game_PluginAPI
5 | Imports System.IO
6 |
7 | Public Class GamePlugin
8 | Implements IPlugin_Game
9 | '///
10 | '/// Simple implementation of the plugin Simtools 2.0
11 | '/// Autor: Claudio Silva - DDK
12 | '/// Blog: https://clclaudio.wordpress.com
13 | '///
14 |
15 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
16 | '/// SimTools Plugin - Edit the Setting below to provide support for your favorite game! ///
17 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
18 | '////////////////////////////////////////////////
19 | '/// Per Game Settings - Change for Each Game ///
20 | '////////////////////////////////////////////////
21 | Private Const _PluginAuthorsName As String = "QuPlay"
22 | Private Const _GameName As String = "QuPlay" 'GameName (Must Be Unique!) - the displayed Name.
23 | Private Const _ProcessName As String = "QuPlay" 'Process_Name without the (".exe") for this game
24 | Private Const _Port As String = "4123" 'Your Sending/Recieving UDP Port for this game
25 | Private Const _RequiresPatchingPath As Boolean = True 'do we need the game exe path for patching? (must be True if _RequiresSecondCheck = True)
26 | Private Const _RequiresSecondCheck As Boolean = False 'Used when games have the same _ProcessName. (all plugins with the same _ProcessName must use this!)
27 | Private Const _PluginOptions As String = "" 'Reserved For Future Use - No Change Needed
28 | '////////////////////////////////////////////////
29 | '/// Memory Map Variables ///
30 | '////////////////////////////////////////////////
31 | Private Const _Enable_MemoryMap As Boolean = False 'Is a MemoryMap file Required for this game?
32 | Private Const _MMF_Name As String = "NULL" 'Set if using a Memory Map File - EXAMPLE("$gtr2$")
33 | '////////////////////////////////////////////////
34 | '/// MemoryHook Variables ///
35 | '////////////////////////////////////////////////
36 | Private Const _Enable_MemoryHook As Boolean = False 'Is a Memory Hook Required for this game?
37 | Private Const _MemHook_Roll As UInteger = 0 'Not Used = 0
38 | Private Const _MemHook_Pitch As UInteger = 0
39 | Private Const _MemHook_Heave As UInteger = 0
40 | Private Const _MemHook_Yaw As UInteger = 0
41 | Private Const _MemHook_Sway As UInteger = 0
42 | Private Const _MemHook_Surge As UInteger = 0
43 | Private Const _MemHook_Extra1 As UInteger = 0
44 | Private Const _MemHook_Extra2 As UInteger = 0
45 | Private Const _MemHook_Extra3 As UInteger = 0
46 | '////////////////////////////////////////////////
47 | '/// DOFs Used for Output for this Game ///
48 | '////////////////////////////////////////////////
49 | Private Const _DOF_Support_Roll As Boolean = True
50 | Private Const _DOF_Support_Pitch As Boolean = True
51 | Private Const _DOF_Support_Heave As Boolean = True
52 | Private Const _DOF_Support_Yaw As Boolean = True
53 | Private Const _DOF_Support_Sway As Boolean = True
54 | Private Const _DOF_Support_Surge As Boolean = True
55 | Private Const _DOF_Support_Extra1 As String = "Traction Loss" 'Blank = False
56 | Private Const _DOF_Support_Extra2 As String = "" '"" = Not Used
57 | Private Const _DOF_Support_Extra3 As String = "" 'ADD THE FORCE NAME HERE
58 | '/////////////////////////////////////////////////
59 | '/// GameDash - Dash Board Support ///
60 | '/////////////////////////////////////////////////
61 | Private Const _Enable_DashBoard As Boolean = False 'Enable the DashBoard Output System?
62 | 'EXAMPLES OF DASH OUTPUT (all variables are strings) - 20 DASH OUTPUTS MAX!!!
63 | 'Use the Variables with either Process_PacketRecieved, Process_MemoryHook or Process_MemoryMap.
64 | 'Variable = (*Action, Value) as String - (The *Action variable can be anything)
65 | 'Basic Dash Support should include at the minimum - SPEED, RPM and GEAR
66 | 'Dash_1_Output = "Speed," & OUTPUT_VALUE_HERE.ToString
67 | 'Dash_2_Output = "Rpm," & OUTPUT_VALUE_HERE.ToString
68 | 'Dash_2_Output = "Gear," & OUTPUT_VALUE_HERE.ToString
69 | '...
70 | 'Dash_20_Output = "Engine Temp," & OUTPUT_VALUE_HERE.ToString
71 | '/////////////////////////////////////////////////
72 | '/// GameVibe Support ///
73 | '/////////////////////////////////////////////////
74 | Private Const _Enable_GameVibe As Boolean = False 'Enable the GameVibe Output System?
75 | 'EXAMPLES OF GameVibe OUTPUT (all variables are strings) - 9 GameVibe OUTPUTS MAX!!!
76 | 'Use the Variables with either Process_PacketRecieved, Process_MemoryHook or Process_MemoryMap.
77 | 'Variable = (*Action, Value) as String - (The *Action" variable can ONLY be: Rpm, Heave, Sway, Surge, FR, FL, RR, RL, Turbo)
78 | 'Basic GameVibe Support should include at the minimum - Rpm
79 | 'Vibe_1_Output = "Rpm," & OUTPUT_VALUE_HERE.ToString
80 | 'Vibe_2_Output = "Heave," & OUTPUT_VALUE_HERE.ToString
81 | 'Vibe_3_Output = "Sway," & OUTPUT_VALUE_HERE.ToString
82 | 'Vibe_4_Output = "Surge," & OUTPUT_VALUE_HERE.ToString
83 | '...
84 | 'Vibe_9_Output = "Gear Shift," & OUTPUT_VALUE_HERE.ToString
85 | '/////////////////////////////////////////////////
86 |
87 | 'Used by GameManager when the Game Starts.
88 | Public Sub GameStart() Implements IPlugin_Game.GameStart
89 | 'DO SOMETHING HERE AT GAME START!
90 | End Sub
91 |
92 | 'Used by GameManager when the Game Stops.
93 | Public Sub GameStop() Implements IPlugin_Game.GameEnd
94 | 'DO SOMETHING HERE AT GAME STOP!
95 | End Sub
96 |
97 | 'Used by GameManager to Process a MemoryHook.
98 | Public Sub Process_MemoryHook() Implements IPlugin_Game.Process_MemoryHook
99 | 'DO SOMETHING HERE AT GAME START!
100 | End Sub
101 |
102 | 'Used by GameManager to Process a MemoryMap.
103 | Public Sub Process_MemoryMap() Implements IPlugin_Game.Process_MemoryMap
104 | 'DO SOMETHING HERE AT GAME START!
105 | End Sub
106 |
107 | 'Used by GameEngine to Process Incoming UDP Packets.
108 | Public Sub Process_PacketRecieved(Text As String) Implements IPlugin_Game.Process_PacketRecieved
109 | Dim telemetry As String() = Text.Split(New Char() {","c})
110 |
111 | Roll_Output = CDbl(Val(telemetry(0)))
112 | Pitch_Output = CDbl(Val(telemetry(1)))
113 | Yaw_Output = CDbl(Val(telemetry(2)))
114 | Heave_Output = CDbl(Val(telemetry(3)))
115 | Sway_Output = CDbl(Val(telemetry(4)))
116 | Surge_Output = CDbl(Val(telemetry(5)))
117 | Extra1_Output = CDbl(Val(telemetry(6)))
118 | Extra2_Output = CDbl(Val(telemetry(7)))
119 | Extra3_Output = CDbl(Val(telemetry(8)))
120 | End Sub
121 |
122 | 'Used by GameManager to Patch a Game.
123 | Public Function PatchGame(ByVal MyPath As String, ByVal MyIp As String) As Boolean Implements IPlugin_Game.PatchGame
124 | 'Change as Needed
125 | 'If game is already patched - Unpatch first
126 | UnPatch(MyPath)
127 | Return True
128 |
129 | End Function
130 |
131 | 'Used by GameManager to UnPatch a Game.
132 | Public Sub UnPatchGame(MyPath As String) Implements IPlugin_Game.UnPatchGame
133 | 'Change as Needed
134 | UnPatch(MyPath)
135 | MsgBox("Patch Uninstalled!", MsgBoxStyle.OkOnly, "Patching info")
136 | End Sub
137 |
138 | 'Used by GameManager to UnPatch a Game.
139 | Private Sub UnPatch(MyPath As String)
140 | If System.IO.File.Exists(MyPath & "\QuPlay.exe") = True Then
141 | If File.Exists(MyPath & "\system\cfg.BAK") Then 'Restore backup File
142 | If File.Exists(MyPath & "\system\hardware_settings_config.xml") Then
143 | System.IO.File.Delete(MyPath & "\system\hardware_settings_config.xml")
144 | End If
145 | Rename(MyPath & "\system\cfg.BAK", MyPath & "\system\hardware_settings_config.xml")
146 | End If
147 | Else
148 | If File.Exists(MyPath & "\hardwaresettings\cfg.BAK") Then 'Restore backup File
149 | If File.Exists(MyPath & "\hardwaresettings\hardware_settings_config.xml") Then
150 | System.IO.File.Delete(MyPath & "\hardwaresettings\hardware_settings_config.xml")
151 | End If
152 | Rename(MyPath & "\hardwaresettings\cfg.BAK", MyPath & "\hardwaresettings\hardware_settings_config.xml")
153 | End If
154 | End If
155 | End Sub
156 |
157 | 'Tells the User where to patch the game
158 | Public Sub PatchPathInfo() Implements IPlugin_Game.PatchPathInfo
159 | 'Tell the User where to patch the game
160 | MsgBox("32bit PC's - Please Select Dirt 2's Installation Directory." & vbCrLf & "64bit PC's - Please Select Dirt 2's Game Save Directory" & vbCrLf & "(64bit's default location is Documents\MyGames\Dirt2).", MsgBoxStyle.OkOnly, "Patching info")
161 | End Sub
162 |
163 | 'Used by GameManager to Validate a Path befors Patching.
164 | Public Function ValidatePatchPath(MyPath As String) As Boolean Implements IPlugin_Game.ValidatePatchPath
165 | 'insert a simple validation of the patching path - let the user know he got it right
166 | If System.IO.File.Exists(MyPath & "\QuPlay.exe") = True Or System.IO.File.Exists(MyPath & "\hardwaresettings\hardware_settings_config.xml") = True Then
167 | Return True
168 | Else
169 | Return False
170 | End If
171 | End Function
172 |
173 |
174 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
175 | '/// PLACE EXTRA NEEDED CODE/FUNCTIONS HERE ///
176 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
177 | #Region "///// - EXTRA CODE/FUNCTIONS USED FOR THIS PLUGIN - /////"
178 | 'Used by GameEngine to Process Incoming UDP Packets.
179 | Private MyOutsim_Internal As New OutSim
180 | Private Structure OutSim
181 | Public PosX As Single
182 | End Structure
183 |
184 | 'File Editor - Replaces a line in a txt/cfg file
185 | Private Sub MyFileEditor(FileName As String, LinetoEdit As String, StingReplacment As String)
186 | Dim lines As New List(Of String)
187 | Dim x As Integer = 0
188 | Using sr As New System.IO.StreamReader(FileName)
189 | While Not sr.EndOfStream
190 | lines.Add(sr.ReadLine)
191 | End While
192 | End Using
193 |
194 | For Each line As String In lines
195 | If line.Contains(LinetoEdit) Then
196 | lines.RemoveAt(x)
197 | lines.Insert(x, StingReplacment)
198 | Exit For 'must exit as we changed the iteration
199 | End If
200 | x = x + 1
201 | Next
202 |
203 | Using sw As New System.IO.StreamWriter(FileName)
204 | For Each line As String In lines
205 | sw.WriteLine(line)
206 | Next
207 | End Using
208 | lines.Clear()
209 | End Sub
210 | #End Region
211 |
212 |
213 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
214 | '/// DO NOT EDIT BELOW HERE!!! ///
215 | '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
216 | #Region "///// BUILT IN METHODS FOR SIMTOOLS - DO NOT CHANGE /////"
217 | 'Output Dash Vars
218 | Public Dash_1_Output As String = ""
219 | Public Dash_2_Output As String = ""
220 | Public Dash_3_Output As String = ""
221 | Public Dash_4_Output As String = ""
222 | Public Dash_5_Output As String = ""
223 | Public Dash_6_Output As String = ""
224 | Public Dash_7_Output As String = ""
225 | Public Dash_8_Output As String = ""
226 | Public Dash_9_Output As String = ""
227 | Public Dash_10_Output As String = ""
228 | Public Dash_11_Output As String = ""
229 | Public Dash_12_Output As String = ""
230 | Public Dash_13_Output As String = ""
231 | Public Dash_14_Output As String = ""
232 | Public Dash_15_Output As String = ""
233 | Public Dash_16_Output As String = ""
234 | Public Dash_17_Output As String = ""
235 | Public Dash_18_Output As String = ""
236 | Public Dash_19_Output As String = ""
237 | Public Dash_20_Output As String = ""
238 |
239 | 'Output Vars
240 | Public Roll_Output As Double = 0
241 | Public Pitch_Output As Double = 0
242 | Public Heave_Output As Double = 0
243 | Public Yaw_Output As Double = 0
244 | Public Sway_Output As Double = 0
245 | Public Surge_Output As Double = 0
246 | Public Extra1_Output As Double = 0
247 | Public Extra2_Output As Double = 0
248 | Public Extra3_Output As Double = 0
249 |
250 | 'MemHook Vars
251 | Public Roll_MemHook As Double = 0
252 | Public Pitch_MemHook As Double = 0
253 | Public Heave_MemHook As Double = 0
254 | Public Yaw_MemHook As Double = 0
255 | Public Sway_MemHook As Double = 0
256 | Public Surge_MemHook As Double = 0
257 | Public Extra1_MemHook As Double = 0
258 | Public Extra2_MemHook As Double = 0
259 | Public Extra3_MemHook As Double = 0
260 |
261 | 'MemMap Vars
262 | Public Roll_MemMap As Double = 0
263 | Public Pitch_MemMap As Double = 0
264 | Public Heave_MemMap As Double = 0
265 | Public Yaw_MemMap As Double = 0
266 | Public Sway_MemMap As Double = 0
267 | Public Surge_MemMap As Double = 0
268 | Public Extra1_MemMap As Double = 0
269 | Public Extra2_MemMap As Double = 0
270 | Public Extra3_MemMap As Double = 0
271 |
272 | 'GameVibe Vars
273 | Public Vibe_1_Output As String = ""
274 | Public Vibe_2_Output As String = ""
275 | Public Vibe_3_Output As String = ""
276 | Public Vibe_4_Output As String = ""
277 | Public Vibe_5_Output As String = ""
278 | Public Vibe_6_Output As String = ""
279 | Public Vibe_7_Output As String = ""
280 | Public Vibe_8_Output As String = ""
281 | Public Vibe_9_Output As String = ""
282 |
283 | Public Function Get_PluginVersion() As String Implements IPlugin_Game.Get_PluginVersion
284 | Return System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.ToString
285 | End Function
286 |
287 | Public Function GetDOFsUsed() As String Implements IPlugin_Game.GetDOFsUsed
288 | 'Return DOF's Used (Roll,Pitch,Heave,Yaw,Sway,Surge)
289 | Return (_DOF_Support_Roll.ToString & "," & _DOF_Support_Pitch.ToString & "," & _DOF_Support_Heave.ToString & "," & _DOF_Support_Yaw.ToString & "," & _DOF_Support_Sway.ToString & "," & _DOF_Support_Surge.ToString & "," & _DOF_Support_Extra1.ToString & "," & _DOF_Support_Extra2.ToString & "," & _DOF_Support_Extra3.ToString)
290 | End Function
291 |
292 | Public Sub ResetDOFVars() Implements IPlugin_Game.ResetDOFVars
293 | Roll_Output = 0
294 | Pitch_Output = 0
295 | Heave_Output = 0
296 | Yaw_Output = 0
297 | Sway_Output = 0
298 | Surge_Output = 0
299 | Extra1_Output = 0
300 | Extra2_Output = 0
301 | Extra3_Output = 0
302 | End Sub
303 |
304 | Public Sub ResetMapVars() Implements IPlugin_Game.ResetMapVars
305 | Roll_MemMap = 0
306 | Pitch_MemMap = 0
307 | Heave_MemMap = 0
308 | Yaw_MemMap = 0
309 | Sway_MemMap = 0
310 | Surge_MemMap = 0
311 | Extra1_MemMap = 0
312 | Extra2_MemMap = 0
313 | Extra3_MemMap = 0
314 | End Sub
315 |
316 | Public Sub ResetHookVars() Implements IPlugin_Game.ResetHookVars
317 | Roll_MemHook = 0
318 | Pitch_MemHook = 0
319 | Heave_MemHook = 0
320 | Yaw_MemHook = 0
321 | Sway_MemHook = 0
322 | Surge_MemHook = 0
323 | Extra1_MemHook = 0
324 | Extra2_MemHook = 0
325 | Extra3_MemHook = 0
326 | End Sub
327 |
328 | Public Sub ResetDashVars() Implements IPlugin_Game.ResetDashVars
329 | Dash_1_Output = ""
330 | Dash_2_Output = ""
331 | Dash_3_Output = ""
332 | Dash_4_Output = ""
333 | Dash_5_Output = ""
334 | Dash_6_Output = ""
335 | Dash_7_Output = ""
336 | Dash_8_Output = ""
337 | Dash_9_Output = ""
338 | Dash_10_Output = ""
339 | Dash_11_Output = ""
340 | Dash_12_Output = ""
341 | Dash_13_Output = ""
342 | Dash_14_Output = ""
343 | Dash_15_Output = ""
344 | Dash_16_Output = ""
345 | Dash_17_Output = ""
346 | Dash_18_Output = ""
347 | Dash_19_Output = ""
348 | Dash_20_Output = ""
349 | End Sub
350 |
351 | Public Sub ResetVibeVars() Implements IPlugin_Game.ResetVibeVars
352 | Vibe_1_Output = ""
353 | Vibe_2_Output = ""
354 | Vibe_3_Output = ""
355 | Vibe_4_Output = ""
356 | Vibe_5_Output = ""
357 | Vibe_6_Output = ""
358 | Vibe_7_Output = ""
359 | Vibe_8_Output = ""
360 | Vibe_9_Output = ""
361 | End Sub
362 |
363 | Public ReadOnly Property PluginAuthorsName() As String Implements IPlugin_Game.PluginAuthorsName
364 | Get
365 | Return _PluginAuthorsName
366 | End Get
367 | End Property
368 |
369 | Public ReadOnly Property Name() As String Implements IPlugin_Game.GameName
370 | Get
371 | Return _GameName
372 | End Get
373 | End Property
374 |
375 | Public ReadOnly Property ProcessName() As String Implements IPlugin_Game.ProcessName
376 | Get
377 | Return _ProcessName
378 | End Get
379 | End Property
380 |
381 | Public ReadOnly Property Port() As String Implements IPlugin_Game.Port
382 | Get
383 | Return _Port
384 | End Get
385 | End Property
386 |
387 | Public ReadOnly Property Enable_MemoryMap() As Boolean Implements IPlugin_Game.Enable_MemoryMap
388 | Get
389 | Return _Enable_MemoryMap
390 | End Get
391 | End Property
392 |
393 | Public ReadOnly Property Enable_MemoryHook() As Boolean Implements IPlugin_Game.Enable_MemoryHook
394 | Get
395 | Return _Enable_MemoryHook
396 | End Get
397 | End Property
398 |
399 | Public ReadOnly Property RequiresPatchingPath() As Boolean Implements IPlugin_Game.RequiresPatchingPath
400 | Get
401 | Return _RequiresPatchingPath
402 | End Get
403 | End Property
404 |
405 | Public ReadOnly Property RequiresSecondCheck() As Boolean Implements IPlugin_Game.RequiresSecondCheck
406 | Get
407 | Return _RequiresSecondCheck
408 | End Get
409 | End Property
410 |
411 | Public ReadOnly Property Enable_DashBoard() As Boolean Implements IPlugin_Game.Enable_DashBoard
412 | Get
413 | Return _Enable_DashBoard
414 | End Get
415 | End Property
416 |
417 | Public ReadOnly Property Enable_GameVibe() As Boolean Implements IPlugin_Game.Enable_GameVibe
418 | Get
419 | Return _Enable_GameVibe
420 | End Get
421 | End Property
422 |
423 | Public Function Get_RollOutput() As Double Implements IPlugin_Game.Get_RollOutput
424 | Return Roll_Output
425 | End Function
426 |
427 | Public Function Get_PitchOutput() As Double Implements IPlugin_Game.Get_PitchOutput
428 | Return Pitch_Output
429 | End Function
430 |
431 | Public Function Get_HeaveOutput() As Double Implements IPlugin_Game.Get_HeaveOutput
432 | Return Heave_Output
433 | End Function
434 |
435 | Public Function Get_YawOutput() As Double Implements IPlugin_Game.Get_YawOutput
436 | Return Yaw_Output
437 | End Function
438 |
439 | Public Function Get_SwayOutput() As Double Implements IPlugin_Game.Get_SwayOutput
440 | Return Sway_Output
441 | End Function
442 |
443 | Public Function Get_SurgeOutput() As Double Implements IPlugin_Game.Get_SurgeOutput
444 | Return Surge_Output
445 | End Function
446 |
447 | Public Function Get_Extra1Output() As Double Implements IPlugin_Game.Get_Extra1Output
448 | Return Extra1_Output
449 | End Function
450 |
451 | Public Function Get_Extra2Output() As Double Implements IPlugin_Game.Get_Extra2Output
452 | Return Extra2_Output
453 | End Function
454 |
455 | Public Function Get_Extra3Output() As Double Implements IPlugin_Game.Get_Extra3Output
456 | Return Extra3_Output
457 | End Function
458 |
459 | Public Function Get_Dash_1_Output() As String Implements IPlugin_Game.Get_Dash1_Output
460 | Return Dash_1_Output
461 | End Function
462 |
463 | Public Function Get_Dash_2_Output() As String Implements IPlugin_Game.Get_Dash2_Output
464 | Return Dash_2_Output
465 | End Function
466 |
467 | Public Function Get_Dash_3_Output() As String Implements IPlugin_Game.Get_Dash3_Output
468 | Return Dash_3_Output
469 | End Function
470 |
471 | Public Function Get_Dash_4_Output() As String Implements IPlugin_Game.Get_Dash4_Output
472 | Return Dash_4_Output
473 | End Function
474 |
475 | Public Function Get_Dash_5_Output() As String Implements IPlugin_Game.Get_Dash5_Output
476 | Return Dash_5_Output
477 | End Function
478 |
479 | Public Function Get_Dash_6_Output() As String Implements IPlugin_Game.Get_Dash6_Output
480 | Return Dash_6_Output
481 | End Function
482 |
483 | Public Function Get_Dash_7_Output() As String Implements IPlugin_Game.Get_Dash7_Output
484 | Return Dash_7_Output
485 | End Function
486 |
487 | Public Function Get_Dash_8_Output() As String Implements IPlugin_Game.Get_Dash8_Output
488 | Return Dash_8_Output
489 | End Function
490 |
491 | Public Function Get_Dash_9_Output() As String Implements IPlugin_Game.Get_Dash9_Output
492 | Return Dash_9_Output
493 | End Function
494 |
495 | Public Function Get_Dash_10_Output() As String Implements IPlugin_Game.Get_Dash10_Output
496 | Return Dash_10_Output
497 | End Function
498 |
499 | Public Function Get_Dash_11_Output() As String Implements IPlugin_Game.Get_Dash11_Output
500 | Return Dash_11_Output
501 | End Function
502 |
503 | Public Function Get_Dash_12_Output() As String Implements IPlugin_Game.Get_Dash12_Output
504 | Return Dash_12_Output
505 | End Function
506 |
507 | Public Function Get_Dash_13_Output() As String Implements IPlugin_Game.Get_Dash13_Output
508 | Return Dash_13_Output
509 | End Function
510 |
511 | Public Function Get_Dash_14_Output() As String Implements IPlugin_Game.Get_Dash14_Output
512 | Return Dash_14_Output
513 | End Function
514 |
515 | Public Function Get_Dash_15_Output() As String Implements IPlugin_Game.Get_Dash15_Output
516 | Return Dash_15_Output
517 | End Function
518 |
519 | Public Function Get_Dash_16_Output() As String Implements IPlugin_Game.Get_Dash16_Output
520 | Return Dash_16_Output
521 | End Function
522 |
523 | Public Function Get_Dash_17_Output() As String Implements IPlugin_Game.Get_Dash17_Output
524 | Return Dash_17_Output
525 | End Function
526 |
527 | Public Function Get_Dash_18_Output() As String Implements IPlugin_Game.Get_Dash18_Output
528 | Return Dash_18_Output
529 | End Function
530 |
531 | Public Function Get_Dash_19_Output() As String Implements IPlugin_Game.Get_Dash19_Output
532 | Return Dash_19_Output
533 | End Function
534 |
535 | Public Function Get_Dash_20_Output() As String Implements IPlugin_Game.Get_Dash20_Output
536 | Return Dash_20_Output
537 | End Function
538 |
539 | Public Function Get_RollMemHook() As Double Implements IPlugin_Game.Get_RollMemHook
540 | Return Roll_MemHook
541 | End Function
542 |
543 | Public Function Get_PitchMemHook() As Double Implements IPlugin_Game.Get_PitchMemHook
544 | Return Pitch_MemHook
545 | End Function
546 |
547 | Public Function Get_HeaveMemHook() As Double Implements IPlugin_Game.Get_HeaveMemHook
548 | Return Heave_MemHook
549 | End Function
550 |
551 | Public Function Get_YawMemHook() As Double Implements IPlugin_Game.Get_YawMemHook
552 | Return Yaw_MemHook
553 | End Function
554 |
555 | Public Function Get_SwayMemHook() As Double Implements IPlugin_Game.Get_SwayMemHook
556 | Return Sway_MemHook
557 | End Function
558 |
559 | Public Function Get_SurgeMemHook() As Double Implements IPlugin_Game.Get_SurgeMemHook
560 | Return Surge_MemHook
561 | End Function
562 |
563 | Public Function Get_Extra1MemHook() As Double Implements IPlugin_Game.Get_Extra1MemHook
564 | Return Extra1_MemHook
565 | End Function
566 |
567 | Public Function Get_Extra2MemHook() As Double Implements IPlugin_Game.Get_Extra2MemHook
568 | Return Extra2_MemHook
569 | End Function
570 |
571 | Public Function Get_Extra3MemHook() As Double Implements IPlugin_Game.Get_Extra3MemHook
572 | Return Extra3_MemHook
573 | End Function
574 |
575 | Public Function Get_RollMemMap() As Double Implements IPlugin_Game.Get_RollMemMap
576 | Return Roll_MemMap
577 | End Function
578 |
579 | Public Function Get_PitchMemMap() As Double Implements IPlugin_Game.Get_PitchMemMap
580 | Return Pitch_MemMap
581 | End Function
582 |
583 | Public Function Get_HeaveMemMap() As Double Implements IPlugin_Game.Get_HeaveMemMap
584 | Return Heave_MemMap
585 | End Function
586 |
587 | Public Function Get_YawMemMap() As Double Implements IPlugin_Game.Get_YawMemMap
588 | Return Yaw_MemMap
589 | End Function
590 |
591 | Public Function Get_SwayMemMap() As Double Implements IPlugin_Game.Get_SwayMemMap
592 | Return Sway_MemMap
593 | End Function
594 |
595 | Public Function Get_SurgeMemMap() As Double Implements IPlugin_Game.Get_SurgeMemMap
596 | Return Surge_MemMap
597 | End Function
598 |
599 | Public Function Get_Extra1MemMap() As Double Implements IPlugin_Game.Get_Extra1MemMap
600 | Return Extra1_MemMap
601 | End Function
602 |
603 | Public Function Get_Extra2MemMap() As Double Implements IPlugin_Game.Get_Extra2MemMap
604 | Return Extra2_MemMap
605 | End Function
606 |
607 | Public Function Get_Extra3MemMap() As Double Implements IPlugin_Game.Get_Extra3MemMap
608 | Return Extra3_MemMap
609 | End Function
610 |
611 | Public Function Get_Vibe1_Output() As String Implements IPlugin_Game.Get_Vibe1_Output
612 | Return Vibe_1_Output
613 | End Function
614 |
615 | Public Function Get_Vibe2_Output() As String Implements IPlugin_Game.Get_Vibe2_Output
616 | Return Vibe_2_Output
617 | End Function
618 |
619 | Public Function Get_Vibe3_Output() As String Implements IPlugin_Game.Get_Vibe3_Output
620 | Return Vibe_3_Output
621 | End Function
622 |
623 | Public Function Get_Vibe4_Output() As String Implements IPlugin_Game.Get_Vibe4_Output
624 | Return Vibe_4_Output
625 | End Function
626 |
627 | Public Function Get_Vibe5_Output() As String Implements IPlugin_Game.Get_Vibe5_Output
628 | Return Vibe_5_Output
629 | End Function
630 |
631 | Public Function Get_Vibe6_Output() As String Implements IPlugin_Game.Get_Vibe6_Output
632 | Return Vibe_6_Output
633 | End Function
634 |
635 | Public Function Get_Vibe7_Output() As String Implements IPlugin_Game.Get_Vibe7_Output
636 | Return Vibe_7_Output
637 | End Function
638 |
639 | Public Function Get_Vibe8_Output() As String Implements IPlugin_Game.Get_Vibe8_Output
640 | Return Vibe_8_Output
641 | End Function
642 |
643 | Public Function Get_Vibe9_Output() As String Implements IPlugin_Game.Get_Vibe9_Output
644 | Return Vibe_9_Output
645 | End Function
646 |
647 | Public ReadOnly Property PluginOptions() As String Implements IPlugin_Game.PluginOptions
648 | Get
649 | Return _PluginOptions
650 | End Get
651 | End Property
652 | #End Region
653 | End Class
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/GamePlugin.vbproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | 9.0.30729
7 | 2.0
8 | {111AFF88-CCF4-4359-BC0C-A55F4F0A4197}
9 | Library
10 | QuPlay_GamePlugin
11 | QuPlay_GamePlugin
12 | 512
13 | Windows
14 | v4.0
15 | On
16 | Binary
17 | On
18 | On
19 |
20 |
21 |
22 |
23 | 3.5
24 |
25 |
26 | true
27 | full
28 | true
29 | true
30 | bin\Debug\
31 | QuPlay_GamePlugin.xml
32 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
33 |
34 |
35 | pdbonly
36 | false
37 | true
38 | true
39 | bin\Release\
40 | QuPlay_GamePlugin.xml
41 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355
42 |
43 |
44 |
45 | False
46 | bin\Debug\Game_PluginAPI.dll
47 |
48 |
49 |
50 |
51 | 3.5
52 |
53 |
54 | 3.5
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | True
71 | Application.myapp
72 |
73 |
74 | True
75 | True
76 | Resources.resx
77 |
78 |
79 | True
80 | Settings.settings
81 | True
82 |
83 |
84 |
85 |
86 | VbMyResourcesResXFileCodeGenerator
87 | Resources.Designer.vb
88 | My.Resources
89 | Designer
90 |
91 |
92 |
93 |
94 | MyApplicationCodeGenerator
95 | Application.Designer.vb
96 |
97 |
98 | SettingsSingleFileGenerator
99 | My
100 | Settings.Designer.vb
101 |
102 |
103 |
104 |
111 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Application.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Application.myapp:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | false
5 | 0
6 | true
7 | 0
8 | 1
9 | true
10 |
11 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/AssemblyInfo.vb:
--------------------------------------------------------------------------------
1 | Imports System
2 | Imports System.Reflection
3 | Imports System.Runtime.InteropServices
4 |
5 | ' General Information about an assembly is controlled through the following
6 | ' set of attributes. Change these attribute values to modify the information
7 | ' associated with an assembly.
8 |
9 | ' Review the values of the assembly attributes
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM
21 |
22 |
23 | ' Version information for an assembly consists of the following four values:
24 | '
25 | ' Major Version
26 | ' Minor Version
27 | ' Build Number
28 | ' Revision
29 | '
30 | ' You can specify all the values or you can default the Build and Revision Numbers
31 | ' by using the '*' as shown below:
32 | '
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Resources.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 | Imports System
15 |
16 | Namespace My.Resources
17 |
18 | 'This class was auto-generated by the StronglyTypedResourceBuilder
19 | 'class via a tool like ResGen or Visual Studio.
20 | 'To add or remove a member, edit your .ResX file then rerun ResGen
21 | 'with the /str option, or rebuild your VS project.
22 | '''
23 | ''' A strongly-typed resource class, for looking up localized strings, etc.
24 | '''
25 | _
29 | Friend Module Resources
30 |
31 | Private resourceMan As Global.System.Resources.ResourceManager
32 |
33 | Private resourceCulture As Global.System.Globalization.CultureInfo
34 |
35 | '''
36 | ''' Returns the cached ResourceManager instance used by this class.
37 | '''
38 | _
39 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
40 | Get
41 | If Object.ReferenceEquals(resourceMan, Nothing) Then
42 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("QuPlay_GamePlugin.Resources", GetType(Resources).Assembly)
43 | resourceMan = temp
44 | End If
45 | Return resourceMan
46 | End Get
47 | End Property
48 |
49 | '''
50 | ''' Overrides the current thread's CurrentUICulture property for all
51 | ''' resource lookups using this strongly typed resource class.
52 | '''
53 | _
54 | Friend Property Culture() As Global.System.Globalization.CultureInfo
55 | Get
56 | Return resourceCulture
57 | End Get
58 | Set
59 | resourceCulture = value
60 | End Set
61 | End Property
62 | End Module
63 | End Namespace
64 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Settings.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My
16 |
17 | _
20 | Partial Friend NotInheritable Class MySettings
21 | Inherits Global.System.Configuration.ApplicationSettingsBase
22 |
23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
24 |
25 | #Region "My.Settings Auto-Save Functionality"
26 | #If _MyType = "WindowsForms" Then
27 | Private Shared addedHandler As Boolean
28 |
29 | Private Shared addedHandlerLockObject As New Object
30 |
31 | _
32 | Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
33 | If My.Application.SaveMySettingsOnExit Then
34 | My.Settings.Save()
35 | End If
36 | End Sub
37 | #End If
38 | #End Region
39 |
40 | Public Shared ReadOnly Property [Default]() As MySettings
41 | Get
42 |
43 | #If _MyType = "WindowsForms" Then
44 | If Not addedHandler Then
45 | SyncLock addedHandlerLockObject
46 | If Not addedHandler Then
47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
48 | addedHandler = True
49 | End If
50 | End SyncLock
51 | End If
52 | #End If
53 | Return defaultInstance
54 | End Get
55 | End Property
56 | End Class
57 | End Namespace
58 |
59 | Namespace My
60 |
61 | _
64 | Friend Module MySettingsProperty
65 |
66 | _
67 | Friend ReadOnly Property Settings() As Global.QuPlay_GamePlugin.My.MySettings
68 | Get
69 | Return Global.QuPlay_GamePlugin.My.MySettings.Default
70 | End Get
71 | End Property
72 | End Module
73 | End Namespace
74 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/all-wcprops:
--------------------------------------------------------------------------------
1 | K 25
2 | svn:wc:ra_dav:version-url
3 | V 61
4 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project
5 | END
6 | Resources.Designer.vb
7 | K 25
8 | svn:wc:ra_dav:version-url
9 | V 83
10 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Resources.Designer.vb
11 | END
12 | Settings.settings
13 | K 25
14 | svn:wc:ra_dav:version-url
15 | V 79
16 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Settings.settings
17 | END
18 | AssemblyInfo.vb
19 | K 25
20 | svn:wc:ra_dav:version-url
21 | V 77
22 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/AssemblyInfo.vb
23 | END
24 | Settings.Designer.vb
25 | K 25
26 | svn:wc:ra_dav:version-url
27 | V 82
28 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Settings.Designer.vb
29 | END
30 | Application.Designer.vb
31 | K 25
32 | svn:wc:ra_dav:version-url
33 | V 85
34 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Application.Designer.vb
35 | END
36 | Application.myapp
37 | K 25
38 | svn:wc:ra_dav:version-url
39 | V 79
40 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Application.myapp
41 | END
42 | Resources.resx
43 | K 25
44 | svn:wc:ra_dav:version-url
45 | V 76
46 | /svn/!svn/ver/14342/PluginExample/AdditionPlugin/My%20Project/Resources.resx
47 | END
48 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/entries:
--------------------------------------------------------------------------------
1 | 9
2 |
3 | dir
4 | 14342
5 | https://wtfnext.svn.codeplex.com/svn/PluginExample/AdditionPlugin/My%20Project
6 | https://wtfnext.svn.codeplex.com/svn
7 |
8 |
9 |
10 | 2009-05-06T17:31:59.177212Z
11 | 14342
12 | unknown
13 |
14 |
15 | svn:special svn:externals svn:needs-lock
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | 856ff616-a6d3-46b1-938b-83cc1fee1ebb
28 |
29 |
30 |
31 |
32 |
33 |
34 | 0
35 |
36 | Resources.Designer.vb
37 | file
38 |
39 |
40 |
41 |
42 | 2009-05-04T20:37:51.422539Z
43 | b2705b8b9ace0e3a2c5181879db894e9
44 | 2009-05-06T17:31:59.177212Z
45 | 14342
46 | unknown
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | 2802
69 |
70 | Settings.settings
71 | file
72 |
73 |
74 |
75 |
76 | 2009-05-04T20:37:51.438164Z
77 | 4a12ce12282d0ee237b12e7513037c50
78 | 2009-05-06T17:31:59.177212Z
79 | 14342
80 | unknown
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | 279
103 |
104 | AssemblyInfo.vb
105 | file
106 |
107 |
108 |
109 |
110 | 2009-05-04T20:37:51.375662Z
111 | 6bc2a9815f5eca7949dcaa59f3d3f940
112 | 2009-05-06T17:31:59.177212Z
113 | 14342
114 | unknown
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 | 1209
137 |
138 | Settings.Designer.vb
139 | file
140 |
141 |
142 |
143 |
144 | 2009-05-04T20:37:51.469415Z
145 | 95f28532d3053a6a796bff1f6aaf47ba
146 | 2009-05-06T17:31:59.177212Z
147 | 14342
148 | unknown
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | 3048
171 |
172 | Application.Designer.vb
173 | file
174 |
175 |
176 |
177 |
178 | 2009-05-04T20:37:51.344411Z
179 | 40f1ddc1960c42b69f163425a52b58e5
180 | 2009-05-06T17:31:59.177212Z
181 | 14342
182 | unknown
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 | 440
205 |
206 | Application.myapp
207 | file
208 |
209 |
210 |
211 |
212 | 2009-05-04T20:37:51.328786Z
213 | 9a61ce94d05f84833fa4cff2de9a56b2
214 | 2009-05-06T17:31:59.177212Z
215 | 14342
216 | unknown
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 | 481
239 |
240 | Resources.resx
241 | file
242 |
243 |
244 |
245 |
246 | 2009-05-04T20:37:51.406913Z
247 | 0cd8c971317d19bbed44757809bcb92b
248 | 2009-05-06T17:31:59.177212Z
249 | 14342
250 | unknown
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 | 5612
273 |
274 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/format:
--------------------------------------------------------------------------------
1 | 9
2 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Application.Designer.vb.svn-base:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:2.0.50727.3082
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Application.myapp.svn-base:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | false
5 | 0
6 | true
7 | 0
8 | 1
9 | true
10 |
11 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/AssemblyInfo.vb.svn-base:
--------------------------------------------------------------------------------
1 | Imports System
2 | Imports System.Reflection
3 | Imports System.Runtime.InteropServices
4 |
5 | ' General Information about an assembly is controlled through the following
6 | ' set of attributes. Change these attribute values to modify the information
7 | ' associated with an assembly.
8 |
9 | ' Review the values of the assembly attributes
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM
21 |
22 |
23 | ' Version information for an assembly consists of the following four values:
24 | '
25 | ' Major Version
26 | ' Minor Version
27 | ' Build Number
28 | ' Revision
29 | '
30 | ' You can specify all the values or you can default the Build and Revision Numbers
31 | ' by using the '*' as shown below:
32 | '
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Resources.Designer.vb.svn-base:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:2.0.50727.3082
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My.Resources
16 |
17 | 'This class was auto-generated by the StronglyTypedResourceBuilder
18 | 'class via a tool like ResGen or Visual Studio.
19 | 'To add or remove a member, edit your .ResX file then rerun ResGen
20 | 'with the /str option, or rebuild your VS project.
21 | '
22 | ' A strongly-typed resource class, for looking up localized strings, etc.
23 | '
24 | _
28 | Friend Module Resources
29 |
30 | Private resourceMan As Global.System.Resources.ResourceManager
31 |
32 | Private resourceCulture As Global.System.Globalization.CultureInfo
33 |
34 | '
35 | ' Returns the cached ResourceManager instance used by this class.
36 | '
37 | _
38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
39 | Get
40 | If Object.ReferenceEquals(resourceMan, Nothing) Then
41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("AdditionPlugin.Resources", GetType(Resources).Assembly)
42 | resourceMan = temp
43 | End If
44 | Return resourceMan
45 | End Get
46 | End Property
47 |
48 | '
49 | ' Overrides the current thread's CurrentUICulture property for all
50 | ' resource lookups using this strongly typed resource class.
51 | '
52 | _
53 | Friend Property Culture() As Global.System.Globalization.CultureInfo
54 | Get
55 | Return resourceCulture
56 | End Get
57 | Set(ByVal value As Global.System.Globalization.CultureInfo)
58 | resourceCulture = value
59 | End Set
60 | End Property
61 | End Module
62 | End Namespace
63 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Resources.resx.svn-base:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Settings.Designer.vb.svn-base:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:2.0.50727.3082
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My
16 |
17 | _
20 | Partial Friend NotInheritable Class MySettings
21 | Inherits Global.System.Configuration.ApplicationSettingsBase
22 |
23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
24 |
25 | #Region "My.Settings Auto-Save Functionality"
26 | #If _MyType = "WindowsForms" Then
27 | Private Shared addedHandler As Boolean
28 |
29 | Private Shared addedHandlerLockObject As New Object
30 |
31 | _
32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
33 | If My.Application.SaveMySettingsOnExit Then
34 | My.Settings.Save()
35 | End If
36 | End Sub
37 | #End If
38 | #End Region
39 |
40 | Public Shared ReadOnly Property [Default]() As MySettings
41 | Get
42 |
43 | #If _MyType = "WindowsForms" Then
44 | If Not addedHandler Then
45 | SyncLock addedHandlerLockObject
46 | If Not addedHandler Then
47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
48 | addedHandler = True
49 | End If
50 | End SyncLock
51 | End If
52 | #End If
53 | Return defaultInstance
54 | End Get
55 | End Property
56 | End Class
57 | End Namespace
58 |
59 | Namespace My
60 |
61 | _
64 | Friend Module MySettingsProperty
65 |
66 | _
67 | Friend ReadOnly Property Settings() As Global.AdditionPlugin.My.MySettings
68 | Get
69 | Return Global.AdditionPlugin.My.MySettings.Default
70 | End Get
71 | End Property
72 | End Module
73 | End Namespace
74 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/My Project/_svn/text-base/Settings.settings.svn-base:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/bin/Debug/Game_PluginAPI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/SimToolsGamePlugin/GamePlugin/bin/Debug/Game_PluginAPI.dll
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/bin/Debug/PluginValidator.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/SimToolsGamePlugin/GamePlugin/bin/Debug/PluginValidator.exe
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/bin/Release/Game_PluginAPI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/SimToolsGamePlugin/GamePlugin/bin/Release/Game_PluginAPI.dll
--------------------------------------------------------------------------------
/SimToolsGamePlugin/GamePlugin/bin/Release/PluginValidator.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/SimToolsGamePlugin/GamePlugin/bin/Release/PluginValidator.exe
--------------------------------------------------------------------------------
/SimpleUdpReciever/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015/2017 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # Visual Studio 2017 auto generated files
33 | Generated\ Files/
34 |
35 | # MSTest test Results
36 | [Tt]est[Rr]esult*/
37 | [Bb]uild[Ll]og.*
38 |
39 | # NUNIT
40 | *.VisualState.xml
41 | TestResult.xml
42 |
43 | # Build Results of an ATL Project
44 | [Dd]ebugPS/
45 | [Rr]eleasePS/
46 | dlldata.c
47 |
48 | # Benchmark Results
49 | BenchmarkDotNet.Artifacts/
50 |
51 | # .NET Core
52 | project.lock.json
53 | project.fragment.lock.json
54 | artifacts/
55 | **/Properties/launchSettings.json
56 |
57 | # StyleCop
58 | StyleCopReport.xml
59 |
60 | # Files built by Visual Studio
61 | *_i.c
62 | *_p.c
63 | *_i.h
64 | *.ilk
65 | *.meta
66 | *.obj
67 | *.pch
68 | *.pdb
69 | *.pgc
70 | *.pgd
71 | *.rsp
72 | *.sbr
73 | *.tlb
74 | *.tli
75 | *.tlh
76 | *.tmp
77 | *.tmp_proj
78 | *.log
79 | *.vspscc
80 | *.vssscc
81 | .builds
82 | *.pidb
83 | *.svclog
84 | *.scc
85 |
86 | # Chutzpah Test files
87 | _Chutzpah*
88 |
89 | # Visual C++ cache files
90 | ipch/
91 | *.aps
92 | *.ncb
93 | *.opendb
94 | *.opensdf
95 | *.sdf
96 | *.cachefile
97 | *.VC.db
98 | *.VC.VC.opendb
99 |
100 | # Visual Studio profiler
101 | *.psess
102 | *.vsp
103 | *.vspx
104 | *.sap
105 |
106 | # Visual Studio Trace Files
107 | *.e2e
108 |
109 | # TFS 2012 Local Workspace
110 | $tf/
111 |
112 | # Guidance Automation Toolkit
113 | *.gpState
114 |
115 | # ReSharper is a .NET coding add-in
116 | _ReSharper*/
117 | *.[Rr]e[Ss]harper
118 | *.DotSettings.user
119 |
120 | # JustCode is a .NET coding add-in
121 | .JustCode
122 |
123 | # TeamCity is a build add-in
124 | _TeamCity*
125 |
126 | # DotCover is a Code Coverage Tool
127 | *.dotCover
128 |
129 | # AxoCover is a Code Coverage Tool
130 | .axoCover/*
131 | !.axoCover/settings.json
132 |
133 | # Visual Studio code coverage results
134 | *.coverage
135 | *.coveragexml
136 |
137 | # NCrunch
138 | _NCrunch_*
139 | .*crunch*.local.xml
140 | nCrunchTemp_*
141 |
142 | # MightyMoose
143 | *.mm.*
144 | AutoTest.Net/
145 |
146 | # Web workbench (sass)
147 | .sass-cache/
148 |
149 | # Installshield output folder
150 | [Ee]xpress/
151 |
152 | # DocProject is a documentation generator add-in
153 | DocProject/buildhelp/
154 | DocProject/Help/*.HxT
155 | DocProject/Help/*.HxC
156 | DocProject/Help/*.hhc
157 | DocProject/Help/*.hhk
158 | DocProject/Help/*.hhp
159 | DocProject/Help/Html2
160 | DocProject/Help/html
161 |
162 | # Click-Once directory
163 | publish/
164 |
165 | # Publish Web Output
166 | *.[Pp]ublish.xml
167 | *.azurePubxml
168 | # Note: Comment the next line if you want to checkin your web deploy settings,
169 | # but database connection strings (with potential passwords) will be unencrypted
170 | *.pubxml
171 | *.publishproj
172 |
173 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
174 | # checkin your Azure Web App publish settings, but sensitive information contained
175 | # in these scripts will be unencrypted
176 | PublishScripts/
177 |
178 | # NuGet Packages
179 | *.nupkg
180 | # The packages folder can be ignored because of Package Restore
181 | **/[Pp]ackages/*
182 | # except build/, which is used as an MSBuild target.
183 | !**/[Pp]ackages/build/
184 | # Uncomment if necessary however generally it will be regenerated when needed
185 | #!**/[Pp]ackages/repositories.config
186 | # NuGet v3's project.json files produces more ignorable files
187 | *.nuget.props
188 | *.nuget.targets
189 |
190 | # Microsoft Azure Build Output
191 | csx/
192 | *.build.csdef
193 |
194 | # Microsoft Azure Emulator
195 | ecf/
196 | rcf/
197 |
198 | # Windows Store app package directories and files
199 | AppPackages/
200 | BundleArtifacts/
201 | Package.StoreAssociation.xml
202 | _pkginfo.txt
203 | *.appx
204 |
205 | # Visual Studio cache files
206 | # files ending in .cache can be ignored
207 | *.[Cc]ache
208 | # but keep track of directories ending in .cache
209 | !*.[Cc]ache/
210 |
211 | # Others
212 | ClientBin/
213 | ~$*
214 | *~
215 | *.dbmdl
216 | *.dbproj.schemaview
217 | *.jfm
218 | *.pfx
219 | *.publishsettings
220 | orleans.codegen.cs
221 |
222 | # Since there are multiple workflows, uncomment next line to ignore bower_components
223 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
224 | #bower_components/
225 |
226 | # RIA/Silverlight projects
227 | Generated_Code/
228 |
229 | # Backup & report files from converting an old project file
230 | # to a newer Visual Studio version. Backup files are not needed,
231 | # because we have git ;-)
232 | _UpgradeReport_Files/
233 | Backup*/
234 | UpgradeLog*.XML
235 | UpgradeLog*.htm
236 |
237 | # SQL Server files
238 | *.mdf
239 | *.ldf
240 | *.ndf
241 |
242 | # Business Intelligence projects
243 | *.rdl.data
244 | *.bim.layout
245 | *.bim_*.settings
246 |
247 | # Microsoft Fakes
248 | FakesAssemblies/
249 |
250 | # GhostDoc plugin setting file
251 | *.GhostDoc.xml
252 |
253 | # Node.js Tools for Visual Studio
254 | .ntvs_analysis.dat
255 | node_modules/
256 |
257 | # TypeScript v1 declaration files
258 | typings/
259 |
260 | # Visual Studio 6 build log
261 | *.plg
262 |
263 | # Visual Studio 6 workspace options file
264 | *.opt
265 |
266 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
267 | *.vbw
268 |
269 | # Visual Studio LightSwitch build output
270 | **/*.HTMLClient/GeneratedArtifacts
271 | **/*.DesktopClient/GeneratedArtifacts
272 | **/*.DesktopClient/ModelManifest.xml
273 | **/*.Server/GeneratedArtifacts
274 | **/*.Server/ModelManifest.xml
275 | _Pvt_Extensions
276 |
277 | # Paket dependency manager
278 | .paket/paket.exe
279 | paket-files/
280 |
281 | # FAKE - F# Make
282 | .fake/
283 |
284 | # JetBrains Rider
285 | .idea/
286 | *.sln.iml
287 |
288 | # CodeRush
289 | .cr/
290 |
291 | # Python Tools for Visual Studio (PTVS)
292 | __pycache__/
293 | *.pyc
294 |
295 | # Cake - Uncomment if you are using it
296 | # tools/**
297 | # !tools/packages.config
298 |
299 | # Tabs Studio
300 | *.tss
301 |
302 | # Telerik's JustMock configuration file
303 | *.jmconfig
304 |
305 | # BizTalk build output
306 | *.btp.cs
307 | *.btm.cs
308 | *.odx.cs
309 | *.xsd.cs
310 |
311 | # OpenCover UI analysis results
312 | OpenCover/
313 |
314 | # Azure Stream Analytics local run output
315 | ASALocalRun/
--------------------------------------------------------------------------------
/SimpleUdpReciever/SimpleUdpReciever.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Studio 2010
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleUdpReciever", "SimpleUdpReciever\SimpleUdpReciever.csproj", "{3A48A6B4-854F-4F5D-9871-03F8BE205C12}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|x86 = Debug|x86
9 | Release|x86 = Release|x86
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {3A48A6B4-854F-4F5D-9871-03F8BE205C12}.Debug|x86.ActiveCfg = Debug|x86
13 | {3A48A6B4-854F-4F5D-9871-03F8BE205C12}.Debug|x86.Build.0 = Debug|x86
14 | {3A48A6B4-854F-4F5D-9871-03F8BE205C12}.Release|x86.ActiveCfg = Release|x86
15 | {3A48A6B4-854F-4F5D-9871-03F8BE205C12}.Release|x86.Build.0 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/SimpleUdpReciever/SimpleUdpReciever/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Net.Sockets;
5 | using System.Net;
6 |
7 | namespace SimpleUdpReciever
8 | {
9 | ///
10 | /// Simple implementation of the Udp Reciever
11 | /// Autor: Claudio Silva - DDK
12 | /// Blog: https://clclaudio.wordpress.com
13 | ///
14 | class Program
15 | {
16 | static void Main(string[] args)
17 | {
18 | string ip = "127.0.0.1";
19 | int port = 4123;
20 | string name_space = typeof(Program).Namespace;
21 |
22 | try {
23 | IPEndPoint remoteSender = new IPEndPoint(IPAddress.Parse(ip), port);
24 |
25 | // Create UDP client
26 | UdpClient client = new UdpClient(port);
27 | UdpState state = new UdpState(client, remoteSender);
28 |
29 | // Start async receiving
30 | client.BeginReceive(new AsyncCallback(DataReceived), state);
31 |
32 | // Wait for any key to terminate application
33 |
34 | Console.Write(name_space + ": Waiting for packages\n");
35 | Console.ReadKey();
36 | client.Close();
37 | Console.Write(name_space + ": Finalized\n");
38 | }
39 | catch (Exception e) {
40 | Console.Write(name_space + ": ERROR : " + e);
41 | }
42 | }
43 |
44 | private static void DataReceived(IAsyncResult ar)
45 | {
46 | UdpClient c = (UdpClient)((UdpState)ar.AsyncState).c;
47 | IPEndPoint wantedIpEndPoint = (IPEndPoint)((UdpState)(ar.AsyncState)).e;
48 | IPEndPoint receivedIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
49 | Byte[] receiveBytes = c.EndReceive(ar, ref receivedIpEndPoint);
50 |
51 | // Convert data to ASCII and print in console
52 | string receivedText = ASCIIEncoding.ASCII.GetString(receiveBytes);
53 | Console.Write(receivedText + "\n");
54 |
55 | // Restart listening for udp data packages
56 | c.BeginReceive(new AsyncCallback(DataReceived), ar.AsyncState);
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/SimpleUdpReciever/SimpleUdpReciever/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SimpleUdpReciever")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("SimpleUdpReciever")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("82fac1ff-ba81-45ec-9340-d78c1501b76a")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SimpleUdpReciever/SimpleUdpReciever/SimpleUdpReciever.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {3A48A6B4-854F-4F5D-9871-03F8BE205C12}
9 | Exe
10 | Properties
11 | SimpleUdpReciever
12 | SimpleUdpReciever
13 | v2.0
14 | 512
15 |
16 |
17 | x86
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | x86
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
53 |
--------------------------------------------------------------------------------
/SimpleUdpReciever/SimpleUdpReciever/UdpState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Net.Sockets;
5 | using System.Net;
6 |
7 | namespace SimpleUdpReciever
8 | {
9 | ///
10 | /// Simple implementation of the UdpState class mentioned on
11 | /// http://msdn.microsoft.com/en-us/library/c8s04db1(v=VS.80).aspx
12 | ///
13 | internal class UdpState
14 | {
15 | internal UdpState(UdpClient c, IPEndPoint e)
16 | {
17 | this.c = c;
18 | this.e = e;
19 | }
20 |
21 | internal UdpClient c;
22 | internal IPEndPoint e;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Unity3D/Plugin/QuPlaySimtools.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System;
4 | using System.Text;
5 | using System.Net;
6 | using System.Net.Sockets;
7 |
8 | class Simtools
9 | {
10 | public float Roll;
11 | public float Pitch;
12 | public float Yaw;
13 | public float Heave;
14 | public float Sway;
15 | public float Surge;
16 | public float Extra1;
17 | public float Extra2;
18 | public float Extra3;
19 | public Simtools() { }
20 | public Simtools(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
21 | {
22 | this.Roll = Roll;
23 | this.Pitch = Pitch;
24 | this.Yaw = Yaw;
25 | this.Heave = Heave;
26 | this.Sway = Sway;
27 | this.Surge = Surge;
28 | this.Extra1 = Extra1;
29 | this.Extra2 = Extra2;
30 | this.Extra3 = Extra3;
31 | }
32 | }
33 |
34 | public class QuPlaySimtools : MonoBehaviour
35 | {
36 | public string IP = "127.0.0.1";
37 | public int port = 4123;
38 |
39 | IPEndPoint remoteEndPoint;
40 | static UdpClient client;
41 | static Simtools simtools;
42 |
43 | void Start()
44 | {
45 | remoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), port);
46 | client = new UdpClient();
47 | simtools = new Simtools();
48 | StartCoroutine("QuSimtools_Start");
49 | }
50 |
51 | public static void QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
52 | {
53 | simtools = new Simtools(Roll, Pitch, Yaw, Heave, Sway, Surge, Extra1, Extra2, Extra3);
54 | }
55 |
56 | IEnumerator QuSimtools_Start()
57 | {
58 | while (true)
59 | {
60 | string info = String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", simtools.Roll, simtools.Pitch, simtools.Yaw, simtools.Heave, simtools.Sway, simtools.Surge, simtools.Extra1, simtools.Extra2, simtools.Extra3);
61 | byte[] data = Encoding.Default.GetBytes(info);
62 | client.Send(data, data.Length, remoteEndPoint);
63 | yield return null;
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/Unity3D/QuPlay/.gitignore:
--------------------------------------------------------------------------------
1 | # =============== #
2 | # Unity generated #
3 | # =============== #
4 | [Tt]emp/
5 | [Oo]bj/
6 | [Bb]uild
7 | /[Bb]uilds/
8 | /[Ll]ibrary/
9 | sysinfo.txt
10 | *.stackdump
11 | /Assets/AssetStoreTools*
12 | *.apk
13 | *.unitypackage
14 |
15 | # ===================================== #
16 | # Visual Studio / MonoDevelop generated #
17 | # ===================================== #
18 | [Ee]xported[Oo]bj/
19 | .vs/
20 | /*.userprefs
21 | /*.csproj
22 | /*.pidb
23 | *.pidb.meta
24 | /*.suo
25 | /*.sln*
26 | /*.user
27 | /*.unityproj
28 | /*.booproj
29 | .consulo/
30 | /*.tmp
31 | /*.svd
32 |
33 | # ============ #
34 | # OS generated #
35 | # ============ #
36 | .DS_Store*
37 | ._*
38 | .Spotlight-V100
39 | .Trashes
40 | Icon?
41 | ehthumbs.db
42 | [Tt]humbs.db
43 | [Dd]esktop.ini
44 | Corridor/Library/ShaderCache/
45 | Corridor/Library/metadata/
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/Main.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | public class Main : MonoBehaviour
4 | {
5 | // Update is called once per frame
6 | void Update()
7 | {
8 | QuPlaySimtools.QuSimtools_SendTelemetry(Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180), Random.RandomRange(-180, 180));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/Main.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cafcb11f38d274b409c0055edf7d93d0
3 | timeCreated: 1513008383
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/Main.unity:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/Assets/Main.unity
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/Main.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba00eb398935b594d93728aab42deda4
3 | timeCreated: 1511669794
4 | licenseType: Free
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/QuPlaySimtools.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System;
4 | using System.Text;
5 | using System.Net;
6 | using System.Net.Sockets;
7 |
8 | class Simtools
9 | {
10 | public float Roll;
11 | public float Pitch;
12 | public float Yaw;
13 | public float Heave;
14 | public float Sway;
15 | public float Surge;
16 | public float Extra1;
17 | public float Extra2;
18 | public float Extra3;
19 | public Simtools() { }
20 | public Simtools(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
21 | {
22 | this.Roll = Roll;
23 | this.Pitch = Pitch;
24 | this.Yaw = Yaw;
25 | this.Heave = Heave;
26 | this.Sway = Sway;
27 | this.Surge = Surge;
28 | this.Extra1 = Extra1;
29 | this.Extra2 = Extra2;
30 | this.Extra3 = Extra3;
31 | }
32 | }
33 |
34 | public class QuPlaySimtools : MonoBehaviour
35 | {
36 | public string IP = "127.0.0.1";
37 | public int port = 4123;
38 |
39 | IPEndPoint remoteEndPoint;
40 | static UdpClient client;
41 | static Simtools simtools;
42 |
43 | void Start()
44 | {
45 | remoteEndPoint = new IPEndPoint(IPAddress.Parse(IP), port);
46 | client = new UdpClient();
47 | simtools = new Simtools();
48 | StartCoroutine("QuSimtools_Start");
49 | }
50 |
51 | public static void QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
52 | {
53 | simtools = new Simtools(Roll, Pitch, Yaw, Heave, Sway, Surge, Extra1, Extra2, Extra3);
54 | }
55 |
56 | IEnumerator QuSimtools_Start()
57 | {
58 | while (true)
59 | {
60 | string info = String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", simtools.Roll, simtools.Pitch, simtools.Yaw, simtools.Heave, simtools.Sway, simtools.Surge, simtools.Extra1, simtools.Extra2, simtools.Extra3);
61 | byte[] data = Encoding.Default.GetBytes(info);
62 | client.Send(data, data.Length, remoteEndPoint);
63 | yield return null;
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/Unity3D/QuPlay/Assets/QuPlaySimtools.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4c35f4dfee22e594e82b4094f5d1e983
3 | timeCreated: 1512773050
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/AudioManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/ClusterInputManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/DynamicsManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/EditorBuildSettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/EditorSettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/GraphicsSettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/InputManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/NavMeshAreas.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/NetworkManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/Physics2DSettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/ProjectSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/ProjectSettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 5.6.3f1
2 |
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/QualitySettings.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/TagManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/TimeManager.asset
--------------------------------------------------------------------------------
/Unity3D/QuPlay/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unity3D/QuPlay/ProjectSettings/UnityConnectSettings.asset
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/QuPlaySimtools.uplugin:
--------------------------------------------------------------------------------
1 | {
2 | "FileVersion": 3,
3 | "Version": 1,
4 | "VersionName": "1.0",
5 | "FriendlyName": "QuPlaySimtools",
6 | "Description": "UE4.18 plugin to Simtools 2.0",
7 | "Category": "Network",
8 | "CreatedBy": "QuPlay",
9 | "CreatedByURL": "https://clclaudio.wordpress.com",
10 | "DocsURL": "https://clclaudio.wordpress.com",
11 | "MarketplaceURL": "https://clclaudio.wordpress.com",
12 | "SupportURL": "https://clclaudio.wordpress.com",
13 | "EnabledByDefault": true,
14 | "CanContainContent": false,
15 | "IsBetaVersion": false,
16 | "Installed": false,
17 | "Modules": [
18 | {
19 | "Name": "QuPlaySimtools",
20 | "Type": "Runtime",
21 | "LoadingPhase": "PreLoadingScreen"
22 | }
23 | ]
24 | }
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Resources/Icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unreal/Plugins/QuPlaySimtools/Resources/Icon128.png
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Private/QuPlaySimtools.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #include "QuPlaySimtools.h"
4 |
5 | #define LOCTEXT_NAMESPACE "FQuPlaySimtoolsModule"
6 |
7 | void FQuPlaySimtoolsModule::StartupModule()
8 | {
9 | // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
10 |
11 | }
12 |
13 | void FQuPlaySimtoolsModule::ShutdownModule()
14 | {
15 | // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
16 | // we call this function before unloading the module.
17 |
18 | }
19 |
20 | #undef LOCTEXT_NAMESPACE
21 |
22 | IMPLEMENT_MODULE(FQuPlaySimtoolsModule, QuPlaySimtools)
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Private/QuPlaySimtoolsBPLibrary.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #include "QuPlaySimtoolsBPLibrary.h"
4 | #include "QuPlaySimtools.h"
5 |
6 | UQuPlaySimtoolsBPLibrary::UQuPlaySimtoolsBPLibrary(const FObjectInitializer& ObjectInitializer)
7 | : Super(ObjectInitializer)
8 | {
9 |
10 | }
11 |
12 | UQuPlaySimtoolsBPLibrary::~UQuPlaySimtoolsBPLibrary()
13 | {
14 | QuSimtools_Stop();
15 | }
16 |
17 |
18 |
19 | bool UQuPlaySimtoolsBPLibrary::QuSimtools_Start(const FString & YourChosenSocketName, const FString & TheIP, const int32 ThePort)
20 | {
21 | QuSimtools_Stop();
22 | SenderSocket = NULL;
23 |
24 | //Create Remote Address.
25 | RemoteAddr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();
26 |
27 | bool bIsValid;
28 | RemoteAddr->SetIp(*TheIP, bIsValid);
29 | RemoteAddr->SetPort(ThePort);
30 |
31 | if (!bIsValid)
32 | {
33 | UE_LOG(LogTemp, Error, TEXT("UDP Sender>> ip address was not valid!"));
34 | return false;
35 | }
36 |
37 | SenderSocket = FUdpSocketBuilder(*YourChosenSocketName).AsReusable().WithBroadcast();
38 |
39 |
40 | //check(SenderSocket->GetSocketType() == SOCKTYPE_Datagram);
41 |
42 | //Set Send Buffer Size
43 | int32 SendSize = 2 * 1024 * 1024;
44 | SenderSocket->SetSendBufferSize(SendSize, SendSize);
45 | SenderSocket->SetReceiveBufferSize(SendSize, SendSize);
46 |
47 | UE_LOG(LogTemp, Log, TEXT("\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"));
48 | UE_LOG(LogTemp, Log, TEXT("****UDP**** Sender Initialized Successfully!!!"));
49 | UE_LOG(LogTemp, Log, TEXT("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n"));
50 |
51 | return true;
52 | }
53 |
54 | bool UQuPlaySimtoolsBPLibrary::QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
55 | {
56 | if (!SenderSocket)
57 | {
58 | UE_LOG(LogTemp, Error, TEXT("No sender socket"));
59 | return false;
60 | }
61 | int32 BytesSent = 0;
62 |
63 | TArray telemetry;
64 | telemetry.Add(FString::SanitizeFloat(Roll));
65 | telemetry.Add(FString::SanitizeFloat(Pitch));
66 | telemetry.Add(FString::SanitizeFloat(Yaw));
67 | telemetry.Add(FString::SanitizeFloat(Heave));
68 | telemetry.Add(FString::SanitizeFloat(Sway));
69 | telemetry.Add(FString::SanitizeFloat(Surge));
70 | telemetry.Add(FString::SanitizeFloat(Extra1));
71 | telemetry.Add(FString::SanitizeFloat(Extra2));
72 | telemetry.Add(FString::SanitizeFloat(Extra3));
73 | FString ToSend = FString::Join(telemetry,_T(","));
74 | TCHAR *data = ToSend.GetCharArray().GetData();
75 | SenderSocket->SendTo((uint8*)TCHAR_TO_UTF8(data), FCString::Strlen(data), BytesSent, *RemoteAddr);
76 |
77 | if (BytesSent <= 0)
78 | {
79 | UE_LOG(LogTemp, Error, TEXT("Socket is valid but the receiver received 0 bytes, make sure it is listening properly!"));
80 | return false;
81 | }
82 |
83 | return true;
84 | }
85 |
86 | void UQuPlaySimtoolsBPLibrary::QuSimtools_Stop()
87 | {
88 | if (SenderSocket)
89 | {
90 | SenderSocket->Close();
91 | ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->DestroySocket(SenderSocket);
92 | }
93 | }
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Public/QuPlaySimtools.h:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #pragma once
4 |
5 | #include "ModuleManager.h"
6 |
7 | class FQuPlaySimtoolsModule : public IModuleInterface
8 | {
9 | public:
10 |
11 | /** IModuleInterface implementation */
12 | virtual void StartupModule() override;
13 | virtual void ShutdownModule() override;
14 | };
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Public/QuPlaySimtoolsBPLibrary.h:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #pragma once
4 | #include "Networking.h"
5 | #include "Sockets.h"
6 | #include "Engine.h"
7 |
8 | #include "Kismet/BlueprintFunctionLibrary.h"
9 | #include "QuPlaySimtoolsBPLibrary.generated.h"
10 |
11 | static TSharedPtr RemoteAddr;
12 | static FSocket* SenderSocket;
13 |
14 | /*
15 | * Function library class.
16 | * Each function in it is expected to be static and represents blueprint node that can be called in any blueprint.
17 | *
18 | * When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable.
19 | * BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins.
20 | * BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins.
21 | * DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu.
22 | * Its lets you name the node using characters not allowed in C++ function names.
23 | * CompactNodeTitle - the word(s) that appear on the node.
24 | * Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu.
25 | * Good example is "Print String" node which you can find also by using keyword "log".
26 | * Category - the category your node will be under in the Blueprint drop-down menu.
27 | *
28 | * For more info on custom blueprint nodes visit documentation:
29 | * https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation
30 | */
31 | UCLASS()
32 | class UQuPlaySimtoolsBPLibrary : public UBlueprintFunctionLibrary
33 | {
34 | GENERATED_UCLASS_BODY()
35 | ~UQuPlaySimtoolsBPLibrary();
36 |
37 | public: // FUNCOES DE REDE
38 |
39 | /** Create socket and connect to the Simtools 2.0
40 | * @param YourChosenSocketName a simple name to the socket
41 | * @param TheIP IP address server (local: "127.0.0.1")
42 | * @param ThePort port server (4123)
43 | * @return True if successful
44 | */
45 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
46 | static bool QuSimtools_Start(const FString & YourChosenSocketName, const FString & TheIP, const int32 ThePort);
47 |
48 | /** Sending data to Simtools 2.0 socket
49 | * @return True if successful
50 | */
51 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
52 | static bool QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3);
53 |
54 | /** Destroy socket and connect to the Simtools 2.0
55 | */
56 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
57 | static void QuSimtools_Stop();
58 | };
59 |
--------------------------------------------------------------------------------
/Unreal/Plugins/QuPlaySimtools/Source/QuPlaySimtools/QuPlaySimtools.Build.cs:
--------------------------------------------------------------------------------
1 | // Some copyright should be here...
2 |
3 | using UnrealBuildTool;
4 |
5 | public class QuPlaySimtools : ModuleRules
6 | {
7 | public QuPlaySimtools(ReadOnlyTargetRules Target) : base(Target)
8 | {
9 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
10 |
11 | PublicIncludePaths.AddRange(
12 | new string[] {
13 | "QuPlaySimtools/Public"
14 |
15 | // ... add public include paths required here ...
16 | }
17 | );
18 |
19 |
20 | PrivateIncludePaths.AddRange(
21 | new string[] {
22 | "QuPlaySimtools/Private",
23 |
24 | // ... add other private include paths required here ...
25 | }
26 | );
27 |
28 |
29 | PublicDependencyModuleNames.AddRange(
30 | new string[]
31 | {
32 | "Core",
33 | "CoreUObject",
34 | "Engine",
35 | "InputCore",
36 | "Sockets",
37 | "Networking",
38 | "Json" //<~~~~~
39 |
40 | // ... add other public dependencies that you statically link with here ...
41 | }
42 | );
43 |
44 |
45 | PrivateDependencyModuleNames.AddRange(
46 | new string[]
47 | {
48 | "CoreUObject",
49 | "Engine",
50 | "Slate",
51 | "SlateCore"
52 |
53 | // ... add private dependencies that you statically link with here ...
54 | }
55 | );
56 |
57 |
58 | DynamicallyLoadedModuleNames.AddRange(
59 | new string[]
60 | {
61 | // ... add any modules that your module loads dynamically here ...
62 | }
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/.gitignore:
--------------------------------------------------------------------------------
1 | Binaries
2 | DerivedDataCache
3 | Intermediate
4 | Saved
5 | .vscode
6 | .vs
7 | *.VC.db
8 | *.opensdf
9 | *.opendb
10 | *.sdf
11 | *.sln
12 | *.suo
13 | *.xcodeproj
14 | *.xcworkspace
15 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Config/DefaultEditor.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unreal/QuPlay/Config/DefaultEditor.ini
--------------------------------------------------------------------------------
/Unreal/QuPlay/Config/DefaultEngine.ini:
--------------------------------------------------------------------------------
1 | [URL]
2 |
3 | [/Script/HardwareTargeting.HardwareTargetingSettings]
4 | TargetedHardwareClass=Desktop
5 | AppliedTargetedHardwareClass=Desktop
6 | DefaultGraphicsPerformance=Maximum
7 | AppliedDefaultGraphicsPerformance=Maximum
8 |
9 | [/Script/EngineSettings.GameMapsSettings]
10 | EditorStartupMap=/Game/Main.Main
11 | GameDefaultMap=/Game/Main.Main
12 |
13 | [/Script/Engine.PhysicsSettings]
14 | DefaultGravityZ=-980.000000
15 | DefaultTerminalVelocity=4000.000000
16 | DefaultFluidFriction=0.300000
17 | SimulateScratchMemorySize=262144
18 | RagdollAggregateThreshold=4
19 | TriangleMeshTriangleMinAreaThreshold=5.000000
20 | bEnableAsyncScene=False
21 | bEnableShapeSharing=False
22 | bEnablePCM=True
23 | bEnableStabilization=False
24 | bWarnMissingLocks=True
25 | bEnable2DPhysics=False
26 | LockedAxis=Invalid
27 | DefaultDegreesOfFreedom=Full3D
28 | BounceThresholdVelocity=200.000000
29 | FrictionCombineMode=Average
30 | RestitutionCombineMode=Average
31 | MaxAngularVelocity=3600.000000
32 | MaxDepenetrationVelocity=0.000000
33 | ContactOffsetMultiplier=0.020000
34 | MinContactOffset=2.000000
35 | MaxContactOffset=8.000000
36 | bSimulateSkeletalMeshOnDedicatedServer=True
37 | DefaultShapeComplexity=CTF_UseSimpleAndComplex
38 | bDefaultHasComplexCollision=True
39 | bSuppressFaceRemapTable=False
40 | bSupportUVFromHitResults=False
41 | bDisableActiveActors=False
42 | bDisableCCD=False
43 | bEnableEnhancedDeterminism=False
44 | MaxPhysicsDeltaTime=0.033333
45 | bSubstepping=False
46 | bSubsteppingAsync=False
47 | MaxSubstepDeltaTime=0.016667
48 | MaxSubsteps=6
49 | SyncSceneSmoothingFactor=0.000000
50 | AsyncSceneSmoothingFactor=0.990000
51 | InitialAverageFrameRate=0.016667
52 | PhysXTreeRebuildRate=10
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Config/DefaultGame.ini:
--------------------------------------------------------------------------------
1 | [/Script/EngineSettings.GeneralProjectSettings]
2 | ProjectID=3FD96F4D46D87A7FD5DAF9B2E8B1437B
3 | ProjectName=QuPlay
4 |
5 | [/Script/UnrealEd.ProjectPackagingSettings]
6 | BuildConfiguration=PPBC_Shipping
7 |
8 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Content/Main.umap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unreal/QuPlay/Content/Main.umap
--------------------------------------------------------------------------------
/Unreal/QuPlay/Content/Main_BuiltData.uasset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unreal/QuPlay/Content/Main_BuiltData.uasset
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/QuPlaySimtools.uplugin:
--------------------------------------------------------------------------------
1 | {
2 | "FileVersion": 3,
3 | "Version": 1,
4 | "VersionName": "1.0",
5 | "FriendlyName": "QuPlaySimtools",
6 | "Description": "UE4.18 plugin to Simtools 2.0",
7 | "Category": "Networking",
8 | "CreatedBy": "QuPlay",
9 | "CreatedByURL": "https://clclaudio.wordpress.com",
10 | "DocsURL": "https://clclaudio.wordpress.com",
11 | "MarketplaceURL": "https://clclaudio.wordpress.com",
12 | "SupportURL": "https://clclaudio.wordpress.com",
13 | "EnabledByDefault": true,
14 | "CanContainContent": false,
15 | "IsBetaVersion": false,
16 | "Installed": false,
17 | "Modules": [
18 | {
19 | "Name": "QuPlaySimtools",
20 | "Type": "Runtime",
21 | "LoadingPhase": "PreLoadingScreen"
22 | }
23 | ]
24 | }
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Resources/Icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ddkclaudio/QuplaySimTools/671bb2429bbec7628d7496a855cc87306a6b74fb/Unreal/QuPlay/Plugins/QuPlaySimtools/Resources/Icon128.png
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Private/QuPlaySimtools.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #include "QuPlaySimtools.h"
4 |
5 | #define LOCTEXT_NAMESPACE "FQuPlaySimtoolsModule"
6 |
7 | void FQuPlaySimtoolsModule::StartupModule()
8 | {
9 | // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
10 |
11 | }
12 |
13 | void FQuPlaySimtoolsModule::ShutdownModule()
14 | {
15 | // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
16 | // we call this function before unloading the module.
17 |
18 | }
19 |
20 | #undef LOCTEXT_NAMESPACE
21 |
22 | IMPLEMENT_MODULE(FQuPlaySimtoolsModule, QuPlaySimtools)
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Private/QuPlaySimtoolsBPLibrary.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #include "QuPlaySimtoolsBPLibrary.h"
4 | #include "QuPlaySimtools.h"
5 |
6 | UQuPlaySimtoolsBPLibrary::UQuPlaySimtoolsBPLibrary(const FObjectInitializer& ObjectInitializer)
7 | : Super(ObjectInitializer)
8 | {
9 |
10 | }
11 |
12 | UQuPlaySimtoolsBPLibrary::~UQuPlaySimtoolsBPLibrary()
13 | {
14 | QuSimtools_Stop();
15 | }
16 |
17 |
18 |
19 | bool UQuPlaySimtoolsBPLibrary::QuSimtools_Start(const FString & YourChosenSocketName, const FString & TheIP, const int32 ThePort)
20 | {
21 | QuSimtools_Stop();
22 | SenderSocket = NULL;
23 |
24 | //Create Remote Address.
25 | RemoteAddr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();
26 |
27 | bool bIsValid;
28 | RemoteAddr->SetIp(*TheIP, bIsValid);
29 | RemoteAddr->SetPort(ThePort);
30 |
31 | if (!bIsValid)
32 | {
33 | UE_LOG(LogTemp, Error, TEXT("UDP Sender>> ip address was not valid!"));
34 | return false;
35 | }
36 |
37 | SenderSocket = FUdpSocketBuilder(*YourChosenSocketName).AsReusable().WithBroadcast();
38 |
39 |
40 | //check(SenderSocket->GetSocketType() == SOCKTYPE_Datagram);
41 |
42 | //Set Send Buffer Size
43 | int32 SendSize = 2 * 1024 * 1024;
44 | SenderSocket->SetSendBufferSize(SendSize, SendSize);
45 | SenderSocket->SetReceiveBufferSize(SendSize, SendSize);
46 |
47 | UE_LOG(LogTemp, Log, TEXT("\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"));
48 | UE_LOG(LogTemp, Log, TEXT("****UDP**** Sender Initialized Successfully!!!"));
49 | UE_LOG(LogTemp, Log, TEXT("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n"));
50 |
51 | return true;
52 | }
53 |
54 | bool UQuPlaySimtoolsBPLibrary::QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3)
55 | {
56 | if (!SenderSocket)
57 | {
58 | UE_LOG(LogTemp, Error, TEXT("No sender socket"));
59 | return false;
60 | }
61 | int32 BytesSent = 0;
62 |
63 | TArray telemetry;
64 | telemetry.Add(FString::SanitizeFloat(Roll));
65 | telemetry.Add(FString::SanitizeFloat(Pitch));
66 | telemetry.Add(FString::SanitizeFloat(Yaw));
67 | telemetry.Add(FString::SanitizeFloat(Heave));
68 | telemetry.Add(FString::SanitizeFloat(Sway));
69 | telemetry.Add(FString::SanitizeFloat(Surge));
70 | telemetry.Add(FString::SanitizeFloat(Extra1));
71 | telemetry.Add(FString::SanitizeFloat(Extra2));
72 | telemetry.Add(FString::SanitizeFloat(Extra3));
73 | FString ToSend = FString::Join(telemetry,_T(","));
74 | TCHAR *data = ToSend.GetCharArray().GetData();
75 | SenderSocket->SendTo((uint8*)TCHAR_TO_UTF8(data), FCString::Strlen(data), BytesSent, *RemoteAddr);
76 |
77 | if (BytesSent <= 0)
78 | {
79 | UE_LOG(LogTemp, Error, TEXT("Socket is valid but the receiver received 0 bytes, make sure it is listening properly!"));
80 | return false;
81 | }
82 |
83 | return true;
84 | }
85 |
86 | void UQuPlaySimtoolsBPLibrary::QuSimtools_Stop()
87 | {
88 | if (SenderSocket)
89 | {
90 | SenderSocket->Close();
91 | ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->DestroySocket(SenderSocket);
92 | }
93 | }
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Public/QuPlaySimtools.h:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #pragma once
4 |
5 | #include "ModuleManager.h"
6 |
7 | class FQuPlaySimtoolsModule : public IModuleInterface
8 | {
9 | public:
10 |
11 | /** IModuleInterface implementation */
12 | virtual void StartupModule() override;
13 | virtual void ShutdownModule() override;
14 | };
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Source/QuPlaySimtools/Public/QuPlaySimtoolsBPLibrary.h:
--------------------------------------------------------------------------------
1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2 |
3 | #pragma once
4 | #include "Networking.h"
5 | #include "Sockets.h"
6 | #include "Engine.h"
7 |
8 | #include "Kismet/BlueprintFunctionLibrary.h"
9 | #include "QuPlaySimtoolsBPLibrary.generated.h"
10 |
11 | static TSharedPtr RemoteAddr;
12 | static FSocket* SenderSocket;
13 |
14 | /*
15 | * Function library class.
16 | * Each function in it is expected to be static and represents blueprint node that can be called in any blueprint.
17 | *
18 | * When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable.
19 | * BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins.
20 | * BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins.
21 | * DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu.
22 | * Its lets you name the node using characters not allowed in C++ function names.
23 | * CompactNodeTitle - the word(s) that appear on the node.
24 | * Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu.
25 | * Good example is "Print String" node which you can find also by using keyword "log".
26 | * Category - the category your node will be under in the Blueprint drop-down menu.
27 | *
28 | * For more info on custom blueprint nodes visit documentation:
29 | * https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation
30 | */
31 | UCLASS()
32 | class UQuPlaySimtoolsBPLibrary : public UBlueprintFunctionLibrary
33 | {
34 | GENERATED_UCLASS_BODY()
35 | ~UQuPlaySimtoolsBPLibrary();
36 |
37 | public: // FUNCOES DE REDE
38 |
39 | /** Create socket and connect to the Simtools 2.0
40 | * @param YourChosenSocketName a simple name to the socket
41 | * @param TheIP IP address server (local: "127.0.0.1")
42 | * @param ThePort port server (4123)
43 | * @return True if successful
44 | */
45 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
46 | static bool QuSimtools_Start(const FString & YourChosenSocketName, const FString & TheIP, const int32 ThePort);
47 |
48 | /** Sending data to Simtools 2.0 socket
49 | * @return True if successful
50 | */
51 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
52 | static bool QuSimtools_SendTelemetry(float Roll, float Pitch, float Yaw, float Heave, float Sway, float Surge, float Extra1, float Extra2, float Extra3);
53 |
54 | /** Destroy socket and connect to the Simtools 2.0
55 | */
56 | UFUNCTION(BlueprintCallable, meta = (Keywords = "QuPlay Simtools UDP"), Category = "QuPlay Simtools 2.0 | UDP")
57 | static void QuSimtools_Stop();
58 | };
59 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Plugins/QuPlaySimtools/Source/QuPlaySimtools/QuPlaySimtools.Build.cs:
--------------------------------------------------------------------------------
1 | // Some copyright should be here...
2 |
3 | using UnrealBuildTool;
4 |
5 | public class QuPlaySimtools : ModuleRules
6 | {
7 | public QuPlaySimtools(ReadOnlyTargetRules Target) : base(Target)
8 | {
9 | PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
10 |
11 | PublicIncludePaths.AddRange(
12 | new string[] {
13 | "QuPlaySimtools/Public"
14 |
15 | // ... add public include paths required here ...
16 | }
17 | );
18 |
19 |
20 | PrivateIncludePaths.AddRange(
21 | new string[] {
22 | "QuPlaySimtools/Private",
23 |
24 | // ... add other private include paths required here ...
25 | }
26 | );
27 |
28 |
29 | PublicDependencyModuleNames.AddRange(
30 | new string[]
31 | {
32 | "Core",
33 | "CoreUObject",
34 | "Engine",
35 | "InputCore",
36 | "Sockets",
37 | "Networking",
38 | "Json" //<~~~~~
39 |
40 | // ... add other public dependencies that you statically link with here ...
41 | }
42 | );
43 |
44 |
45 | PrivateDependencyModuleNames.AddRange(
46 | new string[]
47 | {
48 | "CoreUObject",
49 | "Engine",
50 | "Slate",
51 | "SlateCore"
52 |
53 | // ... add private dependencies that you statically link with here ...
54 | }
55 | );
56 |
57 |
58 | DynamicallyLoadedModuleNames.AddRange(
59 | new string[]
60 | {
61 | // ... add any modules that your module loads dynamically here ...
62 | }
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/QuPlay.uproject:
--------------------------------------------------------------------------------
1 | {
2 | "FileVersion": 3,
3 | "EngineAssociation": "4.18",
4 | "Category": "",
5 | "Description": "",
6 | "Modules": [
7 | {
8 | "Name": "QuPlay",
9 | "Type": "Runtime",
10 | "LoadingPhase": "Default"
11 | }
12 | ],
13 | "TargetPlatforms": [
14 | "AllDesktop",
15 | "LinuxNoEditor",
16 | "MacNoEditor",
17 | "WindowsNoEditor"
18 | ]
19 | }
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay.Target.cs:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | using UnrealBuildTool;
4 | using System.Collections.Generic;
5 |
6 | public class QuPlayTarget : TargetRules
7 | {
8 | public QuPlayTarget(TargetInfo Target) : base(Target)
9 | {
10 | Type = TargetType.Game;
11 |
12 | ExtraModuleNames.AddRange( new string[] { "QuPlay" } );
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay/QuPlay.Build.cs:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | using UnrealBuildTool;
4 |
5 | public class QuPlay : ModuleRules
6 | {
7 | public QuPlay(ReadOnlyTargetRules Target) : base(Target)
8 | {
9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
10 |
11 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
12 |
13 | PrivateDependencyModuleNames.AddRange(new string[] { });
14 |
15 | // Uncomment if you are using Slate UI
16 | // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
17 |
18 | // Uncomment if you are using online features
19 | // PrivateDependencyModuleNames.Add("OnlineSubsystem");
20 |
21 | // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay/QuPlay.cpp:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | #include "QuPlay.h"
4 | #include "Modules/ModuleManager.h"
5 |
6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, QuPlay, "QuPlay" );
7 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay/QuPlay.h:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | #pragma once
4 |
5 | #include "CoreMinimal.h"
6 |
7 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay/QuPlayGameModeBase.cpp:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | #include "QuPlayGameModeBase.h"
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlay/QuPlayGameModeBase.h:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | #pragma once
4 |
5 | #include "CoreMinimal.h"
6 | #include "GameFramework/GameModeBase.h"
7 | #include "QuPlayGameModeBase.generated.h"
8 |
9 | /**
10 | *
11 | */
12 | UCLASS()
13 | class QUPLAY_API AQuPlayGameModeBase : public AGameModeBase
14 | {
15 | GENERATED_BODY()
16 |
17 |
18 |
19 |
20 | };
21 |
--------------------------------------------------------------------------------
/Unreal/QuPlay/Source/QuPlayEditor.Target.cs:
--------------------------------------------------------------------------------
1 | // Fill out your copyright notice in the Description page of Project Settings.
2 |
3 | using UnrealBuildTool;
4 | using System.Collections.Generic;
5 |
6 | public class QuPlayEditorTarget : TargetRules
7 | {
8 | public QuPlayEditorTarget(TargetInfo Target) : base(Target)
9 | {
10 | Type = TargetType.Editor;
11 |
12 | ExtraModuleNames.AddRange( new string[] { "QuPlay" } );
13 | }
14 | }
15 |
--------------------------------------------------------------------------------