Saltar al contenido principal

Model Reference

This is a compact lookup for types exported by package:eixam_connect_flutter/eixam_connect_flutter.dart. Field lists are intentionally short: they name the stable fields most host apps inspect.

Configuration

TypePurposeKey fields
EixamBootstrapConfigStandard bootstrap inputappId, environment, notificationTexts, initialSession, customEndpoints, notificationPolicy, permissionDisclosureConfig, featureFlags, enableLogging, allowInsecureLocalEndpoints
EixamNotificationTextsRequired localized notification copyProtection active title/body, Protection Mode title/body/channel, Protection SOS channel, pre-SOS, active SOS, and resolved SOS title/body
EixamCustomEndpointsEndpoints for EixamEnvironment.customapiBaseUrl, mqttUrl, websocketUrl
EixamSdkConfigAdvanced runtime config for custom factory setupapiBaseUrl, websocketUrl, enableLogging, networkTimeout, defaultLocaleCode
EixamSessionSigned SDK identity from your backendappId, externalUserId, userHash, sdkUserId, canonicalExternalUserId, refreshToken

Use EixamSession.signed(...) for normal partner integrations.

Profile

TypePurposeKey fields / helpers
SdkUserProfileProfile returned by GET /v1/sdk/meid, appId, externalUserId, name, email, phone, address; splitDisplayNameForUi(), composeDisplayName(...)
SdkUserProfileUpdatePartial update for PUT /v1/sdk/mename, email, phone, address; full(...) sends all fields
SdkProfileValidatorsClient-side profile validationUse before updateSdkUserProfile(...)
SdkProfileConstraintsProfile length/format constraintsName/email/phone/address constraints
SdkProfileClientValidationIssueLocal validation issuefield, kind
SdkProfileValidationKindLocal validation kindSee enum values in SDK
SdkProfileApiFieldHintBackend field hint on ProfileHttpExceptionfield, message
SdkProfileFieldKeyProfile field keyname, email, phone, address
AppFeedbackSubmission / AppFeedbackIssueResult of authenticated in-app feedback submissionissue, identifier, url, id, title, createdAt

Diagnostics

TypePurposeKey fields
SdkOperationalDiagnosticsMain runtime health snapshotconnectionState, session, telemetryPublishTopic, sosEventTopics, SOS capability fields, resolvedLocation, deviceCountryConfig, lastTelRelayRx, backgroundTelemetryEnabled, bridge
SosCapabilitySnapshotSDK-owned activation and cancellation readinessApp/device readiness, registered/connected device, command channel, location, available/preferred paths, blocking/degraded reasons, retryability
SdkBridgeDiagnosticsBridge/relay/support diagnosticslastDecision, relay publish attempt/result fields, terminal relay errors, pendingTelemetry, pendingSos
PendingTelemetryDiagnosticsQueued telemetry diagnosticsignature, payload
PendingSosDiagnosticsQueued SOS diagnosticsignature, message, positionSnapshot
DeviceTelRelayRxDecoded relay TEL samplePeer/self payload and position, RSSI/SNR, remote device id

Device

TypePurposeKey fields
DeviceStatus / DeviceRuntimeHigh-level device statedeviceId, nodeId, canonicalHardwareId, deviceAlias, model, paired, activated, connected, batteryLevel, batteryState, batterySource, firmwareVersion, lastSeen, signalQuality, lifecycleState, provisioningError, isReadyForSafety, approximateBatteryPercentage
PreferredDeviceRemembered BLE devicedeviceId, displayName, lastConnectedAt
PreferredDeviceReconnectResultTyped reconnect attempt resultstatus, reason, connected, reconnecting, blocked, terminal
EixamBleScanResultPublic BLE discovery resultdeviceId, canonicalHardwareId, name, rssi, connectable, brandClassification, isEixamDevice, isDfuBootloader, discoveredAt
EixamBleDiagnosticsBLE support snapshotAdapter, permission, scan, connection, service, command, and last-error diagnostics
BleCommandChannelStatusDevice-command capabilityreadiness, hasSelectedDevice, serviceConnected, commandWriterReady, isReady
DeviceSosStatusDevice-side SOS statestate, previousState, transitionSource, triggerOrigin, lastEvent, updatedAt, packet metadata, countdown fields
DeviceRuntimeStatusTyped device runtime status packetregion, modemPreset, meshSpreadingFactor, isProvisioned, txEnabled, inetOk, positionConfirmed, nodeId, batteryPercent, telIntervalSeconds, rawBytes
RuntimeIdentitySnapshotBLE identity/command readinessconnectedBleNodeId, deviceId, serviceBleConnected, commandCapable, readinessReason, lastUpdatedAt
BackendRegisteredDeviceBackend device registry recordid, hardwareId, firmwareVersion, hardwareModel, pairedAt, createdAt, updatedAt

