Elite RCP, control Elite with your tablet !

Elite RCP stands for Elite Remote Control Panel.

Elite RCP is a console application, made in C#, which provides a web application served by a small http server, and an autohotkey executable. The two programs together make it possible to control Elite : Dangerous via a tablet, or basically any device over your local network that has a browser.

As English is not my mother tongue, maybe I am a bit unclear, so I made a bunch of photos, videos and screenshots to help you understand what Elite RCP is doing.

First, a photo of my setup for Elite : Dangerous. Please forgive the mess on my desk (aren't we all a bit messy ? :rolleyes:), due to long hours of development, test, and play of course...
setup.jpg

As you can see, instead of having my keyboard to do actions on Elite that are not binded on my joystick, I have my Asus T100 tablet, which is showing the web application provided with Elite RCP. This web page shows buttons like "Landing Gear", "Cargo Scoop" or even "FSD".

Here are some screenshots of the controls currently available in the app. You may notice that some button are red. It means that EliteRCP didn't find in the config file any keyboard key binded to this action.
beta_screens_0002_common.jpg

You can also see that buttons are organized under tabs, and that the last tab is named keyboard. This last one is meant to bring up the virtual keyboard on the tablet, and sends direct input to Elite. That's useful to search systems in the galaxy map. Unfortunately this doesn't fully work for now.

Finally, I made a video, but a friend (who plays Elite too, with EliteRCP) said the bad lighting makes it so dark that we can't fully grasp the full potential of the utility. Anyway, I'll let you be the judge on this :D
[video=youtube;DPvgezUixt4]https://www.youtube.com/watch?v=DPvgezUixt4[/video]


So, now that the "basic" presentation is done, let's talk more about how this works.

Here are the list of the things that are done by EliteRCP in order to work :
  1. EliteRCP will get the current bindings used by the player, and will keep them in memory.
  2. It will then start the http server.
  3. With a tablet, the players goes to http://[ip_of_the_pc_on_which_elite_is_running]:31173.
  4. The HTTP server will receive requests to serve the files located in the client/ folder of EliteRCP.
  5. The web application will appear on the tablet, the buttons will be located on positions or tabs as defined in a json configuration file that can be easily modified.
  6. When the player clicks on a button, the tablet will launch an AJAX request to the server, with the name of the action as seen in the bindings file (e.g. "ToggleLandingGear").
  7. The http server will look up if it has a key binded to this action, and will call an other executable input.exe, with the key as parameter.
  8. input.exe is a very simple autohotkey executable, which sends the key received as parameter to the game
  9. Then the http server will wait for another request, as long as the player doesn't close it.

No magic in there, the autohotkey script is just here to avoid dealing directly with input simulation in C# (I'm more of a web developer).

As of now, the utility is pretty much usable : I use it every time I play Elite, and I don't bother with the keyboard anymore. Plus, it adds a great deal of immersion in Elite to press a key named "Landing Gear" instead of having to remember that it is binded to G. Two friends use it too with their tablets.

Since I think it would be useful for other players to, I wanted to make it available to everyone. In return, I hope to have feedback about what works and what doesn't work on EliteRCP, especially with android tablets. We all own windows 8 tablets, but as Android is the major OS on tablets, it's important to me to provide a compatible application.

Click here to download the beta version of Elite RCP

Things to know / known issues / etc :
  • No installation / configuration needed : just extract the files under a folder.
  • Both executables use administrator functions : EliteRCP.exe provides the http server that's available only for admin user, and input.exe simulates keyboard and need admin rights to do it. Make sure both are set to always run as administrator by going into Properties > Compatibility > Always run as an adminstrator.
  • EliteRCP will look for bindings located in C:\Users\[USERNAME]\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.binds (in Windows 8). Please let me know if your bindings are not in this folder (especially on Windows 7), so I can adjust the program.
  • The Windows Firewall is likely to block all inbound connections to TCP port 31173 (that's "elite" in leet :D), please check and allow inbound connection on this port if you have trouble accessing to the url on your tablet.
  • The current web interface was made for a 1366x768 screen, but you can change all labels, positions and tabs by modifying the file client/config.json. Don't hesitate to share your config file with other users of EliteRCP. A web editor is planned in the far future, depeding of the interest for such a feature.

I sincerely hope that this veeeeeery long post will not discourage you and that people will find use of this tool.

Cheers,

Hunter Clarke.
 
Last edited:
Great application! i had a change earlier today to look at it, and change some settings in my case so i can use it on my tablet (which has a 1280 x 727 resolution). So far it works great! It does what i want it to do, without too much fuss.

Here is a screenshot of my adjusted version:
lxdrSXZ.png

I removed the Keyboard option since you said it was not working properly, and i adjusted the size and position of some of the items so that they can be properly seen on an 10.1 tablet, like in my case. My adjusted version can be found here.

Any change you could add some more features to this tool? I would love for example a route planner, like this one: www.elitedangerouscentral.com A system info page that automatically updates when you visit a new system, so you can see what the system has, like a black market, export and import items available, number of stations, that kind of stuff. And a price check/list of all items available.

Anyway, keep up the good work! looking forward to any updates :)
 
Hi dunpealhunter ! Glad to see that the application works well on your system, that's a relief ! May I ask what are the OS and the browser you have on the tablet ?

Thank you for sharing your configuration file, I'm sure it will be useful for others.

Yeah the keyboard tab doesn't fully work, particularly with Chrome as this one doesn't transmit enough information on keydown event. As for IE and surely Firefox (though I haven't tested it), the keyboard seems to work, except the Enter key. I may drop entirely this feature if I don't find a solution in the next coming days.

For the route planner, as the app on the tablet is simply a web app, it should be kind of possible, as long as an API is available and it doesn't need heavy treatments that Javascript isn't able to do. I'll have to look further into it before trying something.

Fort the system infos though, AFAIK there is no way to get from Elite the current position of the player's ship (or I didn't find any info about it). So, I can do a system info tab, but it will require you to enter the system name to get the correct information.

Thank you for being the first outside my circle of friends to give feedback on Elite RCP. It means a lot to me :D

Cheers,

Hunter Clarke
 
Hello. Sorry i haven't got back at you until now. I had been using this on android together with Google Chrome.

As to your answers, there is definitively a way to get your current position from the game while you play it. I know this, because i use another tool that gets that kind of information in real-time already: http://www.010102.de

All you need to do is download a file, use either the .bat for windows or javascript file and it pulls your current log info (which can be found in something like this in most cases: C:\\Games\\EDLaunch\\Products\\FORC-FDEV-D-1002\\Logs\\) from the game. The logs get updated every time you enter a new system, so your tool can in theory do the same.

Lately though i have not been using your tool anymore in favor of voice attack, which i found to be very responsive and fast. But if you can make your tool opensource (i noticed that some of the code is rendered secretly on a remote server) and show info like trading info, amount of stations, controlling factions and stuff like that, i am certain of it that many other people will comment and use your tool! :)
 
