OpenCVCameraIsolate class
An isolate that is spawned to manage one camera.
This class accepts VideoCommand
s and calls updateDetails with the newly-received details.
When a frame is read, instead of sending the VideoData
, this class sends only the pointer
to the OpenCVImage
via the IsolatePayload class, and the image is read by the parent isolate.
- Inheritance
-
- Object
- IsolateChild<
IsolatePayload, VideoCommand> - CameraIsolate
- OpenCVCameraIsolate
Constructors
- OpenCVCameraIsolate({required CameraDetails details})
- Creates a new manager for the given camera and default details.
Properties
- camera ↔ Camera
-
The native camera object from OpenCV.
latefinal
- details → CameraDetails
-
Holds the current details of the camera.
finalinherited
- fpsCount ↔ int
-
Records how many FPS this camera is actually running at.
getter/setter pairinherited
- fpsTimer ↔ Timer?
-
A timer to log out the fpsCount every 5 seconds using sendLog.
getter/setter pairinherited
- frameTimer ↔ Timer?
-
A timer to read from the camera at an FPS given by details.
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → Object
-
The ID of this child. Used to identify it to the parent.
finalinherited
- name → CameraName
-
The name of this camera (where it is on the rover).
no setterinherited
-
receiver
↔ TypedReceivePort<
VideoCommand> -
The type-safe ReceivePort that will receive messages of type
R
from the parent.latefinalinherited - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- statusTimer ↔ Timer?
-
A timer to periodically send the camera status to the dashboard.
getter/setter pairinherited
Methods
-
dispose(
) → void -
Disposes of this camera and all other resources.
inherited
-
disposeCamera(
) → void -
Closes and releases the camera.
override
-
init(
TypedSendPort< IsolatePayload< port) → voidIsolatePayload, VideoCommand> > -
Saves the given
TypedSendPort
, and creates aTypedReceivePort
to send to the parent.inherited -
initCamera(
) → void -
Initializes the camera and starts streaming.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onData(
VideoCommand data) → void -
A callback to run when new data is received from the parent.
inherited
-
run(
) → Future< void> -
Runs when the child isolate is spawned, after init is called.
inherited
-
send(
IsolatePayload obj) → void -
Sends data to the parent.
inherited
-
sendFrame(
OpenCVImage image, {CameraDetails? detailsOverride}) → void -
Sends an individual frame to the dashboard.
inherited
-
sendFrames(
) → void -
Reads a frame from the camera and sends it to the dashboard.
override
-
sendLog(
LogLevel level, String message) → void -
Logs a message by sending a LogPayload to the parent isolate.
inherited
-
sendStatus(
[dynamic _]) → void -
Sends the current status to the dashboard.
inherited
-
start(
) → void -
Starts the camera and timers.
inherited
-
stop(
) → void -
Cancels all timers and stops reading the camera.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
updateDetails(
CameraDetails newDetails, {bool restart = false}) → void -
Updates the camera's details, which will take effect on the next sendFrame call.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited