Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -76,36 +76,63 @@ enum CommunicationComponentDiagnosticCode {
// Hardware fault due to overheating.
COMMUNICATION_COMPONENT_DIAGNOSTIC_CODE_OVER_TEMPERATURE = 8;
}
// `CommunicationComponentCategory` enumerates possible types of communication
// components within the microgrid.
//
// Categories help distinguish communication devices according to their roles,
// capabilities, and protocols they handle within the microgrid infrastructure.
enum CommunicationComponentCategory {
// Unspecified communication component category.
//
// !!! caution
// This default value should never be used explicitly and indicates that
// the category has not been properly defined.
COMMUNICATION_COMPONENT_CATEGORY_UNSPECIFIED = 0;

// A single snapshot of a communication component's state, diagnostics, and timing.
// Modbus Gateway used for protocol translation and managing Modbus
// communication.
COMMUNICATION_COMPONENT_CATEGORY_MODBUS_GATEWAY = 1;

// LTE Router providing cellular connectivity (LTE, 4G, 5G) for the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_ROUTER = 2;

// Ethernet Switch enabling wired network connections within the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_ETHERNET_SWITCH = 3;

// Digital Input/Output (DIO) Gateway enabling communication and control
// of digital signals between microgrid devices.
COMMUNICATION_COMPONENT_CATEGORY_DIO_GATEWAY = 4;

// Programmable Logic Controller (PLC) used for automation tasks,
// process control, and operational logic in the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_PLC = 5;

// Serial Gateway (RS-232, RS-485, etc.) facilitating serial communication
// between legacy equipment and modern network infrastructures.
COMMUNICATION_COMPONENT_CATEGORY_SERIAL_GATEWAY = 6;
}

// `CommunicationComponent` represents a communication component within a
// microgrid.
//
// !!! note "snapshot semantics"
// all fields in this message represent the component's view at one point
// in time, so there is only a single `snapshot_time`. any parallel reads
// happening to produce this data are collapsed under that timestamp.
message CommunicationComponentStateSnapshot {
// the utc time when this snapshot was taken.
google.protobuf.Timestamp snapshot_time = 1;
// Communication components are networked devices responsible for enabling
// communication between electrical components, sensors, controllers, and other
// network devices.
message CommunicationComponent {
// Unique identifier of the communication component.
uint64 id = 1;

// one or more high-level state codes active at snapshot_time.
//
// !!! note
// typical usage is a single state (e.g., online), but multiple may
// apply (e.g., connecting + degraded) if that makes sense.
repeated CommunicationComponentStateCode states = 2;
// Unique identifier of the parent microgrid.
uint64 microgrid_id = 2;

// non-critical warnings detected for the component.
//
// !!! note
// warnings may coexist with an online state, indicating potential
// issues that do not prevent basic operation.
repeated CommunicationComponentDiagnostic warnings = 3;
// Human-readable name of the communication component.
string name = 3;

// critical errors currently affecting the component.
//
// !!! note
// an error state code should accompany entries here.
repeated CommunicationComponentDiagnostic errors = 4;
// Category identifying the type of the communication component.
CommunicationComponentCategory category = 4;

// List of IP addresses assigned to this communication component.
repeated string ip_addresses = 5;
}

// Represents an error or warning condition reported by a microgrid
Expand Down Expand Up @@ -139,61 +166,34 @@ message CommunicationComponentDiagnostic {
string message = 3;
}

// `CommunicationComponent` represents a communication component within a
// microgrid.
// A single snapshot of a communication component's state, diagnostics, and timing.
//
// Communication components are networked devices responsible for enabling
// communication between electrical components, sensors, controllers, and other
// network devices.
message CommunicationComponent {
// Unique identifier of the communication component.
uint64 id = 1;

// Unique identifier of the parent microgrid.
uint64 microgrid_id = 2;

// Human-readable name of the communication component.
string name = 3;

// Category identifying the type of the communication component.
CommunicationComponentCategory category = 4;

// List of IP addresses assigned to this communication component.
repeated string ip_addresses = 5;
}
// !!! note "snapshot semantics"
// all fields in this message represent the component's view at one point
// in time, so there is only a single `snapshot_time`. any parallel reads
// happening to produce this data are collapsed under that timestamp.
message CommunicationComponentStateSnapshot {
// the UTC time when this snapshot was taken.
google.protobuf.Timestamp snapshot_time = 1;

// `CommunicationComponentCategory` enumerates possible types of communication
// components within the microgrid.
//
// Categories help distinguish communication devices according to their roles,
// capabilities, and protocols they handle within the microgrid infrastructure.
enum CommunicationComponentCategory {
// Unspecified communication component category.
// one or more high-level state codes active at snapshot_time.
//
// !!! caution
// This default value should never be used explicitly and indicates that
// the category has not been properly defined.
COMMUNICATION_COMPONENT_CATEGORY_UNSPECIFIED = 0;

// Modbus Gateway used for protocol translation and managing Modbus
// communication.
COMMUNICATION_COMPONENT_CATEGORY_MODBUS_GATEWAY = 1;

// LTE Router providing cellular connectivity (LTE, 4G, 5G) for the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_ROUTER = 2;

// Ethernet Switch enabling wired network connections within the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_ETHERNET_SWITCH = 3;

// Digital Input/Output (DIO) Gateway enabling communication and control
// of digital signals between microgrid devices.
COMMUNICATION_COMPONENT_CATEGORY_DIO_GATEWAY = 4;
// !!! note
// typical usage is a single state (e.g., online), but multiple may
// apply (e.g., connecting + degraded) if that makes sense.
repeated CommunicationComponentStateCode states = 2;

// Programmable Logic Controller (PLC) used for automation tasks,
// process control, and operational logic in the microgrid.
COMMUNICATION_COMPONENT_CATEGORY_PLC = 5;
// non-critical warnings detected for the component.
//
// !!! note
// warnings may coexist with an online state, indicating potential
// issues that do not prevent basic operation.
repeated CommunicationComponentDiagnostic warnings = 3;

// Serial Gateway (RS-232, RS-485, etc.) facilitating serial communication
// between legacy equipment and modern network infrastructures.
COMMUNICATION_COMPONENT_CATEGORY_SERIAL_GATEWAY = 6;
// critical errors currently affecting the component.
//
// !!! note
// an error state code should accompany entries here.
repeated CommunicationComponentDiagnostic errors = 4;
}

Loading
Loading