Honeywell HC900을 Modbus TCP로 직접 폴링 → gRPC → C# 크롤러 → PostgreSQL. 기존 Experion OPC UA 데이터 경로를 HC900 직접 통신으로 대체. - industrial-comm/cpp: C++ Modbus 게이트웨이 (gRPC 서버) - src: C# .NET 8 ASP.NET Core 크롤러 + 웹 UI (3-Layer) - mcp-server: Python FastMCP (RAG/NL2SQL/P&ID) - 다중 컨트롤러(N-Controller) 지원 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
// #pragma once
|
|
|
|
// #include <cstdint>
|
|
// #include <vector>
|
|
|
|
// class ITransport {
|
|
// public:
|
|
// virtual ~ITransport() = default;
|
|
|
|
// virtual bool connect(const char* host, std::uint16_t port) = 0;
|
|
// virtual void disconnect() = 0;
|
|
|
|
// virtual bool read_registers(std::uint16_t addr,
|
|
// std::uint16_t count,
|
|
// std::vector<std::uint16_t>& out) = 0;
|
|
|
|
// virtual bool write_registers(std::uint16_t addr,
|
|
// const std::vector<std::uint16_t>& values) = 0;
|
|
// };
|
|
// //Controller가 의존할 유일한 인터페이스
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
enum class TransportError {
|
|
None,
|
|
Timeout,
|
|
Disconnected,
|
|
ProtocolError,
|
|
ModbusException
|
|
};
|
|
|
|
class ITransport {
|
|
public:
|
|
virtual ~ITransport() = default;
|
|
|
|
virtual bool connect(const char* host, std::uint16_t port) = 0;
|
|
virtual void disconnect() = 0;
|
|
|
|
virtual bool read_registers(std::uint16_t addr,
|
|
std::uint16_t count,
|
|
std::vector<std::uint16_t>& out) = 0;
|
|
|
|
virtual bool write_registers(std::uint16_t addr,
|
|
const std::vector<std::uint16_t>& values) = 0;
|
|
|
|
virtual TransportError last_error() const = 0;
|
|
};
|
|
//Controller가 의존할 유일한 인터페이스
|