modem

package
v0.0.0-...-ac3d764 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolUnknown = contract.ProtocolUnknown
	ProtocolQMI     = contract.ProtocolQMI
	ProtocolMBIM    = contract.ProtocolMBIM
)
View Source
const (
	AccessAuto   = contract.AccessAuto
	AccessProxy  = contract.AccessProxy
	AccessDirect = contract.AccessDirect
)
View Source
const (
	TechnologyGSM     = contract.TechnologyGSM
	TechnologyUMTS    = contract.TechnologyUMTS
	TechnologyLTE     = contract.TechnologyLTE
	TechnologyLTECatM = contract.TechnologyLTECatM
	TechnologyLTENB   = contract.TechnologyLTENB
	TechnologyNR5GNSA = contract.TechnologyNR5GNSA
	TechnologyNR5GSA  = contract.TechnologyNR5GSA
	TechnologyAny     = contract.TechnologyAny
)
View Source
const (
	FeatureMultiSIM          = contract.FeatureMultiSIM
	FeatureProfileManagement = contract.FeatureProfileManagement
	FeatureSMS               = contract.FeatureSMS
	FeatureUSSD              = contract.FeatureUSSD
	FeatureSignalThresholds  = contract.FeatureSignalThresholds
	FeatureCellInfo          = contract.FeatureCellInfo
	FeatureSAR               = contract.FeatureSAR
	FeatureFirmwareUpdate    = contract.FeatureFirmwareUpdate
	FeatureFacilityLocks     = contract.FeatureFacilityLocks
	FeatureInitialEPSBearer  = contract.FeatureInitialEPSBearer
)
View Source
const (
	IPFamilyUnknown = contract.IPFamilyUnknown
	IPFamilyIPv4    = contract.IPFamilyIPv4
	IPFamilyIPv6    = contract.IPFamilyIPv6
	IPFamilyIPv4v6  = contract.IPFamilyIPv4v6
)
View Source
const (
	AuthenticationNone     = contract.AuthenticationNone
	AuthenticationPAP      = contract.AuthenticationPAP
	AuthenticationCHAP     = contract.AuthenticationCHAP
	AuthenticationMSCHAPv2 = contract.AuthenticationMSCHAPv2
)
View Source
const (
	APNTypeDefault   = contract.APNTypeDefault
	APNTypeIMS       = contract.APNTypeIMS
	APNTypeMMS       = contract.APNTypeMMS
	APNTypeTethering = contract.APNTypeTethering
	APNTypeSUPL      = contract.APNTypeSUPL
	APNTypeEmergency = contract.APNTypeEmergency
	APNTypeAny       = contract.APNTypeAny
)
View Source
const (
	PowerStateUnknown = contract.PowerStateUnknown
	PowerStateOff     = contract.PowerStateOff
	PowerStateLow     = contract.PowerStateLow
	PowerStateOn      = contract.PowerStateOn
)
View Source
const (
	SIMStateUnknown = contract.SIMStateUnknown
	SIMStateAbsent  = contract.SIMStateAbsent
	SIMStateLocked  = contract.SIMStateLocked
	SIMStateReady   = contract.SIMStateReady
	SIMStateFailure = contract.SIMStateFailure
)
View Source
const (
	RegistrationUnknown   = contract.RegistrationUnknown
	RegistrationIdle      = contract.RegistrationIdle
	RegistrationSearching = contract.RegistrationSearching
	RegistrationHome      = contract.RegistrationHome
	RegistrationRoaming   = contract.RegistrationRoaming
	RegistrationDenied    = contract.RegistrationDenied
)
View Source
const (
	PacketServiceUnknown   = contract.PacketServiceUnknown
	PacketServiceAttaching = contract.PacketServiceAttaching
	PacketServiceAttached  = contract.PacketServiceAttached
	PacketServiceDetaching = contract.PacketServiceDetaching
	PacketServiceDetached  = contract.PacketServiceDetached
)
View Source
const (
	FacilityNetwork         = contract.FacilityNetwork
	FacilityNetworkSubset   = contract.FacilityNetworkSubset
	FacilityServiceProvider = contract.FacilityServiceProvider
	FacilityCorporate       = contract.FacilityCorporate
)
View Source
const (
	MessageStateUnknown        = contract.MessageStateUnknown
	MessageStateReceivedUnread = contract.MessageStateReceivedUnread
	MessageStateReceivedRead   = contract.MessageStateReceivedRead
	MessageStateStoredUnsent   = contract.MessageStateStoredUnsent
	MessageStateStoredSent     = contract.MessageStateStoredSent
)
View Source
const (
	MessageStorageUnknown = contract.MessageStorageUnknown
	MessageStorageDevice  = contract.MessageStorageDevice
	MessageStorageSIM     = contract.MessageStorageSIM
)
View Source
const (
	USSDStateUnknown         = contract.USSDStateUnknown
	USSDStateIdle            = contract.USSDStateIdle
	USSDStateActive          = contract.USSDStateActive
	USSDStateUserResponse    = contract.USSDStateUserResponse
	USSDStateNetworkResponse = contract.USSDStateNetworkResponse
	USSDStateTerminated      = contract.USSDStateTerminated
)
View Source
const (
	DevicePresent = contract.DevicePresent
	DeviceAdded   = contract.DeviceAdded
	DeviceRemoved = contract.DeviceRemoved
	DeviceChanged = contract.DeviceChanged
)
View Source
const (
	FirmwareUpdateUnknown  = contract.FirmwareUpdateUnknown
	FirmwareUpdateFastboot = contract.FirmwareUpdateFastboot
	FirmwareUpdateQDL      = contract.FirmwareUpdateQDL
	FirmwareUpdateQDU      = contract.FirmwareUpdateQDU
)
View Source
const (
	PortUnknown = contract.PortUnknown
	PortQMI     = contract.PortQMI
	PortMBIM    = contract.PortMBIM
	PortAT      = contract.PortAT
	PortNetwork = contract.PortNetwork
	PortGPS     = contract.PortGPS
	PortQCDM    = contract.PortQCDM
	PortDebug   = contract.PortDebug
	PortAudio   = contract.PortAudio

	PortRoleUnknown   = contract.PortRoleUnknown
	PortRolePrimary   = contract.PortRolePrimary
	PortRoleSecondary = contract.PortRoleSecondary
	PortRolePPP       = contract.PortRolePPP

	BusUnknown  = contract.BusUnknown
	BusUSB      = contract.BusUSB
	BusPlatform = contract.BusPlatform

	QMIEndpointUnknown  = contract.QMIEndpointUnknown
	QMIEndpointHSIC     = contract.QMIEndpointHSIC
	QMIEndpointHSUSB    = contract.QMIEndpointHSUSB
	QMIEndpointPCIe     = contract.QMIEndpointPCIe
	QMIEndpointEmbedded = contract.QMIEndpointEmbedded
	QMIEndpointBAMDMUX  = contract.QMIEndpointBAMDMUX
)

