Jump to content

[1.0.4] (2015-07-04) Telemachus – Telemetry and Flight Control in the Web Browser


Rich

Recommended Posts

Since a few people asked, here is the all in one console thingy I put together, please bear in mind this is something I threw together over a weekend for a bit of fun so it is not terribly optimised.

Screenshot.png

Before you download this please note that i am not in any way affiliated with the author of telemachus, i make no guaruntee that this stuff will work as intended, all files are either unencrypted html files or images so if you want to see the source just open them up and have a look, this is not intended as an official mod release e.t.c.

http://www.filedropper.com/allinonepanelfortelemachus

to install you should be able to just extract into your ksp gamedata folder, obviously requires telemachus to already be installed. Once its installed connect to telemachus and you will have to change the address in the address bar from "information.html" to "hg_panel_main.html". Its made for the size of my second monitor so you may have to zoom your browser out a bit to see all the buttons.

Since I deliberately made it all a bit complicated since it wouldnt be a proper kerbal console if it wasnt made unneccesarily complex heres a basic guide to it:

To choose what is shown on each screen you can use the black buttons along the bottom. You will see the buttons are grouped into two sections, most of them are grouped under "Screen display mode select" and the two rightmost are grouped under "SDM Shift" (Screen Display Mode shirt).

Basically to adjust the main screen, just press one of the black "Screen display mode select" buttons, so to get the fuel display up on the main screen just click "Fuel". To change what is on one of the smaller primary or secondary displays press one of the "SDM Shift" buttons (pridisp refers to the little display marked primary and im sure you can figure out what SeDisp button refers too) then press on of the "Screen display mode select" buttons. So to get say altitude data onto the secondary display press "SeDisp" then "Alt". You should be able to switch between displays without the graphs resetting.

The panel of buttons along the right hand side should be fairly self explanatory. Ive colour coded the buttons based on how likely they are to kill you.

Light blue buttons: should not cause any danger unless combined with outher commands

Green buttons: may cause problems if accidentally switched and not rectified over a long period of time.

Yellow buttons: may immediately cause problems if accidentally switched and may cause serious problems if not rectified over a long period of time.

Red buttons: may cause immediate serious problems if accidentally switched and may be fatal if not rectified immediately.

Light blue and covered by a red safety cover with black and orange danger stripes: may cause immediate serious problems if accidentally switched and cannot be rectified if accidentally activated.

Just tried it in V0.22 and it seems to work fine, have fun and remember no watching KTV during missions!

Any chance on a new download link? It looks like the old link has gone bad.

Link to comment
Share on other sites

Nope because I fail to see how that would help. It's not the static classes, it's your static variables which the compiler refuses to use, it's a compile time error because your variables are 'locked' as statics.

This seems to work:

global::Telemachus.TelemachusPowerDrain.isActive

Link to comment
Share on other sites

This seems to work:

global::Telemachus.TelemachusPowerDrain.isActive

Hold on, is there only one part for telemachus? ie your module is not instantiated to be used.

And is global::Telemachus.TelemachusPowerDrain.powerConsumption going to work the same way? Or do I have to add powerConsumptionIncrease at some point?

Link to comment
Share on other sites

The Telemachus part is instantiated but power consumption is static, it all stems from the fact that there is only one web server running at anyone time. It is not advised that you use more than one Telemachus antenna on a ship because I haven't bothered fixing all the bugs relating to this (I just fixed it enough such that it doesn't explode the game).

global::Telemachus.TelemachusPowerDrain.powerConsumption is the correct variable to be reading as the powerConsumptionIncrease variable is added to it. Admittedly it might fluctuate depending on when you read it but more often than not the value will be correct.

Link to comment
Share on other sites

The Telemachus part is instantiated but power consumption is static, it all stems from the fact that there is only one web server running at anyone time. It is not advised that you use more than one Telemachus antenna on a ship because I haven't bothered fixing all the bugs relating to this (I just fixed it enough such that it doesn't explode the game).

global::Telemachus.TelemachusPowerDrain.powerConsumption is the correct variable to be reading as the powerConsumptionIncrease variable is added to it. Admittedly it might fluctuate depending on when you read it but more often than not the value will be correct.

Cheers, that's good enough to go with.

Link to comment
Share on other sites

First off, great mod which works great on my pc so thanks for that. Unfortunately I have no way to use it as I don't have a second screen. I do, however, have an iPad. I have read all 39 pages and tried all the different ways to get the pages up on the ipad to no avail.

When I started off I would click open link and it would open my browser (on pc) with a 127.0.0.1 type address. On the ipad this doesn't work as it is a local address (from what I read).

So I found out my ip using ipconfig and changed the Telemachus config file to this address (192.168.0.6 or something like that). Now when I open link the browser opens the same page as before but with a 192.168.0.6 type address. tried the same address on the ipad and still says web page is not available.

