Majestic to Waybeam conversion#132
Draft
Lupinixx wants to merge 6 commits into
Draft
Conversation
- Add waybeam_get_config(), waybeam_get_iq(), waybeam_set_iq(), waybeam_restart() helpers in gsmenu.sh - waybeam_set_config() now logs to stderr and returns 1 on failure - Migrate all image get/set: mirror, flip, contrast, saturation, lightness, antiflicker, sensor_file — using Waybeam API - Rename 'hue' control to 'brightness' (maps to brightness IQ param) - Rename 'luminace' control to 'lightness' (maps to lightness IQ param) - Add new IQ controls: sharpness and hsv (get + set sides) - Migrate all video encoding get/set: bitrate, gopsize, rc_mode (added qvbr as valid rcMode option); hide codec (H.265-only on star6e) - Migrate FPV/ROI get/set: fpv_enable, noiselevel (range now 0-7) - Migrate recording config get/set: rec_split (record.maxSeconds, range 0-300), rec_maxusage (record.maxMB, range 0-10000) - Hide exposure control in UI (pending investigation) - Fix adaptivelink handler to use waybeam_set_config for qpDelta - Fix reload_switch_value double-fire: remove/re-add event cb around lv_obj_set_state so programmatic reload doesn't trigger set command - Remove bitrate visibility toggle from gsmenu_toggle_rxmode - Add forward declarations for trigger_drone_recording and is_drone_record_follow_enabled in gs_system.c Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove MAJESTIC_YAML variable (no longer needed) - Remove get_majestic_value() function (all callers migrated) - Remove majestic.yaml from refresh_cache() SCP; wfb.yaml, alink.conf, aalink.conf, txprofiles.conf still cached as before - get/set air camera codec: no-op + static 'h265' (Waybeam is H.265-only on star6e; control is hidden in UI) - get/set air camera exposure: stub (pending IQ AE investigation; control is hidden in UI) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- get/set air camera exposure → waybeam_get_iq/set_iq 'ae_ev_comp' - Range: -4 to 4 (EV compensation steps) - Rename slider label to 'EV Compensation' in ISP menu - Unhide the exposure control in air_camera.c ISP menu Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
I've bench tested it and it all works. Will keep this as draft as long as the main VTX images does not yet implement waybeam_venc yet. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In this (draft) PR I compile a list of everything that needs to change to make PixelPilot compatible with waybeam_venc instead of Majestic, and track progress on the implementation.
If anything is missing, let me know and I'll add it to the list.
Sensor / Mode
GET /api/v1/modesRecording
get air camera rec_enable— query recording state viaGET /api/v1/record/statusset air camera rec_enable— start/stop viaGET /api/v1/record/start|stopwith retry-and-status-check loop (no Majestic CLI fallback)Infrastructure helpers (gsmenu.sh)
waybeam_api_get(endpoint)— base curl wrapperwaybeam_record_active()— checks/record/statusfor"active": truewaybeam_record_start()/waybeam_record_stop()waybeam_record_set_with_retry_bg(on|off)— retry loop with status verification, background subshellwaybeam_set_config(key, value)— calls/api/v1/set?key=value; returns 1 and logs to stderr on failurewaybeam_mode_options()/waybeam_mode_index_from_label()— mode dropdown helperswaybeam_get_config(key)—GET /api/v1/get?key, replacesget_majestic_value()waybeam_get_iq(param)— query a single ISP IQ parameter fromGET /api/v1/iqwaybeam_set_iq(param, value)— set a single ISP IQ parameter viaGET /api/v1/iq/setwaybeam_restart()—GET /api/v1/restart(needed after setting RESTART-mutability fields)Image settings — get side
get air camera mirror→GET /api/v1/get?image.mirrorget air camera flip→GET /api/v1/get?image.flipget air camera contrast→GET /api/v1/iq→contrastparam→ renamed toget air camera hueget air camera brightness→GET /api/v1/iq→brightnessparamget air camera saturation→GET /api/v1/iq→saturationparam→ renamed toget air camera luminaceget air camera lightness→GET /api/v1/iq→lightnessparamget air camera sharpness(new) →GET /api/v1/iq→sharpnessparamget air camera hsv(new) →GET /api/v1/iq→hsvparamImage settings — set side
set air camera mirror→GET /api/v1/set?image.mirror=+ restartset air camera flip→GET /api/v1/set?image.flip=+ restartset air camera contrast→GET /api/v1/iq/set?param=contrast&value=(LIVE)→ renamed toset air camera hueset air camera brightness→GET /api/v1/iq/set?param=brightness&value=(LIVE)set air camera saturation→GET /api/v1/iq/set?param=saturation&value=(LIVE)→ renamed toset air camera luminaceset air camera lightness→GET /api/v1/iq/set?param=lightness&value=(LIVE)set air camera sharpness(new) →GET /api/v1/iq/set?param=sharpness&value=(LIVE)set air camera hsv(new) →GET /api/v1/iq/set?param=hsv&value=(LIVE)Video encoding — get side
get air camera bitrate→GET /api/v1/get?video0.bitrateget air camera gopsize→GET /api/v1/get?video0.gopSizeget air camera rc_mode→GET /api/v1/get?video0.rcMode(addedqvbroption)get air camera codec→ returnsh265statically; control hidden in UI (Waybeam is H.265-only on star6e)Video encoding — set side
set air camera bitrate→GET /api/v1/set?video0.bitrate=(LIVE)set air camera gopsize→GET /api/v1/set?video0.gopSize=(LIVE)set air camera rc_mode→GET /api/v1/set?video0.rcMode=+ restartset air camera codec→ no-op; control hidden in UIISP / exposure — get side
get air camera antiflicker→GET /api/v1/iq→ae_flickerparamget air camera exposure→GET /api/v1/iq→ae_ev_comp(EV compensation, range -4 to 4); UI label renamed to "EV Compensation"get air camera sensor_file→GET /api/v1/get?isp.sensorBinISP / exposure — set side
set air camera antiflicker→GET /api/v1/iq/set?param=ae_flicker&value=set air camera exposure→GET /api/v1/iq/set?param=ae_ev_comp&value=(LIVE)set air camera sensor_file→GET /api/v1/set?isp.sensorBin=+ restartFPV / ROI — get side
get air camera fpv_enable→GET /api/v1/get?fpv.roiEnabledget air camera noiselevel→GET /api/v1/get?fpv.noiseLevel(range 0–7)FPV / ROI — set side
set air camera fpv_enable→GET /api/v1/set?fpv.roiEnabled=(LIVE)set air camera noiselevel→GET /api/v1/set?fpv.noiseLevel=+ restartRecording config (drone-side) — get side
get air camera rec_split→GET /api/v1/get?record.maxSeconds(range 0–300)get air camera rec_maxusage→GET /api/v1/get?record.maxMB(range 0–10000)Recording config (drone-side) — set side
set air camera rec_split→GET /api/v1/set?record.maxSeconds=+ restartset air camera rec_maxusage→GET /api/v1/set?record.maxMB=+ restartAdditional fixes
set air wfbng adaptivelink— removed majestic CLI calls; useswaybeam_set_configforvideo0.qpDeltareload_switch_value— fix callback double-fire bug (remove/re-add event cb aroundlv_obj_set_state)bitratevisibility — no longer toggled bygsmenu_toggle_rxmodeInfrastructure cleanup
get_majestic_value()(all camera reads now use Waybeam API)MAJESTIC_YAMLvariablemajestic.yamlfromrefresh_cache()SCPwfb.yaml/alink.confSCP cache retained — still needed for WFB-ng and alink settingsOut of scope for this PR
wifibroadcast cli, not Majestic/waybeamwifibroadcast cli