Re: Scope of FlightGear Actions

James Turner <[email protected]> Tue, 14 Jul 2026 09:26:23 +0100
Newsgroups gmane.games.flightgear.devel
Message-ID <[email protected]>
--===============3719224066923589856==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_CDE69CDD-8FFE-4D22-A7DF-52E64B20DC60"


--Apple-Mail=_CDE69CDD-8FFE-4D22-A7DF-52E64B20DC60
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On 13 Jul 2026, at 18:21, Patrick Callahan <[email protected]> =
wrote:
>=20
> My idea of actions is that they are responses to events. =20
>=20
> Is a property change enough to trigger an action?
>=20
> YAGNI applies. to the "sequence of actions" idea.
>=20
> You've indicated that an action can have state.  What do you have in =
mind for storing that state? Properties, special structures owned by =
specific action objects?
>=20
> EG: Fuel Indicator with 2**n discrete values needed for driving a =
physical display based on a stepper or servo,  vs floating point with =
1,728,000 discrete values,  changing by a couple of .05ml droplets of =
fuel at twice the frame rate. (C172P @ 9 gallons/hr)

This is not the scope I had in mind, they are specifically a user-facing =
tool : they=E2=80=99re meant to enable making a standard =E2=80=98customis=
e controls=E2=80=99 type UI that includes keyboard / menus / hardware =
shortcut buttons as well as joystick / controller buttons.

They can have state such as on/off for a toggle, but your fuel indicator =
example is system / simulation level, not actions. The action(s) in this =
area might be:

	fuel-value (toggle, open/closed)
with proxies:
	open-fuel-value
	close-fuel-valve

or for an enumerated action:

	fuel-tank-selection (with values =E2=80=98left=E2=80=99, =
=E2=80=98right=E2=80=99, =E2=80=98center=E2=80=99, =E2=80=98off=E2=80=99)
with proxies:
	next-fuel-tank-selection
	prev-fuel-tank-selection

Or for some fuel indicators maybe a momentary action:
	test-fuel-quantity-indicator

The point of action is to allow these to be defined in a standard way =
between many aircraft, with some standard translation, description, etc, =
but for each aircraft or instrument to be able to define with the action =
does. So in a GUI you can assign a hardware switch to =
=E2=80=98test-fuel-quantity-indicator=E2=80=99 and that should be =
sufficient, since the action carries sufficient meta-data to configure =
everything else. (Again, could be a keyboard shortcut or menu item or =
HTTP trigger over a socket, but the point is the separation between =
=E2=80=98what you can do=E2=80=99 and 'what it does=E2=80=99 internally.

Kind regards,
James


--Apple-Mail=_CDE69CDD-8FFE-4D22-A7DF-52E64B20DC60
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html aria-label=3D"message body"><head><meta http-equiv=3D"content-type" =
content=3D"text/html; charset=3Dutf-8"></head><body =
style=3D"overflow-wrap: break-word; -webkit-nbsp-mode: space; =
line-break: after-white-space;"><br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On 13 Jul 2026, at 18:21, Patrick Callahan =
&lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">My idea of actions is that they are =
responses to events.&nbsp;&nbsp;</span><div style=3D"caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: =
solid;"><br></div><div style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: 2; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration-line: none; text-decoration-thickness: auto; =
text-decoration-style: solid;">Is a property change enough to trigger an =
action?<div><br><div><span style=3D"background-color: =
transparent;">YAGNI applies. to the "sequence of actions" =
idea.</span></div><div><br></div><div>You've indicated that an action =
can have state.&nbsp; What do you have in mind for storing that state? =
Properties, special structures owned by specific action =
objects?</div><div><br></div><div>EG: Fuel Indicator&nbsp;<span =
style=3D"background-color: transparent;">with 2**n discrete values =
needed for driving a physical display based on a stepper or servo,&nbsp; =
vs floating point with 1,728,000 discrete values,&nbsp; changing&nbsp;by =
a couple of .05ml droplets of fuel at twice the frame rate. (C172P @ 9 =
gallons/hr)</span></div></div></div></div></blockquote><br></div><div>This=
 is not the scope I had in mind, they are specifically a user-facing =
tool : they=E2=80=99re meant to enable making a standard =E2=80=98customis=
e controls=E2=80=99 type UI that includes keyboard / menus / hardware =
shortcut buttons as well as joystick / controller =
buttons.</div><div><br></div><div>They can have state such as on/off for =
a toggle, but your fuel indicator example is system / simulation level, =
not actions. The action(s) in this area might =
be:</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>fuel-value (toggle, =
open/closed)</div><div>with proxies:</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>open-fuel-value</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>close-fuel-valve</div><div><br></div><div>or for an enumerated =
action:</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>fuel-tank-selection (with values =
=E2=80=98left=E2=80=99, =E2=80=98right=E2=80=99, =E2=80=98center=E2=80=99,=
 =E2=80=98off=E2=80=99)</div><div>with proxies:</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>next-fuel-tank-selection</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>prev-fuel-tank-selection</div><div><br></div><div>Or for some =
fuel indicators maybe a momentary action:</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>test-fuel-quantity-indicator</div><div><br></div><div>The point =
of action is to allow these to be defined in a standard way between many =
aircraft, with some standard translation, description, etc, but for each =
aircraft or instrument to be able to define with the action does. So in =
a GUI you can assign a hardware switch to =
=E2=80=98test-fuel-quantity-indicator=E2=80=99 and that should be =
sufficient, since the action carries sufficient meta-data to configure =
everything else. (Again, could be a keyboard shortcut or menu item or =
HTTP trigger over a socket, but the point is the separation between =
=E2=80=98what you can do=E2=80=99 and 'what it does=E2=80=99 =
internally.</div><div><br></div><div>Kind =
regards,</div><div>James</div><div><br></div></body></html>=

--Apple-Mail=_CDE69CDD-8FFE-4D22-A7DF-52E64B20DC60--


--===============3719224066923589856==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============3719224066923589856==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

--===============3719224066923589856==--