Jump to content

[1.3] kOS Scriptable Autopilot System v1.1.3.0


erendrake

Recommended Posts

Ok I played around with the WAIT time before the LIST ... command. It seems that this actually has something to do with it, the longer it was the fewer the occurancies of the error.

You can see the error at the very end of the video. That is the only error message I get, nothing else just these two lines even when I don't have anything else printed in the terminal window. It is weird.

If you can tell me where to find the error log for it I will look there, or how to log the output somewhere.

I believe the problem is intractable in the current release of kOS. I've made an issue for it here: https://github.com/KSP-KOS/KOS/issues/575

- - - Updated - - -


PRINT SHIP:PARTSTAGGED("FUSELAGE")[0]:RESOURCENAMED("LiquidFuel"):EXISTS.
True

As far as i can tell, there is no such suffix. Until then, KOS script first has to list all resources and match indexes to names before acting on specific resurce by name.

Can you make an issue requesting the enhancement over on the github?

Link to comment
Share on other sites

I believe the problem is intractable in the current release of kOS. I've made an issue for it here: https://github.com/KSP-KOS/KOS/issues/575

Thanks man! I appreaciate your help and hope it will get fixed soon :)

Also I would love to see the ability to target a craft using kOS and check if a craft (yours or other) has a target selected, that way I could go further with the RADAR and have some pursuit-tracking modes instead of general scan mode. It would also enable me to have something like a RadarWarningReceiver (RWR tells you if you are locked by an enemy or friendly radar/missile/etc) checking if you are being targetted (very useful for me, I dont know if it could be useful for others).

Edit: It would be nice if we could have a check if a variable exists or not like you can do in c++ for example something like this:

IF x isNil {SET x TO y.}.

I think that might be easier and more elegant to check than to add another suffix.

I tried to add a more detailed information to my RADAR, by displaying current target information .. problem is you cant check if you have a target.

IF TARGET:NAME IS NOT NIL { display target info code } ELSE { do nothing }.

Something like that.

Edited by VentZer0
Link to comment
Share on other sites

I'm in the middle of adding a bunch of video links to the documentation pages, for a "show and tell" section. If anyone would like to have their videos added, post here and let me know.

Also, if you respond, let me know how you want to be credited in the list - with your real-life name or your youtube username.

Link to comment
Share on other sites

v0.16.0 - Remote Terminal Access

BREAKING

  • Body:ANGULARVEL is now a Vector instead of a Direction. (This is the same as the change that was done to Vessel:ANGULARVEL in v0.15.4, but we missed the fact that Body had the same problem). It was pretty useless before so this shouldn't hurt many scripters :)
  • Both Body:ANGULARVEL and Vessel:ANGULARVEL now are expressed in the same SHIP_RAW coordinate system as everything else in kOS, rather than in their own private weirdly mirrored reference frame. (Thanks to forum user @thegreatgonz for finding the problem and the fix)
  • #536 the 1.5m kOS part has always had trouble with clipping into other parts due to the rim of the cylinder sticking up past the attachment points. The part definition has been changed to fix this, but in KSP new part definitions don't affect vessels that have already been built or have already had their design saved in a craft file in the VAB/SPH. To see the fix you'll need to start a new vessel design from scratch, otherwise you'll still have the old clipping behavior.

New Features

  • TELNET SERVER. The biggest new feature this update is the introduction of a telnet serveryou can use to access the terminals in game. For security, it's turned off by default, but you can enable it with the config radio button. Full documentation on this new feature is athttp://ksp-kos.github.io/KOS_DOC/general/telnet.html
    • Synopsis:
      • Telnet to 127.0.0.1, port 5410
      • Select CPU from welcome menu by typing a number and hitting Return.
      • Your telnet client is now a clone of that CPU's terminal window and can control it.
      • If you want to open it up to others to use (i.e. controlling your KSP game from a second computer), you can use an ssh tunnel to access the local loopback address, or if you just want to throw caution to the wind, you can tell it to stop using loopback and use your real IP address. Be aware of the security risk if you choose this.

    [*]Added HUDTEXT that lets you add text to the screen. Thanks @pgodd !

    [*]#72 - Added STAGE:NUMBER and STAGE:READY to allow for staging very close together

    [*]#522 - Added BODY:GEOPOSITIONOF and BODY:ALTITUDEOF for getting body-relative info about a 3D point in space.

    [*]#524 and #523 - mission waypoints now have 3d positions

    [*]In game Terminal is now resizable! From a script with SET TERMINAL:WIDTH and SET TERMINAL:HEIGHT, or from dragging the lower-right corner of the GUI window.