LoRa Radio Region

TypePurposeKey fields
DeviceCountryConfigBackend country configuration parsed by the SDKdeviceConfig, loraRegionByte, country, sub, raw, regionByte, regionCode
DeviceCountryConfigStatusPublic detection/apply statusoutcome, updatedAt, applyAttempted, canRetry, countryIso, targetRegion, deviceReportedRegion, deviceConfig, detail
LoraRegionCodeTyped diagnostic label for the raw device/backend region bytewireValue, isApplicable, fromWireValue(...); includes unset, eu868, us915, as923, and other modeled regions

Use the raw backend region byte as the configuration source of truth. LoraRegionCode is a public status/diagnostic label, not a host-maintained country mapping. See LoRa Radio Region.

Firmware Updates

TypePurposeKey fields
DeviceFirmwareInfoConnected device firmware contextdeviceId, hardwareId, nodeId, hardwareModel, currentVersion, batteryPercentage, connected, readyForSafety
FirmwareUpdatePolicyApp/update policy gates applied by the SDKminDeviceBatteryPercentage, requireForeground, supportedHardwareModels, allowDowngrade, targetReleaseId
FirmwareReleaseRelease selected by update checkreleaseId, version, hardwareModel, sha256Hash, fileSizeBytes, releaseNotes, bootloaderType, artifactKind, mandatory
FirmwareUpdateEligibilityEligibility result from update checkeligible, blockers, messages
FirmwareUpdateCheckAvailability and eligibility resultdevice, updateAvailable, release, eligibility, checkedAt
FirmwareUpdateSessionStarted update session summarysessionId, deviceId, releaseId, fromVersion, targetVersion, state, startedAt, completedAt, failure fields
FirmwareUpdateProgressLive update progress eventsessionId, deviceId, state, progressPercentage, byte counters, effectivePercentage, failure fields, updatedAt

See Firmware Updates / OTA for how host apps should present blockers, progress, cancellation, failure, and recovery states.

SOS

TypePurposeKey fields
SosTriggerPayloadInput for SOS trigger/confirmationmessage, triggerSource, optional OS widget activation context
SosIncidentCurrent or historical SOS incidentid, state, positionSnapshot, createdAt, triggerSource, message, deliveryChannel
SosLifecycleSnapshotAuthoritative SDK-owned SOS generationrevision, stage, lifecycle/generation ids, origin, actionability/display fields, incident/device identity, cancellation/recovery/failure fields
SosActivationResultTyped authoritative activation resultoutcome, lifecycle, incident, selectedPath, usedPaths
SosCancellationResultTyped authoritative cancellation resultoutcome, lifecycle, incident
SosIncidentProgressRealtime-backed progress for the current incidentincidentId, steps, lastUpdatedAt, isTerminal, cache/canonical-id/actionability fields
SosProgressStepOne operational progress stagetype, state, updatedAt, target counts, detailCode
PublicPreSosStatusPublic pre-SOS countdownactive, startedAt, expectedActivationAt, remainingSeconds, mirroredOnDevice, origin, cycleKey, owner, originatorNodeId, packetId
OsSosWidgetActivationValidated OS widget activation handed to the SDKplatform, actionId, nonce, timestamp, confirmationMode
OsSosWidgetActivationResultSDK handling result for an OS widget activationoutcome, source, platform, actionId, nonce, timestamp, confirmationMode, optional SOS or pre-SOS state
SosHistoryTelemetryCreation telemetry inside historyid, occurredAt, position and battery/coverage fields
SosHistoryItemOne history itemid, state, createdAt, positionSnapshot, triggerSource, message, deliveryChannel, creationTelemetry, trail
SosHistoryPagePaginated history responseitems, nextCursor, hasMore

Contacts & Permissions

