Jump to content

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


Rich

Recommended Posts

As a new comer to KSP, I choose career first, and like for the ingeneer mod, I would apreciate to have the antenna within the first research, as I suspect the need to do telemetry is quite high when you design your first vessel from scratch.

Link to comment
Share on other sites

I think some where past batteries would be good. You do need some power to operate these, maybe electronics.

As a new comer to KSP, I choose career first, and like for the ingeneer mod, I would apreciate to have the antenna within the first research, as I suspect the need to do telemetry is quite high when you design your first vessel from scratch.
Link to comment
Share on other sites

Indeed. Sorry, I have not yet played the sand box mod, and to my knowledge there is no way to activate Telemachus in career mod, isn't it? Then I was just looking at the mod in a "tool to help your first steps" rather than a "close to realistic piece of equipment".

Link to comment
Share on other sites

Hi Rich - Hope you're enjoying your time away from work. Thanks for the excellent add-on, I've really been enjoying it so far. My biggest problem is that I sometimes get so into playing with Telemachus that I forget to fly my ship! :) I've been messing with the HTML/CSS/JS a bit and may eventually write a new skin for it - will post it here if I do.

In the meantime, I wanted to follow up about the "Page Not Found 404" error that a few other Mac OS X users have reported in this thread. I, too, experienced this issue (running OS X 10.9) when trying to install the current version of the plugin from Spaceport. I was able to fix it by applying the change suggested by alains in his excellent debugging thread a few pages back. However, this required me to re-compile Telemachus, which took me a little while to figure out, having never played with mods or compiled C# on a Mac before.

So I just thought I'd write a little guide to doing so for fellow noobs like myself - both so people have a temporary way to get Telemachus working until you're able to get a real fix in, and so fellow Mac users know how to compile if they want to modify the code themselves to try new things. Most of this was just discovered by experimentation, so apologies if there are better ways to do some of this - feel free to make suggestions/corrections. OK, here goes:

Compiling Telemachus on Mac OS X (10.9)

1. Install the Mono MRE from http://www.go-mono.com/mono-downloads/download.html

2. Clone the Telemachus repo by running this command in the Terminal:

git clone https://github.com/richardbunt/Telemachus.git

If you don't have/use git, you can instead just download a zip of the Telemachus repo at https://github.com/richardbunt/Telemachus/archive/master.zip and unzip it.

3. Navigate to the directory which contains the Telemachus.csproj file:

cd Telemachus/Telemachus

4. Telemachus needs some DLLs from KSP to compile, so copy them over with the following commands:

mkdir bin

mkdir bin/Release

cp ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/UnityEngine.dll bin/Release/

cp ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/Assembly-CSharp.dll bin/Release/

cp ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/Assembly-CSharp-firstpass.dll bin/Release/

cp ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/TDx.TDxInput.dll bin/Release/

(this assumes your KSP data is in the usual place, edit the paths above if not...)

5. The Telemachus.csproj defines a post-build step that moves around some files after compilation. Since it was written for the Windows command prompt, we have to modify it to work on our Mac (Linuxish) terminal shell. To do this, open the Telemachus.csproj file in a text editor. Scroll down to the bottom and find the post-build event section - it starts with <PostBuildEvent> and ends with </PostBuildEvent>. Delete or comment out this whole block and replace it with the following:

<PostBuildEvent>

mkdir $(ProjectDir)../publish

mkdir $(ProjectDir)../publish/GameData

mkdir $(ProjectDir)../publish/GameData/Telemachus

mkdir $(ProjectDir)../publish/GameData/Telemachus/Plugins

mkdir $(ProjectDir)../publish/GameData/Telemachus/Parts

mkdir $(ProjectDir)../publish/GameData/Telemachus/Plugins/PluginData

mkdir $(ProjectDir)../publish/GameData/Telemachus/Plugins/PluginData/Telemachus

cp $(TargetDir)Servers.dll $(ProjectDir)../publish/GameData/Telemachus/Plugins/

cp $(TargetDir)Telemachus.dll $(ProjectDir)../publish/GameData/Telemachus/Plugins/

cp -r $(ProjectDir)../Parts/ $(ProjectDir)../publish/GameData/Telemachus/Parts/

cp -r $(ProjectDir)../WebPages/WebPages/src/ $(ProjectDir)../publish/GameData/Telemachus/Plugins/PluginData/Telemachus/

cp -r $(ProjectDir)../licences/ $(ProjectDir)../publish/GameData/Telemachus/

</PostBuildEvent>

(these are basically the same exact commands, except they use the UNIX "cp" command instead of Windows "xcopy")

