| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2017 Ericsson Telecom 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 |
| /////////////////////////////////////////////////////////////////////////////// |
| // File: IoT_FT_Framework_Functions.ttcn |
| // Description: |
| // Rev: R1A |
| // Prodnr: LPA 108 661 |
| // Updated: 2017-09-01 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////////////////////////////////////// |
| module IoT_FT_Framework_Functions |
| { |
| import from IoT_FT_Framework_Definitions all; |
| import from IFW_CoAP_Peer_Definitions all; |
| import from IFW_CoAP_Peer_TestSteps all; |
| import from IFW_HTTP_Client_Definitions all; |
| import from IFW_HTTP_Client_TestSteps all; |
| import from IFW_MQTT_Client_Definitions all; |
| import from IFW_MQTT_Client_TestSteps all; |
| import from IFW_Common all; |
| |
| function f_IFW_addComponent(IFW_ComponentTypes p_componentType, charstring p_addrId := "") |
| runs on IFW_MAIN_CT |
| return integer |
| { |
| if (p_componentType == COAP_PEER) { |
| return f_IFW_addCoapPeerComponent(p_addrId); |
| } |
| else if (p_componentType == HTTP_CLIENT) |
| { |
| return f_IFW_addHttpClientComponent(p_addrId); |
| } |
| else if (p_componentType == MQTT_CLIENT) |
| { |
| return f_IFW_addMqttClientComponent(p_addrId); |
| } |
| |
| return -1; |
| } |
| |
| function f_IFW_addCoapPeerComponent(charstring p_addrId := "") runs on IFW_MAIN_CT |
| return integer |
| { |
| var IFW_COAP_CT v_peer := IFW_COAP_CT.create alive; |
| var integer v_peerIdx := sizeof(coapPeers); |
| |
| coapPeers[v_peerIdx] := v_peer; |
| |
| var NamedHostPort v_addr; |
| if (f_lookupAddress(p_addrId, v_addr)) |
| { |
| var CoapContext v_ctx; |
| f_IFW_CoapPeer_getContext(v_peerIdx, v_ctx); |
| v_ctx.localHost := v_addr.hostName; |
| v_ctx.localPort := v_addr.portNumber; |
| |
| f_IFW_CoapPeer_setContext(v_peerIdx, v_ctx); |
| } |
| |
| return v_peerIdx; |
| } |
| |
| function f_IFW_addHttpClientComponent(charstring p_addrId := "") runs on IFW_MAIN_CT |
| return integer |
| { |
| var IFW_HTTP_Client_CT v_client := IFW_HTTP_Client_CT.create alive; |
| var integer v_clientIdx := sizeof(httpClients); |
| |
| httpClients[v_clientIdx] := v_client; |
| |
| var NamedHostPort v_addr; |
| if (f_lookupAddress(p_addrId, v_addr)) |
| { |
| var HttpClientContext v_ctx; |
| f_IFW_HttpClient_getContext(v_clientIdx, v_ctx); |
| v_ctx.localHost := v_addr.hostName; |
| v_ctx.localPort := v_addr.portNumber; |
| |
| f_IFW_HttpClient_setContext(v_clientIdx, v_ctx); |
| } |
| |
| return v_clientIdx; |
| } |
| |
| function f_IFW_addMqttClientComponent(charstring p_addrId := "") runs on IFW_MAIN_CT |
| return integer |
| { |
| var IFW_MQTT_Client_CT v_client := IFW_MQTT_Client_CT.create alive; |
| var integer v_clientIdx := sizeof(mqttClients); |
| |
| mqttClients[v_clientIdx] := v_client; |
| |
| var NamedHostPort v_addr; |
| if (f_lookupAddress(p_addrId, v_addr)) |
| { |
| var MqttClientContext v_ctx; |
| f_IFW_MqttClient_getContext(v_clientIdx, v_ctx); |
| v_ctx.localHost := v_addr.hostName; |
| v_ctx.localPort := v_addr.portNumber; |
| |
| f_IFW_MqttClient_setContext(v_clientIdx, v_ctx); |
| } |
| |
| return v_clientIdx; |
| } |
| |
| function f_IFW_initComponents() runs on IFW_MAIN_CT |
| { |
| setverdict(pass); |
| mid := float2int(int2float(65000)*rnd()); |
| |
| for (var integer i:=0; i<sizeof(coapPeers); i:=i+1) { |
| f_IFW_CoapPeer_init(i); |
| } |
| for (var integer i:=0; i<sizeof(httpClients); i:=i+1) { |
| f_IFW_HttpClient_init(i); |
| } |
| for (var integer i:=0; i<sizeof(mqttClients); i:=i+1) { |
| f_IFW_MqttClient_init(i); |
| } |
| } |
| |
| function f_IFW_cleanUp() runs on IFW_MAIN_CT |
| { |
| for (var integer i:=0; i<sizeof(httpClients); i:=i+1) { |
| f_IFW_HttpClient_cleanUp(i); |
| } |
| for (var integer i:=0; i<sizeof(mqttClients); i:=i+1) { |
| f_IFW_MqttClient_cleanUp(i); |
| } |
| stop; |
| } |
| } |