I also cant find the log of the ip addresses in the debug log, anywhere. It's the picture that keeps being posted when someone asks for help with connection problems. I assume it would tell me the ip address I found in the config file though?

Anyone know what I'm doing wrong? I was using safari on iOS but have also tried it on Chrome.

I would appreciate any help you can give me as I really want to make this work. Thanks.

Link to comment
Share on other sites

Pretty much what xZise says is true, so you can simply use Java's support for HTTP requests to access the JSON data. The only real gotcha is to make sure you use a polling strategy which doesn't request more information until the previous request has completed, otherwise you end up DDoS'ing the Telemachus server.

Sorry I haven't gotten back to this before now, I've been busy but I'm going to look into it now.

Just to follow up:

Is it possible to access the JSON data directly using JSON functions that can be included in Java libraries? I've seen a few implementations of the JSON framework (off the top of my head) for Android programmers, and I'm thinking of network overhead when I pose this question, but if it's too difficult, I may just rely on an HttpGet request in Java to pull the JSON documents off of the server. The latter is easier from a programming POV, but the former might eliminate unnecessary network traffic.

Assuming I go with an HTTP request as suggested by xZise, I can avoid DoS'ing the server by using a Handler in the Android Framework (I learned about Handlers and Threads in Android recently). It allows a thread to spawn off to deal with a given request, which can then send a message back to the main UI thread, and once that message is received, the UI thread can decide what to do next. In this case, I can send another request for data once the HttpGet request has successfully completed, or timed out.

Either way, it's possible to set up a polling schedule that respects delays in network traffic.

Link to comment
Share on other sites

First off, great mod which works great on my pc so thanks for that. Unfortunately I have no way to use it as I don't have a second screen. I do, however, have an iPad. I have read all 39 pages and tried all the different ways to get the pages up on the ipad to no avail.

When I started off I would click open link and it would open my browser (on pc) with a 127.0.0.1 type address. On the ipad this doesn't work as it is a local address (from what I read).

So I found out my ip using ipconfig and changed the Telemachus config file to this address (192.168.0.6 or something like that). Now when I open link the browser opens the same page as before but with a 192.168.0.6 type address. tried the same address on the ipad and still says web page is not available.

I also cant find the log of the ip addresses in the debug log, anywhere. It's the picture that keeps being posted when someone asks for help with connection problems. I assume it would tell me the ip address I found in the config file though?

Anyone know what I'm doing wrong? I was using safari on iOS but have also tried it on Chrome.

I would appreciate any help you can give me as I really want to make this work. Thanks.

Couple of troubleshooting questions off the top of my head:

  1. Are you specifying the port on the iPad?
  2. Try turning your computer firewall off.
  3. Does the iPad have an internet connection?

Sorry I haven't gotten back to this before now, I've been busy but I'm going to look into it now.

Just to follow up:

Is it possible to access the JSON data directly using JSON functions that can be included in Java libraries? I've seen a few implementations of the JSON framework (off the top of my head) for Android programmers, and I'm thinking of network overhead when I pose this question, but if it's too difficult, I may just rely on an HttpGet request in Java to pull the JSON documents off of the server. The latter is easier from a programming POV, but the former might eliminate unnecessary network traffic.

Assuming I go with an HTTP request as suggested by xZise, I can avoid DoS'ing the server by using a Handler in the Android Framework (I learned about Handlers and Threads in Android recently). It allows a thread to spawn off to deal with a given request, which can then send a message back to the main UI thread, and once that message is received, the UI thread can decide what to do next. In this case, I can send another request for data once the HttpGet request has successfully completed, or timed out.

Either way, it's possible to set up a polling schedule that respects delays in network traffic.

I am not aware of any method of accessing the JSON directly. Also your polling strategy sounds great :D.

an idea is to make instruments limited (Nav ball shows, but with no pro/retro grade markers, map view disabled (only viewed in browser) e.c.t)

Link to comment
Share on other sites

Couple of troubleshooting questions off the top of my head:

  1. Are you specifying the port on the iPad?
  2. Try turning your computer firewall off.
  3. Does the iPad have an internet connection?

1. Yes. i'm using the exact same address as is generated on the pc internet browser when I click 'open link'. Port 8085 I think is the auto choice.

2. Yes the pc firewall is turned off. Was having problems with the game hanging after loading and this was the solution to that problem. I don't know if the ipad has some sort of firewall or not, and if it did, I don't know how I would turn it off.

3. Yes. The ipad is connected through the same wireless router that the pc is connected through. I have a sky broadband wireless router. Would this be an issue?

Thanks.

Edited by Jon Turner
Link to comment
Share on other sites

I am not aware of any method of accessing the JSON directly. Also your polling strategy sounds great :D.

Another follow-up:

