Initial commit: HC900 Crawler
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>
This commit is contained in:
47
industrial-comm/cpp/include/itransport.hpp
Normal file
47
industrial-comm/cpp/include/itransport.hpp
Normal file
@@ -0,0 +1,47 @@
|
||||
// ITransport 인터페이스 (🔥 최종본)
|
||||
// itransport.hpp
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
#include "transport_error.hpp"
|
||||
|
||||
// transport 상태관리
|
||||
enum class TransportState {
|
||||
Disconnected,
|
||||
Connecting,
|
||||
Connected,
|
||||
Reconnecting,
|
||||
Fault,
|
||||
};
|
||||
class ITransport {
|
||||
public:
|
||||
virtual ~ITransport() = default;
|
||||
|
||||
// connection
|
||||
virtual bool connect(const char* host, std::uint16_t port) = 0;
|
||||
virtual void disconnect() = 0;
|
||||
virtual bool is_connected() const = 0;
|
||||
|
||||
// state & error handling
|
||||
virtual TransportState state() const = 0;
|
||||
virtual TransportError last_error() const = 0;
|
||||
|
||||
// io policy
|
||||
virtual bool can_io() const = 0; // ⭐ 추가 (권장)
|
||||
|
||||
// watchdog / reconnect / state machine
|
||||
virtual void poll() = 0;
|
||||
virtual void reset() = 0; // ⭐ 추가
|
||||
|
||||
// register access
|
||||
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;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user