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 { }