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 = <[email protected]> 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. </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. 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 <span = style=3D"background-color: transparent;">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)</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==--