blob: f9684f129d166ee15754530340242a342afac31d [file] [log] [blame]
/////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Ericsson AB
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
/////////////////////////////////////////////////////////////////////////////////////
// Contributors:
// Akos Makovics
//
// File: UpcUa_Message_Templates.ttcn
// Rev: <RnXnn>
// Prodnr: CNL113861
/////////////////////////////////////////////////////////////////////////////////////
module OpcUa_Message_Templates {
import from OpcUa_Types_Binary all;
import from OpcUa_Templates_Binary all;
/////////////////////////////////////////////////////////////
// //
// General //
// //
/////////////////////////////////////////////////////////////
template MessageChunk tr_baseResponseMessage := {
header := ?,
transportMessage := *,
securityChannelId := *,
securePolicyUri := *,
senderCertificate := *,
receiverCertificateThumbprint := *,
securityTokenId := *,
sequenceHeader := *,
body := *
}
const RequestHeader reqHeader := {
authenticationToken := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
timestamp := 131556452504050000,
requestHandle := 4,
returnDiagnostics := 0,
auditEntryId := { nullString := { arrayLength := -2147483647 } },
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
}
const RequestHeader reqHeaderFourByte := {
authenticationToken := {
mask := 5,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
byteString := {
nameSpace := 0,
nodeValue := {
realByteString := {
lengthValue := 16,
byteStringValue := { 213, 222, 175, 58, 50, 191, 56, 110, 161, 40, 190, 206, 46, 98, 162, 70 }
}
}
}
}
},
timestamp := 131556452504610000,
requestHandle := 4,
returnDiagnostics := 0,
auditEntryId := {
realString := {
stringLength := 0,
stringValue := ""
}
},
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
}
const ResponseHeader respHeader := {
timestamp := 131563360189870000,
requestHandle := 1,
serviceResult := 0,
serviceDiagnostics := {
symbolicIdBit := 0,
namespaceUriBit := 0,
localeBit := 0,
localisedTextBit := 0,
additionalInfoBit := 0,
innerStatusCodeBit := 0,
innerDiagnosticInfoBit := 0,
reserveBit := 0,
symbolicId := omit,
namespaceUri := omit,
locale := omit,
localisedText := omit,
additionalInfo := omit,
innerStatusCode := omit,
innerDiagnosticInfo := omit
},
stringTable := {
realArray := {
arrayLength := 0,
arrayValues := { }
}
},
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
}
template UserTokenPolicy userTokenPolicy := {
policyId := valueof(tr_String("username_basic256")),
tokenType := USERNAME_1,
issuedTokenType := valueof(tr_StringNull),
issuerEndpointUrl := valueof(tr_StringNull),
securityPolicyUri := valueof(tr_String("http://opcfoundation.org/UA/SecurityPolicy#Basic256"))
}
template EndpointDescription endpointDesc := {
endpointUrl := valueof(tr_String("opc.tcp://zmakako-VirtualBox:4334/UA/MyLittleServer")),
server := {
applicationUri := valueof(tr_String("urn:NodeOPCUA-Server-default")),
productUri := valueof(tr_String("NodeOPCUA-Server")),
applicationName := {
localeBit := 0,
textBit := 1,
spareBit1 := 0,
spareBit2 := 0,
spareBit3 := 0,
spareBit4 := 0,
spareBit5 := 0,
spareBit6 := 0,
locale := omit,
text := valueof(tr_String("NodeOPCUA"))
},
applicationType := SERVER_0,
gatewayServerUri := valueof(tr_String("")),
discoveryProfileUri := valueof(tr_String("")),
discoveryUrls := valueof(tr_ListOfString( {} ))
},
serverCertificate := valueof(tr_ByteString( {48, 130, 4} )),
securityMode := NONE_1,
securityPolicyUri := valueof(tr_String("http://opcfoundation.org/UA/SecurityPolicy#None")),
userIdentityTokens := valueof(tr_ListOfUserTokenPolicy( {valueof(userTokenPolicy)} )),
transportProfileUri := valueof(tr_String("http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary")),
securityLevel := 3
}
/////////////////////////////////////////////////////////////
// //
// Hello Message //
// //
/////////////////////////////////////////////////////////////
function f_GetHelloMessage() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderHello);
var HelloMessage v_body := {
version := 0,
receiveBufferSize := 655360,
sendBufferSize := 655360,
maxMessageSize := 0,
maxChunkCount := 0,
endPointUrl := valueof(tr_String("opc.tcp://zmakako-VirtualBox:4334/UA/MyLittleServer"))
}
var MessageChunk v_msg := valueof(tr_MessageHello(v_header, v_body));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// Ack Message //
// //
/////////////////////////////////////////////////////////////
function f_GetAckMessage() return template MessageChunk {
template MessageChunk responseChunk modifies tr_baseResponseMessage := {
header := {
messageType := AckHeaderMsgType,
chunkType := FinalChunk,
messageSize := ?
}
}
return responseChunk;
}
/////////////////////////////////////////////////////////////
// //
// OpenSecureChannelRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetOpenSecureChannelRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderOpenSecureChannel);
var UInt32 v_securityChannelId := 0;
var ListOfByte v_securePolicyUri := valueof(tr_ListOfByte({ 104, 116, 116, 112, 58, 47, 47, 111, 112, 99, 102, 111, 117, 110, 100, 97, 116, 105, 111, 110, 46, 111, 114, 103, 47, 85, 65, 47, 83, 101, 99, 117, 114, 105, 116, 121, 80, 111, 108, 105, 99, 121, 35, 78, 111, 110, 101 }));
var ListOfByte v_senderCertificate := valueof(tr_ListOfByteNull);
var ListOfByte v_receiverCertificateThumbprint := valueof(tr_ListOfByteNull);
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 1,
RequestId := 1
}
var OpenSecureChannelRequest v_openSecReq := {
requestHeader := reqHeader,
clientProtocolVersion := 0,
requestType := ISSUE_0,
securityMode := NONE_1,
clientNonce := valueof(tr_ByteStringNull),
requestedLifetime := 600000
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
OpenSecureChannelRequest := v_openSecReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageOpenSecureChannel(v_header, v_securityChannelId, v_securePolicyUri, v_senderCertificate, v_receiverCertificateThumbprint, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// OpenSecureChannelResponse //
// //
/////////////////////////////////////////////////////////////
function f_GetOpenSecureChannelResponse() return template MessageChunk {
template MessageChunk responseChunk modifies tr_baseResponseMessage := {
header := {
messageType := OpenSecureChannelMsgType,
chunkType := FinalChunk,
messageSize := ?
}
}
return responseChunk;
}
/////////////////////////////////////////////////////////////
// //
// GetEndpointsRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetEndpointsRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 2,
RequestId := 2
}
var GetEndpointsRequest v_getEndpointsReq := {
requestHeader := reqHeader,
endpointUrl := valueof(tr_String( "" )),
localeIds := valueof(tr_ListOfLocaleId ( {} )),
profileUris := valueof(tr_ListOfString ( {} ))
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
GetEndpointsRequest := v_getEndpointsReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// CreateSessionRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetCreateSessionRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 3,
RequestId := 3
}
var CreateSessionRequest v_createSessionReq := {
requestHeader := reqHeader,
clientDescription := {
applicationUri := valueof(tr_String( "urn:zmakako-VirtualBox:Node-OPCUA-Server" )),
productUri := valueof(tr_String( "NodeOPCUA-Client" )),
applicationName := {
localeBit := 0,
textBit := 1,
spareBit1 := 0,
spareBit2 := 0,
spareBit3 := 0,
spareBit4 := 0,
spareBit5 := 0,
spareBit6 := 0,
locale := omit,
text := valueof(tr_String( "NodeOPCUA-Client" ))
},
applicationType := CLIENT_1,
gatewayServerUri := valueof(tr_String( "" )),
discoveryProfileUri := valueof(tr_String( "" )),
discoveryUrls := valueof(tr_ListOfString({}))
},
serverUri := valueof(tr_String( "urn:NodeOPCUA-Server-default" )),
endpointUrl := valueof(tr_String( "opc.tcp://zmakako-VirtualBox:4334/UA/MyLittleServer" )),
sessionName := valueof(tr_String( "Session1" )),
clientNonce := valueof(tr_ByteString( {103, 70, 147, 188, 171, 213, 166, 143, 188, 174, 139, 130, 248, 135, 93, 222, 115, 134, 67, 84, 89, 51, 182, 246, 95, 47, 244, 69, 162, 87, 120, 54} )),
clientCertificate := valueof(tr_ByteString( { 48, 130, 4, 172, 48, 130, 3, 148, 160, 3, 2, 1, 2, 2, 9, 0, 193, 232, 116, 99, 18, 62, 6, 87, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 88, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 70, 82, 49, 12, 48, 10, 6, 3, 85, 4, 8, 19, 3, 73, 68, 70, 49, 14, 48, 12, 6, 3, 85, 4, 7, 19, 5, 80, 97, 114, 105, 115, 49, 18, 48, 16, 6, 3, 85, 4, 10, 19, 9, 78, 111, 100, 101, 79, 80, 67, 85, 65, 49, 23, 48, 21, 6, 3, 85, 4, 3, 19, 14, 78, 111, 100, 101, 79, 80, 67, 85, 65, 45, 84, 69, 83, 84, 48, 30, 23, 13, 49, 55, 49, 48, 49, 57, 48, 57, 50, 53, 51, 50, 90, 23, 13, 51, 50, 49, 48, 49, 53, 48, 57, 50, 53, 51, 50, 90, 48, 88, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 70, 82, 49, 12, 48, 10, 6, 3, 85, 4, 8, 19, 3, 73, 68, 70, 49, 14, 48, 12, 6, 3, 85, 4, 7, 19, 5, 80, 97, 114, 105, 115, 49, 18, 48, 16, 6, 3, 85, 4, 10, 19, 9, 78, 111, 100, 101, 79, 80, 67, 85, 65, 49, 23, 48, 21, 6, 3, 85, 4, 3, 19, 14, 78, 111, 100, 101, 79, 80, 67, 85, 65, 45, 84, 69, 83, 84, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 162, 249, 118, 193, 122, 59, 9, 123, 20, 81, 132, 230, 222, 31, 81, 153, 95, 230, 235, 165, 119, 149, 47, 216, 100, 87, 85, 235, 155, 201, 46, 49, 153, 192, 135, 198, 208, 239, 3, 173, 127, 215, 133, 117, 6, 21, 120, 154, 177, 14, 220, 215, 143, 17, 104, 15, 105, 187, 57, 59, 145, 222, 79, 62, 112, 222, 116, 40, 83, 121, 96, 179, 7, 77, 67, 70, 91, 253, 110, 243, 2, 81, 104, 228, 225, 144, 127, 148, 248, 156, 216, 58, 197, 3, 51, 50, 199, 161, 26, 172, 237, 196, 225, 4, 6, 119, 147, 181, 126, 190, 36, 200, 233, 199, 193, 65, 191, 36, 90, 76, 127, 20, 121, 206, 146, 82, 191, 69, 5, 49, 212, 72, 182, 75, 41, 131, 110, 194, 181, 235, 28, 96, 205, 132, 150, 179, 171, 90, 170, 66, 190, 90, 141, 117, 180, 203, 175, 232, 36, 50, 221, 64, 115, 64, 13, 0, 84, 195, 97, 154, 52, 5, 156, 114, 95, 30, 192, 69, 179, 74, 148, 67, 181, 216, 51, 129, 195, 120, 211, 1, 114, 14, 148, 139, 211, 231, 91, 128, 26, 63, 36, 99, 193, 148, 251, 251, 76, 231, 95, 84, 68, 212, 235, 101, 119, 68, 15, 238, 199, 232, 239, 3, 228, 124, 41, 133, 193, 108, 180, 218, 49, 13, 140, 13, 43, 187, 108, 60, 6, 163, 251, 202, 53, 180, 177, 141, 114, 45, 39, 236, 196, 248, 61, 33, 142, 215, 2, 3, 1, 0, 1, 163, 130, 1, 119, 48, 130, 1, 115, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 17, 124, 191, 30, 233, 154, 127, 115, 204, 254, 168, 65, 112, 82, 167, 146, 191, 42, 85, 25, 48, 129, 137, 6, 3, 85, 29, 35, 4, 129, 129, 48, 127, 128, 20, 17, 124, 191, 30, 233, 154, 127, 115, 204, 254, 168, 65, 112, 82, 167, 146, 191, 42, 85, 25, 161, 92, 164, 90, 48, 88, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 70, 82, 49, 12, 48, 10, 6, 3, 85, 4, 8, 19, 3, 73, 68, 70, 49, 14, 48, 12, 6, 3, 85, 4, 7, 19, 5, 80, 97, 114, 105, 115, 49, 18, 48, 16, 6, 3, 85, 4, 10, 19, 9, 78, 111, 100, 101, 79, 80, 67, 85, 65, 49, 23, 48, 21, 6, 3, 85, 4, 3, 19, 14, 78, 111, 100, 101, 79, 80, 67, 85, 65, 45, 84, 69, 83, 84, 130, 9, 0, 193, 232, 116, 99, 18, 62, 6, 87, 48, 12, 6, 3, 85, 29, 19, 4, 5, 48, 3, 1, 1, 255, 48, 14, 6, 3, 85, 29, 15, 1, 1, 255, 4, 4, 3, 2, 1, 6, 48, 95, 6, 9, 96, 134, 72, 1, 134, 248, 66, 1, 13, 4, 82, 22, 80, 83, 101, 108, 102, 83, 105, 103, 110, 101, 100, 32, 67, 101, 114, 116, 105, 102, 105, 99, 97, 116, 101, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 98, 121, 32, 78, 111, 100, 101, 45, 79, 80, 67, 85, 65, 32, 67, 101, 114, 116, 105, 102, 105, 99, 97, 116, 101, 32, 117, 116, 105, 108, 105, 116, 121, 32, 117, 115, 105, 110, 103, 32, 111, 112, 101, 110, 115, 115, 108, 48, 71, 6, 3, 85, 29, 17, 4, 64, 48, 62, 134, 40, 117, 114, 110, 58, 122, 109, 97, 107, 97, 107, 111, 45, 86, 105, 114, 116, 117, 97, 108, 66, 111, 120, 58, 78, 111, 100, 101, 45, 79, 80, 67, 85, 65, 45, 83, 101, 114, 118, 101, 114, 130, 18, 122, 109, 97, 107, 97, 107, 111, 45, 86, 105, 114, 116, 117, 97, 108, 66, 111, 120, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 22, 137, 144, 225, 128, 121, 63, 231, 142, 198, 56, 192, 141, 111, 226, 217, 215, 23, 136, 6, 246, 32, 201, 216, 83, 191, 107, 116, 101, 236, 227, 174, 40, 89, 16, 196, 106, 206, 58, 44, 57, 190, 231, 202, 222, 55, 3, 168, 5, 103, 54, 33, 245, 247, 158, 62, 14, 112, 252, 208, 199, 100, 88, 213, 165, 102, 115, 74, 184, 43, 25, 9, 189, 163, 137, 161, 77, 181, 46, 144, 124, 165, 161, 118, 16, 41, 139, 181, 209, 148, 149, 224, 171, 144, 145, 100, 226, 44, 24, 66, 28, 51, 227, 20, 25, 83, 242, 103, 94, 196, 143, 192, 51, 243, 186, 84, 113, 168, 82, 52, 244, 119, 221, 183, 151, 180, 112, 254, 132, 85, 243, 150, 149, 132, 233, 19, 190, 98, 178, 166, 90, 4, 136, 187, 43, 107, 11, 96, 124, 28, 0, 114, 9, 225, 161, 234, 23, 18, 67, 210, 67, 62, 65, 72, 55, 22, 82, 33, 147, 226, 174, 198, 179, 177, 213, 77, 54, 146, 15, 11, 109, 169, 116, 143, 70, 183, 213, 36, 114, 114, 131, 3, 164, 221, 35, 226, 221, 20, 11, 15, 248, 241, 151, 61, 229, 12, 151, 80, 69, 33, 56, 204, 248, 42, 78, 185, 61, 146, 254, 196, 188, 51, 129, 226, 133, 167, 193, 58, 159, 148, 222, 249, 96, 143, 122, 178, 30, 201, 40, 197, 240, 101, 58, 71, 87, 229, 138, 96, 24, 191, 194, 35, 23, 123, 136, 20} )),
requestedSessionTimeout := 60000.0,
maxResponseMessageSize := 800000
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
CreateSessionRequest := v_createSessionReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// ActivateSessionRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetActivateSessionRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 4,
RequestId := 4
}
var ActivateSessionRequest v_activateSessionReq := {
requestHeader := reqHeaderFourByte,
clientSignature := {
algorithm := valueof(tr_StringNull),
Signature := valueof(tr_ByteStringNull)
},
clientSoftwareCertificates := valueof(tr_ListOfSignedSoftwareCertificate({})),
localeIds := valueof(tr_ListOfLocaleId({})),
userIdentityToken := {
encodingByte := 1,
twoByteNodeValue := omit,
namespaceIndex := 0,
fourByteNodeValue := 321,
encoding := 1,
parameterLength := 13,
extensibleParameterBody := {
anonymousIdentityToken := {
policyId := valueof(tr_String( "anonymous"))
}
}
},
userTokenSignature := {
algorithm := valueof(tr_StringNull),
Signature := valueof(tr_ByteStringNull)
}
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
ActivateSessionRequest := v_activateSessionReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
var octetstring res := enc_MessageChunk (v_msg);
log (lengthof(res));
log("=======================");
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// BrowseRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetBrowseRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 5,
RequestId := 5
}
var BrowseRequest v_browseReq := {
requestHeader := {
authenticationToken := {
mask := 5,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
byteString := {
nameSpace := 0,
nodeValue := {
realByteString := {
lengthValue := 16,
byteStringValue := {
213,
222,
175,
58,
50,
191,
56,
110,
161,
40,
190,
206,
46,
98,
162,
70
}
}
}
}
}
},
timestamp := 131556452505810000,
requestHandle := 5,
returnDiagnostics := 0,
auditEntryId := {
realString := {
stringLength := 0,
stringValue := ""
}
},
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
},
view := {
viewId := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
timestamp := 0,
viewVersion := 0
},
requestedMaxReferencesPerNode := 10000,
nodesToBrowse := {
realArray := {
arrayLength := 1,
arrayValues := {
{
nodeId := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 84
}
}
},
browseDirection := BOTH_2,
referenceTypeId := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
includeSubtypes := 1,
nodeClassMask := 0,
resultMask := 63
}
}
}
}
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
BrowseRequest := v_browseReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// ReadRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetReadRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 6,
RequestId := 6
}
var ReadRequest v_readReq := {
requestHeader := {
authenticationToken := {
mask := 5,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
byteString := {
nameSpace := 0,
nodeValue := valueof(tr_ByteString( { 213, 222, 175, 58, 50, 191, 56, 110, 161, 40, 190, 206, 46, 98, 162, 70 } ))
}
}
},
timestamp := 131556452505980000,
requestHandle := 7,
returnDiagnostics := 0,
auditEntryId := {
realString := {
stringLength := 0,
stringValue := ""
}
},
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
},
maxAge := 0.0,
timestampsToReturn := BOTH_2,
nodesToRead := {
realArray := {
arrayLength := 1,
arrayValues := {
{
nodeId := {
mask := 3,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
string := {
nameSpace := 1,
nodeValue := valueof (tr_String("free_memory"))
}
}
},
attributeId := 13,
indexRange := valueof(tr_StringNull),
dataEncoding := {
namespaceIndex := 0,
name := valueof(tr_StringNull)
}
}
}
}
}
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
ReadRequest := v_readReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// CreateSubscriptionRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetCreateSubscRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 6,
RequestId := 6
}
var CreateSubscriptionRequest v_createSubsReq := {
requestHeader := {
authenticationToken := {
mask := 5,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
byteString := {
nameSpace := 0,
nodeValue := {
realByteString := {
lengthValue := 16,
byteStringValue := {
213,
222,
175,
58,
50,
191,
56,
110,
161,
40,
190,
206,
46,
98,
162,
70
}
}
}
}
}
},
timestamp := 131556452506070000,
requestHandle := 8,
returnDiagnostics := 0,
auditEntryId := {
realString := {
stringLength := 0,
stringValue := ""
}
},
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
},
requestedPublishingInterval := 100.0,
requestedLifetimeCount := 10,
requestedMaxKeepAliveCount := 2,
maxNotificationsPerPublish := 10,
publishingEnabled := 1,
priorityInt32 := 10
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
CreateSubscriptionRequest := v_createSubsReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk (v_msg);
}
/////////////////////////////////////////////////////////////
// //
// ServiceResponse //
// //
/////////////////////////////////////////////////////////////
function f_GetServiceResponse() return template MessageChunk {
template MessageChunk responseChunk modifies tr_baseResponseMessage := {
header := {
messageType := ServicesMsgType,
chunkType := FinalChunk,
messageSize := ?
}
}
return responseChunk;
}
/////////////////////////////////////////////////////////////
// //
// CloseSessionRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetCloseSessionRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderService);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 21,
RequestId := 21
}
var CloseSessionRequest v_closeSessionReq := {
requestHeader := {
authenticationToken := {
mask := 5,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
byteString := {
nameSpace := 0,
nodeValue := {
realByteString := {
lengthValue := 16,
byteStringValue := {
213,
222,
175,
58,
50,
191,
56,
110,
161,
40,
190,
206,
46,
98,
162,
70
}
}
}
}
}
},
timestamp := 131556452556620000,
requestHandle := 20,
returnDiagnostics := 0,
auditEntryId := {
realString := {
stringLength := 0,
stringValue := ""
}
},
timeoutHint := 0,
additionalHeader := {
typeId := {
node := {
mask := 0,
namespaceUriBit := 0,
serverIndexBit := 0,
reservedBit1 := 0,
reservedBit2 := 0,
IdType := {
twoByte := {
nodeValue := 0
}
}
},
namespaceUri := omit,
serverIndex := omit
},
Value := 0
}
},
deleteSubscriptions := 1
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
CloseSessionRequest := v_closeSessionReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk(v_msg);
}
/////////////////////////////////////////////////////////////
// //
// CloseSecureChannelRequest //
// //
/////////////////////////////////////////////////////////////
function f_GetCloseSecureChannelRequest() return octetstring {
var MessageHeader v_header := valueof(tr_HeaderCloseSecureChannel);
var UInt32 v_securityChannelId := 1;
var UInt32 v_securityTokenId := 1
var SequenceHeader v_sequenceHeader := {
SequenceNumber := 21,
RequestId := 21
}
var CloseSecureChannelRequest v_closeSecReq := {
requestHeader := reqHeader
}
var ServiceBody v_service := {
encodingByte := 1,
namespaceIndex := 0,
nodeValue := 0,
list := {
CloseSecureChannelRequest := v_closeSecReq
}
}
var octetstring v_encodedBody := enc_ServiceBody(v_service);
var MessageChunk v_msg := valueof(tr_MessageCloseSecureChannel(v_header, v_securityChannelId, v_securityTokenId, v_sequenceHeader, v_encodedBody));
return enc_MessageChunk(v_msg);
}
}