1e9a87fce9
Stands up HistorianTransport.RemoteGrpc end-to-end for the read path, built on the recovered 2023 R2 gRPC contract (gRPC-Web/HTTP-1.1, port 32565, gzip). The opaque protobuf `bytes` fields carry the SAME native binary payloads as the 2020 WCF/MDAS path, so the proven serializers and parsers are reused unchanged. - Grpc/Protos/*.proto: 6 protoc-validated contracts recovered from embedded FileDescriptors (authoritative, not guessed). - Grpc/HistorianGrpcChannelFactory: GrpcWebHandler/HTTP-1.1 channel, ResolvePort/ResolveAddress, optional TLS + gzip. - Grpc/HistorianGrpcReadOrchestrator: mirrors the WCF read chain over gRPC; auth uses HistoryService.ExchangeKey (the gRPC ValCl op). - Wcf/HistorianNativeHandshake: transport-agnostic Open2 request builder + SSPI/Negotiate token loop + response decode, shared by WCF and gRPC. - Op map (2020 -> gRPC): ValCl->ExchangeKey, Open2->OpenConnection, StartQuery2->StartQuery, GetNextQueryResultBuffer2->GetNextQueryResultBuffer. - HistorianClientOptions: DefaultGrpcPort=32565, GrpcUseTls. - csproj: Google.Protobuf, Grpc.Net.Client(.Web), Grpc.Tools codegen. Not yet live-verified against a 2023 R2 server: ExchangeKey is the first thing to revisit if a live server rejects the handshake; the inner byte payloads are the proven 2020 protocol. Gated live test via HISTORIAN_GRPC_HOST. 188 unit tests green; build clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
216 lines
5.1 KiB
Protocol Buffer
216 lines
5.1 KiB
Protocol Buffer
// Recovered from StatusService.proto (AVEVA Historian SDK 2023 R2, Archestra.Grpc.Contract).
|
|
// Reconstructed from the embedded protobuf FileDescriptor; field numbers are authoritative.
|
|
syntax = "proto3";
|
|
|
|
import "Status.proto";
|
|
|
|
option csharp_namespace = "ArchestrA.Grpc.Contract.Status";
|
|
|
|
message GetStatusInterfaceVersionRequest {
|
|
}
|
|
|
|
message GetStatusInterfaceVersionResponse {
|
|
uint32 uiError = 1;
|
|
uint32 uiVersion = 2;
|
|
}
|
|
|
|
message GetSystemParameterRequest {
|
|
uint32 uiHandle = 1;
|
|
string strParameterName = 2;
|
|
}
|
|
|
|
message GetSystemParameterResponse {
|
|
.Status status = 1;
|
|
string strParameterValue = 2;
|
|
}
|
|
|
|
message SendInfoRequest {
|
|
string strHandle = 1;
|
|
string strPipeName = 2;
|
|
uint32 uiOption = 3;
|
|
bytes btReqBuff = 4;
|
|
string strInfoID = 5;
|
|
}
|
|
|
|
message SendInfoResponse {
|
|
.Status status = 1;
|
|
string strInfoID = 2;
|
|
bytes btRespBuff = 3;
|
|
}
|
|
|
|
message RequestInfoRequest {
|
|
string strHandle = 1;
|
|
string strInfoID = 2;
|
|
uint32 uiOffset = 3;
|
|
}
|
|
|
|
message RequestInfoResponse {
|
|
.Status status = 1;
|
|
bytes btRespBuff = 2;
|
|
}
|
|
|
|
message DeleteInfoRequest {
|
|
string strHandle = 1;
|
|
string strInfoID = 2;
|
|
}
|
|
|
|
message DeleteInfoResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message GetHistorianInfoRequest {
|
|
string strHandle = 1;
|
|
bytes btRequest = 2;
|
|
}
|
|
|
|
message GetHistorianInfoResponse {
|
|
.Status status = 1;
|
|
bytes btHistorianInfo = 2;
|
|
}
|
|
|
|
message StartProcessRequest {
|
|
string strHandle = 1;
|
|
string strPipeName = 2;
|
|
string strPath = 3;
|
|
string strAuguments = 4;
|
|
uint32 uiKeepAliveInterval = 5;
|
|
uint32 uiKeepAliveMethod = 6;
|
|
}
|
|
|
|
message StartProcessResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message StopProcessRequest {
|
|
string strHandle = 1;
|
|
string StrPipeName = 2;
|
|
}
|
|
|
|
message StopProcessResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message PingServerRequest {
|
|
string strHandle = 1;
|
|
string strPipeName = 2;
|
|
uint32 uiTimeout = 3;
|
|
}
|
|
|
|
message PingServerResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message PingPipeRequest {
|
|
string strHandle = 1;
|
|
string strPipeName = 2;
|
|
}
|
|
|
|
message PingPipeResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message ConfigureAutoStartProcessRequest {
|
|
string strHandle = 1;
|
|
string strPipeName = 2;
|
|
string strPath = 3;
|
|
string strAuguments = 4;
|
|
uint32 uiKeepAliveInterval = 5;
|
|
uint32 uiKeepAliveMethod = 6;
|
|
uint32 uiStartupFlags = 7;
|
|
}
|
|
|
|
message ConfigureAutoStartProcessResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message GetHistorianConsoleStatusRequest {
|
|
string strHandle = 1;
|
|
}
|
|
|
|
message GetHistorianConsoleStatusResponse {
|
|
.Status status = 1;
|
|
uint32 uiConsoleStatus = 2;
|
|
}
|
|
|
|
message GetRuntimeParameterRequest {
|
|
string strHandle = 1;
|
|
bytes btRequest = 2;
|
|
}
|
|
|
|
message GetRuntimeParameterResponse {
|
|
.Status status = 1;
|
|
bytes btResponse = 2;
|
|
}
|
|
|
|
message GetSystemTimeZoneNameRequest {
|
|
uint32 uiHandle = 1;
|
|
}
|
|
|
|
message GetSystemTimeZoneNameResponse {
|
|
.Status status = 1;
|
|
string strSystemTimeZoneName = 2;
|
|
}
|
|
|
|
message SetHistorianConsoleStatusRequest {
|
|
string strHandle = 1;
|
|
uint32 uiStatus = 2;
|
|
uint32 uiOption = 3;
|
|
}
|
|
|
|
message SetHistorianConsoleStatusResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message CanUpdateAreaHierarchyRequest {
|
|
uint32 uiHandle = 1;
|
|
}
|
|
|
|
message CanUpdateAreaHierarchyResponse {
|
|
.Status status = 1;
|
|
bool canUpdate = 2;
|
|
}
|
|
|
|
message UpdateAreaHierarchyRequest {
|
|
uint32 uiHandle = 1;
|
|
string guid = 2;
|
|
uint32 sequence = 3;
|
|
bytes buffer = 4;
|
|
}
|
|
|
|
message UpdateAreaHierarchyResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
message UpdateObjectHierarchyRequest {
|
|
uint32 uiHandle = 1;
|
|
string guid = 2;
|
|
uint32 sequence = 3;
|
|
bytes buffer = 4;
|
|
}
|
|
|
|
message UpdateObjectHierarchyResponse {
|
|
.Status status = 1;
|
|
}
|
|
|
|
service StatusService {
|
|
rpc GetStatusInterfaceVersion (.GetStatusInterfaceVersionRequest) returns (.GetStatusInterfaceVersionResponse);
|
|
rpc GetSystemParameter (.GetSystemParameterRequest) returns (.GetSystemParameterResponse);
|
|
rpc SendInfo (.SendInfoRequest) returns (.SendInfoResponse);
|
|
rpc RequestInfo (.RequestInfoRequest) returns (.RequestInfoResponse);
|
|
rpc DeleteInfo (.DeleteInfoRequest) returns (.DeleteInfoResponse);
|
|
rpc GetHistorianInfo (.GetHistorianInfoRequest) returns (.GetHistorianInfoResponse);
|
|
rpc StartProcess (.StartProcessRequest) returns (.StartProcessResponse);
|
|
rpc StopProcess (.StopProcessRequest) returns (.StopProcessResponse);
|
|
rpc PingServer (.PingServerRequest) returns (.PingServerResponse);
|
|
rpc PingPipe (.PingPipeRequest) returns (.PingPipeResponse);
|
|
rpc ConfigureAutoStartProcess (.ConfigureAutoStartProcessRequest) returns (.ConfigureAutoStartProcessResponse);
|
|
rpc GetHistorianConsoleStatus (.GetHistorianConsoleStatusRequest) returns (.GetHistorianConsoleStatusResponse);
|
|
rpc GetRuntimeParameter (.GetRuntimeParameterRequest) returns (.GetRuntimeParameterResponse);
|
|
rpc GetSystemTimeZoneName (.GetSystemTimeZoneNameRequest) returns (.GetSystemTimeZoneNameResponse);
|
|
rpc SetHistorianConsoleStatus (.SetHistorianConsoleStatusRequest) returns (.SetHistorianConsoleStatusResponse);
|
|
rpc CanUpdateAreaHierarchy (.CanUpdateAreaHierarchyRequest) returns (.CanUpdateAreaHierarchyResponse);
|
|
rpc UpdateAreaHierarchy (.UpdateAreaHierarchyRequest) returns (.UpdateAreaHierarchyResponse);
|
|
rpc UpdateObjectHierarchy (.UpdateObjectHierarchyRequest) returns (.UpdateObjectHierarchyResponse);
|
|
}
|
|
|