syntax = "proto3";
package celp.protobuf.cm;
import "celp_header.proto";
option optimize_for = SPEED;
// Input and output GPIO messages
message GPIOCluster {
// A single GPIO
message GPIO {
// Pin Identifier
string identifier = 1;
// Possible states for Digital I/O
enum DigitalState {
// Pin is "logic" on
ON = 0;
// Pin is "logic" off
OFF = 1;
// State is undefined or unknown
UNKNOWN = 2;
}
// Value of the GPIO
oneof value {
DigitalState state = 2;
float reading = 3;
}
}
// Base header from CELP
celp.protobuf.Header header = 2;
// A collection of GPIOs
repeated GPIO gpios = 3;
}