Jump to content
skruis

Athena - An ARMA 2nd Screen Application

Recommended Posts

yes, i have 4.5. where can i find those logs? i looked in the app folder and my documents and didn't find anything.

Share this post


Link to post
Share on other sites

Go to control panel, administrative tools, event viewer. Then expand Windows Logs and select Application. There should be a corresponding event log entry there. Another thing, if you don't mind checking is ... perhaps the code for checking the default directory is bugged. Could you possibly go to, in the app, file->settings and specify the folder for it to check, then press start and see if it crashes? Thank you for working through this with me! If you want to, you can contact me on Steam: http://steamcommunity.com/profiles/76561197966094382/

---------- Post added at 18:33 ---------- Previous post was at 18:16 ----------

I was able to install and run it on a Win7x64 pc. My development PC and Surface Pro 3 both run Windows 8.1.

Edited by skruis

Share this post


Link to post
Share on other sites

My Pc runs W8.1.

I'll post the three error logs that I get:

963f042034f54334199bb88beb834fec.png

.NET Runtime.

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
 <Provider Name=".NET Runtime" /> 
 <EventID Qualifiers="0">1026</EventID> 
 <Level>2</Level> 
 <Task>0</Task> 
 <Keywords>0x80000000000000</Keywords> 
 <TimeCreated SystemTime="2015-04-01T18:57:34.000000000Z" /> 
 <EventRecordID>40291</EventRecordID> 
 <Channel>Application</Channel> 
 <Computer>Carlos</Computer> 
 <Security /> 
 </System>
- <EventData>
 <Data>Aplicación: Athena Desktop.exe Versión de Framework: v4.0.30319 Descripción: el proceso terminó debido a una excepción no controlada. Información de la excepción: System.Reflection.TargetInvocationException Pila: en System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) en System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[]) en System.Reflection.RuntimeMethodInfo.UnsafeInvoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) en System.Delegate.DynamicInvokeImpl(System.Object[]) en System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) en MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) en System.Windows.Threading.DispatcherOperation.InvokeImpl() en System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) en System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) en System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) en System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) en System.Windows.Threading.DispatcherOperation.Invoke() en System.Windows.Threading.Dispatcher.ProcessQueue() en System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) en MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) en MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) en System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) en MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) en System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) en MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) en MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) en System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) en System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) en System.Windows.Threading.Dispatcher.Run() en System.Windows.Application.RunDispatcher(System.Object) en System.Windows.Application.RunInternal(System.Windows.Window) en System.Windows.Application.Run(System.Windows.Window) en Athena.App.W7.Application.Main()</Data> 
 </EventData>
 </Event>

Application error

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
 <Provider Name="Application Error" /> 
 <EventID Qualifiers="0">1000</EventID> 
 <Level>2</Level> 
 <Task>100</Task> 
 <Keywords>0x80000000000000</Keywords> 
 <TimeCreated SystemTime="2015-04-01T18:57:34.000000000Z" /> 
 <EventRecordID>40292</EventRecordID> 
 <Channel>Application</Channel> 
 <Computer>Carlos</Computer> 
 <Security /> 
 </System>
- <EventData>
 <Data>Athena Desktop.exe</Data> 
 <Data>0.5.0.0</Data> 
 <Data>551ad27b</Data> 
 <Data>KERNELBASE.dll</Data> 
 <Data>6.3.9600.17415</Data> 
 <Data>54504ade</Data> 
 <Data>e0434352</Data> 
 <Data>00014598</Data> 
 <Data>9f8</Data> 
 <Data>01d06cad84e9218a</Data> 
 <Data>C:\Users\Carlitos\AppData\Local\Apps\2.0\VEWE8TTC.LYT\4X03K94M.73Q\athe..tion_b33e2a016b310308_0001.0000_efe0c8bf0bd29780\Athena Desktop.exe</Data> 
 <Data>C:\Windows\SYSTEM32\KERNELBASE.dll</Data> 
 <Data>f48e47e3-d8a0-11e4-8392-448a5b86231a</Data> 
 <Data /> 
 <Data /> 
 </EventData>
 </Event>

Windows Error Reporting

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
 <Provider Name="Windows Error Reporting" /> 
 <EventID Qualifiers="0">1001</EventID> 
 <Level>4</Level> 
 <Task>0</Task> 
 <Keywords>0x80000000000000</Keywords> 
 <TimeCreated SystemTime="2015-04-01T18:57:36.000000000Z" /> 
 <EventRecordID>40293</EventRecordID> 
 <Channel>Application</Channel> 
 <Computer>Carlos</Computer> 
 <Security /> 
 </System>