6. Now we're all ready to compile... Oh wait! We still have to make the code change - discovered by alains a few threads back (thanks for that!) - that fixes the Mac OS 404 bug in question. (If you're not experiencing this issue and just using this as a general compilation guide, you can skip this step)

Open the file (Telemachus/Telemachus/)src/IOPageResponsibility.cs and scroll to the bottom. Look for the string "/../GameData/Telemachus/Plugins/PluginData/Telemachus/" and replace it with "/../../GameData/Telemachus/Plugins/PluginData/Telemachus/" then save the file.

7. OK now we're *really* ready to compile. Compile the project using xbuild with the terminal command:

xbuild /p:Configuration=Release Telemachus.csproj

This will output a bunch of debug info as it compiles. When it's done, you may see some warnings, but as long as it says "0 errors" the compilation has worked!

8. Assuming the compilation worked, you just have to copy the newly-compiled Telemachus data folder to the KSP GameData directory. Make sure to delete any old Telemachus installation then run this:

mkdir ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/GameData/Telemachus

cp -r ../publish/GameData/Telemachus/ ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/GameData/Telemachus/

(again assuming a standard KSP installation, otherwise modify these paths)

9. Tada! Your recompiled version of Telemachus should now be installed - start KSP and make sure it's working as expected (add the Telemachus antenna to a ship -> launch -> right click on antenna -> "Open Link").

Hope this is helpful to some people! If you have any problems with my instructions... well, I don't really know what I'm doing so I probably won't be able to help :P But feel free to ask! Thanks again @Rich for a great plugin - I'll post again later with my progress on reskinning it.

-Dan

Link to comment
Share on other sites

If no part is implemented in tech tree, the part wont show up. I added it with MM 1.5 and add these lines to my cfg file:


@PART[fustekAntenna]:Final
{
TechRequired = electronics
}

@PART[ant]:Final
{
TechRequired = electronics
}

I haven't gotten that far up in tech tree to see if they are there, so I can verify if it worked. I think the code is right and it should work.

Indeed. Sorry, I have not yet played the sand box mod, and to my knowledge there is no way to activate Telemachus in career mod, isn't it? Then I was just looking at the mod in a "tool to help your first steps" rather than a "close to realistic piece of equipment".
Edited by therealcrow999
Link to comment
Share on other sites

Would you be more specific as to what is MM 1.5 (module manager ?) and where is the cfg file (I do not find any, but my only mods are chaterer and telemachus)?

EDIT: thanks a lot therealcrow999 for the answer below. So MM 1.5 is patching mods, so that you do not have to re-injected code into the mod each time it changes. Clever idea !

Edited by Argelle
Link to comment
Share on other sites

This allows a player to make his or her own config file to use in game. This is show a player doesn't have to go in every part file and change something in it. Saves time. Mostly used if there are a lot of mods that change a lot.

http://forum.kerbalspaceprogram.com/threads/55219-Module-Manager-1-5-(Nov-11)

The config file you make yourself

You can copy the code to notepad and change the extension to .cfg

Since you don't have many mods, you can just got in telemachus part.cfg file and add this line to each part.

TechRequired = electronics

Put it above the cost line.

Would you be more specific as to what is MM 1.5 (module manager ?) and where is the cfg file (I do not find any, but my only mods are chaterer and telemachus)?
Link to comment
Share on other sites

I really really want to use telemachus. I need it, I want it, especially now I use KOS but every, and I mean every, time I try to make a graph, any graph of any info, gravity, altitude, anything, the browser part `loses connection` (how does it do that anyway when I am only running on one machine?) then starts the graph from the start ignoring mission time and losing all my data.

I ALWAYS end up with no data graphically, the reason I would use the mod. I have tried it on my two main computers and a few laptops and it alway acts the same.

Is this a known bug? I use forefox BTW.

I would just like telemachus to store data securely, notice mission time and graph the data, and this is the important bit, KEEP IT IF CONNECTION IS LOST...

Link to comment
Share on other sites

Another question on Teemachus : how do you get the data on the graphs?

(run on win 32 + chrome or firefox)

When I try to set my mouse pointer to a coordinate, the data (height 5100.5 m time 25.5849849 sec) pop up shortly and vanished as it seems the pointer should remain stable with a pixel precision. Am I getting old (and parkinsonien) or is there a way to get those data displayed?

Link to comment
Share on other sites

Hi Rich - Hope you're enjoying your time away from work. Thanks for the excellent add-on, I've really been enjoying it so far. My biggest problem is that I sometimes get so into playing with Telemachus that I forget to fly my ship! :) I've been messing with the HTML/CSS/JS a bit and may eventually write a new skin for it - will post it here if I do.