Variables

View Source
var (
	ErrNotSupported    = contract.ErrNotSupported
	ErrClosed          = errors.New("modem is closed")
	ErrProtocolUnknown = errors.New("modem control port protocol is unknown")
	ErrPortChanged     = errors.New("modem control port changed since discovery")
)

Functions

func WatchDevices

func WatchDevices(ctx context.Context) (<-chan Result[DeviceEvent], error)

WatchDevices reports an initial Present snapshot and later kernel-driven changes until ctx is canceled.

Types

type APNType

type APNType = contract.APNType

type Access

type Access = contract.Access

type Authentication

type Authentication = contract.Authentication

type Band

type Band = contract.Band

type Bearer

type Bearer struct {
	// contains filtered or unexported fields
}

Bearer owns one modem-side packet data session.

func (*Bearer) Close

func (b *Bearer) Close() error

func (*Bearer) Disconnect

func (b *Bearer) Disconnect(ctx context.Context) error

func (*Bearer) Info

func (b *Bearer) Info() BearerInfo

func (*Bearer) Stats

func (b *Bearer) Stats(ctx context.Context) (BearerStats, error)

func (*Bearer) Watch

func (b *Bearer) Watch(ctx context.Context) (<-chan Result[BearerEvent], error)

type BearerEvent

type BearerEvent = contract.BearerEvent

type BearerInfo

type BearerInfo = contract.BearerInfo

type BearerStats

type BearerStats = contract.BearerStats

type BusType

type BusType = contract.BusType

type Capabilities

type Capabilities = contract.Capabilities

type CellInfo