Bug Fixes

  • Fixes #389 - LOCK STEERING broken for RCS-only (no torque) ships.
  • Fixes #516 - kOSTags are now applied in the correct MM pass
  • Fixes #541 - All BODY: suffixes should now work properly when the body is the Sun without crashing.
  • Fixes #544 - Terminal subbuffer won't shrink when up-arrowing to a previous smaller command.
  • Fixes #548 - If SHIP is not the same as ActiveVessel, then executing STAGE stages the wrong vessel.
  • Fixes #581 - SHIP:CONTROL:PILOTFORE and SHIP:CONTROL:PILOTSTARBOARD are no longer inverted.
  • Fixes #578 - renamed our use of RemoteTech2 to RemoteTech to follow their new naming.
  • Fixes #427 - Stack now clears when interactive commands throw exceptions. (no longer reports false stack traces).
  • Fixes #409 - Delete no longer leaves file in memory.
  • Fixes #172 - Lock states no longer persist through power cycling unit. Now they become default for unlocked state

    [*]Fixes #580 - RT "signal lost. waiting to re-aquire signal" check previously disallowed manned terminal use. Now it only disables the terminal if the vessel is unmanned.

    [*]Fixes #344 - KOSArgumentMismatchException reported wrong arg number (i.e. it would claim your 3rd argument is wrong when it's really your 1st argument). Fixed.

Link to comment
Share on other sites

Small suggestion,sometimes I need really smaller version of KOS CPU, pereferrably able to be radially attached (example - tiny unmanned rovers). Are there any plans of parts remake?

Link to comment
Share on other sites

Small suggestion,sometimes I need really smaller version of KOS CPU, pereferrably able to be radially attached (example - tiny unmanned rovers). Are there any plans of parts remake?

There are no plans for it currently and the biggest blocker is going to be the model itself. No one on the team is a modeller. We do have two sizes of cores, the smaller of which is about the size I would expect a radial part to be

Link to comment
Share on other sites

Are string operators a thing yet? :)

We're currently in discussions about what should be in the next update. It's a possibility.

- - - Updated - - -

There are no plans for it currently and the biggest blocker is going to be the model itself. No one on the team is a modeller. We do have two sizes of cores, the smaller of which is about the size I would expect a radial part to be

Radial attachment *can* be done with existing models by changing he Part.cfg file if we want - it would mean the disc-shaped thing would be glued to the sides of things.

Link to comment
Share on other sites

Radial attachment *can* be done with existing models by changing he Part.cfg file if we want - it would mean the disc-shaped thing would be glued to the sides of things.

Nevermind, I found that editor extensions mod provides the ability to add surface attachment to any part (press T in editor). This covers all my needs for now.

Link to comment
Share on other sites

  • telnet server. The biggest new feature this update is the introduction of a telnet serveryou can use to access the terminals in game. For security, it's turned off by default, but you can enable it with the config radio button. Full documentation on this new feature is athttp://ksp-kos.github.io/kos_doc/general/telnet.html
    • telnet to 127.0.0.1, port 5410
    • select cpu from welcome menu by typing a number and hitting return.
    • your telnet client is now a clone of that cpu's terminal window and can control it.
    • if you want to open it up to others to use (i.e. Controlling your ksp game from a second computer), you can use an ssh tunnel to access the local loopback address, or if you just want to throw caution to the wind, you can tell it to stop using loopback and use your real ip address. Be aware of the security risk if you choose this.

ohhhhhh my goddddddd yesssssss!!!!!!!

Link to comment
Share on other sites

hqeHfdh.png

Oh man this is SO AWESOME!!

Seriously, I'm like flipping out over this. There's SO MANY POSSIBILITIES!!!

Python/Perl programs can easily use telnet to pass commands to the kOS CPU!

Edited by frencrs
Link to comment
Share on other sites

http://i.imgur.com/hqeHfdh.png

Oh man this is SO AWESOME!!

Seriously, I'm like flipping out over this. There's SO MANY POSSIBILITIES!!!

Python/Perl programs can easily use telnet to pass commands to the kOS CPU!

Beware that the kOS telnet server insists on operating on char-at-a-time mode, so if you are piping your stuff to telnet you'll have to have it running on a pseudo-tty so it behaves right.

Link to comment
Share on other sites

+ & - being reversed. and slow to execute.

after the update i tried my code from HERE it it no longer works.

Well.... crap.

A bit of background on this change. We came up with a better suffix system a few months back. I had started migrating all of the kOS structures like SHIP: and BODY:. Then I kinda stalled out moving them over because it was a lot of typing and it was pretty prone to cut and paste mistake. So with 0.16 I finally decided to pull the bandaid off and just get the rest done. Looks like i made a few mistakes with the node class :P