I was away on work so it was a mixture of stressful and enjoyable, but now I have returned to my desk. Those are some comprehensive instructions, but I need to ask about step 4 - do you really need all 4 of those .dll files? I would have guessed you would only need the following two:

 ~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/UnityEngine.dll
~/Library/Application\ Support/Steam/SteamApps/common/Kerbal\ Space\ Program/KSP.app/Contents/Data/Managed/Assembly-CSharp.dll

I'm not sure when I will put a fix for this into the main Telemachus download, but hopefully I will have some time over Christmas.

Another question on Teemachus : how do you get the data on the graphs?

(run on win 32 + chrome or firefox)

When I try to set my mouse pointer to a coordinate, the data (height 5100.5 m time 25.5849849 sec) pop up shortly and vanished as it seems the pointer should remain stable with a pixel precision. Am I getting old (and parkinsonien) or is there a way to get those data displayed?

This is a limitation (as far as I can see) of Google graphs, in that when the graph is updated any pop ups are hidden. This has motivated the need to find a new graphing API, but I have not got round to it.

Link to comment
Share on other sites

I need to ask about step 4 - do you really need all 4 of those .dll files?

Yep - not sure if Windows is different but my Mac throws errors about missing Assembly-CSharp-firstpass and TDx.TDxInput if I don't include them... ¯\_(ツ)_/¯

Link to comment
Share on other sites

Compiling Telemachus on Mac OS X (10.9)

way too complex with xcode....

1: install Xamarin Studio (or MonoDevelop)

2: clone Telemachus git repo

3: open the solution in Xamarin

4: fix the required dll references to UnityEngine.dll, Assembly-CSharp.dll from KSP.app and reference Mono.Csharp

5: done, compile and install

Link to comment
Share on other sites

I wrote an electric charge tracker mod FuseBox, one of the people who use it asked about getting telemachus support. I went to put your TelemachusPowerDrain method queries in but it will not work as the variables needed are static. 'isActive' and 'powerConsumed' variables as static declarations. Meaning I cannot access them. If you could change those or explain how to get charge usage info from external to your assembly that would be great.

Link to comment
Share on other sites

Hello,

I have installed the plugin as instructed but am not able to connect to the local web service. I checked the log as suggested to another user but i am getting the following: http://d.pr/i/KFtp

When i use the "Open Link" button it does open my browsers but shows me a 404 asking me "Did you mean to visit the index page?"

local address it's sending me to: http://127.0.0.1:8085/telemachus/information.html

Please let me know what i need to do!

Link to comment
Share on other sites

I wrote an electric charge tracker mod FuseBox, one of the people who use it asked about getting telemachus support. I went to put your TelemachusPowerDrain method queries in but it will not work as the variables needed are static. 'isActive' and 'powerConsumed' variables as static declarations. Meaning I cannot access them. If you could change those or explain how to get charge usage info from external to your assembly that would be great.

How are you accessing the values? Via reflection?

Hello,

I have installed the plugin as instructed but am not able to connect to the local web service. I checked the log as suggested to another user but i am getting the following: http://d.pr/i/KFtp

When i use the "Open Link" button it does open my browsers but shows me a 404 asking me "Did you mean to visit the index page?"

local address it's sending me to: http://127.0.0.1:8085/telemachus/information.html

Please let me know what i need to do!

Are you using OSX? As there is currently an issue with KSP 0.23 and Telemachus on OSX. Some OSX users have created a fix, so maybe you can contact them for their fixed version of Telemachus.

Link to comment
Share on other sites

How are you accessing the values? Via reflection?

Yuppers, I can't reference every .DLL directly as it makes the plugin unwieldy and crashes dependent on what folks have loaded. This is what I'm doing for telemachus:

TelPresent = AssemblyLoader.loadedAssemblies.Any(a => a.assembly.GetName().Name == "Telemachus");

if (TelPresent)

checkTel(tmpPM);

private void checkTel(PartModule tmpPM)

{

switch (tmpPM.moduleName)

{

case "TelemachusPowerDrain":

if (typeArr[4])

{

global::Telemachus.TelemachusPowerDrain tmpTL = (global::Telemachus.TelemachusPowerDrain) tmpPM;

// if (mode == 1 || (mode ==0 && tmpTL.isActive))

// am_use += tmpTL.powerConsumption;

}

break;

}

}

obviously not commented out when I try to compile ;)

Link to comment
Share on other sites

Have you tried using this method for accessing fields, properties and methods of class?

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.

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.

I will try to whip up an example today, as it is the only way to prove if I am talking rubbish or not :confused:

Can you please find a fix for the OS X problems with telemachus. (page not found error)

I plan to release a fix for this when KSP 0.23 debuts as this allows me to kill two Kerbals with one rocket.

Link to comment
Share on other sites

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