type CellInfo = contract.CellInfo

type ConnectConfig

type ConnectConfig = contract.ConnectConfig

type Device

type Device = contract.Device

func Discover

func Discover(ctx context.Context) ([]Device, error)

Discover returns physical modems with kernel-confirmed QMI and MBIM control ports plus their associated network and serial-port metadata.

type DeviceEvent

type DeviceEvent = contract.DeviceEvent

type DeviceEventType

type DeviceEventType = contract.DeviceEventType

type Facility

type Facility = contract.Facility

type FacilityLock

type FacilityLock = contract.FacilityLock

type Feature

type Feature = contract.Feature

type FirmwareUpdateInfo

type FirmwareUpdateInfo = contract.FirmwareUpdateInfo

type FirmwareUpdateMethod

type FirmwareUpdateMethod = contract.FirmwareUpdateMethod

type IPFamily

type IPFamily = contract.IPFamily

type Info

type Info = contract.Info

type InitialEPSConfig

type InitialEPSConfig = contract.InitialEPSConfig

type Message

type Message = contract.Message

type MessageConfig

type MessageConfig = contract.MessageConfig

type MessageRef

type MessageRef = contract.MessageRef

type MessageState

type MessageState = contract.MessageState

type MessageStorage

type MessageStorage = contract.MessageStorage

type MessageStorageInfo

type MessageStorageInfo = contract.MessageStorageInfo

type Mode

type Mode = contract.Mode

type Modem

type Modem struct {
	// contains filtered or unexported fields
}

Modem is one opened QMI or MBIM control node.

func Open

func Open(ctx context.Context, port Port, access Access) (*Modem, error)

Open opens a QMI or MBIM control port through the selected access method. The port protocol must come from kernel discovery or be set explicitly by the caller. Open never probes or falls back to another protocol.

func (*Modem) Access

func (m *Modem) Access() Access

Access returns the resolved direct or proxy access method.

func (*Modem) Bands

func (m *Modem) Bands(ctx context.Context) ([]Band, error)

func (*Modem) Bearer

func (m *Modem) Bearer(id uint64) (*Bearer, bool)

func (*Modem) Bearers

func (m *Modem) Bearers() []*Bearer

func (*Modem) CancelUSSD

func (m *Modem) CancelUSSD(ctx context.Context) error

func (*Modem) Capabilities

func (m *Modem) Capabilities(ctx context.Context) (Capabilities, error)

func (*Modem) CellInfo

func (m *Modem) CellInfo(ctx context.Context) ([]CellInfo, error)

func (*Modem) ChangePIN

func (m *Modem) ChangePIN(ctx context.Context, oldPIN, newPIN string) error

func (*Modem) Close

func (m *Modem) Close() error

func (*Modem) Connect

func (m *Modem) Connect(ctx context.Context, cfg ConnectConfig) (*Bearer, error)

func (*Modem) CreateProfile

func (m *Modem) CreateProfile(ctx context.Context, cfg ProfileConfig) (Profile, error)

func (*Modem) DeleteMessage

func (m *Modem) DeleteMessage(ctx context.Context, id uint32) error

func (*Modem) DeleteMessages

func (m *Modem) DeleteMessages(ctx context.Context, refs []MessageRef) error

func (*Modem) DeleteProfile

func (m *Modem) DeleteProfile(ctx context.Context, id int32) error

func (*Modem) DeleteStoredMessage

func (m *Modem) DeleteStoredMessage(ctx context.Context, ref MessageRef) error

func (*Modem) DisconnectAll

func (m *Modem) DisconnectAll(ctx context.Context) error

func (*Modem) EnablePIN

func (m *Modem) EnablePIN(ctx context.Context, pin string, enabled bool) error

func (*Modem) FacilityLocks

func (m *Modem) FacilityLocks(ctx context.Context) ([]FacilityLock, error)

func (*Modem) FirmwareUpdateInfo

func (m *Modem) FirmwareUpdateInfo(ctx context.Context) (FirmwareUpdateInfo, error)

func (*Modem) Info

func (m *Modem) Info(ctx context.Context) (Info, error)

func (*Modem) InitialEPSBearer

func (m *Modem) InitialEPSBearer(ctx context.Context) (InitialEPSConfig, error)

func (*Modem) InitialEPSSettings