Hi,

Thanks again for your feedback. I'm glad it works out of the shelf on Android and Chrome. :)

These last few days, and despite having family and friends for the holidays, I managed to completely revamp the way EliteRCP works on the client side. It has now a "core" containing the main methods to load the configuration, the files. Its main purpose is to populate a global object, "ERCP", with data coming from the server. Then there are "widgets", each being a separate feature of the client application.

This "widgets system" should make future development faster and more maintainable.

As of now there are only two widgets that are fully functionnal :


  • Bindings widgets : it's basically what was Elite RCP in the previous version : this widget takes a description of keys, and show them on the assigned tab. When clicking a button, e.g. "Landing Gear", it will call input.exe to press the corresponding keyboard key to toggle the landing gear in the game.
  • System info : This new widget shows infos for the current star system where the player is. The information is taken directly from elitedangerouscentral.com, and is shown as is. The widget displays the name and the coords of the star system, a list of all the available stations in the system, and for each of these stations, their description (if there is any) and their commodities markets.

Here you can find a screenshot of the new "System info" widget :
systeminfo.png

I ditched the "keyboard" widget for this version, as I've yet to find a way to make it work with chrome.

On a side (and more technical) note, I added two specific calls to the C# server :
  • /external : called with a url parameter, it will make a cUrl-like request to the url and returns directly the content of the response. I did this call as a workaround for elitedangerouscentral.com not having an API yet and not supporting CORS. Every request made by this way will have a "EliteRCP" user-agent. That allows services authors to forbid access to their data via EliteRCP if they want.
  • /system : simply returns the current star system of the player. This opens the latest logfile, looks for the System in it, and returns the name.

The new version of Elite RCP can be downloaded here :

Some things to know before trying it :


  • It's still a beta, so things may not seem very beautiful, or you might even have bugs. I already saw that the previous feature of disabling the unassigned buttons was lost when I moved the functions to the widget system. I will redo it for the next version.
  • This widget systems forced me to change the json configuration architecture. So I suggest to anyone that tried the first version to do a backup of the client/config.json file. If you're used to JSON file, you should not have any problem to update your current config to the new version. Hopefully this will be the last time I have to to change the architecture of such a critical file.
  • To make the system info widget work, you need to change the path of your logs in the EliteRCP.exe.config file, and add verbose="1" to the network section of the AppConfig.xml contained in your Elite installation directory.


As for making the project opensource, I've yet to decide if it is worth it or not. The client side is already pretty much opensource, as it is simply in the client/ folder of the application, not even obfuscated nor minified. For the server side, I don't see what would be the benefits to put it opensource, as it does nothing special. I'll see.

