kenwood_thd75/types/
mod.rs

1//! Strong types with validation-on-construction for all TH-D75 radio parameters.
2//!
3//! Every type enforces firmware validation rules from the
4//! `radio_validate_channel_params` function at address `0xC003C694` in
5//! firmware v1.03.000. Invalid values are rejected at construction time,
6//! making illegal radio states unrepresentable.
7//!
8//! Menu numbers referenced throughout this module correspond to the
9//! TH-D75 menu system as documented in User Manual Chapter 6 (Menu Mode).
10//! The full menu table covers Menu No. 100-999 across categories:
11//! TX/RX, Memory, Audio File, GPS, APRS, Digital (D-STAR), FM
12//! Broadcasting, SD Card, and Configuration.
13
14pub mod aprs;
15pub mod band;
16pub mod bluetooth;
17pub mod channel;
18pub mod cw;
19pub mod dstar;
20pub mod dtmf;
21pub mod echolink;
22pub mod fm;
23pub mod frequency;
24pub mod gps;
25pub mod mode;
26pub mod radio_params;
27pub mod repeater;
28pub mod scan;
29pub mod settings;
30pub mod system;
31pub mod tone;
32pub mod voice;
33pub mod weather;
34pub mod wireless;
35
36pub use band::Band;
37pub use channel::{
38    ChannelMemory, ChannelName, CrossToneType, FineStep, FlashChannel, FlashDigitalSquelch,
39    FlashDuplex,
40};
41pub use frequency::Frequency;
42pub use mode::{CoarseStepMultiplier, MemoryMode, Mode, PowerLevel, ShiftDirection, StepSize};
43pub use radio_params::{
44    AfGainLevel, BatteryLevel, BeaconMode, CallsignSlot, DetectOutputMode, DstarSlot,
45    DvGatewayMode, FilterMode, FilterWidthIndex, GpsRadioMode, SMeterReading, SquelchLevel,
46    TncBaud, TncMode, VfoMemoryMode, VoxDelay, VoxGain,
47};
48pub use tone::{
49    CTCSS_FREQUENCIES, CtcssMode, DCS_CODES, DataSpeed, DcsCode, LockoutMode, ToneCode, ToneMode,
50};
51
52// APRS subsystem re-exports.
53pub use aprs::{
54    AprsBand, AprsCallsign, AprsConfig, AprsDataSpeed, AprsIcon, AprsMessage, AprsNetwork,
55    AprsStation, AutoReplyConfig, AutoReplyDelay, AutoReplyType, BeaconControl, BeaconMethod,
56    DcdSense, DigipeatAlias, DigipeatConfig, DisplayArea, FilterPhrase, FloodAlias, GroupCode,
57    InterruptTime, McpSmartBeaconingConfig, NavitraConfig, NavitraGroupMode, NavitraMessage,
58    NotificationConfig, PacketFilter, PacketFilterType, PacketPath, PositionAmbiguity,
59    PositionComment, QsyConfig, ReplyMessage, StatusText, TraceAlias, TxDelay, VoiceAlertConfig,
60    WaypointConfig, WaypointFormat,
61};
62
63// D-STAR subsystem re-exports.
64pub use dstar::{
65    CallsignEntry, DestinationSelect, DigitalSquelch, DigitalSquelchCode, DigitalSquelchType,
66    DstarAutoReply, DstarAutoReplyMode, DstarCallsign, DstarConfig, DstarMessage, DstarModule,
67    DstarQsoEntry, DstarSuffix, DvDrMode, EmrVolume, GatewayMode, HotspotEntry, PositionAccuracy,
68    QsoDirection, ReflectorCommand, RepeaterDuplex, RepeaterEntry, RouteSelect,
69};
70
71// GPS subsystem re-exports.
72pub use gps::{
73    CoordinateFormat, GpsConfig, GpsDataTx, GpsFix, GpsOperatingMode, GpsPosition,
74    GpsPositionAmbiguity, GridSquareFormat, NmeaSentences, PositionMemory, PositionName,
75    TargetPoint, TrackLogConfig, TrackRecordMethod,
76};
77
78// FM broadcast radio re-exports.
79pub use fm::{
80    FM_RADIO_CHANNEL_COUNT, FM_RADIO_MAX_HZ, FM_RADIO_MIN_HZ, FmRadioChannel, FmRadioMode,
81};
82
83// Scan re-exports.
84pub use scan::{ProgramScanEdge, ScanResumeMethod, ScanType, VisualRange, VisualScanRange};
85
86// Settings re-exports.
87pub use settings::{
88    AltitudeRainUnit, AudioSettings, AutoPowerOff, BackgroundColor, BacklightControl, DateFormat,
89    DisplayHoldTime, DisplayMethod, DisplaySettings, DisplayUnits, EqSetting, KeyLockType,
90    Language, LedControl, MeterType, MicSensitivity, PfKeyFunction, PowerOnMessage,
91    SpeedDistanceUnit, SystemSettings, TemperatureUnit, VoiceGuideSpeed,
92};
93
94// CW (Morse code) re-exports.
95pub use cw::{CwConfig, CwDelay, CwPitch};
96
97// DTMF re-exports.
98pub use dtmf::{
99    DtmfConfig, DtmfDigits, DtmfMemory, DtmfName, DtmfPause, DtmfSlot, DtmfSpeed, is_valid_dtmf,
100};
101
102// EchoLink re-exports.
103pub use echolink::{EchoLinkMemory, EchoLinkName, EchoLinkNode, EchoLinkSlot};
104
105// FM repeater re-exports.
106pub use repeater::{RepeaterConfig, ToneBurstHold};
107
108// Voice message re-exports.
109pub use voice::{RepeatInterval, VoiceChannel, VoiceMessage, VoiceMessageName};
110
111// Weather alert re-exports (TH-D75A only).
112pub use weather::WeatherConfig;
113
114// Wireless remote control re-exports.
115pub use wireless::{WirelessControlConfig, WirelessPassword};