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:
82
industrial-comm/src-old/old_controller.hpp
Normal file
82
industrial-comm/src-old/old_controller.hpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
#include "data_format.hpp"
|
||||
#include "itransport.hpp"
|
||||
|
||||
class Controller {
|
||||
public:
|
||||
Controller();
|
||||
~Controller() = default;
|
||||
|
||||
// connection
|
||||
bool connect(const std::string& host, std::uint16_t port = 502);
|
||||
void disconnect();
|
||||
bool is_connected() const;
|
||||
|
||||
// raw register access
|
||||
bool read_register(std::uint16_t addr, std::uint16_t& value);
|
||||
bool write_register(std::uint16_t addr, std::uint16_t value);
|
||||
|
||||
// 32-bit
|
||||
bool read_int32(std::uint16_t addr,
|
||||
std::int32_t& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_int32(std::uint16_t addr,
|
||||
std::int32_t value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool read_uint32(std::uint16_t addr,
|
||||
std::uint32_t& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_uint32(std::uint16_t addr,
|
||||
std::uint32_t value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
// float / double
|
||||
bool read_float(std::uint16_t addr,
|
||||
float& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_float(std::uint16_t addr,
|
||||
float value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool read_double(std::uint16_t addr,
|
||||
double& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_double(std::uint16_t addr,
|
||||
double value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
// 64-bit
|
||||
bool read_int64(std::uint16_t addr,
|
||||
std::int64_t& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_int64(std::uint16_t addr,
|
||||
std::int64_t value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool read_uint64(std::uint16_t addr,
|
||||
std::uint64_t& value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
bool write_uint64(std::uint16_t addr,
|
||||
std::uint64_t value,
|
||||
const DataFormat& fmt);
|
||||
|
||||
private:
|
||||
bool connected_{false};
|
||||
std::string host_;
|
||||
std::uint16_t port_{502};
|
||||
|
||||
std::unique_ptr<ITransport> transport_;
|
||||
};
|
||||
Reference in New Issue
Block a user