mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
docs: the runbook's settings inventory and the bench page's help links are current
BRINGUP named nine cool_* tunables (there are thirty), a cool_fire_ir_delta key nothing reads, and panel source files that no longer exist; the inventory is the present one. The bench page's help popovers pointed at a documentation host and paths that do not exist; they open the site.
This commit is contained in:
+14
-7
@@ -440,7 +440,7 @@ One ulfius daemon serves it all:
|
|||||||
|
|
||||||
- `GET /` — the tabbed control panel (**Status / Machine / GF Cloud / GRBL /
|
- `GET /` — the tabbed control panel (**Status / Machine / GF Cloud / GRBL /
|
||||||
Diagnostics / Logs / System**; sources in `forgectrl/src/ui/`,
|
Diagnostics / Logs / System**; sources in `forgectrl/src/ui/`,
|
||||||
`index.html` + `panel.css` + `panel.js`, bundled into the binary by
|
`index.html`, `panel.js`, `forms.js`, `help.js` and `theme.css`, bundled into the binary by
|
||||||
`embed.cmake`; `tools/devserver.py` and the repo's `.devcontainer/` serve the
|
`embed.cmake`; `tools/devserver.py` and the repo's `.devcontainer/` serve the
|
||||||
same panel on a workstation against a live board or a mock). Status carries
|
same panel on a workstation against a live board or a mock). Status carries
|
||||||
the controller-mode selector, the operational dashboard, a scaled lid
|
the controller-mode selector, the operational dashboard, a scaled lid
|
||||||
@@ -461,11 +461,10 @@ One ulfius daemon serves it all:
|
|||||||
and 409 while a diagnostic owns the hardware; a multi-key POST lands as one
|
and 409 while a diagnostic owns the hardware; a multi-key POST lands as one
|
||||||
atomic replace. Keys: `controller_mode`, `homing_mode`, `gfcloud_home_x/y/z`,
|
atomic replace. Keys: `controller_mode`, `homing_mode`, `gfcloud_home_x/y/z`,
|
||||||
`gfcloud_home_timeout_s`, `gf_serial`, `gf_password`, `ui_units`,
|
`gfcloud_home_timeout_s`, `gf_serial`, `gf_password`, `ui_units`,
|
||||||
`wifi_country`, the nine `cool_*` tunables, `laser_button_timeout_s`,
|
`wifi_country`, the thirty `cool_*` tunables, `laser_button_timeout_s`,
|
||||||
`laser_disarm_s`, `rail_settle_s`, `lid_lamp_idle`, `lid_policy`,
|
`laser_disarm_s`, `rail_settle_s`, `lid_lamp_idle`, `lid_policy`,
|
||||||
`cloud_pause_backtrack_ticks`, `cloud_resume_lead_ticks`, the twelve
|
`cloud_pause_backtrack_ticks`, `cloud_resume_lead_ticks`, `cloud_hold_max_s`, the twelve
|
||||||
`log_<logger>_disk|_remote` levels and `syslog_server|port|proto`.
|
`log_<logger>_disk|_remote` levels and `syslog_server|port|proto`.
|
||||||
`cool_fire_ir_delta` is a hand-edited conf key, not a panel setting.
|
|
||||||
- `GET /mode`, `POST /mode?controller=grbl|cloud` — the supervisor: current
|
- `GET /mode`, `POST /mode?controller=grbl|cloud` — the supervisor: current
|
||||||
mode, controller state (`running | stopped | standby | motion-fault`), pid,
|
mode, controller state (`running | stopped | standby | motion-fault`), pid,
|
||||||
and the motion-liveness verdict (`verified | unverified | fault`); the POST is
|
and the motion-liveness verdict (`verified | unverified | fault`); the POST is
|
||||||
@@ -592,9 +591,17 @@ hard-abort at 48 °C downstream:
|
|||||||
gates between; reports both bands and recommends threshold = (flow max +
|
gates between; reports both bands and recommends threshold = (flow max +
|
||||||
no-flow min)/2 with an Apply button, or refuses when the gap is under 3 °C.
|
no-flow min)/2 with an Apply button, or refuses when the gap is under 3 °C.
|
||||||
|
|
||||||
**Cooling tunables are conf-backed**: the nine `cool_*` keys (`flow_rise`,
|
**Cooling tunables are conf-backed**: the thirty `cool_*` keys (the flow
|
||||||
`flow_heater_pct`, `flow_check_s`, `recheck_s`, `confirm_max_s`, `temp_max`,
|
check: `flow_rise`, `flow_heater_pct`, `flow_check_s`, `recheck_s`,
|
||||||
`temp_resume`, `cooldown_s`, `cooldown_max_s`) live in `/data/forgefirm.conf`
|
`confirm_max_s`, `laser_heat_cw`, `laser_heat_density`, `aa_offset_counts`;
|
||||||
|
the temperatures: `temp_max`, `temp_resume`, `temp_critical_c`, `temp_min`,
|
||||||
|
`temp_start`; the TEC: `tec_present`, `tec_on_c`, `tec_off_c`; the fire
|
||||||
|
watch: `fire_q1_alert`, `fire_q1_critical`, `fire_q2_alert`,
|
||||||
|
`fire_q2_critical`; the crash watch: `accel_x_alert`, `accel_y_alert`,
|
||||||
|
`accel_abort`; the cooldown: `cooldown_s`, `cooldown_max_s`; the airflow
|
||||||
|
gates: `tach_exhaust_min_rpm`, `tach_intake_min_rpm`,
|
||||||
|
`tach_air_assist_min_rpm`, `purge_min_current`, `fan_grace_s`) live in
|
||||||
|
`/data/forgefirm.conf`
|
||||||
(Machine tab, validated ranges), and the cooling engine re-reads them at **every
|
(Machine tab, validated ranges), and the cooling engine re-reads them at **every
|
||||||
run start** (env `GFCOOL_*` > conf > compiled default; env stays the bench
|
run start** (env `GFCOOL_*` > conf > compiled default; env stays the bench
|
||||||
override and wins for the process lifetime).
|
override and wins for the process lifetime).
|
||||||
|
|||||||
@@ -13,11 +13,11 @@
|
|||||||
* What the operator must read mid-run (the steps, prompts, notices and
|
* What the operator must read mid-run (the steps, prompts, notices and
|
||||||
* the live-laser acknowledgment) stays in the page and never moves here.
|
* the live-laser acknowledgment) stays in the page and never moves here.
|
||||||
*/
|
*/
|
||||||
var DOC_BASE = 'https://docs.openglow.org/forgefirm/';
|
var DOC_BASE = 'https://docs.forgefirm.org/';
|
||||||
var HELP = {
|
var HELP = {
|
||||||
campaign: {
|
campaign: {
|
||||||
t: 'Campaign',
|
t: 'Campaign',
|
||||||
d: 'acceptance/campaign',
|
d: 'developers/acceptance/',
|
||||||
p: [
|
p: [
|
||||||
'A release is authorized when a campaign is open on this image and every catalog test is satisfied: by a PASS in the campaign, or (never for the core) by an earlier PASS whose domain fingerprint is unchanged. A FAIL ends the campaign.',
|
'A release is authorized when a campaign is open on this image and every catalog test is satisfied: by a PASS in the campaign, or (never for the core) by an earlier PASS whose domain fingerprint is unchanged. A FAIL ends the campaign.',
|
||||||
'The manifest identity is the image, the catalog hash is the test set; either changing starts the count over.'
|
'The manifest identity is the image, the catalog hash is the test set; either changing starts the count over.'
|
||||||
@@ -25,7 +25,7 @@ var HELP = {
|
|||||||
},
|
},
|
||||||
queues: {
|
queues: {
|
||||||
t: 'Run what is left',
|
t: 'Run what is left',
|
||||||
d: 'acceptance/queues',
|
d: 'developers/acceptance/',
|
||||||
p: [
|
p: [
|
||||||
'Each queue takes every test of its kind that the campaign does not already count as satisfied, runs them one at a time in prerequisite order, and stops on the first result that is not a PASS.',
|
'Each queue takes every test of its kind that the campaign does not already count as satisfied, runs them one at a time in prerequisite order, and stops on the first result that is not a PASS.',
|
||||||
'The unattended queue needs nobody in the room; with the bench fixture up, the operator tests it can perform by itself run there too. The other one does: it prompts, and it fires the laser. Stop-the-queue cancels what is still waiting and lets the run in progress finish; Abort ends that one too.'
|
'The unattended queue needs nobody in the room; with the bench fixture up, the operator tests it can perform by itself run there too. The other one does: it prompts, and it fires the laser. Stop-the-queue cancels what is still waiting and lets the run in progress finish; Abort ends that one too.'
|
||||||
@@ -33,7 +33,7 @@ var HELP = {
|
|||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
t: 'Campaign actions',
|
t: 'Campaign actions',
|
||||||
d: 'acceptance/actions',
|
d: 'developers/acceptance/',
|
||||||
p: [
|
p: [
|
||||||
'Export builds the release artifact the release gate reads (acceptance.json, with acceptance.md for people) from the campaign as it stands. The raw log is the append-only record; the journal is the daemon\'s own.',
|
'Export builds the release artifact the release gate reads (acceptance.json, with acceptance.md for people) from the campaign as it stands. The raw log is the append-only record; the journal is the daemon\'s own.',
|
||||||
'Invalidate all forces a full campaign; give the reason. Reset campaign closes the open campaign without invalidating anything: earlier passes stay inheritable under the campaign rules, and the next Start opens a new one.'
|
'Invalidate all forces a full campaign; give the reason. Reset campaign closes the open campaign without invalidating anything: earlier passes stay inheritable under the campaign rules, and the next Start opens a new one.'
|
||||||
@@ -41,14 +41,14 @@ var HELP = {
|
|||||||
},
|
},
|
||||||
ignore: {
|
ignore: {
|
||||||
t: 'Ignore prerequisites',
|
t: 'Ignore prerequisites',
|
||||||
d: 'acceptance/prerequisites',
|
d: 'developers/acceptance/',
|
||||||
p: [
|
p: [
|
||||||
'A test\'s requires list only orders the runs. With the switch on, any test starts alone and its record notes which prerequisites were unmet; the release still needs every test satisfied.'
|
'A test\'s requires list only orders the runs. With the switch on, any test starts alone and its record notes which prerequisites were unmet; the release still needs every test satisfied.'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
bench: {
|
bench: {
|
||||||
t: 'Bench diagnostics',
|
t: 'Bench diagnostics',
|
||||||
d: 'bench/tools',
|
d: 'developers/bench/',
|
||||||
p: [
|
p: [
|
||||||
'The bench tools under scripts/bench, run on the board with their output in the Run pane. Nothing here enters a campaign. Tools not yet ported are listed for completeness.',
|
'The bench tools under scripts/bench, run on the board with their output in the Run pane. Nothing here enters a campaign. Tools not yet ported are listed for completeness.',
|
||||||
'Live tools need the operator acknowledgment; takeover and scope tools stop forgectrl for the duration and start it again when they finish.'
|
'Live tools need the operator acknowledgment; takeover and scope tools stop forgectrl for the duration and start it again when they finish.'
|
||||||
|
|||||||
Reference in New Issue
Block a user