| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // 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: InfluxDB_Definitions.ttcn |
| // Description: |
| // Rev: R1B |
| // Prodnr: CNL 113 909 |
| // Updated: 2021-02-03 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////////////////////////////////////// |
| module InfluxDB_Definitions |
| { |
| import from IPL4asp_Types all; |
| import from IPL4asp_PortType all; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_InfluxDB_debug |
| // |
| // Purpose: |
| // Enable/disable debug logging |
| // |
| // Type: |
| // *boolean* |
| // |
| // Default value: |
| // *false* |
| /////////////////////////////////////////////////////////// |
| modulepar boolean tsp_InfluxDB_debug := false; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_InfluxDB_client_basePort |
| // |
| // Purpose: |
| // Local port number used for the UDP connection with the InfluxDB |
| // |
| // Type: |
| // *integer* |
| // |
| // Default value: |
| // *9000* |
| /////////////////////////////////////////////////////////// |
| modulepar integer tsp_InfluxDB_client_basePort := 9000; |
| |
| /////////////////////////////////////////////////////////// |
| // Module parameter: tsp_InfluxDB_reportPeriod |
| // |
| // Purpose: |
| // InfluxDB event handler reporting period |
| // |
| // Type: |
| // *float* |
| // |
| // Default value: |
| // *3.0* |
| /////////////////////////////////////////////////////////// |
| modulepar float tsp_InfluxDB_reportPeriod := 3.0; |
| |
| type component InfluxDB_CT |
| { |
| var InfluxDBContext v_InfluxDB_ctx := c_InfluxDBContext_empty; |
| |
| var ASP_SendTo v_InfluxDB_sendAsp; |
| var charstring v_InfluxDB_msgToSend_encoded; |
| var InfluxLineProtocol v_InfluxDB_msgToSend; |
| var fcb_InfluxDB_reportHandler v_InfluxDB_reportHandler := null; |
| var default v_InfluxDB_eventHandler; |
| timer v_InfluxDB_reportTimer; |
| |
| port IPL4asp_PT INFLUXDB_PCO; |
| } |
| |
| type record InfluxDBContext |
| { |
| integer connId, |
| integer connId_listen, |
| charstring remoteHost, |
| integer remotePort, |
| charstring localHost, |
| integer localPort, |
| float reportPeriod |
| } |
| with { extension "done" } |
| |
| const InfluxDBContext c_InfluxDBContext_empty := |
| { |
| connId := -1, |
| connId_listen := -1, |
| remoteHost := "127.0.0.1", |
| remotePort := 8089, |
| localHost := "127.0.0.1", |
| localPort := 9000, |
| reportPeriod := 3.0 |
| } |
| |
| type function fcb_InfluxDB_reportHandler() runs on self; |
| |
| type record InfluxLineProtocol |
| { |
| charstring measurement, |
| InfluxAttrValue_List tagSet, |
| InfluxAttrValue_List fieldSet |
| } |
| |
| const InfluxLineProtocol c_InfluxLineProtocol_empty := |
| { |
| measurement := "", |
| tagSet := {}, |
| fieldSet := {} |
| } |
| |
| type record of InfluxAttrValue InfluxAttrValue_List; |
| |
| type record InfluxAttrValue |
| { |
| charstring name, |
| charstring val |
| } |
| |
| template InfluxAttrValue t_influxData(in charstring p_key, in charstring p_value) := |
| { |
| name := p_key, |
| val := p_value |
| } |
| } |