func (m *Modem) InitialEPSSettings(ctx context.Context) (InitialEPSConfig, error)

func (*Modem) InitiateUSSD

func (m *Modem) InitiateUSSD(ctx context.Context, text string) (USSDMessage, error)

func (*Modem) ListMessages

func (m *Modem) ListMessages(ctx context.Context) ([]Message, error)

func (*Modem) MBIMClient

func (m *Modem) MBIMClient(ctx context.Context, slot uint8) (*mbimproto.Client, error)

MBIMClient opens an independently owned MBIM client using the modem's resolved device and access method. The caller must close the returned client. Direct clients share the process-wide MBIM dispatcher.

func (*Modem) MessageStorages

func (m *Modem) MessageStorages(ctx context.Context) (MessageStorageInfo, error)

func (*Modem) Modes

func (m *Modem) Modes(ctx context.Context) ([]Mode, Mode, error)

func (*Modem) NetworkStatus

func (m *Modem) NetworkStatus(ctx context.Context) (NetworkStatus, error)

func (*Modem) Port

func (m *Modem) Port() Port

Port returns the control port opened by the modem.

func (*Modem) PowerState

func (m *Modem) PowerState(ctx context.Context) (PowerState, error)

func (*Modem) PreferredNetworks

func (m *Modem) PreferredNetworks(ctx context.Context) ([]PreferredNetwork, error)

func (*Modem) Profiles

func (m *Modem) Profiles(ctx context.Context) ([]Profile, error)

func (*Modem) Protocol

func (m *Modem) Protocol() Protocol

Protocol returns the control protocol carried by the opened port.

func (*Modem) QMIClient

func (m *Modem) QMIClient(ctx context.Context, slot uint8) (*qcom.Client, error)

QMIClient opens an independently owned QMI client using the modem's resolved device and access method. The caller must close the returned client. Direct clients share the process-wide transport but own their QMI service client IDs.

func (*Modem) ReadMessage

func (m *Modem) ReadMessage(ctx context.Context, id uint32) (Message, error)

func (*Modem) ReadStoredMessage

func (m *Modem) ReadStoredMessage(ctx context.Context, ref MessageRef) (Message, error)

func (*Modem) Register

func (m *Modem) Register(ctx context.Context, cfg RegisterConfig) error

func (*Modem) Reset

func (m *Modem) Reset(ctx context.Context) error

func (*Modem) RespondUSSD

func (m *Modem) RespondUSSD(ctx context.Context, text string) (USSDMessage, error)

func (*Modem) SAR

func (m *Modem) SAR(ctx context.Context) (SARState, error)

func (*Modem) SIMInfo

func (m *Modem) SIMInfo(ctx context.Context) (SIMInfo, error)

func (*Modem) SIMSlots

func (m *Modem) SIMSlots(ctx context.Context) ([]SIMSlot, error)

func (*Modem) ScanNetworks

func (m *Modem) ScanNetworks(ctx context.Context) ([]Operator, error)

func (*Modem) SendMessage

func (m *Modem) SendMessage(ctx context.Context, cfg MessageConfig) (SendResult, error)

func (*Modem) SendPDU

func (m *Modem) SendPDU(ctx context.Context, pdu []byte) (uint32, error)

func (*Modem) SendPIN

func (m *Modem) SendPIN(ctx context.Context, pin string) error

func (*Modem) SendPUK

func (m *Modem) SendPUK(ctx context.Context, puk, newPIN string) error

func (*Modem) SetBands

func (m *Modem) SetBands(ctx context.Context, bands []Band) error

SetBands selects radio bands.

func (*Modem) SetCapabilities

func (m *Modem) SetCapabilities(ctx context.Context, technologies Technology) error

func (*Modem) SetFacilityLock

func (m *Modem) SetFacilityLock(ctx context.Context, facility Facility, enabled bool, key string) error

func (*Modem) SetInitialEPSSettings

func (m *Modem) SetInitialEPSSettings(ctx context.Context, cfg InitialEPSConfig) (InitialEPSConfig, error)

func (*Modem) SetModes

func (m *Modem) SetModes(ctx context.Context, mode Mode) error

func (*Modem) SetPacketServiceState

func (m *Modem) SetPacketServiceState(ctx context.Context, state PacketServiceState) error

func (*Modem) SetPowerState