I've just tried accessing the Telemachus server from a web browser in my Android tablet, and it works normally by accessing it from its' built-in index page:

http://IP_ADDRESS:PORT/telemachus/information.html

as well as all linked pages from the Telemachus server. However, I cannot access the JSON data from the web browser e.g.

IP_ADDRESS:PORT/?pe=o.timeToPe

Because it simply displays an error page asking if I intended to load the index page (as listed above).

Is this by design? If so, what resource do I need to access in order to send the HTTP arguments you mentioned earlier? Or would this information only be accessible through a request that's not in a web browser?

Or is this a bug?

I don't know how the Telemachus server structure is set up, so I can't see what resources are on the server for me to access. Then again, I'm fairly new to this.

Edited by FS3D
Smileys inserted themselves into my post.
Link to comment
Share on other sites

Another follow-up:

I've just tried accessing the Telemachus server from a web browser in my Android tablet, and it works normally by accessing it from its' built-in index page:

http://IP_ADDRESS:PORT/telemachus/information.html

as well as all linked pages from the Telemachus server. However, I cannot access the JSON data from the web browser e.g.

IP_ADDRESS:PORT/?pe=o.timeToPe

IP_ADDRESS:PORT/[B]datalink[/B]?pe=o.timeToPe

I don't know how the Telemachus server structure is set up, so I can't see what resources are on the server for me to access. Then again, I'm fairly new to this.

On the information page there is an API tab; on this page there is a list of all the actions you can perform (changing the throttle etc.) and the information you can request (velocity, periapsis etc.)

Link to comment
Share on other sites

Telemachus 1.4.12.0 has been released; here is the change log:

  • Implemented potential fix for the OSX path issue. While I do have an OSX machine to test on, I am not at liberty to run games on it. So if it still doesn't work on OSX please let me know as soon as possible.
  • Fixed Kerbal Maps integration.

Installation Files (version 1.4.12.0) - SpacePort

Link to comment
Share on other sites

I'm having issues with 0.23 OSX, I am running Mavericks 10.9

I get the following on the Debug when clicking Open Link:

[Log]: [Telemachus] Unable to open the data link. Please try to edit the Telemachus configuration file manually

when I edit the config.xml file adding either 127.0.0.1 or the actual IP of the machine, and I click the Open Link button, a Chrome window but unable to reach the server.

I did install version 1.4.12

Link to comment
Share on other sites

My firewall is off, and I have tried another port number.

Is there any other plugin's required or services needed?

Younata - What system did you use?

I've even installed a fresh stock version of 0.23, with only Telemachus.

I'll try and install it into version 0.22 and see if it works on my system.

Update: Tried version 1.4.11 on 0.22 and doesn't seem to work either. Any thoughts?

Edited by cyoung_mi
Link to comment
Share on other sites

Okay, took a closer look and it looks like while you can access all of the information displayed by the Navball in game, you can't actually get a visual representation of the navball. Are there any plans to add something like that in the future? My use for this mod would be to have all my information accessible on another screen allowing me to hide the UI completely for filming machinima. In and of itself this is an amazing piece of work here. Keep it up!

Edited by Glockshna
Link to comment
Share on other sites

My firewall is off, and I have tried another port number.

Is there any other plugin's required or services needed?

Younata - What system did you use?

I've even installed a fresh stock version of 0.23, with only Telemachus.

I'll try and install it into version 0.22 and see if it works on my system.

Update: Tried version 1.4.11 on 0.22 and doesn't seem to work either. Any thoughts?

This error occurs when something on the system is preventing Telemachus from listening on the specified IP address and port. Could you please send me your ksp_log.txt and config file? Maybe I can spot the problem. I certainly appreciate your persistence in trying to get this to work; hopefully we can resolve this issue and I can either improve Telemachus or the user guide.

Okay, took a closer look and it looks like while you can access all of the information displayed by the Navball in game, you can't actually get a visual representation of the navball. Are there any plans to add something like that?

Someone was working on this - it functioned very well but was never finished. I think there is a development version you can download.

Link to comment
Share on other sites

This error occurs when something on the system is preventing Telemachus from listening on the specified IP address and port. Could you please send me your ksp_log.txt and config file? Maybe I can spot the problem. I certainly appreciate your persistence in trying to get this to work; hopefully we can resolve this issue and I can either improve Telemachus or the user guide.

Here is my log and config.

https://www.dropbox.com/s/kshighj7a0238pz/Archive.zip

Link to comment
Share on other sites

Thanks for that cyoung_mi. I think I have found the problem - there appears to be a bug the Telemachus code in that it attempts to find all the available network interfaces irrespective of whether you specify your own IP. So if it craps out on that lookup, it breaks the entire process and ignores the user specified IP. I will attempt to release a fix shortly - you will still need to specify your IP manually, but hopefully it will actually try your suggestion.

Edited by Rich
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...