Cockpits, HUDs and other displays

General discussion for players of Oolite.

Moderators: winston, another_commander

User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

MrFlibble wrote: Tue Jul 23, 2024 1:38 pm
hiran wrote: Tue Jul 23, 2024 5:55 am
MrFlibble wrote: Sun Jul 21, 2024 12:08 am
Perhaps:
PS.serviceLevel
...
P.escapePodRescueTime
I quickly added the above items into the messages to oolite/controls. No real design behind that choice - I just wanted to make those values available so we can play around with them and get more experience.
Most excellent!
hiran wrote: Tue Jul 23, 2024 5:55 am
So now you should see messages like

Code: Select all

oolite/controls {"msgType":"controls","speed":189.03811645507812,"maxSpeed":350,"serviceLevel":95,"targetSystem":151,"nextSystem":151,"previousSystem":81,"legalStatus":"Clean","score":4261,"rank":"☆ Deadly ☆","credits":99999998558440.11,"escapePodRescueTime":0}
Is there a reason for bundling everything into 'controls' topic rather than containing them in topics which mirror their origins? Like: P or player, PS or player.ship, S or system, which might make less of a bump in the road for those switching between MQTT, debug, and OXP authoring/hacking.
No real design behind that choice - I just wanted to make those values available. So the decision is based on the amount of necessary code change. Consider it experimental.
MrFlibble wrote: Tue Jul 23, 2024 1:38 pm
hiran wrote: Tue Jul 23, 2024 5:55 am
What is Oolite trying to tell me?

Code: Select all

MQTTAdapterranges=com.dd.plist.NSArray@45343bab, message=Exception: TypeError: cyclic object value
    Active script: oolite-starter-oxp 0.1
    script.js, line 503:
        debugConsole.consoleMessage(JSON.stringify(msg))
Blind stab... Can you throw in some temporary debug spew to figure out which value(s) is/are being parsed when that occurs? Then, is this article any help?
Wilco. Sometimes (especially after successfully eliminating other problems) the obvious points are invisible... 🤪
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Sun Feb 18, 2024 12:13 pm

Re: Cockpits, HUDs and other displays

Post by MrFlibble »

