mhwlng / fip-elite

Information Display for Logitech Flight Instrument Panel and for VR for Elite Dangerous
https://forums.frontier.co.uk/threads/information-display-for-logitech-flight-instrument-panel.535231/
MIT License
41 stars 3 forks source link

cargo randomly disables #3

Closed dwburke closed 4 years ago

dwburke commented 4 years ago

I first started using fip-elite with version 1.3.1, in that version and 1.3.2 I have been experiencing the cargo page randomly disables itself. If the page is displayed it will jump to another page. Sometimes I can go right back to it, but other times it's grey'd out for a little while.

Let me know if there's anything I can do help troubleshoot the issue.

I really like having the cargo page up while mining, and I plan to add more screens to maximize my information while playing thanks to your efforts. This is awesome work.

(Also, there's no binary zip attached to 1.3.3)

mhwlng commented 4 years ago

(Also, there's no binary zip attached to 1.3.3)

fixed, thanks..

I will look into the cargo issue

The button should only disable when the cargo hold is empty.

mhwlng commented 4 years ago

If you have the cargo disabled button problem. Is the button always enabled again after you restart the fip-elite software ? (without doing anything in elite.)

dwburke commented 4 years ago

I have not tired restarting fip-elite when that happens... if I just wait and check back after a little bit (I have not timed it), it comes back eventually. Sometimes it takes longer than others, and it's never a very long time. I'll try restarting fip-elite next time that happens.

You mention that it should only happen if the hold is empty, in this case of it disabling randomly I've never had an empty cargo hold, there's always been some number of limpets and/or LTD's in it. Makes me wonder if one of the log entries it's reading from the game randomly doesn't include cargo information when expected.

mhwlng commented 4 years ago

I assume that when the button is disabled, it will enable again if e.g. you fire off a limpet or add an LTD to your inventory etc. (so any mutation event to cargo)

The cargo is in a separate json file. (cargo.json) So, if the button stays disabled after you restart fip-elite then there is some unexpected issue with the json data.

But, If the button becomes enabled again (after restarting fip-elite and doing nothing in ED to cause a cargo mutation)), then it may be a timing issue. In that case, I may need to add a delay before opening cargo.json or perhaps perform a retry.

dwburke commented 4 years ago

tonight while mining the problem didn't last long enough to support attempting a restart, so I did some other troubleshooting.. I found randomly the file would be empty, which leads me to believe that there is a race condition reading the file while it's being written.

From what I can tell, an empty cargo hold will still have some json written, so perhaps ignoring the result or retrying if the json string is blank is called for here.

On a side note, I would like to request the ability to keep that cargo page displayed when there is no cargo. I'm planning to build out multiple displays to build out a cockpit, and having a dedicated cargo display even when it is empty would be highly desired. That would be the same with any other display that disappears when it's empty, tbh, but this is the one I use a lot and surprised me that it disappears.

mhwlng commented 4 years ago

I found randomly the file would be empty,

Ok, I'll work on that

I would like to request the ability to keep that cargo page displayed when there is no cargo.

Ok, I'll change that

mhwlng commented 4 years ago

Can you please install latest version and then overwrite the exe with this: https://www.mhwlng.nl/EliteTest.zip

Please let me know if this fixes the problem. Then I will do a full release, including the cargo button modification that is not in this version, to make it easier for you to spot the problem) I will then also need to update the streamdeck project (limpet counter button)

dwburke commented 4 years ago

I'm sad to report that I had the display navigate away from cargo three times while mining for two hours. That seems to be less that before, but I don't know if that's coincidence. I accidentally blew away my data from the first two times, but I can say that cargo.json was briefly empty when it happened the third time.

mhwlng commented 4 years ago

I can say that cargo.json was briefly empty

does it stay empty until the next mutation (fire limpet/add LTD) if that happens, could it be that there is another tool running, that is locking cargo.json ? (maybe the streamdeck plugin or another tool) if yes, could you stop them all, to see if the problem goes away.

mhwlng commented 4 years ago

when you say cargo.json was empty

does it look like this

{ "timestamp":"2020-05-26T15:41:54Z", "event":"Cargo", "Vessel":"Ship", "Count":0, "Inventory":[ 

 ] }

or is the file completely empty ?

dwburke commented 4 years ago

Is the stream deck plugin still active when it's not plugged in? I got it partially setup last week but I haven't been using it yet. But yeah, I can remove it for testing tonight, that should not be a big deal. I shouldn't have anything else accessing it that I recall, but I'll take a look.

When I say the file is blank, it's 0 bytes.

mhwlng commented 4 years ago

thanks just stopping de stream deck program should be ok.(in the system tray) I don't know if you have eddiscovery, voiceattack, eddi etc. active ? I'll change to a filewatcher and will detect 0 bytes files. but that will not be until this weekend. It would be useful to know if the problem still happens without any other application accessing cargo.json (the streamdeck plugin shares this code with the fip application, so I could send you an updated version but it's easier to not have it running for now)

dwburke commented 4 years ago

usually the only thing I run is edmarket connector; I sometimes run edx52display, but I haven't been running that since I started playing with fip-elite. I'm not using anything else atm. Next time I'll stop stream deck and not run edmarket connector and let you know how it goes.

mhwlng commented 4 years ago

please try the version that you have now (with nothing else running) If that still doesn't fix the problem, here's a new version : https://www.mhwlng.nl/EliteTest2.zip that version should not clear the cargo screen, if the file is empty or locked. so in that case if the problem happens, I guess you won't see your limpet count decrease, and the next time you fire a limpet it would subtract 2.

I will still build a filewatcher mechanism this weekend

dwburke commented 4 years ago

That didn't take long. I entered the game in a station. With nothing else running I loaded up on limpets, I still had 4t of LTD's in my hold so I sold those, then launched. While leaving the station it moved away from the cargo screen. I'm switching to the new binary now to do this mining run.

dwburke commented 4 years ago

A mining run with the binary from EliteTest2.zip went well. I only noticed once that my cargo wasn't exactly up to date. That's probably good enough for me without the inconvenience of having to navigate back to it. Thanks so much for that!

mhwlng commented 4 years ago

I'll make a filewatcher based system this weekend. we'll have to see if that will improve things

dwburke commented 4 years ago

Sounds good, I'll be happy to do some more testing when it's ready.

mhwlng commented 4 years ago

Hi , I've release a new version of the fip software and also of the streamdeck software: to use a filewatcher on cargo.json Please let me know if you still have issues....

Also, the cargo button is no longer disabled if the cargo hold is empty.