blob: f50e5c7c63ce68d0d16f88af370129efdf7032b8 [file] [log] [blame]
syntax = "proto2";
package casimir;
/// Description of the Casimir gRPC service.
service Casimir {
/// Returns the list of devices currently connected to,
/// or existing within Casimir. Listed devices may be of three
/// different types:
/// - NCI device (Host connected through the NCI port)
/// - RF device (device emulated through the RF port)
/// - Tag device (device fully emulated by Casimir)
rpc ListDevices(ListDevicesRequest) returns (ListDevicesResponse);
/// Query information about a created device.
rpc GetDevice(GetDeviceRequest) returns (GetDeviceResponse);
/// Change the relative position of the selected device.
rpc MoveDevice(MoveDeviceRequest) returns (MoveDeviceResponse);
}
/// Information about a connected device that can be queried
/// from ListDevices or GetDevice.
message Device {
message Nci {}
message Rf {}
optional uint32 device_id = 1;
optional uint32 position = 2;
oneof type {
Nci nci = 3;
Rf rf = 4;
}
}
/// Parameters for the ListDevices command.
message ListDevicesRequest {
}
/// Result of the ListDevices command.
message ListDevicesResponse {
repeated Device device = 1;
}
/// Parameters for the GetDevice command.
message GetDeviceRequest {
optional uint32 device_id = 1;
}
/// Result of the GetDevice command.
message GetDeviceResponse {
optional Device device = 1;
}
/// Parameters for the MoveDevice command.
/// The device ID uniquely identifies the device; the position
/// is interpreted on a linear range (the only information pertinent for
/// NFC is contact / no-contact).
message MoveDeviceRequest {
optional uint32 device_id = 1;
optional uint32 position = 2;
}
/// Result of the MoveDevice command.
message MoveDeviceResponse {
}