func (m *Modem) SetPowerState(ctx context.Context, state PowerState) error

SetPowerState requests a power state and waits for the modem to report it.

func (*Modem) SetPreferredNetworks

func (m *Modem) SetPreferredNetworks(ctx context.Context, networks []PreferredNetwork) error

func (*Modem) SetPrimarySIMSlot

func (m *Modem) SetPrimarySIMSlot(ctx context.Context, slot uint8) error

func (*Modem) SetSAR

func (m *Modem) SetSAR(ctx context.Context, state SARState) error

func (*Modem) SetSignalThresholds

func (m *Modem) SetSignalThresholds(ctx context.Context, thresholds SignalThresholds) error

func (*Modem) Signal

func (m *Modem) Signal(ctx context.Context) (Signal, error)

func (*Modem) Status

func (m *Modem) Status(ctx context.Context) (Status, error)

func (*Modem) StoreMessage

func (m *Modem) StoreMessage(ctx context.Context, cfg MessageConfig) ([]Message, error)

func (*Modem) SupportedBands

func (m *Modem) SupportedBands(ctx context.Context) ([]Band, error)

func (*Modem) UnblockFacilityLock

func (m *Modem) UnblockFacilityLock(ctx context.Context, facility Facility, key string) error

func (*Modem) UpdateProfile

func (m *Modem) UpdateProfile(ctx context.Context, update ProfileUpdate) (Profile, error)

func (*Modem) WatchMessages

func (m *Modem) WatchMessages(ctx context.Context) (<-chan Result[Message], error)

func (*Modem) WatchNetwork

func (m *Modem) WatchNetwork(ctx context.Context) (<-chan Result[NetworkStatus], error)

func (*Modem) WatchProfiles

func (m *Modem) WatchProfiles(ctx context.Context) (<-chan Result[[]Profile], error)

func (*Modem) WatchSIM

func (m *Modem) WatchSIM(ctx context.Context) (<-chan Result[SIMInfo], error)

func (*Modem) WatchSignal

func (m *Modem) WatchSignal(ctx context.Context) (<-chan Result[Signal], error)

func (*Modem) WatchStatus

func (m *Modem) WatchStatus(ctx context.Context) (<-chan Result[Status], error)

func (*Modem) WatchUSSD

func (m *Modem) WatchUSSD(ctx context.Context) (<-chan Result[USSDMessage], error)

type NetworkConfig

type NetworkConfig = contract.NetworkConfig

type NetworkStatus

type NetworkStatus = contract.NetworkStatus

type Operator

type Operator = contract.Operator

type PacketServiceState

type PacketServiceState = contract.PacketServiceState

type Port

type Port = contract.Port

type PortRole

type PortRole = contract.PortRole

type PortType

type PortType = contract.PortType

type PowerState

type PowerState = contract.PowerState

type PreferredNetwork

type PreferredNetwork = contract.PreferredNetwork

type Profile

type Profile = contract.Profile

type ProfileConfig

type ProfileConfig = contract.ProfileConfig

type ProfileUpdate

type ProfileUpdate = contract.ProfileUpdate

type Protocol

type Protocol = contract.Protocol

type QMIEndpoint

type QMIEndpoint = contract.QMIEndpoint

type QMIEndpointType

type QMIEndpointType = contract.QMIEndpointType

type RadioSignal

type RadioSignal = contract.RadioSignal

type RegisterConfig

type RegisterConfig = contract.RegisterConfig

type RegistrationState

type RegistrationState = contract.RegistrationState

type Result

type Result[T any] = contract.Result[T]

type SARState

type SARState = contract.SARState

type SIMInfo

type SIMInfo = contract.SIMInfo

type SIMSlot

type SIMSlot = contract.SIMSlot

type SIMState

type SIMState = contract.SIMState

type SendResult

type SendResult = contract.SendResult

type Signal

type Signal = contract.Signal

type SignalThresholds

type SignalThresholds = contract.SignalThresholds

type SignalValue

type SignalValue = contract.SignalValue

type Status

type Status = contract.Status

type Technology

type Technology = contract.Technology

type USBIdentity

type USBIdentity = contract.USBIdentity

type USBInterface

type USBInterface = contract.USBInterface

type USSDMessage

type USSDMessage = contract.USSDMessage

type USSDState

type USSDState = contract.USSDState

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL