The MeshCore mod plugin references SWGMeshcoreModActions in
meshcoremod.cpp, but MeshcoreMod.yaml had no MeshcoreModActions
section. When swagger files are regenerated, the auto-generated
SWGChannelActions.h/cpp lose the meshcore_mod_actions member and
accessors, which would break compilation of meshcoremod.cpp.
Changes across five files:
- MeshcoreMod.yaml: add MeshcoreModActions definition (sendNow
field, matching existing hand-authored SWGMeshcoreModActions)
- ChannelActions.yaml: add MeshcoreModActions pointing to
the new section
- SWGModelFactory.h: add #include and create() registration
block for SWGMeshcoreModActions (was missing despite
SWGMeshcoreModSettings/MeshcoreDemod* being registered)
- webapirequestmapper.cpp: add channelActionsKey routing branch
for MeshcoreModActions (was completely absent)
- webapiutils.cpp: add m_channelURIToSettingsKey and
m_channelTypeToSettingsKey entries for both MeshcoreDemod and
MeshcoreMod (were missing, unlike ChirpChat and Meshtastic
which have entries for their channel types)
Problem: It's not possible to select channel in Demod Analyzer feature
via api.
Solution:
Add new "action" into
POST /sdrangel/featureset/feature/{featureIndex}/actions
endpoint
Editing FrequencyScanner via api fails due to null pointer.
Failure happens when swagger generated setValue method is called for
complicated/nested structure on the object with is created by
constructor, but not initialized by the ::init method.
Solution:
1. Call init on newly created object
2. Proactively fix this for all types of settings objects