EVE currently has 64 clients that have started beta testing. I regained the memory of the 64-bit client and found something different from the previous one, but I don’t know how to modify it. The 64-bit memory measurement is linked as follows:
EVE currently has 64 clients that have started beta testing. I regained the memory of the 64-bit client and found something different from the previous one, but I don’t know how to modify it. The 64-bit memory measurement is linked as follows:
When running 64-bit eve client, I can use the tool impoved by you to measure the memory sample, but it seems can not be parsed. It means I can not see the data hierarchy in the Sanderling. What should I do now?
When running 64-bit eve client, I can use the tool impoved by you to measure the memory sample, but it seems can not be parsed. It means I can not see the data hierarchy in the Sanderling. What should I do now?
@taitan520 you receive the same message when you try to explore the samples?
Error executing command 'read-memory-measurement-from-process-measurement':
System.ArgumentNullException: La valeur ne peut pas être null.
Nom du paramètre : source
à System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
After coordinating with Kaboonus, if you are still looking for other people who encountered such a problem, you could also ask around on the EVE Online discord channel at BotLab
In case people become interested and stumble on this topic:
I found some interesting stuff for people who are interested in adapting the memory reading code to work with the varian of the EVE Online discovered by @taitan520:
Hello everyone,
I’m using sanderling for couple of years for my own implementation of intel tool. Amazing work @Viir thank you a lot.
Anyway I’m as good programmer as google can teach me, so I’m struggling to update Sanderling to be able to read 64b client (sure it’s working on 32b).
I understood that Viir already adopted memory reading for 64b client, but it’s in form of some kind of .dll which I’m not able understand how to use it in Sanderling.
I’m using 2018-07-30 (I know it’s older, but it’s working for my purposes just fine).
Is there some kind of way how to add to this version reading for 64b client, or rewriting 32b reading into 64b for kind of self-learned programmer?
Yeah, which route to take depends on people’s prior experience. Using the DLL is the way for people who already have significant experience with a programming language that easily integrates .NET assemblies.
But most people using Sanderling don’t have this kind of prior experience. Also, dealing with the DLL directly is unnecessarily complicated for most applications. For people who want to develop intel tools or bots, there is an easier way to use memory reading.
Now that you post this question, I notice that I did not make a separate announcement of this particular development yet, so here is a summary of what happened next:
After implementing the 64-bit memory reading and said DLL, I looked for a way to package this in a way that is both easier to use for beginners and also a good starting point for typical applications.
As a result of this exploration, we now have two complete examples of how to use the new memory reading for 64-bit clients, without worrying about such implementation details like the DLL. These examples are two bots:
Since these have the most usage and test coverage, these are the best starting points for people wanting to develop an intel tool or bot that works with the 64-bit client.
A quick summary of what these examples get you:
No need to think about a DLL, just write your program.
No need to use a programming language as complex as C#. No runtime exceptions like in C#. Instead, static analysis checks your program to point out problems before you start your program.
Parsing of the memory reading, to transform it in a form that is easier to use. The parsing also includes parsing of strings into numbers with uniform units (E.g., distance texts in the overview window).
In the mining bot: A framework that makes it easy to build advanced EVE Online bots, based on the learnings from bot development projects like the mission running bot and the anomaly ratting bot.
As always, I am glad to answer questions in case you run into problems.
(For best visibility, post in a topic that has a title matching your question. I nearly missed your post here since it was at the end of such an old topic.)
Thank you for your promt answer.
I had a look into your new developed framework, and I’m afraid I’m way more familiar with older sanderling than this new language … I’m quite lost in it
So simply, that dll is something which can be used in old sanderling? if so, I’ll try to learn more how to work in c# … if not, is there a way? or I’ll need to use that new framework?
but honestly? there is just exe which does not do anything, so … very stupid question how are bots run on your new reading ?? like where’s interface for writing a bot? or there isn’t any? it’s just cmndline only?
What catched my attention is this:
If I understand this statement of yours, adapting existing 32bit memory reading to 64b reading for former sanderling would not be that hard.
I’ll be really thankfull if you (or somebody else) point me what roughly needs to be changed, and I’ll try to do my best to learn rest
If you follow that guide, you can write the bot in this editor:
This interface is not only good for writing, but also for reading, because the integrated navigation tools help find where things are defined in the framework. For example, if you were wondering what is in the ParsedUserInterface that you see in the screenshot, you can use Go to Definition to see its definition:
type alias ParsedUserInterface =
{ uiTree : UITreeNodeWithDisplayRegion
, contextMenus : List ContextMenu
, shipUI : MaybeVisible ShipUI
, targets : List Target
, infoPanelLocationInfo : MaybeVisible InfoPanelLocationInfo
, infoPanelRoute : MaybeVisible InfoPanelRoute
, overviewWindow : MaybeVisible OverviewWindow
, inventoryWindows : List InventoryWindow
, chatWindowStacks : List ChatWindowStack
, moduleButtonTooltip : MaybeVisible ModuleButtonTooltip
, neocom : MaybeVisible Neocom
}
To inspect the memory readings from the EVE Online client, we have another graphical interface, here is a screenshot of this tool:
This video shows it in action:
That statement is from the time before the adaption to 64-bit client was implemented. Since the support for 64-bit clients is complete, we now have an easy way to see the changes: These are in the history of the Sanderling repository.
Hey @Viir long time no see
I’ve been using this version of Sanderling for ages but it doesn’t work for 64 bit client.
I’m wondering if it will be possible to use the same old way with new x64 memory reading? As far as i can see only the new way via elm was updated. So the question is will you update the Sanderling itself to be able to read process?
I’m using Sanderling as a base for my own bot and wouldn’t like to change the whole structure or develop the new one from scratch again.
Thanks.
Basically its rewritten A-Bot with all the memoryMeasurement?.* stuff over the Sanderling.
I would say its Sanderling.Parse.IMemoryMeasurement. As i can see new 64bit memory reading is done in separate project and i don’t know how to tie it up with Sanderling itself to save the structure