TypePurposeKey fields
EmergencyContactBackend-synced emergency contactid, name, phone, email, priority, language, createdAt, updatedAt
PermissionStateAggregated permission snapshotlocation, notifications, bluetooth, bluetoothEnabled, hasLocationAccess, hasNotificationAccess, hasBluetoothAccess, canUseBluetooth
EixamPermissionRequirementPreflight intent for one permission purposepurpose, nativeAction, featureKey; named constructors for location, Bluetooth, and notifications
EixamPermissionPreflightResultDisclosure/native-prompt decisionpermissionState, permissionStatus, nativeAction, requiresDisclosure, nativePromptAllowed, disclosure, limitedFeatureMessage
EixamPermissionDisclosureConfigHost-configurable permission explanationsCopy for foreground/background location, nearby devices/Bluetooth, and notifications

Location Authority

TypePurposeKey fields / values
SdkResolvedLocationSDK-selected location sample for SOS, PRE-SOS/DMP, telemetry, Android handoff, and UI previewCoordinates, timestamp/freshness, source, and whether the sample is backend-authoritative
SdkLocationSourceSource label for a resolved locationremoteRelayDevice, connectedDevice, phone, cachedFallback, backendSnapshot
SdkResolvedLocationResolverApplies SDK source-priority rulesRemote relay event location for that event only, fresh valid connected-device GPS, phone fallback, display-only cache/backend snapshots

See Location Authority for source priority, telemetry publishing behavior, and Android handoff guardrails.

Protection

TypePurposeKey fields
ProtectionStatusCurrent Protection Mode statemodeState, coverageLevel, runtimeState, readiness booleans, queue counts, platform, bleOwner, protectedDeviceId, command diagnostics
ProtectionDiagnosticsDetailed native/runtime diagnosticsWake, reconnect, queue, backend config, native backend handoff, notification/runtime state, and command fields
ProtectionReadinessReportReadiness result before armingcanArm, blockingIssues, warnings
ProtectionBlockingIssueOne readiness blockertype, message, canBeResolvedInline
ProtectionModeOptionsArming optionsenableStoreAndForward, autoReconnectBle, autoFlushOnReconnect, allowDegradedMode, reconnectBackoff, healthCheckInterval
EnterProtectionModeResultArming resultsuccess, status, blockingIssues
FlushProtectionQueuesResultQueue flush resultflushedSosCount, flushedTelemetryCount, success

Notifications

TypePurposeKey fields
EixamNotificationIntentNotification action/intention for host appid, type, dedupeKey, createdAt, severity, incident/device/node context, localization keys, fallback copy, payload, shouldClearSosNotifications
BleNotificationNavigationRequestNavigation request from BLE/SOS notificationactionId, reason, state, deviceId, deviceAlias, nodeId

Tracking, Telemetry, DMP

TypePurposeKey fields
TrackingPositionLocation samplelatitude, longitude, altitude, accuracy, speed, heading, source, timestamp, age, isStale
SdkTelemetryPayloadPublished telemetry payloadTimestamp, resolver-backed position when available, event/user/device ids, node/cluster metadata, battery and coverage snapshots
SdkDeviceBatterySnapshotTyped battery snapshotrawValue, range
SdkCoverageSnapshotTyped coverage snapshotsignalStrength, networkType, isConnected
DeathManPlanDeath Man Protocol planid, expectedReturnAt, gracePeriod, checkInWindow, autoTriggerSos, status

Events & Realtime

TypePurposeKey fields
EixamSdkEventBase SDK eventtimestamp
SOSTriggeredEventSOS openedincidentId
SOSCancelledEventSOS cancelledincidentId
PositionUpdatedEventPosition updatedtimestamp
DeviceDisconnectedEventDevice disconnecteddeviceId
DeathManScheduledEventDMP scheduledplanId
DeathManStatusChangedEventDMP status changedplanId, status
DeathManEscalatedEventDMP escalatedplanId
RemoteRelaySosObservedEventRelay SOS observedsnapshot
RemoteRelaySosBackendHandoffResultEventRelay SOS backend handoff resultsnapshot, status, backend result fields, relay ACK fields
RemoteRelaySosCancelHandoffResultEventRelay SOS cancel handoff resultoriginatorNodeId, relayNodeId, deviceId, status, reason, errorMessage, receivedAt
RealtimeEventRaw realtime transport eventtype, timestamp, payload

Enums

