7/include/adapter_interface.hpp

76 lines
2.3 KiB
C++
Raw Permalink Normal View History

2026-06-09 02:34:04 +00:00
#ifndef ODF_MANAGEMENT_ADAPTER_INTERFACE_HPP
#define ODF_MANAGEMENT_ADAPTER_INTERFACE_HPP
#include <string>
#include <cstdint>
/// @brief 光纤连接器接口类型
enum class ConnectorType : uint8_t {
LC = 0, ///< LC 连接器
SC = 1, ///< SC 连接器
MPO = 2 ///< MPO 连接器
};
/// @brief 光纤模式
enum class FiberMode : uint8_t {
SingleMode = 0, ///< 单模
MultiMode = 1 ///< 多模
};
/// @brief 端面类型
enum class PolishType : uint8_t {
UPC = 0, ///< UPC (Ultra Physical Contact)
APC = 1 ///< APC (Angled Physical Contact)
};
/**
* @brief
*
* ODF
* 寿
*/
struct AdapterInterface {
ConnectorType connector; ///< 连接器类型
FiberMode fiberMode; ///< 光纤模式
PolishType polish; ///< 端面类型
uint32_t minInsertions; ///< 最小插拔次数≥500
uint32_t portsPerUnit; ///< 每U高度端口密度端口数/U
/**
* @brief
* @param connector
* @param fiberMode
* @param polish
* @param minInsertions
* @param portsPerUnit U高度端口密度
*/
AdapterInterface(ConnectorType connector,
FiberMode fiberMode,
PolishType polish,
uint32_t minInsertions,
uint32_t portsPerUnit);
/// @brief 默认构造函数
AdapterInterface() = default;
/// @brief 连接器类型字符串
[[nodiscard]] std::string connectorString() const;
/// @brief 光纤模式字符串
[[nodiscard]] std::string fiberModeString() const;
/// @brief 端面类型字符串
[[nodiscard]] std::string polishString() const;
/// @brief 返回适配器参数摘要
[[nodiscard]] std::string summary() const;
/**
* @brief
* @return true false
*/
[[nodiscard]] bool checkCompatibility() const;
};
#endif // ODF_MANAGEMENT_ADAPTER_INTERFACE_HPP