Skip to main content

Crate pilatus

Crate pilatus 

Source
Expand description

§Pilatus Framework

A modular, extendable application framework which is currently used for industrial and computervision projects. The core is not limited to engineering, but should suite other projects with autonomous configurable subsystems which interact with one another.

📚 Read the Documentation

§Features

  • Run asynchronous actors which communicate via message passing
  • Switch between different sets of actor configurations without restarting the application using the built in recipe management
  • Adding new extension don’t require changes in the core.
  • Easily expose core functionality through apis like http, websockets, opcua
  • Multi-platform (Linux, OSX, Windows), multi-architecture (x64, arm)

§Modules

Currently, just a few modules are publicly available

  • Axum: Collects web-routes from other modules an serves them on a single http port
  • Engineering: Working with images and other engineering-related stuff like angles, matrices
  • Emulation of camera
  • Leptos frontend available at pilatus-leptos (beta)
  • Opencv integration at pilatus-opencv
  • GigE/Ueye-Camera via aravis: Discovery, settings gige-params, image streams pilatus-aravis

Some extensions which are implemented, but not (yet) publicly available:

  • Image-Coordinates to 3D: Intrinsic calibration assistant, calibration plate management, origin determination
  • Matching: Find shapes in images, which can be teached entirely in the web-ui (inkl. collision-detection if part has to be grippable by robot)
  • Halcon: perform image analysis using hdpl-procedures, manage licenses, rust-bindings
  • Various Feeder-Hardware: Anyfeeder, Aflex, Flexibowl, …
  • OpcUA: Let other modules define OpcUA endpoints

Reach out if you need such functionality

Modules§

device

Macros§

unstable_pub
Macro to conditionally make structs and enums public based on the unstable feature flag.

Structs§

AbortRegistration
In contrast to futures::stream::AbortableRegistration, this could be used to cancel multiple tasks
AddFileMessage
DeleteFileMessage
DeviceConfig
DeviceWithSameIdExists
DuplicateNameError
DuplicateRecipeRaw
DuplicateRecipeWrapper
EncodedImage
EntryItem
FallbackLogo
FileService
FileServiceBuilder
GenericConfig
Devices can recive typed configs for e.g. MagicConstants like timeouts or socket addresses In pilatus it is parsed from all JSON-Files in the root (typically the same folder as the executable) Configuration never changes during runtime. Use settings if this is needed.
GetFileMessage
ImportRecipesOptions
InitRecipeListener
InvalidLogoHeight
IrreversibleError
ListActiveRecipesItem
ListFilesMessage
LogoDimension
LogoQuery
LogoService
MaybeVar
NameRaw
NameWrapper
NotAppliedError
OnceExtractor
ParameterUpdate
PercentageRaw
PercentageWrapper
Recipe
RecipeAlreadyExistsError
RecipeId
RecipeMetadataRaw
RecipeMetadataWrapper
Recipes
RelativeDirectoryPath
RelativeDirectoryPathBuf
RelativeFilePath
Contains Alphanumeric characters only plus - and _. File must contain exactly one dot (.) File always starts with the folder name (never ./)
RelativeRangeRaw
Non-Empty Range
RelativeRangeWrapper
Settings
SystemShutdown
SystemTerminator
TracingConfig
TracingConsoleConfig
TracingFileConfig
TracingTerminalConfig
TracingTopic
TransactionOptions
TypedFileServiceBuilder
UncommittedChangesError
UnknownDeviceError
UnknownRecipeError
UntypedDeviceParamsWithVariables
Every Object with a key __var is guaranteed not to contain any other key and a string as value If UntypedDeviceParamsWithVariables is constructible anyway, this is a bug.
UntypedDeviceParamsWithoutVariables
UpdateParamsMessage
Variable
VariableConflict
VariableError
Variables

Enums§

ImportRecipeError
IntoMergeStrategy
RelativeDirPathError
RelativeFilePathError
RemoveRecipeError
SetActiveError
TransactionError
UpdateParamsMessageError

Traits§

EntryReader
EntryWriter
FileServiceExt
FileServiceTrait
ImporterTrait
LogoServiceTrait
PinReader
RawVariable
RecipeExporterTrait
RecipeImporterTrait
RecipeServiceTrait
RegisterFileHandlersExtension
Validator

Type Aliases§

DuplicateRecipe
Name
Percentage
RecipeExporter
RecipeImporter
RecipeMetadata
RecipeService
RelativeRange
VariablesPatch