Next thing on the todo list is the ability to specify an alternative configuration, depending of the device used to access EliteRCP : I would like to stick my phone on the throttle of my Thrustmaster, to change power distributions with my fingertips, anytime, AND having also my tablet for more basic commands.

Cheers,

Hunter Clarke.
 
Hi everyone,

Sorry for the lack of updates. Living in France, though I don't live in Paris, this has been quite a week, I'm sure you've heard.

So, no new version for now, but it is coming soon. For now, various configurations are now possible. You'll just have to add a "config" (or "c" for short) to the URL you use to specify a configuration. Right now I'm creating a few different configurations for various resolutions.

I also received a PM from a commander asking if it would be possible to have Trade Dangerous integrated in EliteRCP, so I'm working on that also. For now I have basic integration : I can send a command to Trade Dangerous from a URL call, and I get in return the console output of the command. So it's just UI basically now :D (and parsing commands and results). I'm trying to define which calls are necessary on the server side before releasing an update. Then I'll slowly integrate all commands into a trade dangerous widget.


Hunter Clarke
 
Last edited:
I get the following error message in the dos window
Onverwerkte uitzondering: System.IO.DirectoryNotFoundException: Kan een gedeelte
van het pad D:\Frontier\EDLaunch\Products\FORC-FDEV-D-1010\Logs niet vinden.
bij System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bij System.IO.FileSystemEnumerableIterator`1.CommonInit()
bij System.IO.FileSystemEnumerableIterator`1..ctor(String path, String origin
alUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler
`1 resultHandler, Boolean checkHost)
bij System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOpti
on searchOption)
bij System.IO.DirectoryInfo.GetFiles()
bij EliteRCP.Program.Main(String[] args)

Kan een gedeelte
van het pad D:\Frontier\EDLaunch\Products\FORC-FDEV-D-1010\Logs niet vinden.

in english
=======
cannot find a part of the path D:\Frontier\EDLaunch\Products\FORC-FDEV-D-1010\Logs
=======

I believe this path is not correct. I got no time this morning to check this path, but normally all programs on the D partition i have put in submap program or in map games.
I'll chech it this evening.
If I need to change this path in a config file, where is it default located and what is the name of the config file.
 
Last edited:
Found it
config file EliteRCP.exe.config
....
<EliteRCP.Properties.Settings>
<setting name="LogFolder" serializeAs="String">
<value>D:\Frontier\EDLaunch\Products\FORC-FDEV-D-1010\Logs</value>
....

replaced with the correct path for the logsof my install of ED

Now it works
 
Hi esraven,

Yeah, sorry for not having answered sooner. I'm currently busy as hell at work, so when I get home I just put my self in the couch and read or watch TV...

Anyway, I apparently forgot to check if the log exists before trying to read it, that was the problem. I corrected it for the next version. I hope to release it this week-end, I just want to make a couple more basic configurations for everyone to test.

As it seems this software is interesting only for a few players, I decided to drop, for now, the support of trade dangerous that I was working on. No need to put more work on my shoulders if it's useless.

Stay tuned :)
 
Thanks anyway for answering.
Tried it out on my nexus 7. Works but my screen is too small even in landscape mode
webpage not zoomable, or pannable, page is too large for my nexus 7 (1280×800 px)
 
Hi

This is great yet I have not been able to get the server to work on Windows 7, It crashes when I run it. I have the correct path for the config file. yet I cannot get it to work.
 
Hi lowind,

Did you have any specific message when it crashed ? Did you run it with admin rights ? (right click on the exe > run as administrator) It might help me to find what exactly is the source of your problem.
 
I ran it as admin and still right clicked > run as Administrator
it loads up > about 3 seconds later it crashes

when i look at the crash report it displays

Files that help describe the problem:
C:\Users\<username>\AppData\Local\Temp\WERA5D.tmp.WERInternalMetadata.xml
C:\Users\<username>\AppData\Local\Temp\WER20DB.tmp.appcompat.txt
C:\Users\<username>\AppData\Local\Temp\WER20EB.tmp.mdmp


thanks for the reply's :)
 
Thank you for your interest in Elite RCP. For the first time in weeks, I had the time tonight to play some Elite, with the new 1.2. I didn't encounter any problem with Elite RCP and Elite 1.2, everything was working as expected.

The last weeks have been so hard at work, I didn't have time to work on ERCP. If I see that I can't work on it in April, I will release all the sources for a brave one to take care of them.

Until then, if you see any problem with ERCP and the 1.2 version, tell me. I might have a few minutes some day in the future to dive into it...
 
I really want to get something like this set up on my ipad. Also I think a "Wing" tab would be awesome! And maybe some extra customizable buttons for voice attack macros.
 
Back
Top Bottom