EnumValues
EixamEnvironmentproduction, sandbox, staging, custom
EixamNotificationPolicysdkManaged, hostAppManaged
DeathManStatusscheduled, monitoring, overdue, awaitingConfirmation, confirmedSafe, escalated, cancelled, expired
DeliveryModemobile, mesh, hybrid, unknown
DeviceBatteryLevelcritical, low, medium, ok
DeviceBatterySourcetelPacket, sosPacket, unknown
DeviceLifecycleStateunpaired, pairing, paired, activating, activated, ready, error
DeviceSosStateinactive, preConfirm, active, acknowledged, resolved, unknown
DeviceSosTransitionSourcedevice, app, backend, unknown
DeviceCountryConfigOutcomeidle, updateAvailable, applying, applied, skippedUpToDate, skippedNoLocation, skippedCountryUnknown, skippedDeviceOffline, skippedSafetyActive, skippedFirmwareUnsupported, failed
LoraRegionCodeModeled radio-region labels with their raw firmware wire values; unknown bytes map to unset for display
FirmwareUpdateStateidle, checking, available, notAvailable, blocked, downloading, verifying, readyToTransfer, transferring, reconnecting, verifyingInstalledVersion, completed, failed, cancelled, recoveryRequired
FirmwareUpdateBlockerUpdate blocker values exposed by the SDK, including no connected device, unknown firmware version, unsupported hardware, low battery, unstable BLE, SOS/pre-SOS active, DMP active/overdue, protection runtime busy, app backgrounded, missing artifact/hash, and incompatible release
RealtimeConnectionStatedisconnected, connecting, connected, reconnecting, error
SdkPermissionStatusunknown, granted, denied, permanentlyDenied, restricted, limited, serviceDisabled
EixamPermissionPurposelocationForeground, locationBackground, nearbyDevicesBluetooth, notifications
EixamPermissionNativeActionnone, platform request actions, and openAppSettings
SosDeliveryChannelbackendOnly, deviceOnly, backendAndDevice
SosStateidle, arming, triggerRequested, triggeredLocal, sending, sent, acknowledged, cancelRequested, cancelled, resolved, failed
SosLifecycleStageidle, arming, activating, active, cancelling, terminal/failure/recovery stages
SosActionability / SosDisplaySurfaceWhether a lifecycle is locally actionable and where the host may display it
SosTerminalReasonTyped reason why the latest SOS lifecycle became terminal
OsSosWidgetPlatformandroid, ios
OsSosWidgetConfirmationModecountdown, hold, appOpened
OsSosWidgetActivationOutcomecountdownStarted, countdownAlreadyRunning, activeSosAlreadyRunning, activated, confirmationRequired, duplicateIgnored
TrackingStateidle, starting, tracking, paused, stale, error
BleDiscoveredDeviceBrandeixam, meshtastic, unknown
PublicPreSosOwnerapp, device
ProtectionModeStateoff, arming, armed, degraded, stopping, error
ProtectionCoverageLevelnone, partial, full
ProtectionBleOwnerflutter, androidService, iosPlugin
ProtectionPlatformunknown, android, ios
ProtectionCapabilityStateunknown, unavailable, configured
ProtectionRuntimeStateinactive, starting, active, recovering, failed
ProtectionBlockingIssueTypenoSession, noPairedDevice, bluetoothDisabled, locationPermissionMissing, notificationsPermissionMissing, platformBackgroundCapabilityMissing, hostRuntimeStartFailed
EixamNotificationIntentTypeNotification intent type values exposed by the SDK
EixamNotificationIntentSeverityNotification severity values exposed by the SDK
RemoteRelaySosBackendHandoffStatussubmitted, skipped, failed
RuntimeIdentityReadinessReasonRuntime identity readiness values exposed by the SDK

Exceptions

All SDK exceptions extend EixamSdkException and expose code and message.

ExceptionUse
AuthExceptionSession/auth failures
NetworkExceptionNetwork or transport failures
SosException / SosHttpExceptionSOS flow failures; HTTP variant includes statusCode
TrackingExceptionTracking/location failures
DeviceExceptionPairing, activation, BLE command, or runtime device failures
FirmwareUpdateExceptionOTA preparation/transfer/verification failure; requiresRecovery may contain a native recovery verdict
FeedbackException / FeedbackHttpExceptionFeedback submission failures; HTTP variant includes status/body/API details
ContactsException / ContactsHttpExceptionContact flow failures; HTTP variant includes status/body/API details
DeathManExceptionDMP failures
ProfileHttpExceptionProfile HTTP failures with optional fieldHints

Advanced Helpers

TypeUse
EixamConnectSdkMain SDK facade
EixamConnectSdkBootstrapperBootstrap registration function type
EixamSignedSessionProviderFunction type for obtaining signed sessions
ApiSdkFactoryControlled runtime/factory setup for validation or support tooling