Class ModuleSettings
Strongly-typed snapshot of settings returned by a ModuleQuery-like payload. Includes a safe decoder for the data-only payload and helpers for selecting amplitude mapping behavior (e.g., 10 mA vs 72 mA based on HW flags).
Inheritance
Namespace: Wss.CoreModule
Assembly: WSS_Core_Interface.dll
Syntax
public sealed class ModuleSettings
Properties
AmpCurveKey
Convenience selector for amplitude curves. Returns "10mA" when the TenMilliAmpPA bit is set; otherwise "72mA".
Declaration
public string AmpCurveKey { get; }
Property Value
| Type | Description |
|---|---|
| string |
BatteryCheckPeriod
Battery check timer period (raw units).
Declaration
public ushort BatteryCheckPeriod { get; }
Property Value
| Type | Description |
|---|---|
| ushort |
BatteryThreshold
Low-battery threshold (raw units).
Declaration
public ushort BatteryThreshold { get; }
Property Value
| Type | Description |
|---|---|
| ushort |
DataStart24
Start pointer for device log data (24-bit big-endian value).
Declaration
public uint DataStart24 { get; }
Property Value
| Type | Description |
|---|---|
| uint |
FswConfig
Fingerswitch configuration value.
Declaration
public ModuleSettings.FingerswitchConfig FswConfig { get; }
Property Value
| Type | Description |
|---|---|
| ModuleSettings.FingerswitchConfig |
HwConfig
Hardware configuration flags (bitfield).
Declaration
public ModuleSettings.HwConfigFlags HwConfig { get; }
Property Value
| Type | Description |
|---|---|
| ModuleSettings.HwConfigFlags |
ImpedanceThreshold
High-impedance threshold (raw units).
Declaration
public ushort ImpedanceThreshold { get; }
Property Value
| Type | Description |
|---|---|
| ushort |
IpdUs
Inter-phase delay in microseconds (one byte in this query).
Declaration
public int IpdUs { get; }
Property Value
| Type | Description |
|---|---|
| int |
IsPartial
True when the payload was shorter than expected; some fields may be defaulted.
Declaration
public bool IsPartial { get; }
Property Value
| Type | Description |
|---|---|
| bool |
PaLimit
PA limit (raw device units; typically correlates with max mA capability).
Declaration
public int PaLimit { get; }
Property Value
| Type | Description |
|---|---|
| int |
ProbeSupported
True when the values originated from a real device probe, not defaults.
Declaration
public bool ProbeSupported { get; }
Property Value
| Type | Description |
|---|---|
| bool |
PwLimit
PW limit (raw device units).
Declaration
public int PwLimit { get; }
Property Value
| Type | Description |
|---|---|
| int |
SerialNumber
Device serial number (one byte in this query).
Declaration
public byte SerialNumber { get; }
Property Value
| Type | Description |
|---|---|
| byte |
StepKind
Whether the step size applies to PA or PW.
Declaration
public ModuleSettings.ParameterStepKind StepKind { get; }
Property Value
| Type | Description |
|---|---|
| ModuleSettings.ParameterStepKind |
StepSize
Step size magnitude (lower 7 bits of the Step byte).
Declaration
public int StepSize { get; }
Property Value
| Type | Description |
|---|---|
| int |
Methods
CreateDefault72mA(bool)
Creates a default (synthetic) 72 mA profile for cases where ModuleQuery is not supported or data is unavailable. Fields are set to conservative defaults and IsPartial is true.
Declaration
public static ModuleSettings CreateDefault72mA(bool probeSupported)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | probeSupported |
Returns
| Type | Description |
|---|---|
| ModuleSettings |
ToSummaryString()
Builds a human-readable one-line summary of key fields for logs and diagnostics.
Declaration
public string ToSummaryString()
Returns
| Type | Description |
|---|---|
| string | Summary string including HW flags, FSW config, IPD, limits, thresholds, and serial. |
TryDecode(ReadOnlySpan<byte>, out ModuleSettings)
Attempts to decode a ModuleQuery settings payload (data-only slice) into a ModuleSettings instance.
Declaration
public static bool TryDecode(ReadOnlySpan<byte> data, out ModuleSettings settings)
Parameters
| Type | Name | Description |
|---|---|---|
| ReadOnlySpan<byte> | data | Data-only bytes in the expected order (length ≥ 16 recommended). |
| ModuleSettings | settings | Decoded settings snapshot (always set; may have IsPartial=true). |
Returns
| Type | Description |
|---|---|
| bool | True when all expected fields were present (not partial). False indicates a short payload, but a
best-effort decode is still returned in |