66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
|
|
#ifndef ODF_MANAGEMENT_ODF_UNIT_HPP
|
|||
|
|
#define ODF_MANAGEMENT_ODF_UNIT_HPP
|
|||
|
|
|
|||
|
|
#include <string>
|
|||
|
|
#include <cstdint>
|
|||
|
|
|
|||
|
|
/// @brief ODF 单元类型枚举
|
|||
|
|
enum class OdfUnitType : uint8_t {
|
|||
|
|
Splicing = 0, ///< 熔接型
|
|||
|
|
Patching = 1, ///< 配线型
|
|||
|
|
Hybrid = 2 ///< 混合型
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/// @brief 安装方式枚举
|
|||
|
|
enum class MountType : uint8_t {
|
|||
|
|
Rack19Inch = 0, ///< 19英寸机架式
|
|||
|
|
WallMounted = 1 ///< 壁挂式
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief ODF 光纤配线单元基本信息
|
|||
|
|
*
|
|||
|
|
* 存储 ODF 单元的编号、类型、容量、尺寸及安装方式等核心属性。
|
|||
|
|
*/
|
|||
|
|
struct OdfUnit {
|
|||
|
|
std::string id; ///< 编号(按命名规则生成)
|
|||
|
|
OdfUnitType type; ///< 单元类型
|
|||
|
|
uint32_t maxPorts; ///< 最大端口数(容量)
|
|||
|
|
uint32_t heightMm; ///< 高度(mm)
|
|||
|
|
uint32_t widthMm; ///< 宽度(mm)
|
|||
|
|
uint32_t depthMm; ///< 深度(mm)
|
|||
|
|
MountType mountType; ///< 安装方式
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 构造 ODF 单元
|
|||
|
|
* @param id 单元编号
|
|||
|
|
* @param type 单元类型
|
|||
|
|
* @param maxPorts 最大端口数
|
|||
|
|
* @param heightMm 高度(mm)
|
|||
|
|
* @param widthMm 宽度(mm)
|
|||
|
|
* @param depthMm 深度(mm)
|
|||
|
|
* @param mountType 安装方式
|
|||
|
|
*/
|
|||
|
|
OdfUnit(std::string id,
|
|||
|
|
OdfUnitType type,
|
|||
|
|
uint32_t maxPorts,
|
|||
|
|
uint32_t heightMm,
|
|||
|
|
uint32_t widthMm,
|
|||
|
|
uint32_t depthMm,
|
|||
|
|
MountType mountType);
|
|||
|
|
|
|||
|
|
/// @brief 默认构造函数
|
|||
|
|
OdfUnit() = default;
|
|||
|
|
|
|||
|
|
/// @brief 返回类型字符串表示
|
|||
|
|
[[nodiscard]] std::string typeString() const;
|
|||
|
|
|
|||
|
|
/// @brief 返回安装方式字符串表示
|
|||
|
|
[[nodiscard]] std::string mountString() const;
|
|||
|
|
|
|||
|
|
/// @brief 返回属性摘要
|
|||
|
|
[[nodiscard]] std::string summary() const;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // ODF_MANAGEMENT_ODF_UNIT_HPP
|