I plan on rolling 0.16.1 pretty soon :)

Link to comment
Share on other sites

http://i.imgur.com/hqeHfdh.png

Oh man this is SO AWESOME!!

Seriously, I'm like flipping out over this. There's SO MANY POSSIBILITIES!!!

Python/Perl programs can easily use telnet to pass commands to the kOS CPU!

when you get this working. please, PLEASE! make a video about it. i cant wait to see this work.

- - - Updated - - -

+ & - being reversed. and slow to execute.

after the update i tried my code from HERE it it no longer works.

Alright, there is a new version up on Github with Node fixed https://github.com/KSP-KOS/KOS/releases/tag/v0.16.1

Ill get it updated everywhere else asap and thank you for saying something, you are mentioned in the changelog :)

Link to comment
Share on other sites

Beware that the kOS telnet server insists on operating on char-at-a-time mode, so if you are piping your stuff to telnet you'll have to have it running on a pseudo-tty so it behaves right.

No problem, I've got plenty of experience automating tasks on networked items (some ancient) with really finicky ssh/telnet interfaces.

when you get this working. please, PLEASE! make a video about it. i cant wait to see this work.

Will do.

Link to comment
Share on other sites

No problem, I've got plenty of experience automating tasks on networked items (some ancient) with really finicky ssh/telnet interfaces.

One thing that I've realized is that we may want to support telnet linemode for the sake of RemoteTech with delay - where echoing back each character at a time live seems wrong because there should be a large network lag simulated. It may be the case some day that you don't have to do it as char-at-a-time mode, but don't hold your breath about how long it might take to implement that. Right now the presumption of interactivity is pretty set in stone.

Link to comment
Share on other sites

I have not had a proper go at working with kOS, but is it possible to allow the user (me) to have full control over the throttle, but have kOS deal with Heading, Pitch and Roll? Basically like having a pre-determined MechJeb Smart ASS SURF mode.

Link to comment
Share on other sites

We're currently in discussions about what should be in the next update. It's a possibility.

Oooh. That'll get me using it again!

The reason I want it is because of this:


lock oxidizer to round(ship:oxidizer,2).

lock liquidfuel to round(ship:liquidfuel,2).

lock intair to round(ship:intakeair,3).


lock apoapsis to round(ship:apoapsis).

lock periapsis to round(ship:periapsis).
lock apeta to round(eta:apoapsis,1).

lock peeta to round(eta:periapsis,1).
lock alt to round(alt:radar,1).


lock vertspeed to round(ship:verticalspeed,1).

lock surfspeed to round(ship:surfacespeed,1).


lock jfloxratio to round(((liquidfuel / 0.9) / (oxidizer / 1.1)),3).
lock impacttime to round((alt/vertspeed),1).

until false{

clearscreen.
print "Apoapsis: " + apoapsis + " m ETA: " + apeta.

print "Periapsis: " + periapsis + " m ETA: " + peeta.

print "Radar Alt: " + alt + " m".
print " ".


print "Liquid Fuel: " + liquidfuel.
print "Oxidizer: " + oxidizer.
print "Jet Fuel / Lox Ratio: " + jfloxratio.
print "Intake Air: " + intair.

print " ".


print "Vertical Speed: " + vertspeed + " m/s".

print "Surface Speed: " + surfspeed + " m/s".

print " ".


print "Notifications: ".
if alt < 1000 and alt > 10{
print "CAUTION: LOW ALITUDE".
if vertspeed < 0{
print "Impact in: T- " + impacttime + " seconds".
}
}
if liquidfuel < 50 and liquidfuel > 0.05{
print "CAUTION: LOW LF".
}


if oxidizer < 50 and oxidizer > 0.05{
print "CAUTION: LOW OX".
}

if intair < 0.2 and intair > 0.05{
print "MASTER CAUTION: LOW AIR".
}
if jfloxratio <= 1.2{
if jfloxratio <= 1.05 {
print "MASTER WARNING: JET FUEL/LOX RATIO".
}
else{
print "MASTER CAUTION: JET FUEL/LOX RATIO".
}
}
wait 0.1.

}

When I had it also displaying thrust and flameout conditions of engines, the engine lines would flicker because of the for loop that was required to check all of the engines. (Without hardcoding, of course. But that's a bad habit. :P)

Link to comment
Share on other sites

The new telnet is pretty fun. One bug I've noticed is that it doesn't seem to handle PRINT...AT properly. Specifically, everything shows up in the right place on the kOS ingame terminal, but in the Putty terminal I have connected things seem to be moved randomly left or right 1-10 characters. Does anyone know why this might be happening?

fIjMK04.png?1

6dvOeOi.png?1

Link to comment
Share on other sites

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