2024-04-16 14:37:41 +02:00
|
|
|
@0x82abdb5c1dcf399d;
|
|
|
|
|
2024-04-22 13:56:50 +02:00
|
|
|
using Rust = import "../programming_language/rust.capnp";
|
|
|
|
$Rust.parentModule("schema::traits");
|
|
|
|
|
2024-04-16 15:03:10 +02:00
|
|
|
using CSharp = import "../programming_language/csharp.capnp";
|
2024-04-16 14:38:54 +02:00
|
|
|
$CSharp.namespace("FabAccessAPI.Schema");
|
|
|
|
|
2024-04-16 15:03:10 +02:00
|
|
|
using import "../traits.capnp".TraitSuper;
|
|
|
|
using import "../traits.capnp".TraitError;
|
|
|
|
using import "../utils.capnp".Fallible;
|
2024-04-16 14:37:41 +02:00
|
|
|
|
|
|
|
# OID for this trait: 1.3.6.1.4.1.61783.612.1.4
|
|
|
|
# │ │ │ │
|
|
|
|
# RLKM UG PEN ╯ │ │ │
|
|
|
|
# │ │ │
|
|
|
|
# FabAccess subtree ╯ │ │
|
|
|
|
# │ │
|
|
|
|
# Traits ╯ │
|
|
|
|
# │
|
|
|
|
# Lockers ╯
|
|
|
|
|
|
|
|
interface TraitLocker extends (TraitSuper) {
|
|
|
|
getState @0 () -> StateLocker;
|
2024-04-16 15:03:10 +02:00
|
|
|
engage @1 () -> Fallible(TraitLocker, TraitError(ErrorLocker));
|
2024-04-16 14:37:41 +02:00
|
|
|
unengage @2 () -> Fallible(TraitLocker, TraitError(ErrorLocker));
|
|
|
|
}
|
|
|
|
|
|
|
|
struct StateLocker {
|
|
|
|
union {
|
|
|
|
locked @0 :Void;
|
|
|
|
unlocked @1 :Void;
|
|
|
|
open @2 :Void;
|
|
|
|
unenganged @3 :Void;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
struct ErrorLocker {
|
|
|
|
union {
|
|
|
|
isLocked @0 :Void;
|
|
|
|
isUnlocked @1 :Void;
|
|
|
|
isOpen @2 :Void;
|
|
|
|
incomplete @3 :AnyPointer;
|
|
|
|
# Object is incomplete in some way.
|
|
|
|
# TODO: Define this interface
|
|
|
|
}
|
|
|
|
}
|