# Copyright (c) 2024 Bentley Systems, Incorporated. All rights reserved.
# Copyright (c) 2024 Bentley Systems, Incorporated. All rights reserved.
# Copyright (c) 2024 Bentley Systems, Incorporated. All rights reserved.
### extends 'class_empty.py'
### block ClassImports
# NOTICE: Do not edit anything here, it is generated code
from . import gxapi_cy
from geosoft.gxapi import GXContext, float_ref, int_ref, str_ref
### endblock ClassImports
### block Header
# NOTICE: The code generator will not replace the code in this block
### endblock Header
### block ClassImplementation
# NOTICE: Do not edit anything here, it is generated code
[docs]
class GXCOM(gxapi_cy.WrapCOM):
"""
GXCOM class.
This class is used to communicate with external serial devices. It allows the setting of timeouts.
"""
[docs]
def __init__(self, handle=0):
super(GXCOM, self).__init__(GXContext._get_tls_geo(), handle)
[docs]
@classmethod
def null(cls):
"""
A null (undefined) instance of `GXCOM <geosoft.gxapi.GXCOM>`
:returns: A null `GXCOM <geosoft.gxapi.GXCOM>`
:rtype: GXCOM
"""
return GXCOM()
[docs]
def is_null(self):
"""
Check if this is a null (undefined) instance
:returns: True if this is a null (undefined) instance, False otherwise.
:rtype: bool
"""
return self._internal_handle() == 0
# Miscellaneous
[docs]
@classmethod
def create(cls, port, baud, data_size, parity, stop_bits, flow_control, time_out):
"""
Create `GXCOM <geosoft.gxapi.GXCOM>` object.
:param port: Port name to open ("COM1" is example)
:param baud: :ref:`COM_BAUD`
:param data_size: :ref:`COM_DATASIZE`
:param parity: :ref:`COM_PARITY`
:param stop_bits: :ref:`COM_STOPBITS`
:param flow_control: :ref:`COM_FLOWCONTROL`
:param time_out: Timeout in Ms (500)
:type port: str
:type baud: int
:type data_size: int
:type parity: int
:type stop_bits: int
:type flow_control: int
:type time_out: int
:returns: `GXCOM <geosoft.gxapi.GXCOM>` Object
:rtype: GXCOM
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
ret_val = gxapi_cy.WrapCOM._create(GXContext._get_tls_geo(), port.encode(), baud, data_size, parity, stop_bits, flow_control, time_out)
return GXCOM(ret_val)
[docs]
@classmethod
def create_no_terminate(cls, port, baud, data_size, parity, stop_bits, flow_control, time_out):
"""
Create `GXCOM <geosoft.gxapi.GXCOM>` object.
:param port: Port name to open ("COM1" is example)
:param baud: :ref:`COM_BAUD`
:param data_size: :ref:`COM_DATASIZE`
:param parity: :ref:`COM_PARITY`
:param stop_bits: :ref:`COM_STOPBITS`
:param flow_control: :ref:`COM_FLOWCONTROL`
:param time_out: Timeout in Ms (500)
:type port: str
:type baud: int
:type data_size: int
:type parity: int
:type stop_bits: int
:type flow_control: int
:type time_out: int
:returns: `GXCOM <geosoft.gxapi.GXCOM>` Object
:rtype: GXCOM
.. versionadded:: 6.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
ret_val = gxapi_cy.WrapCOM._create_no_terminate(GXContext._get_tls_geo(), port.encode(), baud, data_size, parity, stop_bits, flow_control, time_out)
return GXCOM(ret_val)
[docs]
def read_line_no_terminate(self, line):
"""
Reads a Line from the `GXCOM <geosoft.gxapi.GXCOM>`
:param line: String for line
:type line: str_ref
:returns: 0 - if successful in reading a line
1 - if an error was encountered
:rtype: int
.. versionadded:: 6.0.1
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
ret_val, line.value = self._read_line_no_terminate(line.value.encode())
return ret_val
[docs]
def read_chars_no_terminate(self, line):
"""
Reads characters from the `GXCOM <geosoft.gxapi.GXCOM>`, times out and does not terminate
:param line: String for characters
:type line: str_ref
:returns: 0 - if successful
1 - if time out or error
:rtype: int
.. versionadded:: 6.0.1
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
ret_val, line.value = self._read_chars_no_terminate(line.value.encode())
return ret_val
[docs]
def read_line(self, line):
"""
Reads a Line from the `GXCOM <geosoft.gxapi.GXCOM>`
:param line: String for line
:type line: str_ref
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
line.value = self._read_line(line.value.encode())
[docs]
def write_chars_no_terminate(self, line):
"""
Writes characters to the `GXCOM <geosoft.gxapi.GXCOM>`. Does not terminate upon error
:param line: Line to write
:type line: str
:returns: 0 - if successful in writing a string
1 - if time out or error was encountered
:rtype: int
.. versionadded:: 6.0.1
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
ret_val = self._write_chars_no_terminate(line.encode())
return ret_val
[docs]
def purge_comm(self):
"""
Purges the input and output buffers.
.. versionadded:: 5.1.8
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._purge_comm()
[docs]
def read_chars(self, line):
"""
Reads characters from the `GXCOM <geosoft.gxapi.GXCOM>`
:param line: String for characters
:type line: str_ref
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
line.value = self._read_chars(line.value.encode())
[docs]
def read_em61_lines_wa(self, lines, wa):
"""
Reads Lines from the `GXCOM <geosoft.gxapi.GXCOM>` to a `GXWA <geosoft.gxapi.GXWA>`: Geonics EM61 only
:param lines: Number of lines
:param wa: Where to put lines
:type lines: int
:type wa: GXWA
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._read_em61_lines_wa(lines, wa)
[docs]
def read_file2_wa(self, wa):
"""
Reads entire dataset from the `GXCOM <geosoft.gxapi.GXCOM>` to a `GXWA <geosoft.gxapi.GXWA>`
:param wa: Where to put lines
:type wa: GXWA
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._read_file2_wa(wa)
[docs]
def read_lines_wa(self, lines, wa):
"""
Reads Lines from the `GXCOM <geosoft.gxapi.GXCOM>` to a `GXWA <geosoft.gxapi.GXWA>`
:param lines: Number of lines
:param wa: Where to put lines
:type lines: int
:type wa: GXWA
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._read_lines_wa(lines, wa)
[docs]
def set_time_out(self, time_out):
"""
Set the timeout value.
:param time_out: Timeout in Ms (500)
:type time_out: int
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._set_time_out(time_out)
[docs]
def write_chars(self, line):
"""
Writes characters to the `GXCOM <geosoft.gxapi.GXCOM>`
:param line: Line to write
:type line: str
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._write_chars(line.encode())
[docs]
def write_line(self, line):
"""
Writes a Line to the `GXCOM <geosoft.gxapi.GXCOM>`
:param line: Line to write
:type line: str
.. versionadded:: 5.0
**License:** `Geosoft End-User License <https://geosoftgxdev.atlassian.net/wiki/spaces/GD/pages/2359406/License#License-end-user-lic>`_
"""
self._write_line(line.encode())
### endblock ClassImplementation
### block ClassExtend
# NOTICE: The code generator will not replace the code in this block
### endblock ClassExtend
### block Footer
# NOTICE: The code generator will not replace the code in this block
### endblock Footer