hiran wrote: Tue Jul 23, 2024 5:55 am
This is available in v0.1.33-hoopsnake.2
Re: the deb package. I note that stable and testing can be installed simultaneously (and are if the user doesn't think about it). However the desktop files seem a bit scrambled, and only 'stable' appears in the apps menu, at least on XFCE4. TLDR; Mostly looks like an issue caused by using /opt, though that's not all:

I jumped into the rabbit-hole :twisted: Hopefully save you some drilling.

Code: Select all

$ dpkg -l | grep -i starter
ii  oolitestarter                                0.1-32                                      amd64        OoliteStarter
ii  oolitestarter-hoopsnake                      0.1-33                                      amd64        OoliteStarter_hoopsnake

# Sanity check:
$ dpkg -L oolitestarter oolitestarter-hoopsnake  | grep /bin/
/opt/oolitestarter/bin/OoliteStarter
/opt/oolitestarter-hoopsnake/bin/OoliteStarter_hoopsnake

# Good! Deeper sanity check.
$ dpkg -L oolitestarter oolitestarter-hoopsnake  | grep desktop$ | grep OoliteStart
/opt/oolitestarter/lib/oolitestarter-OoliteStarter.desktop
/opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop
/opt/oolitestarter-hoopsnake/lib/oolitestarter-hoopsnake-OoliteStarter_hoopsnake.desktop

# Right.. probably in THIS somewhere!
diff /opt/oolitestarter/lib/oolitestarter-OoliteStarter.desktop /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop

# Hmm.. Both the same. That's not right, but I'll check the other one anyway:-

$ diff /opt/oolitestarter/lib/oolitestarter-OoliteStarter.desktop /opt/oolitestarter-hoopsnake/lib/oolitestarter-hoopsnake-OoliteStarter_hoopsnake.desktop
2,5c2,5
< Name=OoliteStarter
< Comment=UI to manage Oolite, SaveGames and Expansions
< Exec=/opt/oolitestarter/bin/OoliteStarter
< Icon=/opt/oolitestarter/lib/OoliteStarter.png
---
> Name=OoliteStarter_hoopsnake
> Comment=OoliteStarter_hoopsnake
> Exec=/opt/oolitestarter-hoopsnake/bin/OoliteStarter_hoopsnake
> Icon=/opt/oolitestarter-hoopsnake/lib/OoliteStarter_hoopsnake.png

# Issue #1 That's what I've have expected from the previous test!
Not sure why /opt/oolitestarter-hoopsnake/lib/oolitestarter-hoopsnake-OoliteStarter_hoopsnake.desktop isn't being seen, maybe it's just a name too long. Most packages put system desktop files in /usr/share/applications. It *could* be that only one item is picked if using */lib/wotnot.desktop rather than an applications 'pool' directory.

So, in an attempt to remove the 'same' deesktop entry, and make things potentially sane, I tried:-

Code: Select all

sudo mv -f /opt/oolitestarter-hoopsnake/lib/oolitestarter-hoopsnake-OoliteStarter_hoopsnake.desktop /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop
To no avail. So then I tried:-

Code: Select all

cp /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop ~/.local/share/applications/
And.. suddenly, only one starter is available in applications menu, hoopsnake! I'm not sure why the other one has been knocked out. I tried editing the Name and Comment field in the ~/.local copy, but to no avail.

Deleted my .local .desktop file, and the stable apps icon alone re-emerged :?

So: I've got a puddle of .desktops in ~/.local/share/applications which works, let's try it.

Code: Select all

cp /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop .local/share/applications/
cp /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop .local/share/applications/oolitestarter-hoopsnake.desktop
# note the simple rename of the hoopsnake one, which I'd also previously renamed from the 'very long name'.
I get both now!

Tried making /opt/*starterversion*/share/applications and moving the renamed desktop files in there as two differently named files.. No good. Maybe XFCE4 doesn't check opt trees thoroughly for .desktop files.

I suspect that for both to appear (when installed to system), the desktop files need different filenames, and to be installed ideally to /usr/share/applications. A quick grep through there and I see no other /opt/ apps are in there.

Admittedly, I have no other /opt/ apps on my system with two branches, but not much goes to /opt these days, I've nothing from .deb installs that does other than starter and there are 3353 packages installed on this laptop.

So I'd suggest your deb should install to /usr instead of /opt, uses share/applications for desktop files? e.g. Simply put, in your tree, put desktop files under share/applications, make sure to use differing filenames, then it should work equally well if unpacked to /usr, /usr/local, an also (for most systems) ~/.local.

In share/doc, you'll be wanting to put your files into a folder so they end up like/usr/share/doc/oolite-starter(-majorversion)/copyright and obviously NOT /usr/share/doc/copyright. Same logic for /usr, /usr/local, ~/.local, or any other potentially shared installation destination.

To buff and polish, I suggest adding a variation of these fields to the .desktop file, which will aid rapid searching, and have it appear in sane menu places.I doubt if programming or development are relevant, edit as you will, I just copied here what I'm doing for OoDC.

Code: Select all

Categories=Game;Simulation;Development
Keywords=Space;Game;Simulation;Debug;Programming
Right. /opt/oolitestarter-hoopsnake/bin/OoliteStarter_hoopsnake here we come!!
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

What an analysis! Thank you!

Obviously my attempt to separate stable from unstable versions was not complete and you spotted it.

I'll stick to the file structure that comen with JPackage. But since JPackage fails to handle the launcher I have a postinst script in the deb and forgot to tweak that. I shall get that fixed.

Here is the offending line - it needs to respect the package name:
https://github.com/OoliteProject/Oolite ... stinst#L24

😃
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Sun Feb 18, 2024 12:13 pm

Re: Cockpits, HUDs and other displays

Post by MrFlibble »

hiran wrote: Tue Jul 23, 2024 3:57 pm
What an analysis! Thank you!

Obviously my attempt to separate stable from unstable versions was not complete and you spotted it.

I'll stick to the file structure that comen with JPackage. But since JPackage fails to handle the launcher I have a postinst script in the deb and forgot to tweak that. I shall get that fixed.

Here is the offending line - it needs to respect the package name:
https://github.com/OoliteProject/Oolite ... stinst#L24

😃
Cool. I'd forgotten about xdg-desktop-menu, since I've not needed to use it in like, forever.

For the dev version, shouldn't....

Code: Select all

xdg-desktop-menu install /opt/oolitestarter/lib/oolitestarter-OoliteStarter.desktop
...be:

Code: Select all

xdg-desktop-menu install /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop
Liking the extra data in MQTT! Wish I had more time to play today.
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

MrFlibble wrote: Tue Jul 23, 2024 4:55 pm
Cool. I'd forgotten about xdg-desktop-menu, since I've not needed to use it in like, forever.

For the dev version, shouldn't....

Code: Select all

xdg-desktop-menu install /opt/oolitestarter/lib/oolitestarter-OoliteStarter.desktop
...be:

Code: Select all

xdg-desktop-menu install /opt/oolitestarter-hoopsnake/lib/oolitestarter-OoliteStarter.desktop
Nailed it! But I'd prefer to use the same script for both. So I am searching how the script knows about the install directory... some env var?

MrFlibble wrote: Tue Jul 23, 2024 4:55 pm
Liking the extra data in MQTT! Wish I had more time to play today.
😃😃
Sunshine - Moonlight - Good Times - Oolite
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

I think I found a suitable patch. Sorry for the version fast-forward.
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Sun Feb 18, 2024 12:13 pm

Re: Cockpits, HUDs and other displays

Post by MrFlibble »

hiran wrote: Tue Jul 23, 2024 10:22 pm
I think I found a suitable patch. Sorry for the version fast-forward.
S'all right. I was in t'pub. Mostly unnoticed. All bar the many emails from t'ub.

:D Will check on the morrow!
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Sun Feb 18, 2024 12:13 pm

Re: Cockpits, HUDs and other displays

Post by MrFlibble »

Auto-pause bash script, using Oolite Starter MQTT.

This is crude and doesn't bother to check that Oolite has actually paused, but works for me. It should suffice for letting the ship skim fuel in deep space while the commander answers the call of nature.

I put it in a fille, chmod +x it, then when it' is run it watches for an alert status other than "1", at which point the game gets paused and the script quits.

Code: Select all

#!/bin/bash

### Begin user defined variables

#The MQTT topic prefix as set in starter
Prefix=games/oolite/debug

U=MQTT_Username
P="MQTT passw0rd"

host=localhost
port=1883

### End user defined variables

SubTopic=$Prefix/oolite/alert
PubTopic=$Prefix/oolite/input

CMD="{'command': 'pauseGame()'}"

doPause(){
    mosquitto_pub -h $host -p $port -u $U -P "$P" -t "$PubTopic" -m "$CMD"
}

# Watch for alertCondition other than 1, pause game, quit.
mosquitto_sub -h $host -p $port -u $U -P "$P" -t "$SubTopic" -v | while read; do
  echo "$REPLY" | grep  '{"msgType":"alert","alertCondition":[^1]}' && {
    echo "Rude alert. This is not a daffodil. Pausing game."
    doPause
    echo "Script complete. Abandoning shop. Bye!!"
    pkill -P $$
  }
done
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Sunshine - Moonlight - Good Times - Oolite
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

hiran wrote: Tue Jul 23, 2024 3:20 pm
MrFlibble wrote: Tue Jul 23, 2024 1:38 pm
hiran wrote: Tue Jul 23, 2024 5:55 am
What is Oolite trying to tell me?

Code: Select all

MQTTAdapterranges=com.dd.plist.NSArray@45343bab, message=Exception: TypeError: cyclic object value
    Active script: oolite-starter-oxp 0.1
    script.js, line 503:
        debugConsole.consoleMessage(JSON.stringify(msg))
Blind stab... Can you throw in some temporary debug spew to figure out which value(s) is/are being parsed when that occurs? Then, is this article any help?
Wilco. Sometimes (especially after successfully eliminating other problems) the obvious points are invisible... 🤪
I added some logging. Now I see this in latest.log, just after launching from a station. And if it is a stack trace I have no clue how to read it... :shock:

Code: Select all

19:35:06.795 [LogEvents]: launched from Dodecahedron Station 24671
19:35:06.878 [oolite-starter-oxp]: shipTargetAcquired([Ship "Navigation Buoy" position: (-46414.3, 52852.4, 441051) scanClass: CLASS_BUOY status: STATUS_IN_FLIGHT])
19:35:06.878 [oolite-starter-oxp]: shipTargetAcquired: [object Object]
19:35:06.906 [script.javaScript.exception.cyclicValue]: ***** JavaScript exception (oolite-starter-oxp 0.1): TypeError: cyclic object value
19:35:06.906 [script.javaScript.exception.cyclicValue]:       AddOns/org.oolite.hiran.OoliteStarter.oxp/Config/script.js, line 521.
19:35:06.906 [script.javaScript.stackTrace]:  0 (telescope.js:1679) <anonymous function>
19:35:06.906 [script.javaScript.stackTrace]:     this: [Script "telescope" version 1.15]
19:35:06.906 [script.javaScript.stackTrace]:     vd: undefined
19:35:06.906 [script.javaScript.stackTrace]:     vm: undefined
19:35:06.906 [script.javaScript.stackTrace]:     d: 8630.909683883383
19:35:06.906 [script.javaScript.stackTrace]:     ps: [PlayerShip "Imperial Courier" position: (-51764.5, 58944.8, 438092) scanClass: CLASS_PLAYER status: STATUS_IN_FLIGHT]
19:35:06.906 [script.javaScript.stackTrace]:     who: [Ship "Navigation Buoy" position: (-46414.3, 52852.4, 441051) scanClass: CLASS_BUOY status: STATUS_IN_FLIGHT]
19:35:06.906 [script.javaScript.stackTrace]:     ti: 1
19:35:06.906 [script.javaScript.stackTrace]:     ws: [Script "telescope" version 1.15]
19:35:06.906 [script.javaScript.stackTrace]:  1 (telescope.js:1470) <anonymous function>
19:35:06.907 [script.javaScript.stackTrace]:     this: [Script "telescope" version 1.15]
19:35:06.907 [script.javaScript.stackTrace]:     showname: false
19:35:06.907 [script.javaScript.stackTrace]:     who: [Ship "Navigation Buoy" position: (-46414.3, 52852.4, 441051) scanClass: CLASS_BUOY status: STATUS_IN_FLIGHT]
19:35:06.907 [script.javaScript.stackTrace]:     ti: 1
19:35:06.907 [script.javaScript.stackTrace]:     ws: [Script "telescope" version 1.15]
19:35:06.907 [script.javaScript.stackTrace]:  2 (telescope.js:1031) <anonymous function>
19:35:06.907 [script.javaScript.stackTrace]:     this: undefined
19:35:06.907 [script.javaScript.stackTrace]:     lostvalid: false
19:35:06.907 [script.javaScript.stackTrace]:     mode: "auto"
19:35:06.907 [script.javaScript.stackTrace]:     skiptarget: null
19:35:06.907 [script.javaScript.stackTrace]:     mi: 0
19:35:06.907 [script.javaScript.stackTrace]:     ps: [PlayerShip "Imperial Courier" position: (-51764.5, 58944.8, 438092) scanClass: CLASS_PLAYER status: STATUS_IN_FLIGHT]
19:35:06.907 [script.javaScript.stackTrace]:     mct: [Ship "Navigation Buoy" position: (-46414.3, 52852.4, 441051) scanClass: CLASS_BUOY status: STATUS_IN_FLIGHT]
19:35:06.907 [script.javaScript.stackTrace]:     ws: [Script "telescope" version 1.15]
19:35:06.907 [script.javaScript.stackTrace]:  3 (telescope.js:1924) _TimedS()
19:35:06.907 [script.javaScript.stackTrace]:     this: [Script "telescope" version 1.15]
19:35:06.907 [script.javaScript.stackTrace]:     ti: undefined
19:35:06.907 [script.javaScript.stackTrace]:     pt: undefined
19:35:06.907 [script.javaScript.stackTrace]:     p: (-26530.7, -12367.7, 655085)
19:35:06.907 [script.javaScript.stackTrace]:     sg: [[Station "Dodecahedron Station" "Dodecahedron Station" position: (-52613.2, 59911.2, 437623) scanClass: CLASS_STATION status: STATUS_ACTIVE]]
19:35:06.907 [script.javaScript.stackTrace]:     mfd: "0km Dodecahedron Station 180° \n8km Navigation Buoy \n18km Boa Leader: Cybele 53° <v\n36km Worm: Brans\' Totem III 71° <v\n38km GalCop Viper Interceptor: ZAH768-CE1 103° ^>\n300km Rock Hermit: Antevorta\'s P..."
19:35:06.907 [script.javaScript.stackTrace]:     s: "89km Satellite Telescope 46° v\n"
19:35:06.907 [script.javaScript.stackTrace]:     who: [Ship "Satellite Telescope" position: (-228.147, -3210.96, 398897) scanClass: CLASS_CARGO status: STATUS_IN_FLIGHT]
19:35:06.907 [script.javaScript.stackTrace]:     j: 10
19:35:06.907 [script.javaScript.stackTrace]:     i: 8
19:35:06.907 [script.javaScript.stackTrace]:     ascan: true
19:35:06.907 [script.javaScript.stackTrace]:     st: [[Station "Dodecahedron Station" "Dodecahedron Station" position: (-52613.2, 59911.2, 437623) scanClass: CLASS_STATION status: STATUS_ACTIVE], [Ship "Navigation Buoy" position: (-46414.3, 52852.4, 441051) scanClass: CLASS_BUOY status: STATUS_IN_FLIGHT], [Ship "Boa Leader" position: (-53112.6, 40188.9, 435326) scanClass: CLASS_NEUTRAL status: STATUS_IN_FLIGHT], [Ship "Worm" position: (-47219.1, 33098.1, 412173) scanClass: CLASS_NEUTRAL status: STATUS_IN_FLIGHT], ... <8 items total>]
19:35:06.907 [script.javaScript.stackTrace]:     newtarget: [Ship "Asteroid" position: (-26530.7, -12367.7, 655085) scanClass: CLASS_ROCK status: STATUS_IN_FLIGHT]
19:35:06.907 [script.javaScript.stackTrace]:     gsm: undefined
19:35:06.907 [script.javaScript.stackTrace]:     gravok: true
19:35:06.907 [LogEvents]: targeted Navigation Buoy 27349 who has 250 energy
Sunshine - Moonlight - Good Times - Oolite
User avatar
Cholmondely
Archivist
Archivist
Posts: 5251
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Cockpits, HUDs and other displays

Post by Cholmondely »

I've just been sifting through the goodies in Simon B's Neolites folder on Box (https://wiki.alioth.net/index.php/Simon ... isted_OXPs)

His Arachnid.oxp has some very evocative HUDs.

Here's the one from his Arachnid "Wolf" ship:

Image

They are from 2009 and so predate the various improvements in HUD capabilities in the vanilla game.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4809
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Cockpits, HUDs and other displays

Post by phkb »

MrFlibble wrote: Fri Jul 26, 2024 5:06 pm
Auto-pause bash script, using Oolite Starter MQTT.

This is crude and doesn't bother to check that Oolite has actually paused, but works for me. It should suffice for letting the ship skim fuel in deep space while the commander answers the call of nature.

I put it in a fille, chmod +x it, then when it' is run it watches for an alert status other than "1", at which point the game gets paused and the script quits.
There's an OXP for that: Autopause
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Sun Feb 18, 2024 12:13 pm

Re: Cockpits, HUDs and other displays

Post by MrFlibble »

phkb wrote: Mon Aug 19, 2024 1:27 am
MrFlibble wrote: Fri Jul 26, 2024 5:06 pm
Auto-pause bash script, using Oolite Starter MQTT.

This is crude and doesn't bother to check that Oolite has actually paused, but works for me. It should suffice for letting the ship skim fuel in deep space while the commander answers the call of nature.

I put it in a fille, chmod +x it, then when it' is run it watches for an alert status other than "1", at which point the game gets paused and the script quits.
There's an OXP for that: Autopause
My kludge was an excuse to do something fun with MQTT as we have it, and suffers from the same issue as Cholmondely pointed out in that thread... it doesn't spot non alert inducing entities like asteroids.

Mine's a tad easier to attach to a big button not associated with a keyboard, and to adapt to text/email the commander, or set the 'smart' house lights to an appropriate colour.
User avatar
Wildeblood
---- E L I T E ----
---- E L I T E ----
Posts: 2404
Joined: Sat Jun 11, 2011 6:07 am
Location: Western Australia

Re: Cockpits, HUDs and other displays

Post by Wildeblood »

MrFlibble wrote: Mon Aug 19, 2024 8:30 am
Mine's a tad easier to attach to a big button not associated with a keyboard, and to adapt to text/email the commander, or set the 'smart' house lights to an appropriate colour.
So, this MQTT you've been discussing is the same MQTT Google uses to turn my lights off!?

Changing the room light to blue, green, orange or red on each occasion Oolite suffers an alertConditionChanged would be snazzy-in-extremis.
Snazzy-licious, one might say.

Snazz-tastic.
"Would somebody stop that bloody music!"
User avatar
hiran
Theorethicist
Posts: 2315
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Cockpits, HUDs and other displays

Post by hiran »

Wildeblood wrote: Mon Aug 19, 2024 8:50 am
So, this MQTT you've been discussing is the same MQTT Google uses to turn my lights off!?
Not sure what is agreed between you and Google.
But MQTT is an industry standard for message exchange. I developed/tested against Apache ActiveMQ, and I guess Mr Flibble tested using Mosquitto.
See
https://en.m.wikipedia.org/wiki/MQTT

So it is very likely it is the same.
Wildeblood wrote: Mon Aug 19, 2024 8:50 am
Changing the room light to blue, green, orange or red on each occasion Oolite suffers an alertConditionChanged would be snazzy-in-extremis.
Snazzy-licious, one might say.

Snazz-tastic.
You don't have to if you do not like it. But it is in reach now. 😃
Sunshine - Moonlight - Good Times - Oolite
Post Reply