Loading ttcn/V2G/LibItsV2G_Functions.ttcn +51 −1 Original line number Diff line number Diff line Loading @@ -185,7 +185,6 @@ f_utInitializeIut(m_v2gInitialize); f_prDefault(); } // E X A M P L E /** Loading @@ -208,8 +207,59 @@ } /** * @desc Performs preamble up to received a SDP Request * @param p_sdpReponse If function must send a SDP Response or must not * @see f_prInitialState() */ function f_prSdpRequestReceived(in boolean p_sdpResponse) runs on ItsV2G { f_prInitialState(); f_sdpRequestReceived(p_sdpResponse); } } // end of group preambles group sdpFunctions { /** * @desc Received a SDP Request * @param p_response If function must send a SDP Response or must not */ function f_sdpRequestReceived(in boolean p_response) runs on ItsV2G { t_v2g_secc_sequenceTimeout.start( c_v2g_seccSequenceTimeout * 0.95 ); alt { [] v2gPort.receive(mw_sdpMessageInd ( mw_sdpRequestMessage (mw_sdpHeaderRequest, mw_sdpGenericPayloadRequest))) -> value vc_v2gIndMessage { t_v2g_secc_sequenceTimeout.stop; log("*** TP_EVCC_SDP_CLI_BV_01: PASS: SDP request message received BEFORE expiry of the sequence performance timer***"); setverdict(pass); } [] t_v2g_secc_sequenceTimeout.timeout { log("*** TP_EVCC_SDP_CLI_BV_01: FAIL: SDP session request message not receive ***"); setverdict(fail); } } if (p_response) { // Send SDP Response accordingly to the SDP request received f_sendSdpResponse(vc_v2gIndMessage.sdpIn); } } /** * @desc Send a SDP Response message based on content of SDP Request * @param p_sdpRequest SDP Request Message */ function f_sendSdpResponse(in Sdp_Message p_sdpRequest) runs on ItsV2G { // To be completed!!! var V2Greq v_sdpResponseMessage; v_sdpResponseMessage.sdpOut.sdpPayload.sdpResponse.security := p_sdpRequest.sdpPayload.sdpRequest.security; v_sdpResponseMessage.sdpOut.sdpPayload.sdpResponse.transportProtocol := p_sdpRequest.sdpPayload.sdpRequest.transportProtocol; v2gPort.send(v_sdpResponseMessage); } } group postambles { Loading ttcn/V2G/LibItsV2G_Templates.ttcn +38 −13 Original line number Diff line number Diff line Loading @@ -92,27 +92,52 @@ module LibItsV2G_Templates { } } template Sdp_Header m_sdpHeaderRequest := { protocolVersion := c_protocolVersion1, inverseProtocolVersion := c_inverseProtocolVersion1, payloadType := c_sdpRequestMessagePayloadType, payloadLength := 2 } // end v2gPduTemplates group sdpMessageTemplates { /** * @desc Receive template for Generic Header SDP */ template Sdp_Header mw_sdpGenericHeader := { protocolVersion := ?, inverseProtocolVersion := ?, payloadType := ?, payloadLength := ? } template Sdp_Payload m_sdpPayloadRequest := { seccIPAddress := omit, seccPort := omit, /** * @desc Receive template for Generic Payload of a SDP Request Message */ template Sdp_Request mw_sdpGenericPayloadRequest := { security := ?, transportProtocol := ? } template Sdp_Message mw_sdpMessage (in template Sdp_Header p_sdpH, in template Sdp_Payload p_sdpP) := { /** * @desc Receive template for Header SDP Request Message * @see mw_sdpGenericHeader */ template Sdp_Header mw_sdpHeaderRequest modifies mw_sdpGenericHeader := { protocolVersion := c_protocolVersion1, inverseProtocolVersion := c_inverseProtocolVersion1, payloadType := c_sdpRequestMessagePayloadType, payloadLength := 2 } /** * @desc Receive template for SDP Message * @param p_sdpH Header of the message * @param p_sdpP Payload of the message */ template Sdp_Message mw_sdpRequestMessage (in template Sdp_Header p_sdpH, in template Sdp_Request p_sdpP) := { sdpHeader := p_sdpH, sdpPayload := p_sdpP sdpPayload := { sdpRequest := p_sdpP } } } // end v2gPduTemplates } // end sdpMessageTemplates } // end LibItsV2G_Templates No newline at end of file ttcn/V2G/LibItsV2G_TestSystem.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -80,10 +80,12 @@ module LibItsV2G_TestSystem { port V2Gport v2gPort; // timers timer t_v2g_secc_sequenceTimeout; // Global variables E X A M P L E var sessionIDType_TYPE vc_sId; var evccIDType_TYPE vc_evccId; var V2Gind vc_v2gIndMessage; } // End of component ItsV2G Loading ttcn/V2G/LibItsV2G_TypesAndValues.ttcn +30 −5 Original line number Diff line number Diff line Loading @@ -53,12 +53,31 @@ module LibItsV2G_TypesAndValues { group v2gPayload { group SDPMessages { /** * @desc SDP (Session Discovery Protocol) Payload description */ type record Sdp_Payload { Ipv6Address seccIPAddress optional, // IPv6 UInt16 seccPort optional, type union Sdp_Payload { Sdp_Request sdpRequest, Sdp_Response sdpResponse } /** * @desc SDP (Session Discovery Protocol) Request message description */ type record Sdp_Request { Oct1 security, Oct1 transportProtocol } /** * @desc SDP (Session Discovery Protocol) Response message description */ type record Sdp_Response { Ipv6Address seccIPAddress, // IPv6 UInt16 seccPort, Oct1 security, Oct1 transportProtocol } Loading Loading @@ -148,6 +167,12 @@ module LibItsV2G_TypesAndValues { const UInt16 c_V2G_UDP_SDP_SERVER := 15118; } // end sdpValues group timerTimeouts { const float c_v2g_seccSequenceTimeout := 60.0; const float c_v2g_sdpRetransmissionTimeout := 0.25; } } with { encode "LibItsV2G_TypesAndValues" Loading Loading
ttcn/V2G/LibItsV2G_Functions.ttcn +51 −1 Original line number Diff line number Diff line Loading @@ -185,7 +185,6 @@ f_utInitializeIut(m_v2gInitialize); f_prDefault(); } // E X A M P L E /** Loading @@ -208,8 +207,59 @@ } /** * @desc Performs preamble up to received a SDP Request * @param p_sdpReponse If function must send a SDP Response or must not * @see f_prInitialState() */ function f_prSdpRequestReceived(in boolean p_sdpResponse) runs on ItsV2G { f_prInitialState(); f_sdpRequestReceived(p_sdpResponse); } } // end of group preambles group sdpFunctions { /** * @desc Received a SDP Request * @param p_response If function must send a SDP Response or must not */ function f_sdpRequestReceived(in boolean p_response) runs on ItsV2G { t_v2g_secc_sequenceTimeout.start( c_v2g_seccSequenceTimeout * 0.95 ); alt { [] v2gPort.receive(mw_sdpMessageInd ( mw_sdpRequestMessage (mw_sdpHeaderRequest, mw_sdpGenericPayloadRequest))) -> value vc_v2gIndMessage { t_v2g_secc_sequenceTimeout.stop; log("*** TP_EVCC_SDP_CLI_BV_01: PASS: SDP request message received BEFORE expiry of the sequence performance timer***"); setverdict(pass); } [] t_v2g_secc_sequenceTimeout.timeout { log("*** TP_EVCC_SDP_CLI_BV_01: FAIL: SDP session request message not receive ***"); setverdict(fail); } } if (p_response) { // Send SDP Response accordingly to the SDP request received f_sendSdpResponse(vc_v2gIndMessage.sdpIn); } } /** * @desc Send a SDP Response message based on content of SDP Request * @param p_sdpRequest SDP Request Message */ function f_sendSdpResponse(in Sdp_Message p_sdpRequest) runs on ItsV2G { // To be completed!!! var V2Greq v_sdpResponseMessage; v_sdpResponseMessage.sdpOut.sdpPayload.sdpResponse.security := p_sdpRequest.sdpPayload.sdpRequest.security; v_sdpResponseMessage.sdpOut.sdpPayload.sdpResponse.transportProtocol := p_sdpRequest.sdpPayload.sdpRequest.transportProtocol; v2gPort.send(v_sdpResponseMessage); } } group postambles { Loading
ttcn/V2G/LibItsV2G_Templates.ttcn +38 −13 Original line number Diff line number Diff line Loading @@ -92,27 +92,52 @@ module LibItsV2G_Templates { } } template Sdp_Header m_sdpHeaderRequest := { protocolVersion := c_protocolVersion1, inverseProtocolVersion := c_inverseProtocolVersion1, payloadType := c_sdpRequestMessagePayloadType, payloadLength := 2 } // end v2gPduTemplates group sdpMessageTemplates { /** * @desc Receive template for Generic Header SDP */ template Sdp_Header mw_sdpGenericHeader := { protocolVersion := ?, inverseProtocolVersion := ?, payloadType := ?, payloadLength := ? } template Sdp_Payload m_sdpPayloadRequest := { seccIPAddress := omit, seccPort := omit, /** * @desc Receive template for Generic Payload of a SDP Request Message */ template Sdp_Request mw_sdpGenericPayloadRequest := { security := ?, transportProtocol := ? } template Sdp_Message mw_sdpMessage (in template Sdp_Header p_sdpH, in template Sdp_Payload p_sdpP) := { /** * @desc Receive template for Header SDP Request Message * @see mw_sdpGenericHeader */ template Sdp_Header mw_sdpHeaderRequest modifies mw_sdpGenericHeader := { protocolVersion := c_protocolVersion1, inverseProtocolVersion := c_inverseProtocolVersion1, payloadType := c_sdpRequestMessagePayloadType, payloadLength := 2 } /** * @desc Receive template for SDP Message * @param p_sdpH Header of the message * @param p_sdpP Payload of the message */ template Sdp_Message mw_sdpRequestMessage (in template Sdp_Header p_sdpH, in template Sdp_Request p_sdpP) := { sdpHeader := p_sdpH, sdpPayload := p_sdpP sdpPayload := { sdpRequest := p_sdpP } } } // end v2gPduTemplates } // end sdpMessageTemplates } // end LibItsV2G_Templates No newline at end of file
ttcn/V2G/LibItsV2G_TestSystem.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -80,10 +80,12 @@ module LibItsV2G_TestSystem { port V2Gport v2gPort; // timers timer t_v2g_secc_sequenceTimeout; // Global variables E X A M P L E var sessionIDType_TYPE vc_sId; var evccIDType_TYPE vc_evccId; var V2Gind vc_v2gIndMessage; } // End of component ItsV2G Loading
ttcn/V2G/LibItsV2G_TypesAndValues.ttcn +30 −5 Original line number Diff line number Diff line Loading @@ -53,12 +53,31 @@ module LibItsV2G_TypesAndValues { group v2gPayload { group SDPMessages { /** * @desc SDP (Session Discovery Protocol) Payload description */ type record Sdp_Payload { Ipv6Address seccIPAddress optional, // IPv6 UInt16 seccPort optional, type union Sdp_Payload { Sdp_Request sdpRequest, Sdp_Response sdpResponse } /** * @desc SDP (Session Discovery Protocol) Request message description */ type record Sdp_Request { Oct1 security, Oct1 transportProtocol } /** * @desc SDP (Session Discovery Protocol) Response message description */ type record Sdp_Response { Ipv6Address seccIPAddress, // IPv6 UInt16 seccPort, Oct1 security, Oct1 transportProtocol } Loading Loading @@ -148,6 +167,12 @@ module LibItsV2G_TypesAndValues { const UInt16 c_V2G_UDP_SDP_SERVER := 15118; } // end sdpValues group timerTimeouts { const float c_v2g_seccSequenceTimeout := 60.0; const float c_v2g_sdpRetransmissionTimeout := 0.25; } } with { encode "LibItsV2G_TypesAndValues" Loading