device

package
v0.0.0-...-55f88ab Latest Latest
Warning

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

Go to latest
Published: May 1, 2019 License: AGPL-3.0 Imports: 2 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	Invoke(invoke ClientInvocation, data float64) error
}

Client is the interface should be inherited by all device's pats or modules, it's function is to perform comms with the device. Device implementing structure may or may not be a Client, that's for the developer to decide.

invoke - Instruction from a table, to which the client will perform an action. data - The data that the instruction requires. Refer to the documentation of invoke constants, to what that should be

type ClientInvocation

type ClientInvocation int

ClientInvocation is the Client.Invoke() instruction. You can define new ones and integrate them easily.

const (

	// PumpSetTargetVolume sets the 'target' volume that has to be pushed through
	// Input is a float64 in uL.
	PumpSetTargetVolume ClientInvocation = iota

	//PumpReset resets indicated pump to starting position. Input can be nil
	PumpReset

	// PumpToggleWithdrawInfuse allows reversing of direction of the pump,
	// enabling you to pull liquids through the system instead of pushing them through.
	// Input is bool, true is push, false is pull.
	PumpToggleWithdrawInfuse

	// PumpSetVolume sets the volume per second target.
	// Input is a float64 in uL/s.
	PumpSetVolume

	// PumpToggle turns the pump on or off. Input is bool.
	PumpToggle

	// PumpRefresh asks the device for it's parameters and updates values.
	// Input can be nil.
	PumpRefresh

	// PumpPurge instructs a pump to push/pull as fast is possible, used for flushing.
	PumpPurge

	// CameraSetIllumination instructs the camera on how much illumination to apply.
	// Input is and int 0 - 100 in percent.
	CameraSetIllumination

	// CameraSetExposure instructs the camera on how much exposure to apply.
	// Input is and int 0 - 100 in percent.
	CameraSetExposure

	// CameraSetFrameRate instructs the camera on what framerate to send frames.
	// Input is int in fps.
	CameraSetFrameRate

	// CameraAutoAdjust instructs the camera to auto-adjust to best of it's ability.
	// Input can be nil.
	CameraAutoAdjust
)

type Device

type Device interface {

	//S tream Returns a device's video stream that can be cancelled
	Stream(context.Context) <-chan Frame

	// Available Checks if device is available
	Available() bool

	// Camera returns the camera client
	Camera() Client

	// Pump returns pump client by pump ID
	Pump(int) Client
}

Device Is the physical or virtual device that this program is connecting to, It can have whatever parts it wants

type Frame

type Frame interface {

	// Frame Gets the underlying frame
	Frame() image.Image

	// SkippedFrame provides context.Done() like method of
	// communicating that a frame should be skipped
	Skip() <-chan struct{}
}

Frame Defines a frame structure that is a part of the stream

Directories

Path Synopsis
Package dropletgenomics defines the DropletGenomics company's microfluidincs device
Package dropletgenomics defines the DropletGenomics company's microfluidincs device
Package video describes video fetching as a device
Package video describes video fetching as a device

Jump to

Keyboard shortcuts

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