- <EventData>
 <Data>94712082797</Data> 
 <Data>5</Data> 
 <Data>CLR20r3</Data> 
 <Data>No disponible</Data> 
 <Data>0</Data> 
 <Data>Athena Desktop.exe</Data> 
 <Data>0.5.0.0</Data> 
 <Data>551ad27b</Data> 
 <Data>Athena Desktop</Data> 
 <Data>0.5.0.0</Data> 
 <Data>551ad27b</Data> 
 <Data>1f6</Data> 
 <Data>162</Data> 
 <Data>System.OverflowException</Data> 
 <Data /> 
 <Data>C:\Users\Carlitos\AppData\Local\Temp\WER6C5C.tmp.WERInternalMetadata.xml</Data> 
 <Data>C:\Users\Carlitos\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_Athena Desktop.e_2374b127c73b7aae8513e91552ee6bacec5fd1a_b122f64a_08c271f9</Data> 
 <Data /> 
 <Data>0</Data> 
 <Data>f48e47e3-d8a0-11e4-8392-448a5b86231a</Data> 
 <Data>1</Data> 
 <Data>82e2a549a7c3094335e9b938b16db078</Data> 
 </EventData>
 </Event>

Share this post


Link to post
Share on other sites

Becario, I'm looking into this now. Because I can't reproduce the issue, it might be difficult for me to track down. Would you be ok with my sending you some test versions to see if we can isolate the cause?

---------- Post added at 21:17 ---------- Previous post was at 19:25 ----------

Becario, this is going to sound kind of stupid but ... where are you from? The first thing I noticed is that your error report is in spanish. When I looked up the error, I found a vague report about a Microsoft software that crashed in a spanish speaking locale. If I change my Region (Control Panel->Region, Format drop down) to Spanish (Spain), then launch the app and click "Start", the app crashes.

---------- Post added at 22:02 ---------- Previous post was at 21:17 ----------

I think I've identified the issue. There's a portion of code in the app that convert's Arma Positioning into positioning on the map 'canvas' in my app. For some reason, when I run the app w/ the Region Format set to Spanish Spain, the command double.tryparse(arma position y, variable) takes the value I'm supplying (the Arma Y coordinate of an object), converts it to a double but then multiplies it by 10. Subsequently, the app is placing the marker in an invalid position and then when I go to query the markers location on my map surface, the app is crashing when it returns the value. That is ... unbelievably odd.

---------- Post added at 22:10 ---------- Previous post was at 22:02 ----------

So apparently, I'm culturally insensitive. The number "1000.10" when converted using the Spanish (Spain) local has a different textual meaning that 1000.10 in English (US). I guess I'll just force the app to use the US locale but I'm wondering if BIS alters their output based on locale and if not, what locale I should use for maximum compatibility. Either way Becario, I'll have a version for you to test soon.

---------- Post added at 22:25 ---------- Previous post was at 22:10 ----------

Becario, please uninstall the Athena Desktop application and reinstall using: http://www.athenamod.com/downloads/athenadesktopregionfixv1.zip. The numeric conversion functions should disregard your locale. I tested on my pc with my region format set to Spanish (Spain) and I was able to run the app after making the changes. Please let me know if it works for you.

Share this post


Link to post
Share on other sites

Hi, sorry, I was offline. I'm downloading the app and will try in a minute. Yes, We are from Spain, and have regional settings for Spain. And with your third edit you may be right. "1000.10" in Spanish would be "1000,10", as for decimals we use comma and not dot.

So i just tried it and it works! thanks!!! If you ever want any help with testing, or localisation into Spanish you can count on me ;)

Share this post


Link to post
Share on other sites

So essentially this puts a bluefor tracker on your second screen? Will this show enemy positions on a TVT or COOP mission?

Share this post


Link to post
Share on other sites

Becario: Thanks for the offer! I might actually take you up on that and thanks for working with me to debug this issue. I hope the effort was worth it and that you like the app :-)

Upchuk: That is correct and that's probably a better explanation for it. One thing that I am going to address is that regardless of what side you're on, you will only see units and groups from your side in Athena but if you're 'west', the icons will be blue. If you're 'east', the icons of your friendlies will be 'red'. It was a bit of a logic oversight when I setup the marker colors in the App and that will be fixed but yes, it's a "bluefor" tracker. It will 'not' show enemy positions. The data that's exported is for units, groups on your side and vehicles occupied by units also on your side. Additionally, it will export marker data for all markers known to a clients Arma3 instance. With regards to Markers, I say it that way because ingame markers do not currently contain information (available via scripting commands) that reference their creator/side directly. To be even more specific, markers created by players in multiplayer do reference a session number but whether or not that session number is reliable and whether or not a script executed on a client has access to enough information to tie the session number to a player to a side also isn't clear enough to me at this point to say definitively that I can or cannot tie a marker to a side so it's more truthful for me to say that if your Arma3 client has access to a marker then that marker will also be recreated (marker support is limited right now, it's being actively worked on) in Athena. It's my belief that markers placed in channels that a multiplayer client does not have access to will not be distributed to clients beyond the scope (group, side, global, direct, etc.) and thus that marker will not be drawn in the Athena app. That's probably a larger explanation than you were looking for but I didn't want to give too simple an answer and miss out details that might be important to you.

Share this post


Link to post
Share on other sites

I've released new versions of both the mod and the app.

App - 1.0.0.11 - http://www.athenamod.com/downloads/athenadesktop.1.0.0.11.zip

•Fixed - Duplicate marker names were crashing marker cleanup routines

•Fixed - Duplicate object name checks on JSON import

•Fixed - Localisation issues when converting strings to numbers (Thanks Becario!)

Mod - http://www.athenamod.com/downloads/athenamod.zip

•Fixed - Strings from ARMA containing C# escape characters caused export routine to crash

Share this post


Link to post
Share on other sites
Guest

New version frontpaged on the Armaholic homepage.

================================================

We have also "connected" these pages to your account on Armaholic.

This means soon you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have.

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

This mod is so awesome. I just followed the instructions and bang its all working perfect. Will you be implementing more features, such as, enemy location? Thank you so much, I actually whipped out the 2nd monitor just to check this out. Please 'Give me more'!!!!!!!!!

Share this post


Link to post
Share on other sites
Will you be implementing more features, such as, enemy location?

why would anyone want this???

skruis, it would be awesome it you could create something to log your movements. that would be really useful for debriefing and training purposes. something that writes an entry in a text file every X seconds, and that can then be loaded into the app, as see a line following your steps. I saw in armaholic a mod that did something like this, but I didn't test it, so I don't really know how i works (plus I have 0 knowledge of programming)

Share this post


Link to post
Share on other sites

Dav: Awesome! I ran into 2 of the first users and they both had problems :-( so it's nice to see that it just works for someone. Re: enemy locations, I'm not planning on populating enemy locations automatically but I do plan to allow the user via the interface to quickly create a waypoint that will then be feed back into the game for other users to see. How fast and efficient that'll be will depend on how you're using the app. I myself am planning on using it with the Windows 8 app (Windows Store/Metro) that I'm planning on developing for the specific purpose of running it on my Surface as I play on desktop PC. I guess in that way, you 'can' track enemy locations but it's not going to display a list of 'known contacts' in a similar fashion to the ingame map. I think that would be a little overpowered.

Becario: It's on the list ;-) But, from the perspective of Athena, it would limited to 2D movements. I wouldn't expect it to recreate ingame visuals for a 3D replay via the Arma mission as in creating a single player SQM mission w/ waypoints etc. I would simply copy the JSON file and store it in sequence for playback later. That work for you?

Thanks!

Bus

Share this post


Link to post
Share on other sites
why would anyone want this???

skruis, it would be awesome it you could create something to log your movements. that would be really useful for debriefing and training purposes. something that writes an entry in a text file every X seconds, and that can then be loaded into the app, as see a line following your steps. I saw in armaholic a mod that did something like this, but I didn't test it, so I don't really know how i works (plus I have 0 knowledge of programming)

I would want it as a virtual recon drone so I don't need a uav operator, I play single player only. t would be great to see enemy when spotted, don't care if it is not mil-sim enough for you I m sure I am not alone.

Share this post


Link to post
Share on other sites

Dav,

I'm not a milsim'er and I didn't mean to offend you. It's just that if I this is going to be used by a wide range, I've got to try and find a 'center' and that's a kind of setting where I would think a mission designer or a server admin would want to say "yes, I want that enabled" or "no, I don't want that enabled." I'll think about if there's a way to do that. It might have to be a 2nd mod but the same app. But there might also be issues introducing that because the script would have to either grab them in a certain area or a radius from the player or all of them across the mission. What are your thoughts?

Share this post


Link to post
Share on other sites

Hey skruis,

very nice project, love it!

Unfortunately the Athena Desktop app gives me fps spikes and therefore makes it unusable for me :(

I made a video of the issue and tried to collect as much valuable information that I could think of.

This video demonstrates the FPS hitching/hiccups every 4 seconds (around 15-20 FPS lag spike).

- Hitching occurs when at least 1 player is tracked at Athena Desktop, doesn't matter if moving or not.

- The hitching does occur on main screen and 2nd screen as well where Athena Desktop is running.

- Also hitching when "Untrack" is active.

- Also hitching when in the ingame options menu of ArmA 3.

- No other mods running during the test other than @athena and the desktop application.

- No errors in the ArmA 3 log file.

- Tested in fullscreen and windowed mode.

- Tested with Win7 basic- and standard (Aero) theme.

Technical details of relevance:

CPU: i7 930 (Bloomfield) @ 3.6 GHz

GPU: Gigabyte GTX 570 1280 MB

Monitor primary: Samsung SyncMaster P2450H (1920 x 1080 @60Hz)

Monitor secondary: Dell 17" (1280 x 1024 @60Hz)

OS: Win7 SP1 x64

---

In your video I saw the hitching too, but every 5 seconds (

).

Share this post


Link to post
Share on other sites

ChuWie: I wouldn't go by my video...it was horribly choppy :-) (after re-review, you're right, I spotted it) Yours was much smoother: what software did you use? W/ the mod, there's basically just the collection scripts, the output to the file and then the app which draws the 2d objects: none if it is really heavy per se but the app itself because of the large background images for Stratis/Altis will take up around 1GB of RAM. If the app is closed and you run Arma w/ just the mod, does the lag spike still occur? It's likely a poorly optimized script. I'll have to re-review them.

Share this post


Link to post
Share on other sites

I use Open Broadcaster Software (freeware) for recordings and also livestreaming. Works pretty well for me due to lack of shadow play with my old graphics card.

https://obsproject.com/forum/resources/how-to-make-high-quality-local-recordings.16

I have 12 GB RAM, and there was still plenty (2GB+) room for any kind of software when doing the tests.

The lag spikes don't occur with just the mod @athena running and the destop app not running.

Seems the issue comes purely from the desktop app as soon as 1 player is tracked.

When fiddling in the editor doing the tests and closed the game via alt+f4, the desktop app still had me tracked with game closed, and still lagged out my whole system every 4 seconds.

Share this post


Link to post
Share on other sites
Becario: It's on the list ;-) But, from the perspective of Athena, it would limited to 2D movements. I wouldn't expect it to recreate ingame visuals for a 3D replay via the Arma mission as in creating a single player SQM mission w/ waypoints etc. I would simply copy the JSON file and store it in sequence for playback later. That work for you?

Thanks!

Bus

I meant exactly that. Just following the routes of the units to see how they moved in the battlefield.

Share this post


Link to post
Share on other sites

ChuWie: Thanks, I'll take a closer look at OBS! Re: the lag from the app, it doesn't really do all that much which kind of surprises me that it, out of everything, would cause the lag. Either way, I'll investigate further and see what I can find out. I am sorry for the delay in responding #earlyweekend.

Becario: Yes, definitely. I just have to establish a format. If you figure that my basic test mission outputs roughly 16K of data every few seconds, so 60/3 for 20 file dumps per minute * let's say 60 minutes * 16K per file (I'm guessing on average) comes out to 19,200,000 bytes. I guess that isn't too bad, 20MB/hour, is my math right? I'll test w/ the current file formats cause the formats kinda stateless. I'm not tracking 'changes' between dumps: I'm simply updating the elements on the screen to match what's in the new file. I 'could' keep tracking of changes to reduce file sizes but I'll test w/ the current system to see if it's even worth the effort. Maybe I could just zip the dumps after someone presses the 'stop' button to save disk space.

TruckTurner: Yep. A 'map' in Athena is really nothing more than a background image and the height/width. Right now, it's pretty stringent but there's really nothing stopping making it more dynamic...like allowing a user to 'define' a map in Athena and being less strict on collecting mission data via the mod cause right now, before the data is dumped, I'm 'matching' the text string of the map to what I have in a list. Probably the only limiting factor is image size. If it's too large, the app will error out (I can capture the error) or it won't and it simply display a black screen which is why the images are kinda low quality: I had to keep the memory footprint below a certain threshold. So, maybe. I might have to do it on my end rather than allowing it to be user supplied for now just so I can keep a handle on the quality and testing before it gets into other users hands and generates crash reports that I might not have time to properly address. If the map is popular enough, I'll prioritize it. Any particular ones you're interested in?

Edited by skruis

Share this post


Link to post
Share on other sites

I tried importing maps of Takistan and Panthera and as soon as I entered the server Athena crashed. From my understanding of your previous post, that would mean the images are too large. I will find smaller images of the maps and give it another go. I appreciate the info.

Share this post


Link to post
Share on other sites

Truck: that's not the full story. The scripts that are run by the addon will extract the map name from the mission and pass it along to the desktop app. The desktop app will then match the map name to a list of supported maps and then load the correct image. Is the desktop app or the extension (arma) crashing? I would guess that it's the desktop app...

ChuWie: I'm going to be looking into your issue soon. I had to nail down a problem that was causing some missions to not load when running the addon. Now that I 'think' I've resolved that issue, I'm going to be moving on to yours. So, to be more specific, if you run the mission in Arma, run the Athena desktop app and click start, it lags your system every X seconds. The default behavior is to 'track' a player. If it's not tracking, is it lagging your system?

Thanks!

Bus

Share this post


Link to post
Share on other sites

No worries bud, no time pressure. Good things taking time ;)

Yee it's also lagging for me in the "untrack" state.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×