| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2021 Ericsson Telecom AB |
| // |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v2.0 |
| // which accompanies this distribution, and is available at |
| // https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html |
| /////////////////////////////////////////////////////////////////////////////// |
| // File: EPTF_MQTT_LGen_Definitions.ttcn |
| // Description: |
| // Rev: R1B |
| // Prodnr: CNL 113 860 |
| // Updated: 2021-02-03 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////////////////// |
| // Module: EPTF_MQTT_LGen_Definitions |
| // |
| // Purpose: |
| // This module contains the definitions for the MQTT load generator component |
| // |
| // Module depends on: |
| // - <EPTF_MQTT_Transport_Definitions> |
| // - <EPTF_CLL_LGenBase_Definitions> |
| // - <EPTF_CLL_Logging_Definitions> |
| // - <EPTF_CLL_FBQ_Definitions> |
| // - <EPTF_CLL_Common_Definitions> |
| // - <Socket_API_Definitions> |
| // - <MQTT_v3_1_1_Types> |
| // |
| // Module Parameters: |
| // tsp_EPTF_MQTT_LGen_debug - <tsp_EPTF_MQTT_LGen_debug> - *boolean* - Enabled/disable debug logging |
| // tsp_EPTF_MQTT_LGen_debugVerbose - <tsp_EPTF_MQTT_LGen_debugVerbose> - *boolean* - Enabled/disable verbosity of debug logging |
| // tsp_EPTF_MQTT_LGen_maxBindableCtx - <tsp_EPTF_MQTT_LGen_maxBindableCtx> - *integer* - Maximum number of context to bind(?) |
| // tsp_EPTF_MQTT_LGen_templates - <tsp_EPTF_MQTT_LGen_templates> - <MQTT_Template_List> - MQTT message template definitions for sending |
| // tsp_EPTF_MQTT_PUBLISH_responseWatchdog - <tsp_EPTF_MQTT_PUBLISH_responseWatchdog> - *float* - Watchdog timer value to wait responses to an MQTT PUBLISH message |
| // tsp_EPTF_MQTT_SUBSCRIBE_responseWatchdog - <tsp_EPTF_MQTT_SUBSCRIBE_responseWatchdog> - *float* - Watchdog timer value to wait responses to an MQTT SUBSCRIBE message |
| // |
| // Events: |
| // MQTT transport success - <c_MQTT_eventIdx_transportSucc>, <c_MQTT_eventName_transportSucc> |
| // MQTT transport fail - <c_MQTT_eventIdx_transportFail>, <c_MQTT_eventName_transportFail> |
| // MQTT transport established - <c_MQTT_eventIdx_transportEstablished>, <c_MQTT_eventName_established> |
| // MQTT transport closed - <c_MQTT_eventIdx_transportClosed>, <c_MQTT_eventName_transportClosed> |
| // CONNACK accepted - <c_MQTT_eventIdx_CONNACK_Accepted>, <c_MQTT_eventName_CONNACK_Accepted> |
| // CONNAK refused - <c_MQTT_eventIdx_CONNACK_Refused>, <c_MQTT_eventName_CONNACK_Refused> |
| // SUBACK accepted - <c_MQTT_eventIdx_SUBACK_Accepted>, <c_MQTT_eventName_SUBACK_Accepted> |
| // SUBACK refused <c_MQTT_eventIdx_SUBACK_Refused>, <c_MQTT_eventName_SUBACK_Refused> |
| // UNSUBACK - <c_MQTT_eventIdx_UNSUBACK>, <c_MQTT_eventName_UNSUBACK> |
| // PUBLISH - <c_MQTT_eventIdx_PUBLISH>, <c_MQTT_eventName_PUBLISH> |
| // PING request - <c_MQTT_eventIdx_PING_Request>, <c_MQTT_eventName_PING_Request> |
| // PING response - <c_MQTT_eventIdx_PING_Response>, <c_MQTT_eventName_PING_Response> |
| // PUBACK - <c_MQTT_eventIdx_PUBACK>, <c_MQTT_eventName_PUBACK> |
| // PUBREC - <c_MQTT_eventIdx_PUBREC>, <c_MQTT_eventName_PUBREC> |
| // PUBREL - <c_MQTT_eventIdx_PUBREL>, <c_MQTT_eventName_PUBREL> |
| // PUBCOMP - <c_MQTT_eventIdx_PUBCOMP>, <c_MQTT_eventName_PUBCOMP> |
| // PUBLISH timeout - <c_MQTT_eventIdx_PUBLISH_Timeout>, <c_MQTT_eventName_PUBLISH_Timeout> |
| // SUBSCRIBE timeout - <c_MQTT_eventIdx_SUBSCRIBE_Timeout>, <c_MQTT_eventName_SUBSCRIBE_Timeout> |
| // |
| // TestSteps: |
| // MQTT init - <f_MQTT_step_init>, <c_MQTT_stepIdx_init>, <c_MQTT_stepName_init> |
| // MQTT cleanUp - <f_MQTT_step_cleanUp>, <c_MQTT_stepIdx_init>, <c_MQTT_stepIdx_init> |
| // set local address - <f_MQTT_step_setLocalAddress_byVars>, <c_MQTT_stepIdx_setLocalAddress_byVars>, <c_MQTT_stepName_setLocalAddress_byVars> |
| // set remote address - <f_MQTT_step_setRemoteAddress_byVars>, <c_MQTT_stepIdx_setRemoteAddress_byVars>, <c_MQTT_stepName_setRemoteAddress_byVars> |
| // transport connect - <f_MQTT_step_transportConnect>, <c_MQTT_stepIdx_transportConnect>, <c_MQTT_stepName_transportConnect> |
| // transport close - <f_MQTT_step_transportClose>, <c_MQTT_stepIdx_transportClose>, <c_MQTT_stepName_transportClose> |
| // start listening - <f_MQTT_step_startListening>, <c_MQTT_stepIdx_startListening>, <c_MQTT_stepName_startListening> |
| // load MQTT template - <f_MQTT_step_loadTemplate_byIntIdx>, <c_MQTT_stepIdx_loadTemplate_byIntIdx>, <c_MQTT_stepName_loadTemplate_byIntIdx> |
| // <f_MQTT_step_loadTemplate_byStringId>, <c_MQTT_stepIdx_loadTemplate_byStringId>, <c_MQTT_stepName_loadTemplate_byStringId> |
| // send message - <f_MQTT_step_send>, <c_MQTT_stepIdx_send>, <c_MQTT_stepName_send> |
| // set topic - <f_MQTT_step_setTopic_stringParam>, <c_MQTT_stepIdx_setTopic_stringParam>, <c_MQTT_stepName_setTopic_stringParam> |
| // <f_MQTT_step_setTopic_add_stringParam>, <c_MQTT_stepIdx_setTopic_add_stringParam>, <c_MQTT_stepName_setTopic_add_stringParam> |
| // <f_MQTT_step_setTopic_add_varParams>, <c_MQTT_stepIdx_setTopic_add_varParams>, <c_MQTT_stepName_setTopic_add_varParams> |
| // <f_MQTT_step_setTopic_add_clientId>, <c_MQTT_stepIdx_setTopic_add_clientId>, <c_MQTT_stepName_setTopic_add_clientId> |
| // set QoS - <f_MQTT_step_setQos_intParam>, <c_MQTT_stepIdx_setQos_intParam>, <c_MQTT_stepName_setQos_intParam> |
| // set publish message - <f_MQTT_step_setPublishMessage_stringParam>, <c_MQTT_stepIdx_setPublishMessage_stringParam>, <c_MQTT_stepName_setPublishMessage_stringParam> |
| // <f_MQTT_step_setPublishMessage_add_stringParam>, <c_MQTT_stepIdx_setPublishMessage_add_stringParam>, <c_MQTT_stepName_setPublishMessage_add_stringParam> |
| // <f_MQTT_step_setPublishMessage_add_varParams>, <c_MQTT_stepIdx_setPublishMessage_add_varParams>, <c_MQTT_stepName_setPublishMessage_add_varParams> |
| // <f_MQTT_step_setPublishMessage_add_clientId>, <c_MQTT_stepIdx_setPublishMessage_add_clientId>, <c_MQTT_stepName_setPublishMessage_add_clientId> |
| // MQTT - <f_MQTT_step_reportPingResponse>, <c_MQTT_stepIdx_reportPingResponse>, <c_MQTT_stepName_reportPingResponse> |
| // MQTT - <f_MQTT_step_reportPublishResponse>, <c_MQTT_stepIdx_reportPublishResponse>, <c_MQTT_stepName_reportPublishResponse> |
| // |
| // Class Diagram: |
| // (see EPTF_MQTT_LGen_Definitions.classes.jpg) |
| // |
| /////////////////////////////////////////////////////////////// |
| module EPTF_MQTT_LGen_Definitions |
| { |
| import from EPTF_MQTT_Transport_Definitions all; |
| import from EPTF_CLL_LGenBase_Definitions all; |
| import from EPTF_CLL_Logging_Definitions all; |
| import from EPTF_CLL_FBQ_Definitions all; |
| import from EPTF_CLL_Common_Definitions all; |
| import from Socket_API_Definitions all; |
| import from MQTT_v3_1_1_Types all; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_LGen_debug |
| // |
| // Purpose: |
| // Enabled/disable debug logging |
| // |
| // Type: |
| // *boolean* |
| // |
| // Default value: |
| // *false* |
| /////////////////////////////////////////////////////////// |
| modulepar boolean tsp_EPTF_MQTT_LGen_debug := false; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_LGen_debugVerbose |
| // |
| // Purpose: |
| // Enabled/disable verbosity of debug logging |
| // |
| // Type: |
| // *boolean* |
| // |
| // Default value: |
| // *false* |
| /////////////////////////////////////////////////////////// |
| modulepar boolean tsp_EPTF_MQTT_LGen_debugVerbose := false; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_LGen_maxBindableCtx |
| // |
| // Purpose: |
| // Can be used to limit the maximum number of contexts |
| // set it to -1 otherwise. |
| // |
| // Type: |
| // *integer* |
| // |
| // Default value: |
| // *-1* |
| /////////////////////////////////////////////////////////// |
| modulepar integer tsp_EPTF_MQTT_LGen_maxBindableCtx := -1; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_LGen_templates |
| // |
| // Purpose: |
| // MQTT message template definitions for sending |
| // |
| // Type: |
| // <MQTT_Template_List> |
| // |
| // Default value: |
| // Empty list: {} |
| /////////////////////////////////////////////////////////// |
| modulepar MQTT_Template_List tsp_EPTF_MQTT_LGen_templates := {}; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_PUBLISH_responseWatchdog |
| // |
| // Purpose: |
| // Watchdog timer value to wait responses to an MQTT PUBLISH message |
| // |
| // Type: |
| // *float* |
| // |
| // Default value: |
| // Empty list: {} |
| /////////////////////////////////////////////////////////// |
| modulepar float tsp_EPTF_MQTT_PUBLISH_responseWatchdog := 0.0; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_EPTF_MQTT_SUBSCRIBE_responseWatchdog |
| // |
| // Purpose: |
| // Watchdog timer value to wait responses to an MQTT SUBSCRIBE message |
| // |
| // Type: |
| // *float* |
| // |
| // Default value: |
| // Empty list: {} |
| /////////////////////////////////////////////////////////// |
| modulepar float tsp_EPTF_MQTT_SUBSCRIBE_responseWatchdog := 0.0; |
| |
| const integer c_MQTT_LGen_Logging_WARNING := 0; |
| const integer c_MQTT_LGen_Logging_DEBUG := 1; |
| const integer c_MQTT_LGen_Logging_DEBUGV := 2; |
| const integer c_MQTT_LGen_Logging_ERROR := 3; |
| |
| const charstring c_MQTT_behaviorType := "MQTT Behavior"; |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.classes.jpg |
| |
| class EPTF_MQTT_LGen_CT { |
| boolean v_MQTT_initialized |
| integer v_MQTT_bIdx |
| integer v_MQTT_loggingMaskId |
| MQTT_Address_DB v_MQTT_addressDB |
| MQTT_Template_DB v_MQTT_templateDB |
| MQTT_Session_DB v_MQTT_sessionDB |
| MQTT_Subscription_DB v_MQTT_subscriptionDB |
| MQTT_Publish_DB v_MQTT_publishDB |
| MQTT_StepCtx v_MQTT_ctx |
| MQTT_Session v_MQTT_session |
| MQTT_Subscription v_MQTT_subscription |
| MQTT_Publish v_MQTT_publish |
| EPTF_MQTT_PDU v_MQTT_msgToProcess |
| EPTF_MQTT_PDU v_MQTT_msgToSend |
| fcb_EPTF_MQTT_messageReceived vf_MQTT_msgReceived |
| f_EPTF_MQTT_LGen_init(in charstring pl_name) |
| f_EPTF_MQTT_LGen_initLogging() |
| f_MQTT_cleanUp() |
| f_MQTT_eCtxBind(in integer pl_eIdx) |
| f_MQTT_eCtxUnbind(in integer pl_eIdx) |
| f_MQTT_eCtxReset(in integer pl_eIdx) |
| f_EPTF_MQTT_declareEvents() |
| f_EPTF_MQTT_declareSteps() |
| f_EPTF_MQTT_LGen_receiveMessage(in EPTF_MQTT_PDU pl_message) |
| f_EPTF_MQTT_LGen_receiveEvent(in ASP_Event p_event) |
| f_EPTF_MQTT_LGen_transportApiResponse(in EPTF_MQTT_Transport_Response pl_rsp) |
| f_EPTF_MQTT_LGen_send(inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_stack_fromApp(inout EPTF_MQTT_PDU p_msg, in MQTT_StepCtx p_ctx) |
| f_EPTF_MQTT_stack_fromEnv(inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_isFsmInitialized(in integer pl_eIdx, in integer pl_fsmIdx, inout integer pl_sessionIdx) |
| f_EPTF_MQTT_Logging_VERBOSE(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_DEBUG(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_WARNING(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_ERROR(in @lazy charstring pl_message) |
| f_EPTF_MQTT_dispatchEvent(in integer pl_eventIdx, in integer pl_eIdx, in integer pl_fsmCtx, in EPTF_IntegerList pl_reportedArgs) |
| } |
| EPTF_MQTT_LGen_CT "1" --> "1\n.v_MQTT_addressDB" MQTT_Address_DB |
| EPTF_MQTT_LGen_CT "1" --> "1\n.v_MQTT_templateDB" MQTT_Template_DB |
| EPTF_MQTT_LGen_CT "1" --> "1\n.v_MQTT_sessionDB" MQTT_Session_DB |
| EPTF_MQTT_LGen_CT "1" --> "1\n.v_MQTT_subscriptionDB" v_MQTT_subscriptionDB |
| EPTF_MQTT_LGen_CT "1" --> "1\n.v_MQTT_publishDB" v_MQTT_publishDB |
| |
| class MQTT_Address_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Address_List data |
| integer hashRef |
| f_EPTF_MQTT_addressDB_init() |
| f_EPTF_MQTT_addressDB_add(in Socket p_addr, inout integer p_idx) |
| f_EPTF_MQTT_addressDB_lookUp(in Socket p_sock) |
| f_EPTF_MQTT_addressDB_get(inout Socket p_addr, in integer p_idx) |
| f_EPTF_MQTT_addressDB_Socket2String(Socket p_sock) |
| f_EPTF_MQTT_addressDB_cleanUp() |
| } |
| MQTT_Address_DB "1" --> "*\n.data[]" Socket |
| |
| class MQTT_Template_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Template_List data |
| integer hashRef |
| f_EPTF_MQTT_templateDB_init() |
| f_EPTF_MQTT_templateDB_add(in MQTT_Template p_template) |
| f_EPTF_MQTT_templateDB_lookUp(in charstring p_id) |
| f_EPTF_MQTT_templateDB_get(in integer p_idx, inout Socket MQTT_v3_1_1_ReqResp p_pdu) |
| f_EPTF_MQTT_templateDB_cleanUp() |
| } |
| MQTT_Template_DB "1" --> "*\n.data[]" MQTT_Template |
| |
| class MQTT_Session_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Session_List data |
| integer hashRef |
| f_EPTF_MQTT_sessionDB_init() |
| f_EPTF_MQTT_sessionDB_add(in MQTT_Session p_session) |
| f_EPTF_MQTT_sessionDB_lookUp(in Socket p_sock) |
| f_EPTF_MQTT_sessionDB_get(in integer p_idx, inout MQTT_Session p_session) |
| f_EPTF_MQTT_sessionDB_setKey(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_check(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_remove(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_addrHash(in Socket p_sock) |
| f_EPTF_MQTT_sessionDB_cleanUp() |
| } |
| MQTT_Session_DB "1" --> "*\n.data[]" MQTT_Session |
| |
| class MQTT_Session { |
| integer eIdx |
| integer fsmIdx |
| integer localAddrIdx |
| integer remoteAddrIdx |
| charstring clientId |
| float keepAliveTime |
| integer nextPacketId, |
| integer[] subscriptionRefs |
| integer[] publishRefs |
| integer keepaliveTimer |
| boolean reportPingResponse |
| boolean reportPublishResponse |
| MQTT_Session_State state |
| f_EPTF_MQTT_session_fromApp(inout EPTF_MQTT_PDU p_msg, in integer p_sIdx) |
| f_EPTF_MQTT_session_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_sIdx) |
| f_EPTF_MQTT_session_keepalive(in EPTF_ScheduledAction pl_action, in integer pl_eventIndex) |
| f_EPTF_MQTT_session_startT_keepalive(in integer pl_sIdx, in float pl_time) |
| f_EPTF_MQTT_session_cancelT_keepalive(in integer pl_sessionIdx) |
| f_EPTF_MQTT_session_getNextPacketId(in MQTT_StepCtx p_ctx) |
| f_EPTF_MQTT_session_setState(in integer p_sessionIdx, in MQTT_Session_State p_nextState) |
| f_EPTF_MQTT_session_send(in integer p_sessionIdx, inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_session_registerSubscription(in integer p_sessionIdx, in integer p_subIdx) |
| f_EPTF_MQTT_session_deregisterSubscription(in integer p_sessionIdx, in integer p_subIdx) |
| f_EPTF_MQTT_session_registerPublish(in integer p_sessionIdx, in integer p_pubIdx) |
| f_EPTF_MQTT_session_deregisterPublish(in integer p_sessionIdx, in integer p_pubIdx) |
| f_EPTF_MQTT_session_remove(in integer p_sessionIdx) |
| } |
| MQTT_Session "1" --> "1\n.localAddrIdx" Socket |
| MQTT_Session "1" --> "1\n.remoteAddrIdx" Socket |
| MQTT_Session "1\n.sessionIdx" <--> "*\n.subscriptionRefs[]" MQTT_Subscription |
| MQTT_Session "1\n.sessionIdx" <--> "*\n.publishRefs[]" MQTT_Publish |
| |
| class MQTT_Subscription_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Subscription_List data |
| integer hashRef |
| f_EPTF_MQTT_subscriptionDB_init() |
| f_EPTF_MQTT_subscriptionDB_add(in MQTT_Subscription p_sub) |
| f_EPTF_MQTT_subscriptionDB_setKey_packetId(in integer p_idx, in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_removeKey_packetId(in integer p_idx, in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_lookUp_packetId(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_lookUp_topicName(in integer p_sessionIdx, in charstring p_topicName) |
| f_EPTF_MQTT_subscriptionDB_get(in integer p_idx, inout MQTT_Subscription p_sub) |
| f_EPTF_MQTT_subscriptionDB_check(in integer p_idx) |
| f_EPTF_MQTT_subscriptionDB_remove(in integer p_idx) |
| f_EPTF_MQTT_subscriptionDB_packetIdHash(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_topicHash(in integer p_sessionIdx, in charstring p_topic) |
| f_EPTF_MQTT_subscriptionDB_cleanUp() |
| } |
| MQTT_Subscription_DB "1" --> "*\n.data[]" MQTT_Subscription |
| |
| class MQTT_Subscription { |
| integer sessionIdx |
| integer watchdogTimer |
| MQTT_v3_1_1_Subscribe request |
| MQTT_Subscription_State state |
| f_EPTF_MQTT_subscription_fromSession(inout EPTF_MQTT_PDU p_msg, in integer p_subIdx) |
| f_EPTF_MQTT_subscription_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_subIdx) |
| f_EPTF_MQTT_subscription_setState(in integer p_subIdx, in MQTT_Subscription_State p_nextState) |
| f_EPTF_MQTT_subscription_remove(in integer p_subIdx) |
| } |
| |
| class MQTT_Publish_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Publish_List data |
| integer hashRef |
| f_EPTF_MQTT_publishDB_init() |
| f_EPTF_MQTT_publishDB_add(in MQTT_Publish p_pub) |
| f_EPTF_MQTT_publishDB_lookUp(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_publishDB_get(in integer p_idx, inout MQTT_Publish p_pub) |
| f_EPTF_MQTT_publishDB_check(in integer p_idx) |
| f_EPTF_MQTT_publishDB_remove(in integer p_idx) |
| f_EPTF_MQTT_publishDB_packetIdHash(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_publishDB_cleanUp() |
| } |
| MQTT_Publish_DB "1" --> "*\n.data[]" MQTT_Publish |
| |
| class MQTT_Publish { |
| integer sessionIdx |
| integer packetId |
| integer watchdogTimer |
| MQTT_Publish_Side side |
| MQTT_Publish_State state |
| f_EPTF_MQTT_publish_fromSession(inout EPTF_MQTT_PDU p_msg, in integer p_pubIdx) |
| f_EPTF_MQTT_publish_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_pubIdx) |
| f_EPTF_MQTT_publish_watchdog(in EPTF_ScheduledAction pl_action, in integer pl_eventIndex) |
| f_EPTF_MQTT_publish_startT_watchdog(in integer pl_pIdx, in float pl_time) |
| f_EPTF_MQTT_publish_cancelT_watchdog(in integer pl_publishIdx) |
| f_EPTF_MQTT_publish_setState(in integer p_pubIdx, in MQTT_Publish_State p_nextState) |
| f_EPTF_MQTT_publish_remove(in integer p_pubIdx) |
| } |
| |
| @enduml |
| ******************************************************************/ |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Template |
| // |
| // Purpose: |
| // Grouping a <MQTT_v3_1_1_ReqResp> with an id |
| // |
| // Elements: |
| // id - *charstring* - identifier |
| // msg - <MQTT_v3_1_1_ReqResp> - MQTT PDU |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Template |
| { |
| charstring id, |
| MQTT_v3_1_1_ReqResp msg |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Template_List |
| // |
| // Purpose: |
| // List of <MQTT_Template> |
| /////////////////////////////////////////////////////////// |
| type record of MQTT_Template MQTT_Template_List; |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Template_DB.jpg |
| class MQTT_Template_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Template_List data |
| integer hashRef |
| f_EPTF_MQTT_templateDB_init() |
| f_EPTF_MQTT_templateDB_add(in MQTT_Template p_template) |
| f_EPTF_MQTT_templateDB_lookUp(in charstring p_id) |
| f_EPTF_MQTT_templateDB_get(in integer p_idx, inout Socket MQTT_v3_1_1_ReqResp p_pdu) |
| f_EPTF_MQTT_templateDB_cleanUp() |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Template_DB |
| // |
| // Purpose: |
| // Storing <MQTT_Template> instances |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Template_DB.jpg) |
| // |
| // Elements: |
| // data - <MQTT_Template_List> - elements |
| // hashRef - charstring2int hash reference |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_templateDB_init> () |
| // - <f_EPTF_MQTT_templateDB_add> (in <MQTT_Template> p_template) |
| // - <f_EPTF_MQTT_templateDB_lookUp> (in *charstring* p_id) |
| // - <f_EPTF_MQTT_templateDB_get> (in *integer* p_idx, inout <MQTT_v3_1_1_ReqResp> p_pdu) |
| // - <f_EPTF_MQTT_templateDB_cleanUp> () |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Template_DB |
| { |
| MQTT_Template_List data, |
| integer hashRef |
| } |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Session.jpg |
| class MQTT_Session { |
| integer eIdx |
| integer fsmIdx |
| integer localAddrIdx |
| integer remoteAddrIdx |
| charstring clientId |
| float keepAliveTime |
| integer nextPacketId, |
| integer[] subscriptionRefs |
| integer[] publishRefs |
| integer keepaliveTimer |
| boolean reportPingResponse |
| boolean reportPublishResponse |
| MQTT_Session_State state |
| f_EPTF_MQTT_session_fromApp(inout EPTF_MQTT_PDU p_msg, in integer p_sIdx) |
| f_EPTF_MQTT_session_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_sIdx) |
| f_EPTF_MQTT_session_keepalive(in EPTF_ScheduledAction pl_action, in integer pl_eventIndex) |
| f_EPTF_MQTT_session_startT_keepalive(in integer pl_sIdx, in float pl_time) |
| f_EPTF_MQTT_session_cancelT_keepalive(in integer pl_sessionIdx) |
| f_EPTF_MQTT_session_getNextPacketId(in MQTT_StepCtx p_ctx) |
| f_EPTF_MQTT_session_setState(in integer p_sessionIdx, in MQTT_Session_State p_nextState) |
| f_EPTF_MQTT_session_send(in integer p_sessionIdx, inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_session_registerSubscription(in integer p_sessionIdx, in integer p_subIdx) |
| f_EPTF_MQTT_session_deregisterSubscription(in integer p_sessionIdx, in integer p_subIdx) |
| f_EPTF_MQTT_session_registerPublish(in integer p_sessionIdx, in integer p_pubIdx) |
| f_EPTF_MQTT_session_deregisterPublish(in integer p_sessionIdx, in integer p_pubIdx) |
| f_EPTF_MQTT_session_remove(in integer p_sessionIdx) |
| } |
| @enduml |
| ******************************************************************/ |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Session |
| // |
| // Purpose: |
| // Models and MQTT session |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Session.jpg) |
| // |
| // FSM Diagram of a MQTT session: |
| // (see EPTF_MQTT_LGen_Functions.MQTT_Session.jpg) |
| // |
| // Elements: |
| // eIdx - *integer* - pointer to the entity that owns the session |
| // fsmIdx - *integer* - pointer to the fsm that owns the session |
| // localAddressIdx - *integer* - pointer to the local address in *v_MQTT_addressDB* |
| // remoteAddressIdx - *integer* - pointer to the remote address in *v_MQTT_addressDB* |
| // clientId - *charstring* - the client ID used in the session |
| // keepAliveTime - *float* - timer used for sending keep alive messages |
| // nextPacketId - *integer* - id used for the next packet |
| // subscriptionRefs - <EPTF_IntegerList> - pointer to subscriptions in *v_MQTT_subscriptionDB* <MQTT_Subscription_DB> |
| // publishRefs - <EPTF_IntegerList> - pointer to publications in *v_MQTT_publishDB* <MQTT_Publish_DB> |
| // keepaliveTimer - *integer* - reference for the keep alive timer in the scheduler |
| // reportPingResponse - *boolean* - enable/disable reporting of ping responses |
| // reportPublishResponse - *boolean* - enable/disabled reporting of publish responses |
| // state - <MQTT_Session_State> - state of an MQTT session |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_session_fromApp> (*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_sIdx) |
| // - <f_EPTF_MQTT_session_fromEnv> (*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_sIdx) |
| // - <f_EPTF_MQTT_session_keepalive> (*in* <EPTF_ScheduledAction> pl_action, *in integer* pl_eventIndex) |
| // - <f_EPTF_MQTT_session_startT_keepalive> (*in integer* pl_sIdx, *in float* pl_time) |
| // - <f_EPTF_MQTT_session_cancelT_keepalive> (*in integer* pl_sessionIdx) |
| // - <f_EPTF_MQTT_session_getNextPacketId> (*in* <MQTT_StepCtx> p_ctx) |
| // - <f_EPTF_MQTT_session_setState> (*in integer* p_sessionIdx, *in* <MQTT_Session_State> p_nextState) |
| // - <f_EPTF_MQTT_session_send> (*in integer* p_sessionIdx, *inout* <EPTF_MQTT_PDU> p_msg) |
| // - <f_EPTF_MQTT_session_registerSubscription> (*in integer* p_sessionIdx, *in integer* p_subIdx) |
| // - <f_EPTF_MQTT_session_deregisterSubscription> (*in integer* p_sessionIdx, *in integer* p_subIdx) |
| // - <f_EPTF_MQTT_session_registerPublish> (*in integer* p_sessionIdx, *in integer* p_pubIdx) |
| // - <f_EPTF_MQTT_session_deregisterPublish> (*in integer* p_sessionIdx, *in integer* p_pubIdx) |
| // - <f_EPTF_MQTT_session_remove> (*in integer* p_sessionIdx) |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Session |
| { |
| integer eIdx, |
| integer fsmIdx, |
| integer localAddrIdx, |
| integer remoteAddrIdx, |
| charstring clientId, |
| float keepAliveTime, |
| integer nextPacketId, |
| EPTF_IntegerList subscriptionRefs, |
| EPTF_IntegerList publishRefs, |
| integer keepaliveTimer, |
| boolean reportPingResponse, |
| boolean reportPublishResponse, |
| MQTT_Session_State state |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Enum: MQTT_Session_State |
| // |
| // Purpose: |
| // States of an <MQTT_Session> state machine |
| // |
| // Elements: |
| // - DISCONNECTED |
| // - CONNECTING |
| // - CONNECTED |
| // - REMOVING |
| /////////////////////////////////////////////////////////// |
| type enumerated MQTT_Session_State { |
| DISCONNECTED, |
| CONNECTING, |
| CONNECTED, |
| REMOVING |
| } |
| |
| const MQTT_Session c_MQTT_Session_init := |
| { |
| eIdx := -1, |
| fsmIdx := -1, |
| localAddrIdx := -1, |
| remoteAddrIdx := -1, |
| clientId := "", |
| keepAliveTime := 0.0, |
| nextPacketId := 0, |
| subscriptionRefs := {}, |
| publishRefs := {}, |
| keepaliveTimer := -1, |
| reportPingResponse := false, |
| reportPublishResponse := false, |
| state := DISCONNECTED |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Session_List |
| // |
| // Purpose: |
| // List of <MQTT_Session> |
| /////////////////////////////////////////////////////////// |
| type record of MQTT_Session MQTT_Session_List; |
| |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Session_DB.jpg |
| class MQTT_Session_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Session_List data |
| integer hashRef |
| f_EPTF_MQTT_sessionDB_init() |
| f_EPTF_MQTT_sessionDB_add(in MQTT_Session p_session) |
| f_EPTF_MQTT_sessionDB_lookUp(in Socket p_sock) |
| f_EPTF_MQTT_sessionDB_get(in integer p_idx, inout MQTT_Session p_session) |
| f_EPTF_MQTT_sessionDB_setKey(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_check(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_remove(in integer p_idx) |
| f_EPTF_MQTT_sessionDB_addrHash(in Socket p_sock) |
| f_EPTF_MQTT_sessionDB_cleanUp() |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Session_DB |
| // |
| // Purpose: |
| // Storing <MQTT_Session> instances |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Session_DB.jpg) |
| // |
| // Elements: |
| // queue - <EPTF_FreeBusyQueue> - free-busy queue to provide dynamic array |
| // data - <MQTT_Session_List> - elements |
| // hashRef - str2int hash reference |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_sessionDB_init> () |
| // - <f_EPTF_MQTT_sessionDB_add> (in <MQTT_Session> p_session) |
| // - <f_EPTF_MQTT_sessionDB_lookUp> (in <Socket> p_sock) |
| // - <f_EPTF_MQTT_sessionDB_get> (in integer p_idx, inout MQTT_Session p_session) |
| // - <f_EPTF_MQTT_sessionDB_setKey> (in integer p_idx) |
| // - <f_EPTF_MQTT_sessionDB_check> (in integer p_idx) |
| // - <f_EPTF_MQTT_sessionDB_remove> (in integer p_idx) |
| // - <f_EPTF_MQTT_sessionDB_addrHash> (in <Socket> p_sock) |
| // - <f_EPTF_MQTT_sessionDB_cleanUp> () |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Session_DB |
| { |
| EPTF_FreeBusyQueue queue, |
| MQTT_Session_List data, |
| integer hashRef |
| } |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Subscription.jpg |
| class MQTT_Subscription { |
| integer sessionIdx |
| integer watchdogTimer |
| MQTT_v3_1_1_Subscribe request |
| MQTT_Subscription_State state |
| f_EPTF_MQTT_subscription_fromSession(inout EPTF_MQTT_PDU p_msg, in integer p_subIdx) |
| f_EPTF_MQTT_subscription_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_subIdx) |
| f_EPTF_MQTT_subscription_setState(in integer p_subIdx, in MQTT_Subscription_State p_nextState) |
| f_EPTF_MQTT_subscription_remove(in integer p_subIdx) |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Subscription |
| // |
| // Purpose: |
| // Models an MQTT subscription |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Subscription.jpg) |
| // |
| // Elements: |
| // sessionIdx - *integer* - the session, the subscription belongs to |
| // watchdogTimer - *integer* - reference to the watchod timer |
| // request - <MQTT_v3_1_1_Subscribe> - the MQTT PDU that initialized the subscription (optional) |
| // state - <MQTT_Subscription_State> - state of an MQTT subscription |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_subscription_fromSession>(*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_subIdx) |
| // - <f_EPTF_MQTT_subscription_fromEnv>(*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_subIdx) |
| // - <f_EPTF_MQTT_subscription_setState>(*in integer* p_subIdx, *in* <MQTT_Subscription_State> p_nextState) |
| // - <f_EPTF_MQTT_subscription_remove>(*in integer* p_subIdx) |
| // |
| // FSM Diagram of a MQTT subscription: |
| // (see EPTF_MQTT_LGen_Functions.MQTT_Subscription.jpg) |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Subscription |
| { |
| integer sessionIdx, |
| integer watchdogTimer, |
| MQTT_v3_1_1_Subscribe request optional, |
| MQTT_Subscription_State state |
| } |
| // TODO: Currently only one topic per subscription is handled only! |
| |
| /////////////////////////////////////////////////////////// |
| // Enum: MQTT_Subscription_State |
| // |
| // Purpose: |
| // States of an <MQTT_Subscription> state machine |
| // |
| // Elements: |
| // - UNSUBSCRIBED |
| // - SUBSCRIBING |
| // - SUBSCRIBED |
| // - UNSUBSCRIBING |
| // - REMOVING |
| /////////////////////////////////////////////////////////// |
| type enumerated MQTT_Subscription_State { |
| UNSUBSCRIBED, |
| SUBSCRIBING, |
| SUBSCRIBED, |
| UNSUBSCRIBING, |
| REMOVING |
| } |
| |
| const MQTT_Subscription c_MQTT_Subscription_init := |
| { |
| sessionIdx := -1, |
| watchdogTimer := -1, |
| request := omit, |
| state := UNSUBSCRIBED |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Subscription_List |
| // |
| // Purpose: |
| // List of <MQTT_Subscription> |
| /////////////////////////////////////////////////////////// |
| type record of MQTT_Subscription MQTT_Subscription_List; |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Subscription_DB.jpg |
| class MQTT_Subscription_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Subscription_List data |
| integer hashRef |
| f_EPTF_MQTT_subscriptionDB_init() |
| f_EPTF_MQTT_subscriptionDB_add(in MQTT_Subscription p_sub) |
| f_EPTF_MQTT_subscriptionDB_setKey_packetId(in integer p_idx, in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_removeKey_packetId(in integer p_idx, in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_lookUp_packetId(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_lookUp_topicName(in integer p_sessionIdx, in charstring p_topicName) |
| f_EPTF_MQTT_subscriptionDB_get(in integer p_idx, inout MQTT_Subscription p_sub) |
| f_EPTF_MQTT_subscriptionDB_check(in integer p_idx) |
| f_EPTF_MQTT_subscriptionDB_remove(in integer p_idx) |
| f_EPTF_MQTT_subscriptionDB_packetIdHash(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_subscriptionDB_topicHash(in integer p_sessionIdx, in charstring p_topic) |
| f_EPTF_MQTT_subscriptionDB_cleanUp() |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Subscription_DB |
| // |
| // Purpose: |
| // Storing <MQTT_Subscription> instances |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Subscription_DB.jpg) |
| // |
| // Elements: |
| // queue - <EPTF_FreeBusyQueue> - free-busy queue to provide dynamic array |
| // data - <MQTT_Subscription_List> - elements |
| // hashRef - str2int hash reference |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_subscriptionDB_init> () |
| // - <f_EPTF_MQTT_subscriptionDB_add> (*in* <MQTT_Subscription> p_sub) |
| // - <f_EPTF_MQTT_subscriptionDB_setKey_packetId> (*in integer* p_idx, *in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_subscriptionDB_removeKey_packetId> (*in integer* p_idx, *in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_subscriptionDB_lookUp_packetId> (*in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_subscriptionDB_lookUp_topicName> (*in integer* p_sessionIdx, *in charstring* p_topicName) |
| // - <f_EPTF_MQTT_subscriptionDB_get> (*in integer* p_idx, *inout* <MQTT_Subscription> p_sub) |
| // - <f_EPTF_MQTT_subscriptionDB_check> (*in integer* p_idx) |
| // - <f_EPTF_MQTT_subscriptionDB_remove> (*in integer* p_idx) |
| // - <f_EPTF_MQTT_subscriptionDB_packetIdHash> (*in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_subscriptionDB_topicHash> (*in integer* p_sessionIdx, *in charstring* p_topic) |
| // - <f_EPTF_MQTT_subscriptionDB_cleanUp> () |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Subscription_DB |
| { |
| EPTF_FreeBusyQueue queue, |
| MQTT_Subscription_List data, |
| integer hashRef // sessionIdx+packetId or sessionIdx+topicName |
| } |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Publish.jpg |
| class MQTT_Publish { |
| integer sessionIdx |
| integer packetId |
| integer watchdogTimer |
| MQTT_Publish_Side side |
| MQTT_Publish_State state |
| f_EPTF_MQTT_publish_fromSession(inout EPTF_MQTT_PDU p_msg, in integer p_pubIdx) |
| f_EPTF_MQTT_publish_fromEnv(inout EPTF_MQTT_PDU p_msg, in integer p_pubIdx) |
| f_EPTF_MQTT_publish_watchdog(in EPTF_ScheduledAction pl_action, in integer pl_eventIndex) |
| f_EPTF_MQTT_publish_startT_watchdog(in integer pl_pIdx, in float pl_time) |
| f_EPTF_MQTT_publish_cancelT_watchdog(in integer pl_publishIdx) |
| f_EPTF_MQTT_publish_setState(in integer p_pubIdx, in MQTT_Publish_State p_nextState) |
| f_EPTF_MQTT_publish_remove(in integer p_pubIdx) |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Publish |
| // |
| // Purpose: |
| // Models an MQTT publish |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Publish.jpg) |
| // |
| // Elements: |
| // sessionIdx - *integer* - the session, the subscription belongs to |
| // packetId - *integer* - packet id |
| // watchdogTimer - *integer* - reference to the watchdog timer in the scheduler |
| // side - <MQTT_Publish_Side> - originating or terminating side of the publication |
| // state - <MQTT_Publish_State> - state of an MQTT publish |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_publish_fromSession> (*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_pubIdx) |
| // - <f_EPTF_MQTT_publish_fromEnv> (*inout* <EPTF_MQTT_PDU> p_msg, *in integer* p_pubIdx) |
| // - <f_EPTF_MQTT_publish_watchdog> (*in* <EPTF_ScheduledAction> pl_action, *in integer* pl_eventIndex) |
| // - <f_EPTF_MQTT_publish_startT_watchdog> (*in integer* pl_pIdx, *in float* pl_time) |
| // - <f_EPTF_MQTT_publish_cancelT_watchdog> (*in integer* pl_publishIdx) |
| // - <f_EPTF_MQTT_publish_setState> (*in integer* p_pubIdx, *in* <MQTT_Publish_State> p_nextState) |
| // - <f_EPTF_MQTT_publish_remove> (*in integer* p_pubIdx) |
| // |
| // FSM Diagram of a MQTT publish: |
| // (see EPTF_MQTT_LGen_Functions.MQTT_Publish_qos1.jpg) |
| // (see EPTF_MQTT_LGen_Functions.MQTT_Publish_qos2.jpg) |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Publish |
| { |
| integer sessionIdx, |
| integer packetId, |
| //MQTT_v3_1_1_Publish request optional, |
| integer watchdogTimer, |
| MQTT_Publish_Side side, |
| MQTT_Publish_State state |
| } |
| |
| const MQTT_Publish c_MQTT_Publish_init := |
| { |
| sessionIdx := -1, |
| packetId := -1, |
| //request := omit, |
| watchdogTimer := -1, |
| side := ORIG, |
| state := { created := true } |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Enum: MQTT_Publish_Side |
| // |
| // Purpose: |
| // Side of an <MQTT_Publish> |
| // |
| // Elements: |
| // - ORIG |
| // - TERM |
| /////////////////////////////////////////////////////////// |
| type enumerated MQTT_Publish_Side |
| { |
| ORIG, |
| TERM |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Publish_State |
| // |
| // Purpose: |
| // State of an <MQTT_Publish> |
| // |
| // Elements: |
| // qos1 - <MQTT_PublishQos1_State> - QoS1 state |
| // qos2 - <MQTT_PublishQos2_State> - QoS2 state |
| // created - *boolean* - just created |
| // removing - *boolean* - currently removing |
| /////////////////////////////////////////////////////////// |
| type union MQTT_Publish_State |
| { |
| MQTT_PublishQos1_State qos1, |
| MQTT_PublishQos2_State qos2, |
| boolean created, |
| boolean removing |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Enum: MQTT_PublishQos1_State |
| // |
| // Purpose: |
| // Qos1 state of an <MQTT_Publish_State> |
| // |
| // Elements: |
| // - CREATED |
| // - PUBLISHED |
| // - ACKNOWLEDGED |
| /////////////////////////////////////////////////////////// |
| type enumerated MQTT_PublishQos1_State |
| { |
| CREATED, |
| PUBLISHED, |
| ACKNOWLEDGED |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Enum: MQTT_PublishQos2_State |
| // |
| // Purpose: |
| // Qos2 state of an <MQTT_Publish_State> |
| // |
| // Elements: |
| // - CREATED |
| // - PUBLISHED |
| // - RECEIVED |
| // - RELEASED |
| // - COMPLETE |
| /////////////////////////////////////////////////////////// |
| type enumerated MQTT_PublishQos2_State |
| { |
| CREATED, |
| PUBLISHED, |
| RECEIVED, |
| RELEASED, |
| COMPLETE |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Publish_List |
| // |
| // Purpose: |
| // List of <MQTT_Publish> |
| /////////////////////////////////////////////////////////// |
| type record of MQTT_Publish MQTT_Publish_List; |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Publish_DB.jpg |
| class MQTT_Publish_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Publish_List data |
| integer hashRef |
| f_EPTF_MQTT_publishDB_init() |
| f_EPTF_MQTT_publishDB_add(in MQTT_Publish p_pub) |
| f_EPTF_MQTT_publishDB_lookUp(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_publishDB_get(in integer p_idx, inout MQTT_Publish p_pub) |
| f_EPTF_MQTT_publishDB_check(in integer p_idx) |
| f_EPTF_MQTT_publishDB_remove(in integer p_idx) |
| f_EPTF_MQTT_publishDB_packetIdHash(in integer p_sessionIdx, in integer p_packetId) |
| f_EPTF_MQTT_publishDB_cleanUp() |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Publish_DB |
| // |
| // Purpose: |
| // Storing <MQTT_Publish> instances |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Publish_DB.jpg) |
| // |
| // Elements: |
| // queue - <EPTF_FreeBusyQueue> - free-busy queue to provide dynamic array |
| // data - <MQTT_Publish_List> - elements |
| // hashRef - str2int hash reference |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_publishDB_init> () |
| // - <f_EPTF_MQTT_publishDB_add> (*in* <MQTT_Publish> p_pub) |
| // - <f_EPTF_MQTT_publishDB_lookUp> (*in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_publishDB_get> (*in integer* p_idx, *inout* <MQTT_Publish> p_pub) |
| // - <f_EPTF_MQTT_publishDB_check> (*in integer* p_idx) |
| // - <f_EPTF_MQTT_publishDB_remove> (*in integer* p_idx) |
| // - <f_EPTF_MQTT_publishDB_packetIdHash> (*in integer* p_sessionIdx, *in integer* p_packetId) |
| // - <f_EPTF_MQTT_publishDB_cleanUp> () |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Publish_DB |
| { |
| EPTF_FreeBusyQueue queue, |
| MQTT_Publish_List data, |
| integer hashRef // sessionIdx+packetId |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_StepCtx |
| // |
| // Purpose: |
| // Type that stores the most important pointers |
| // |
| // Elements: |
| // eIdx - *integer* - entity index |
| // fsmIdx - *integer* - fsm index |
| // sessionIdx - *integer* - MQTT session index <MQTT_Session> |
| /////////////////////////////////////////////////////////// |
| type record MQTT_StepCtx |
| { |
| integer eIdx, |
| integer fsmIdx, |
| integer sessionIdx |
| } |
| |
| const MQTT_StepCtx c_MQTT_StepCtx_empty := |
| { |
| eIdx := -1, |
| fsmIdx := -1, |
| sessionIdx := -1 |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Address_List |
| // |
| // Purpose: |
| // List of <Socket> |
| /////////////////////////////////////////////////////////// |
| type record of Socket MQTT_Address_List; |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.MQTT_Address_DB.jpg |
| class MQTT_Address_DB { |
| EPTF_FreeBusyQueue queue |
| MQTT_Address_List data |
| integer hashRef |
| f_EPTF_MQTT_addressDB_init() |
| f_EPTF_MQTT_addressDB_add(in Socket p_addr, inout integer p_idx) |
| f_EPTF_MQTT_addressDB_lookUp(in Socket p_sock) |
| f_EPTF_MQTT_addressDB_get(inout Socket p_addr, in integer p_idx) |
| f_EPTF_MQTT_addressDB_Socket2String(Socket p_sock) |
| f_EPTF_MQTT_addressDB_cleanUp() |
| } |
| @enduml |
| ******************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: MQTT_Address_DB |
| // |
| // Purpose: |
| // Storing <Socket> instances |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.MQTT_Address_DB.jpg) |
| // |
| // Elements: |
| // queue - <EPTF_FreeBusyQueue> - free-busy queue to provide dynamic array |
| // data - <MQTT_Address_List> - elements |
| // hashRef - str2int hash reference |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_addressDB_init> () |
| // - <f_EPTF_MQTT_addressDB_add> (*in* <Socket> p_addr, *inout integer* p_idx) |
| // - <f_EPTF_MQTT_addressDB_lookUp> (*in* <Socket> p_sock) |
| // - <f_EPTF_MQTT_addressDB_get> (*inout* <Socket> p_addr, *in integer* p_idx) |
| // - <f_EPTF_MQTT_addressDB_Socket2String> (<Socket> p_sock) |
| // - <f_EPTF_MQTT_addressDB_cleanUp> () |
| /////////////////////////////////////////////////////////// |
| type record MQTT_Address_DB |
| { |
| EPTF_FreeBusyQueue queue, |
| MQTT_Address_List data, |
| integer hashRef |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Type: fcb_EPTF_MQTT_messageReceived |
| // |
| // Purpose: |
| // Call-back function type for reporting received MQTT messages |
| // |
| // Elements: |
| // pl_message - *in* <EPTF_MQTT_PDU> - received MQTT message |
| /////////////////////////////////////////////////////////// |
| type function fcb_EPTF_MQTT_messageReceived(in EPTF_MQTT_PDU pl_message) runs on self; |
| |
| |
| |
| |
| /***************************************************************** |
| @startuml EPTF_MQTT_LGen_Definitions.EPTF_MQTT_LGen_CT.jpg |
| class EPTF_MQTT_LGen_CT { |
| boolean v_MQTT_initialized |
| integer v_MQTT_bIdx |
| integer v_MQTT_loggingMaskId |
| MQTT_Address_DB v_MQTT_addressDB |
| MQTT_Template_DB v_MQTT_templateDB |
| MQTT_Session_DB v_MQTT_sessionDB |
| MQTT_Subscription_DB v_MQTT_subscriptionDB |
| MQTT_Publish_DB v_MQTT_publishDB |
| MQTT_StepCtx v_MQTT_ctx |
| MQTT_Session v_MQTT_session |
| MQTT_Subscription v_MQTT_subscription |
| MQTT_Publish v_MQTT_publish |
| EPTF_MQTT_PDU v_MQTT_msgToProcess |
| EPTF_MQTT_PDU v_MQTT_msgToSend |
| fcb_EPTF_MQTT_messageReceived vf_MQTT_msgReceived |
| f_EPTF_MQTT_LGen_init(in charstring pl_name) |
| f_EPTF_MQTT_LGen_initLogging() |
| f_MQTT_cleanUp() |
| f_MQTT_eCtxBind(in integer pl_eIdx) |
| f_MQTT_eCtxUnbind(in integer pl_eIdx) |
| f_MQTT_eCtxReset(in integer pl_eIdx) |
| f_EPTF_MQTT_declareEvents() |
| f_EPTF_MQTT_declareSteps() |
| f_EPTF_MQTT_LGen_receiveMessage(in EPTF_MQTT_PDU pl_message) |
| f_EPTF_MQTT_LGen_receiveEvent(in ASP_Event p_event) |
| f_EPTF_MQTT_LGen_transportApiResponse(in EPTF_MQTT_Transport_Response pl_rsp) |
| f_EPTF_MQTT_LGen_send(inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_stack_fromApp(inout EPTF_MQTT_PDU p_msg, in MQTT_StepCtx p_ctx) |
| f_EPTF_MQTT_stack_fromEnv(inout EPTF_MQTT_PDU p_msg) |
| f_EPTF_MQTT_isFsmInitialized(in integer pl_eIdx, in integer pl_fsmIdx, inout integer pl_sessionIdx) |
| f_EPTF_MQTT_Logging_VERBOSE(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_DEBUG(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_WARNING(in @lazy charstring pl_message) |
| f_EPTF_MQTT_Logging_ERROR(in @lazy charstring pl_message) |
| f_EPTF_MQTT_dispatchEvent(in integer pl_eventIdx, in integer pl_eIdx, in integer pl_fsmCtx, in EPTF_IntegerList pl_reportedArgs) |
| } |
| @enduml |
| *****************************************************************/ |
| /////////////////////////////////////////////////////////// |
| // Type: EPTF_MQTT_LGen_CT |
| // |
| // Purpose: |
| // MQTT load generator component |
| // |
| // Class: |
| // (see EPTF_MQTT_LGen_Definitions.EPTF_MQTT_LGen_CT.jpg) |
| // |
| // Extensions: |
| // - <EPTF_LGenBase_CT> |
| // - <EPTF_MQTT_Transport_User_CT> |
| // - <EPTF_Logging_CT> |
| // |
| // Ports: |
| // - |
| // |
| // Timers: |
| // - |
| // |
| // Variables: |
| // v_MQTT_initialized - *boolean* - Flag to indicate that if init function was already called |
| // v_MQTT_bIdx - *integer* - Name of the NAS_EPS LGen component |
| // v_MQTT_loggingMaskId - *integer* - logging mask id |
| // |
| // v_MQTT_ctx - <MQTT_StepCtx> - collection of the most important pointers |
| // v_MQTT_session - <MQTT_Session> - temporary variable for a <MQTT_Session> |
| // v_MQTT_subscription - <MQTT_Subscription> - temporary variable for a <MQTT_Subscription> |
| // v_MQTT_publish - <MQTT_Publish> - temporary variable for a <MQTT_Publish> |
| // |
| // v_MQTT_msgToProcess - <EPTF_MQTT_PDU> - message to process |
| // v_MQTT_msgToSend - <EPTF_MQTT_PDU> - message to send |
| // |
| // |
| // vf_MQTT_msgReceived - <fcb_EPTF_MQTT_messageReceived> - Function hook for reporting received messages |
| // |
| // Instance databases: |
| // v_MQTT_addressDB - <MQTT_Address_DB> - address database of <Socket> |
| // v_MQTT_templateDB - <MQTT_Template_DB> - template database <MQTT_Template> |
| // v_MQTT_sessionDB - <MQTT_Session_DB> - MQTT session database of <MQTT_Session> |
| // v_MQTT_subscriptionDB - <MQTT_Subscription_DB> - MQTT subscription database of <MQTT_Subscription> |
| // v_MQTT_publishDB - <MQTT_Publish_DB> - MQTT publish database of <MQTT_Session> |
| // |
| // Related Functions: |
| // - <f_EPTF_MQTT_LGen_init> (*in charstring* pl_name) |
| // - <f_EPTF_MQTT_LGen_initLogging> () |
| // - <f_MQTT_cleanUp> () |
| // - <f_MQTT_eCtxBind> (*in integer* pl_eIdx) |
| // - <f_MQTT_eCtxUnbind> (*in integer* pl_eIdx) |
| // - <f_MQTT_eCtxReset> (*in integer* pl_eIdx) |
| // - <f_EPTF_MQTT_declareEvents> () |
| // - <f_EPTF_MQTT_declareSteps> () |
| // - <f_EPTF_MQTT_LGen_receiveMessage> (*in* <EPTF_MQTT_PDU> pl_message) |
| // - <f_EPTF_MQTT_LGen_receiveEvent> (*in* <ASP_Event> p_event) |
| // - <f_EPTF_MQTT_LGen_transportApiResponse> (*in* <EPTF_MQTT_Transport_Response> pl_rsp) |
| // - <f_EPTF_MQTT_LGen_send> (*inout* <EPTF_MQTT_PDU> p_msg) |
| // - <f_EPTF_MQTT_stack_fromApp> (*inout* <EPTF_MQTT_PDU> p_msg, *in* <MQTT_StepCtx> p_ctx) |
| // - <f_EPTF_MQTT_stack_fromEnv> (*inout* <EPTF_MQTT_PDU> p_msg) |
| // - <f_EPTF_MQTT_isFsmInitialized> (*in integer* pl_eIdx, *in integer* pl_fsmIdx, *inout integer* pl_sessionIdx) |
| // - <f_EPTF_MQTT_Logging_VERBOSE> (*in @lazy charstring* pl_message) |
| // - <f_EPTF_MQTT_Logging_DEBUG> (*in @lazy charstring* pl_message) |
| // - <f_EPTF_MQTT_Logging_WARNING> (*in @lazy charstring* pl_message) |
| // - <f_EPTF_MQTT_Logging_ERROR> (*in @lazy charstring* pl_message) |
| // - <f_EPTF_MQTT_dispatchEvent> (*in integer* pl_eventIdx, *in integer* pl_eIdx, *in integer* pl_fsmCtx, *in* <EPTF_IntegerList> pl_reportedArgs) |
| /////////////////////////////////////////////////////////// |
| type component EPTF_MQTT_LGen_CT extends EPTF_MQTT_Transport_User_CT, EPTF_LGenBase_CT, EPTF_Logging_CT |
| { |
| var boolean v_MQTT_initialized := false; |
| |
| var integer v_MQTT_bIdx; |
| |
| var integer v_MQTT_loggingMaskId := -1; |
| |
| var MQTT_Address_DB v_MQTT_addressDB; |
| var MQTT_Template_DB v_MQTT_templateDB; |
| var MQTT_Session_DB v_MQTT_sessionDB; |
| var MQTT_Subscription_DB v_MQTT_subscriptionDB; |
| var MQTT_Publish_DB v_MQTT_publishDB; |
| |
| var MQTT_StepCtx v_MQTT_ctx := c_MQTT_StepCtx_empty; |
| var MQTT_Session v_MQTT_session := c_MQTT_Session_init; |
| var MQTT_Subscription v_MQTT_subscription := c_MQTT_Subscription_init; |
| var MQTT_Publish v_MQTT_publish := c_MQTT_Publish_init; |
| |
| var EPTF_MQTT_PDU v_MQTT_msgToProcess; |
| var EPTF_MQTT_PDU v_MQTT_msgToSend; |
| |
| var fcb_EPTF_MQTT_messageReceived vf_MQTT_msgReceived := null; |
| } |
| |
| const integer c_MQTT_AppData_sessionIdx := 0; |
| |
| // Events |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_transportSucc |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport succesful indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_transportSucc := 0; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_transportSucc |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport succesful indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_transportSucc := "MQTT transport: succ rsp"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_transportFail |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport fail indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_transportFail := 1; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_transportFail |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport fail indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_transportFail := "MQTT transport: fail rsp"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_transportEstablished |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport established indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_transportEstablished := 2; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_transportEstablished |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport established indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_transportEstablished := "MQTT transport: connection established"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_transportClosed |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport closed indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_transportClosed := 3; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_transportClosed |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport closed indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_transportClosed := "MQTT transport: connection closed"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_CONNACK_Accepted |
| // |
| // Purpose: |
| // Integer constant for the MQTT CONNACK accepted indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_CONNACK_Accepted := 4; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_CONNACK_Accepted |
| // |
| // Purpose: |
| // Charstring constant for the MQTT CONNACK accepted indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_CONNACK_Accepted := "MQTT rsp: CONNACK Accepted"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_CONNACK_Refused |
| // |
| // Purpose: |
| // Integer constant for the MQTT CONNACK refused indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_CONNACK_Refused := 5; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_CONNACK_Refused |
| // |
| // Purpose: |
| // Charstring constant for the MQTT CONNACK refused indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_CONNACK_Refused := "MQTT rsp: CONNACK Refused"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_SUBACK_Accepted |
| // |
| // Purpose: |
| // Integer constant for the MQTT SUBACK accepted indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_SUBACK_Accepted := 6; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_SUBACK_Accepted |
| // |
| // Purpose: |
| // Charstring constant for the MQTT SUBACK accepted indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_SUBACK_Accepted := "MQTT rsp: SUBACK Accepted"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_SUBACK_Refused |
| // |
| // Purpose: |
| // Integer constant for the MQTT SUBACK refused indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_SUBACK_Refused := 7; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_SUBACK_Refused |
| // |
| // Purpose: |
| // Charstring constant for the MQTT SUBACK refused indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_SUBACK_Refused := "MQTT rsp: SUBACK Refused"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_UNSUBACK |
| // |
| // Purpose: |
| // Integer constant for the MQTT UNSUBACK indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_UNSUBACK := 8; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_UNSUBACK |
| // |
| // Purpose: |
| // Charstring constant for the MQTT UNSUBACK indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_UNSUBACK := "MQTT rsp: UNSUBACK"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBLISH |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBLISH indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBLISH := 9; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBLISH |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBLISH indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBLISH := "MQTT req: PUBLISH"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PING_Request |
| // |
| // Purpose: |
| // Integer constant for the MQTT PING request indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PING_Request := 10; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PING_Request |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PING request indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PING_Request := "MQTT req: PING"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PING_Response |
| // |
| // Purpose: |
| // Integer constant for the MQTT PING response indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PING_Response := 11; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PING_Response |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PING response indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PING_Response := "MQTT rsp: PING"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBACK |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBACK indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBACK := 12; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBACK |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBACK indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBACK := "MQTT rsp: PUBACK"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBREC |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBREC indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBREC := 13; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBREC |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBREC indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBREC := "MQTT rsp: PUBREC"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBREL |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBREL indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBREL := 14; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBREL |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBREL indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBREL := "MQTT req: PUBREL"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBCOMP |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBCOMP indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBCOMP := 15; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBCOMP |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBCOMP indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBCOMP := "MQTT rsp: PUBCOMP"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_PUBLISH_Timeout |
| // |
| // Purpose: |
| // Integer constant for the MQTT PUBLISH timeout indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_PUBLISH_Timeout := 16; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_PUBLISH_Timeout |
| // |
| // Purpose: |
| // Charstring constant for the MQTT PUBLISH timeout indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_PUBLISH_Timeout := "MQTT timeout: PUBLISH Timeout"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventIdx_SUBSCRIBE_Timeout |
| // |
| // Purpose: |
| // Integer constant for the MQTT SUBSCRIBE timeout indication |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_eventIdx_SUBSCRIBE_Timeout := 17; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_eventName_SUBSCRIBE_Timeout |
| // |
| // Purpose: |
| // Charstring constant for the MQTT SUBSCRIBE timeout indication |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_eventName_SUBSCRIBE_Timeout := "MQTT timeout: SUBSCRIBE Timeout"; |
| |
| |
| // Steps |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_init |
| // |
| // Purpose: |
| // Integer constant for the MQTT init test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_init> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_init := 0; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_init |
| // |
| // Purpose: |
| // Charstring constant for the MQTT init test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_init> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_init := "MQTT Applib: init"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_cleanUp |
| // |
| // Purpose: |
| // Integer constant for the MQTT clean up test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_cleanUp> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_cleanUp := 1; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_cleanUp |
| // |
| // Purpose: |
| // Charstring constant for the MQTT clean up test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_cleanUp> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_cleanUp := "MQTT Applib: cleanUp"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setLocalAddress |
| // |
| // Purpose: |
| // Integer constant for the MQTT set local address |
| // |
| // Related Function: |
| // - <f_MQTT_step_setLocalAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setLocalAddress := 2; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setLocalAddress |
| // |
| // Purpose: |
| // Integer constant for the MQTT set local address |
| // |
| // Related Function: |
| // - <f_MQTT_step_setLocalAddress> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setLocalAddress := "MQTT Applib: setLocalAddress"; |
| |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setLocalAddress_byVars |
| // |
| // Purpose: |
| // Integer constant for the MQTT set local address by variables test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setLocalAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setLocalAddress_byVars := 3; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setLocalAddress_byVars |
| // |
| // Purpose: |
| // Integer constant for the MQTT set local address by variables test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setLocalAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setLocalAddress_byVars := "MQTT Applib: setLocalAddress_byVars"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setRemoteAddress |
| // |
| // Purpose: |
| // Integer constant for the MQTT set remote address |
| // |
| // Related Function: |
| // - <f_MQTT_step_setRemoteAddress> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setRemoteAddress := 4; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setRemoteAddress |
| // |
| // Purpose: |
| // Integer constant for the MQTT set remote address |
| // |
| // Related Function: |
| // - <f_MQTT_step_setRemoteAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setRemoteAddress := "MQTT Applib: setRemoteAddress"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setRemoteAddress_byVars |
| // |
| // Purpose: |
| // Integer constant for the MQTT set remote address by variables test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setRemoteAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setRemoteAddress_byVars := 5; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setRemoteAddress_byVars |
| // |
| // Purpose: |
| // Integer constant for the MQTT set remote address by variables test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setRemoteAddress_byVars> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setRemoteAddress_byVars := "MQTT Applib: setRemoteAddress_byVars"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_transportConnect |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport connect test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_transportConnect> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_transportConnect := 6; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_transportConnect |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport connect test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_transportConnect> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_transportConnect := "MQTT Applib: transportConnect"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_transportClose |
| // |
| // Purpose: |
| // Integer constant for the MQTT transport close test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_transportClose> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_transportClose := 7; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_transportClose |
| // |
| // Purpose: |
| // Charstring constant for the MQTT transport close test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_transportClose> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_transportClose := "MQTT Applib: transportClose"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_startListening |
| // |
| // Purpose: |
| // Integer constant for the MQTT start listening test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_startListening> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_startListening := 8; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_startListening |
| // |
| // Purpose: |
| // Charstring constant for the MQTT start listening test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_startListening> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_startListening := "MQTT Applib: startListening"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_loadTemplate_byIntIdx |
| // |
| // Purpose: |
| // Integer constant for the MQTT load template by integer idx pointer test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_loadTemplate_byIntIdx> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_loadTemplate_byIntIdx := 9; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_loadTemplate_byIntIdx |
| // |
| // Purpose: |
| // Charstring constant for the MQTT load template by integer idx pointer test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_loadTemplate_byIntIdx> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_loadTemplate_byIntIdx := "MQTT Applib: loadTemplate_byIntIdx"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_loadTemplate_byStringId |
| // |
| // Purpose: |
| // Integer constant for the MQTT load template by string id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_loadTemplate_byStringId> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_loadTemplate_byStringId := 10; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_loadTemplate_byStringId |
| // |
| // Purpose: |
| // Charstring constant for the MQTT load template by string id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_loadTemplate_byStringId> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_loadTemplate_byStringId := "MQTT Applib: loadTemplate_byStringId"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_send |
| // |
| // Purpose: |
| // Integer constant for the MQTT send test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_send> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_send := 11; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_send |
| // |
| // Purpose: |
| // Charstring constant for the MQTT send test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_send> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_send := "MQTT Applib: send"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setTopic_stringParam |
| // |
| // Purpose: |
| // Integer constant for the MQTT set topic by string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_stringParam> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setTopic_stringParam := 12; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setTopic_stringParam |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set topic by string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_stringParam> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setTopic_stringParam := "MQTT Applib: setTopic_stringParam"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setTopic_add_stringParam |
| // |
| // Purpose: |
| // Integer constant for the MQTT set topic by adding a string test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_stringParam> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setTopic_add_stringParam := 13; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setTopic_add_stringParam |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set topic by adding a string test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_stringParam> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setTopic_add_stringParam := "MQTT Applib: setTopic_add_stringParam"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setTopic_add_varParams |
| // |
| // Purpose: |
| // Integer constant for the MQTT set topic by adding variable parameters test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_varParams> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setTopic_add_varParams := 14; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setTopic_add_varParams |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set topic by adding variable parameters test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_varParams> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setTopic_add_varParams := "MQTT Applib: setTopic_add_varParams"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setTopic_add_clientId |
| // |
| // Purpose: |
| // Integer constant for the MQTT set topic by adding the client id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_clientId> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setTopic_add_clientId := 15; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setTopic_add_clientId |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set topic by adding the client id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setTopic_add_clientId> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setTopic_add_clientId := "MQTT Applib: setTopic_add_clientId"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setQos_intParam |
| // |
| // Purpose: |
| // Integer constant for the MQTT set QoS using integer parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setQos_intParam> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setQos_intParam := 16; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setQos_intParam |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set QoS using integer parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setQos_intParam> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setQos_intParam := "MQTT Applib: setQos_intParam"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setPublishMessage_stringParam |
| // |
| // Purpose: |
| // Integer constant for the MQTT set publish message using a string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_stringParam> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setPublishMessage_stringParam := 17; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setPublishMessage_stringParam |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set publish message using a string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_stringParam> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setPublishMessage_stringParam := "MQTT Applib: setPublishMessage_stringParam"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setPublishMessage_add_stringParam |
| // |
| // Purpose: |
| // Integer constant for the MQTT set publish by adding a string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_stringParam> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setPublishMessage_add_stringParam := 18; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setPublishMessage_add_stringParam |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set publish by adding a string parameter test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_stringParam> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setPublishMessage_add_stringParam := "MQTT Applib: setPublishMessage_add_stringParam"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setPublishMessage_add_varParams |
| // |
| // Purpose: |
| // Integer constant for the MQTT set publish by adding variable parameters test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_varParams> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setPublishMessage_add_varParams := 19; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setPublishMessage_add_varParams |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set publish by adding variable parameters test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_varParams> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setPublishMessage_add_varParams := "MQTT Applib: setPublishMessage_add_varParams"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_setPublishMessage_add_clientId |
| // |
| // Purpose: |
| // Integer constant for the MQTT set publish by adding the client id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_clientId> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_setPublishMessage_add_clientId := 20; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_setPublishMessage_add_clientId |
| // |
| // Purpose: |
| // Charstring constant for the MQTT set publish by adding the client id test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_setPublishMessage_add_clientId> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_setPublishMessage_add_clientId := "MQTT Applib: setPublishMessage_add_clientId"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_reportPingResponse |
| // |
| // Purpose: |
| // Integer constant for the MQTT enabling/disabling the reporting of a ping response test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_reportPingResponse> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_reportPingResponse := 21; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_reportPingResponse |
| // |
| // Purpose: |
| // Charstring constant for the MQTT enabling/disabling the reporting of a ping response test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_reportPingResponse> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_reportPingResponse := "MQTT Applib: reportPingResponse"; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepIdx_reportPublishResponse |
| // |
| // Purpose: |
| // Integer constant for the MQTT enabling/disabling the reporting of a publish response test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_reportPublishResponse> |
| /////////////////////////////////////////////////////////// |
| const integer c_MQTT_stepIdx_reportPublishResponse := 22; |
| |
| /////////////////////////////////////////////////////////// |
| // const: c_MQTT_stepName_reportPublishResponse |
| // |
| // Purpose: |
| // Charstring constant for the MQTT enabling/disabling the reporting of a publish response test step |
| // |
| // Related Function: |
| // - <f_MQTT_step_reportPublishResponse> |
| /////////////////////////////////////////////////////////// |
| const charstring c_MQTT_stepName_reportPublishResponse := "MQTT Applib: reportPublishResponse"; |
| } |