@camera.ui/sdk / sensor / LicensePlateDetectorSensor
Abstract Class: LicensePlateDetectorSensor<TStorage>
Defined in: sensor/licensePlate.ts:157
License plate detector that receives video frames from the backend pipeline. Extend this class and implement detectLicensePlates for plate detection and OCR.
Extends
LicensePlateSensor<TStorage>
Type Parameters
TStorage
TStorage extends object = Record<string, any>
Constructors
Constructor
new LicensePlateDetectorSensor<
TStorage>(name?):LicensePlateDetectorSensor<TStorage>
Defined in: sensor/licensePlate.ts:60
Parameters
name?
string = 'License Plate Sensor'
Returns
LicensePlateDetectorSensor<TStorage>
Inherited from
LicensePlateSensor.constructor
Properties
_requiresFrames
_requiresFrames:
boolean=true
Defined in: sensor/licensePlate.ts:158
Overrides
LicensePlateSensor._requiresFrames
category
readonlycategory:Sensor=SensorCategory.Sensor
Defined in: sensor/licensePlate.ts:58
Inherited from
id
readonlyid:string
Defined in: sensor/base.ts:190
Inherited from
name
readonlyname:string
Defined in: sensor/base.ts:189
Inherited from
onAssignmentChanged
readonlyonAssignmentChanged:Observable<boolean>
Defined in: sensor/base.ts:209
Inherited from
ClipDetectorSensor.onAssignmentChanged
onCapabilitiesChanged
readonlyonCapabilitiesChanged:Observable<string[]>
Defined in: sensor/base.ts:200
Observable for capability changes. Emits the full capabilities array when capabilities change.
Inherited from
LicensePlateSensor.onCapabilitiesChanged
onPropertyChanged
readonlyonPropertyChanged:Observable<PropertyChangeOf<LicensePlateSensorProperties>>
Defined in: sensor/base.ts:198
Observable for property changes. Emits { property, value, timestamp } when any property changes.
Inherited from
LicensePlateSensor.onPropertyChanged
type
readonlytype:LicensePlate=SensorType.LicensePlate
Defined in: sensor/licensePlate.ts:57
Inherited from
Accessors
cameraId
Get Signature
get cameraId():
string
Defined in: sensor/base.ts:257
Camera ID this sensor belongs to. Throws if sensor not yet added to a camera.
Returns
string
Inherited from
capabilities
Get Signature
get capabilities():
TCapability[]
Defined in: sensor/base.ts:277
Optional feature flags advertised by this sensor (e.g., PTZ pan/tilt/zoom)
Returns
TCapability[]
Set Signature
set capabilities(
value):void
Defined in: sensor/base.ts:282
Set capabilities and notify the backend. Automatically deduplicates.
Parameters
value
TCapability[]
Returns
void
Inherited from
LicensePlateSensor.capabilities
detected
Get Signature
get detected():
boolean
Defined in: sensor/licensePlate.ts:70
Whether any license plate is currently detected.
Returns
boolean
Inherited from
detections
Get Signature
get detections():
LicensePlateDetection[]
Defined in: sensor/licensePlate.ts:75
Current detection list.
Returns
Inherited from
displayName
Get Signature
get displayName():
string
Defined in: sensor/base.ts:233
Returns
string
Inherited from
isAssigned
Get Signature
get isAssigned():
boolean
Defined in: sensor/base.ts:252
Whether this sensor has been assigned to a camera in the backend
Returns
boolean
Inherited from
modelSpec
Get Signature
get
abstractmodelSpec():ModelSpec
Defined in: sensor/licensePlate.ts:161
Declares the expected input dimensions and trigger labels. The backend scales frames to match.
Returns
pluginId
Get Signature
get pluginId():
string|undefined
Defined in: sensor/base.ts:264
Returns
string | undefined
Inherited from
props
Get Signature
get
protectedprops():Readonly<TProperties>
Defined in: sensor/base.ts:295
Read-only access to the internal property store. Subclasses use this to read current state when implementing semantic methods (e.g., if (this.blocked) return).
Returns
Readonly<TProperties>
Inherited from
storage
Get Signature
get storage():
DeviceStorage<TStorage>
Defined in: sensor/base.ts:269
Per-sensor persistent storage. Throws if sensor not yet added to a camera.
Returns
DeviceStorage<TStorage>
Inherited from
storageSchema
Get Signature
get storageSchema():
JsonSchema[]
Defined in: sensor/base.ts:216
Override to provide a JSON schema for per-sensor storage settings UI
Returns
Inherited from
ClipDetectorSensor.storageSchema
Methods
clearDetections()
clearDetections():
void
Defined in: sensor/licensePlate.ts:122
Explicitly clear license plate state (detected = false, detections = []).
Returns
void
Example
sensor.clearDetections();Inherited from
LicensePlateSensor.clearDetections
detectLicensePlates()
abstractdetectLicensePlates(frames):Promise<LicensePlateResult[]>
Defined in: sensor/licensePlate.ts:168
Detect license plates in batch. Each frame is a pre-cropped, pre-scaled vehicle region produced by the upstream object detector. Must return exactly one LicensePlateResult per input frame, in the same order.
Parameters
frames
Returns
Promise<LicensePlateResult[]>
getValue()
Call Signature
getValue<
K>(property):LicensePlateSensorProperties[K] |undefined
Defined in: sensor/base.ts:303
Get the current value of a sensor property. Type-safe via the generic overload — call with a property enum value to get a properly typed result.
Type Parameters
K
K extends keyof LicensePlateSensorProperties
Parameters
property
K
Returns
LicensePlateSensorProperties[K] | undefined
Inherited from
Call Signature
getValue(
property):unknown
Defined in: sensor/base.ts:304
Get the current value of a sensor property. Type-safe via the generic overload — call with a property enum value to get a properly typed result.
Parameters
property
string
Returns
unknown
Inherited from
getValues()
getValues():
Readonly<TProperties>
Defined in: sensor/base.ts:320
Get a read-only snapshot of all property values.
Returns
Readonly<TProperties>
Frozen view of every property currently held by the sensor.
Example
const snapshot = sensor.getValues();
console.log(snapshot);Inherited from
hasCapability()
hasCapability(
capability):boolean
Defined in: sensor/base.ts:423
Parameters
capability
string
Returns
boolean
Inherited from
LicensePlateSensor.hasCapability
onAssigned()
protectedonAssigned():void|Promise<void>
Defined in: sensor/base.ts:473
Lifecycle hook: the sensor just became assigned to a camera. Override to start background work that should only run while this sensor is live — polling loops, event subscriptions, timers, external connections.
Called AFTER cameraId, storage, and RPC channels are wired up, so the override can safely access this.cameraId, this.storage, and publish properties via the semantic helper methods.
Errors thrown here are caught and logged — they will NOT break assignment bookkeeping. If your work can fail, handle it inside the override.
Paired 1:1 with onDeassigned — for every onAssigned call there is exactly one matching onDeassigned later (on deassignment or cleanup).
Default: no-op. Most sensors don't need lifecycle hooks.
Returns
void | Promise<void>
Example
protected override async onAssigned(): Promise<void> {
this._timer = setInterval(() => this.poll(), 5_000);
}Inherited from
onDeassigned()
protectedonDeassigned():void|Promise<void>
Defined in: sensor/base.ts:493
Lifecycle hook: the sensor is being deassigned. Override to tear down whatever was started in onAssigned — clear timers, close subscriptions, release external resources.
Always called exactly once for each prior onAssigned. Also called from _cleanup if the sensor is being removed while still assigned, so you can rely on this as the single teardown point.
Default: no-op.
Returns
void | Promise<void>
Example
protected override onDeassigned(): void {
if (this._timer) clearInterval(this._timer);
}Inherited from
LicensePlateSensor.onDeassigned
reportDetections()
reportDetections(
detected,detections?):void
Defined in: sensor/licensePlate.ts:106
Report detected license plates.
reportDetections(true)— plate detected without specifics. The SDK synthesizes a single full-frame detection with empty plateText.reportDetections(true, [...])— explicit plate detections with OCR text.reportDetections(false)— clear.
Parameters
detected
boolean
Whether any license plate is currently detected.
detections?
Optional explicit plate detections to publish.
Returns
void
Example
import type { LicensePlateDetection } from '@camera.ui/sdk';
sensor.reportDetections(true, [
{
label: 'vehicle',
confidence: 0.93,
box: { x: 0.2, y: 0.5, width: 0.2, height: 0.08 },
attribute: 'license_plate',
plateText: 'ABC 1234',
} satisfies LicensePlateDetection,
]);
sensor.reportDetections(false);Inherited from
LicensePlateSensor.reportDetections
setDisplayName()
setDisplayName(
value):void
Defined in: sensor/base.ts:247
Set the display name (the only mutable identifier on a sensor).
Parameters
value
string
Human-readable label shown in the UI.
Returns
void
Example
sensor.setDisplayName('Front Door Motion');