Source code for pycanape.cnp_api.cnp_prototype

# SPDX-FileCopyrightText: 2022-present Artur Drogunow <artur.drogunow@zf.com>
#
# SPDX-License-Identifier: MIT

import ctypes
import functools
import logging
import sys
from ctypes import wintypes
from pathlib import Path
from threading import RLock
from typing import Any, Callable, Final, TypeVar

from packaging.version import Version

from ..utils import CANapeError
from . import cnp_class, cnp_constants

if sys.version_info >= (3, 10):
    from typing import ParamSpec
else:
    from typing_extensions import ParamSpec

LOG = logging.getLogger(__name__)

_P1 = ParamSpec("_P1")
_T1 = TypeVar("_T1")


def _synchronize(func: Callable[_P1, _T1]) -> Callable[_P1, _T1]:
    """Use locks to assure thread safety.

    Without synchronization, it is possible that Asap3GetLastError
    retrieves the error of the wrong function."""

    def wrapper(*args: _P1.args, **kwargs: _P1.kwargs) -> _T1:
        with CANapeDll.lock:
            return func(*args, **kwargs)

    return wrapper


[docs] class CANapeDll: lock: Final = RLock() def __init__(self, lib_path: Path) -> None: # noqa: PLR0915 self.windll = ctypes.WinDLL(str(lib_path)) # fmt: off # ********* these functions must be declared before all others ******** self.Asap3GetLastError = self._map_symbol( func_name="Asap3GetLastError", restype=ctypes.c_ushort, argtypes=[cnp_class.TAsap3Hdl], # > TAsap3Hdl hdl ) self.Asap3ErrorText = self._map_symbol( func_name="Asap3ErrorText", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_ushort, # > unsigned short errCode ctypes.POINTER(ctypes.c_char_p), # < char ** errMsg ], ) self.Asap3GetVersion = self._map_symbol( func_name="Asap3GetVersion", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.version_t), # < version_t * version ], errcheck=self._get_last_error, ) # ********************************************************************* self.Asap3ActivateNetwork = self._map_symbol( func_name="Asap3ActivateNetwork", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Name ctypes.c_bool, # > bool activate ], errcheck=self._get_last_error, ) self.Asap3AddItemToRecorder = self._map_symbol( func_name="Asap3AddItemToRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char* MeasurementObject cnp_class.TRecorderID, # > TRecorderID RecorderID ], errcheck=self._get_last_error, ) self.Asap3AddSecProfileToNetwork = self._map_symbol( func_name="Asap3AddSecProfileToNetwork", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_uint, # > unsigned int profileId ctypes.c_char_p, # > char* networkName ], errcheck=self._get_last_error, ) self.Asap3AttachAsap2 = self._map_symbol( func_name="Asap3AttachAsap2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *asap2Fname ctypes.c_short, # > short canChnl ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * module ], errcheck=self._get_last_error, ) self.Asap3CalibrationObjectInfo = self._map_symbol( func_name="Asap3CalibrationObjectInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName ctypes.POINTER(ctypes.c_short), # < short * xDimension ctypes.POINTER(ctypes.c_short), # < short * yDimension ], errcheck=self._get_last_error, ) self.Asap3CalibrationObjectInfoEx = self._map_symbol( func_name="Asap3CalibrationObjectInfoEx", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName ctypes.POINTER(ctypes.c_short), # < short *xDimension ctypes.POINTER(ctypes.c_short), # < short *yDimension ctypes.POINTER(cnp_class.enum_type), # < TValueType *type ], errcheck=self._get_last_error, ) self.Asap3CalibrationObjectRecordInfo = self._map_symbol( func_name="Asap3CalibrationObjectRecordInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName ctypes.POINTER(cnp_class.TLayoutCoeffs), # < TLayoutCoeffs * coeffs ctypes.POINTER(ctypes.c_short), # < short * xDimension ctypes.POINTER(ctypes.c_short), # < short * yDimension ], errcheck=self._get_last_error, ) self.Asap3CheckOverrun = self._map_symbol( func_name="Asap3CheckOverrun", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ushort, # > unsigned short taskId ctypes.c_bool, # > bool resetOverrun ], errcheck=self._get_last_error, ) self.Asap3ClearResumeMode = self._map_symbol( func_name="Asap3ClearResumeMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ], errcheck=self._get_last_error, ) self.Asap3ConnectDataAcquisition = self._map_symbol( func_name="Asap3ConnectDataAcquisition", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3ConnectToCANape = self._map_symbol( func_name="Asap3ConnectToCANape", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl *hdl ctypes.c_char_p, # > const char *VillaRelease ctypes.c_char_p, # > const char *Directory ctypes.c_char_p, # > const char *language ], errcheck=self._get_last_error, ) self.Asap3CopyBinaryFile = self._map_symbol( func_name="Asap3CopyBinaryFile", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module cnp_class.enum_type, # > TAsap3FileType sourcetype cnp_class.enum_type, # > TAsap3FileType desttype ctypes.c_char_p, # > const char *filename ], errcheck=self._get_last_error, ) self.Asap3CreateDevice = self._map_symbol( func_name="Asap3CreateDevice", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char* moduleName cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl* module ], errcheck=self._get_last_error, ) self.Asap3CreateLoggerConfiguration = self._map_symbol( func_name="Asap3CreateLoggerConfiguration", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ], errcheck=self._get_last_error, ) self.Asap3CreateModule = self._map_symbol( func_name="Asap3CreateModule", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char * moduleName ctypes.c_char_p, # > const char * databaseFilename ctypes.c_short, # > short driverType ctypes.c_short, # > short channelNo ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * module ], errcheck=self._get_last_error, ) self.Asap3CreateModule2 = self._map_symbol( func_name="Asap3CreateModule2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *moduleName ctypes.c_char_p, # > const char *databaseFilename ctypes.c_short, # > short driverType ctypes.c_short, # > short channelNo ctypes.c_bool, # > bool goOnline ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * module ], errcheck=self._get_last_error, ) self.Asap3CreateModule3 = self._map_symbol( func_name="Asap3CreateModule3", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *moduleName ctypes.c_char_p, # > const char *databaseFilename ctypes.c_short, # > short driverType ctypes.c_short, # > short channelNo ctypes.c_bool, # > bool goOnline ctypes.c_short, # > short enablecache ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * module ], errcheck=self._get_last_error, ) self.Asap3CreateModule4 = self._map_symbol( func_name="Asap3CreateModule4", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char* moduleName ctypes.c_char_p, # > const char* databaseFname ctypes.c_short, # > short driverType ctypes.c_short, # > short channelNo ctypes.c_char_p, # > const char* interfaceName ctypes.c_bool, # > bool goOnline ctypes.c_short, # > short enableCache ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl* module ], errcheck=self._get_last_error, ) self.Asap3CreateModuleSec = self._map_symbol( func_name="Asap3CreateModuleSec", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char* moduleName ctypes.c_char_p, # > const char* databaseFname ctypes.c_short, # > short driverType ctypes.c_short, # > short channelNo ctypes.c_char_p, # > const char* interfaceName ctypes.c_uint, # > unsigned int secProfileId ctypes.c_char_p, # > const char* securityRole ctypes.c_bool, # > bool goOnline ctypes.c_short, # > short enableCache ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl* module ], errcheck=self._get_last_error, ) self.Asap3CreateParameterTemplate = self._map_symbol( func_name="Asap3CreateParameterTemplate", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(cnp_class.TParamTemplateHdl), # < TParamTemplateHdl* paramHandle ctypes.c_char_p, # > char* name = nullptr ], errcheck=self._get_last_error, ) self.Asap3CreateSBLConfiguration = self._map_symbol( func_name="Asap3CreateSBLConfiguration", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char* ipAdress ctypes.c_int, # > int port = 9815 ], errcheck=self._get_last_error, ) self.Asap3DefineRecorder = self._map_symbol( func_name="Asap3DefineRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *RecorderName ctypes.POINTER(cnp_class.TRecorderID), # < TRecorderID * trecorder cnp_class.enum_type, # > TRecorderType RecorderType=eTRecorderTypeMDF ], errcheck=self._get_last_error, ) self.Asap3DiagCreateRawRequest = self._map_symbol( func_name="Asap3DiagCreateRawRequest", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(wintypes.BYTE), # < BYTE *ServiceBytes ctypes.c_uint, # > unsigned int length ctypes.POINTER(cnp_class.TAsap3DiagHdl), # < TAsap3DiagHdl *hDiag ], errcheck=self._get_last_error, ) self.Asap3DiagCreateRawRequest2 = self._map_symbol( func_name="Asap3DiagCreateRawRequest2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(wintypes.BYTE), # < BYTE *Bytes ctypes.c_uint, # > unsigned int length ctypes.POINTER(cnp_class.TAsap3DiagHdl), # < TAsap3DiagHdl *hDiag ], errcheck=self._get_last_error, ) self.Asap3DiagCreateSymbolicRequest = self._map_symbol( func_name="Asap3DiagCreateSymbolicRequest", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *ServiceName ctypes.POINTER(cnp_class.TAsap3DiagHdl), # < TAsap3DiagHdl *hDiag ], errcheck=self._get_last_error, ) self.Asap3DiagEnableTesterPresent = self._map_symbol( func_name="Asap3DiagEnableTesterPresent", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_bool, # > bool enable ], errcheck=self._get_last_error, ) self.Asap3DiagExecute = self._map_symbol( func_name="Asap3DiagExecute", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag wintypes.BOOL, # > BOOL SupressPositiveResponse ], errcheck=self._get_last_error, ) self.Asap3DiagExecuteJob = self._map_symbol( func_name="Asap3DiagExecuteJob", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *job ctypes.c_char_p, # > char *commandline ctypes.c_bool, # > bool reserved ctypes.POINTER(ctypes.POINTER(cnp_class.DiagJobResponse)), # < DiagJobResponse** jobResponse ], errcheck=self._get_last_error, ) self.Asap3DiagGetComplexIterationCount = self._map_symbol( func_name="Asap3DiagGetComplexIterationCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *Parameter ctypes.c_long, # > long ResponseID ctypes.POINTER(ctypes.c_ulong), # < unsigned long *Iteration ], errcheck=self._get_last_error, ) self.Asap3DiagGetComplexNumericResponseParameter = self._map_symbol( func_name="Asap3DiagGetComplexNumericResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.c_char_p, # > char *SubParameter ctypes.c_ulong, # > unsigned long InterationIndex ctypes.POINTER(cnp_class.DiagNumericParameter), # < DiagNumericParameter *Parameter ], errcheck=self._get_last_error, ) self.Asap3DiagGetComplexRawResponseParameter = self._map_symbol( func_name="Asap3DiagGetComplexRawResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.c_char_p, # > char *SubParameter ctypes.c_ulong, # > unsigned long InterationIndex ctypes.c_char_p, # > char *Data ctypes.POINTER(wintypes.DWORD), # < DWORD *Size ], errcheck=self._get_last_error, ) self.Asap3DiagGetComplexStringResponseParameter = self._map_symbol( func_name="Asap3DiagGetComplexStringResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.c_char_p, # > char *SubParameter ctypes.c_ulong, # > unsigned long InterationIndex ctypes.c_char_p, # > char *Data ctypes.POINTER(wintypes.DWORD), # < DWORD *Size ], errcheck=self._get_last_error, ) self.Asap3DiagGetNumericResponseParameter = self._map_symbol( func_name="Asap3DiagGetNumericResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.POINTER(cnp_class.DiagNumericParameter), # < DiagNumericParameter * ], errcheck=self._get_last_error, ) self.Asap3DiagGetRawResponseParameter = self._map_symbol( func_name="Asap3DiagGetRawResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.POINTER(ctypes.c_ubyte), # < unsigned char *Data ctypes.POINTER(wintypes.DWORD), # < DWORD *Size ], errcheck=self._get_last_error, ) self.Asap3DiagGetResponseCode = self._map_symbol( func_name="Asap3DiagGetResponseCode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_long, # > long ResponseID ctypes.POINTER(wintypes.BYTE), # < BYTE *Code ], errcheck=self._get_last_error, ) self.Asap3DiagGetResponseCount = self._map_symbol( func_name="Asap3DiagGetResponseCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.POINTER(ctypes.c_uint), # < unsigned int *Count ], errcheck=self._get_last_error, ) self.Asap3DiagGetResponseStream = self._map_symbol( func_name="Asap3DiagGetResponseStream", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.POINTER(wintypes.BYTE), # < BYTE* Stream ctypes.POINTER(wintypes.DWORD), # < DWORD *Size ctypes.c_long, # > long ResponseID ], errcheck=self._get_last_error, ) self.Asap3DiagGetServiceState = self._map_symbol( func_name="Asap3DiagGetServiceState", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.POINTER(cnp_class.enum_type), # < eServiceStates *State ], errcheck=self._get_last_error, ) self.Asap3DiagGetStringResponseParameter = self._map_symbol( func_name="Asap3DiagGetStringResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.c_char_p, # > char *Data ctypes.POINTER(wintypes.DWORD), # < DWORD *Size ], errcheck=self._get_last_error, ) self.Asap3DiagIsComplexResponseParameter = self._map_symbol( func_name="Asap3DiagIsComplexResponseParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char *name ctypes.c_long, # > long ResponseID ctypes.POINTER(wintypes.BOOL), # < BOOL *IsComplex ], errcheck=self._get_last_error, ) self.Asap3DiagIsPositiveResponse = self._map_symbol( func_name="Asap3DiagIsPositiveResponse", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_long, # > long ResponseID ctypes.POINTER(wintypes.BOOL), # < BOOL *IsPositive ], errcheck=self._get_last_error, ) self.Asap3DiagIsTesterPresentEnabled = self._map_symbol( func_name="Asap3DiagIsTesterPresentEnabled", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_bool), # < bool *enabled ], errcheck=self._get_last_error, ) self.Asap3DiagReleaseService = self._map_symbol( func_name="Asap3DiagReleaseService", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ], errcheck=self._get_last_error, ) self.Asap3DiagSetNotificationParameters = self._map_symbol( func_name="Asap3DiagSetNotificationParameters", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag cnp_class.FNCDIAGNOFIFICATION, # > FNCDIAGNOFIFICATION CallbackFunction ctypes.c_void_p, # > void *PrivateData ], errcheck=self._get_last_error, ) self.Asap3DiagSetNumericParameter = self._map_symbol( func_name="Asap3DiagSetNumericParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char* ParameterName ctypes.POINTER(cnp_class.DiagNumericParameter), # < DiagNumericParameter *Parameter ], errcheck=self._get_last_error, ) self.Asap3DiagSetRawParameter = self._map_symbol( func_name="Asap3DiagSetRawParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char* ParameterName ctypes.POINTER(wintypes.BYTE), # < BYTE* ParameterValue wintypes.DWORD, # > DWORD Size ], errcheck=self._get_last_error, ) self.Asap3DiagSetStringParameter = self._map_symbol( func_name="Asap3DiagSetStringParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TAsap3DiagHdl, # > TAsap3DiagHdl hDiag ctypes.c_char_p, # > char* ParameterName ctypes.c_char_p, # > char* ParameterValue ], errcheck=self._get_last_error, ) self.Asap3DisconnectDataAcquisition = self._map_symbol( func_name="Asap3DisconnectDataAcquisition", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3DisconnectFromCANape = self._map_symbol( func_name="Asap3DisconnectFromCANape", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3ECUOnOffline = self._map_symbol( func_name="Asap3ECUOnOffline", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module cnp_class.enum_type, # > TAsap3ECUState State ctypes.c_bool, # > bool download ], errcheck=self._get_last_error, ) self.Asap3EnableBusLoggingRecorderByModule = self._map_symbol( func_name="Asap3EnableBusLoggingRecorderByModule", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID cnp_class.TModulHdl, # > TModulHdl module wintypes.BOOL, # > BOOL enable ], errcheck=self._get_last_error, ) self.Asap3EnableBusLoggingRecorderByNetWork = self._map_symbol( func_name="Asap3EnableBusLoggingRecorderByNetWork", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_char_p, # > char* NetworkName wintypes.BOOL, # > BOOL enable ], errcheck=self._get_last_error, ) self.Asap3EnableRecorder = self._map_symbol( func_name="Asap3EnableRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_bool, # > bool enable ], errcheck=self._get_last_error, ) self.Asap3EnumInterfaceNames = self._map_symbol( func_name="Asap3EnumInterfaceNames", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > TLogicalChannels protocoltype ctypes.c_uint, # > unsigned int index ctypes.POINTER(ctypes.c_char_p), # < char ** CANpName ctypes.POINTER(ctypes.c_char_p), # < char** PhysInterfacename ], errcheck=self._get_last_error, ) self.Asap3ExecuteScript = self._map_symbol( func_name="Asap3ExecuteScript", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_bool, # > bool scriptFile ctypes.c_char_p, # > const char * script ], errcheck=self._get_last_error, ) self.Asap3ExecuteScriptEx = self._map_symbol( func_name="Asap3ExecuteScriptEx", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_bool, # > bool scriptFile ctypes.c_char_p, # > const char * script ctypes.POINTER(cnp_class.TScriptHdl), # < TScriptHdl *hScript ], errcheck=self._get_last_error, ) self.Asap3Exit = self._map_symbol( func_name="Asap3Exit", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3Exit2 = self._map_symbol( func_name="Asap3Exit2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_bool, # > bool close_CANape ], errcheck=self._get_last_error, ) self.Asap3FindParameterTemplate = self._map_symbol( func_name="Asap3FindParameterTemplate", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char* Name ctypes.POINTER(cnp_class.TParamTemplateHdl), # < TParamTemplateHdl* paramHandle ], errcheck=self._get_last_error, ) self.Asap3FlashGetJobCount = self._map_symbol( func_name="Asap3FlashGetJobCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_ulong), # < unsigned long *Count ], errcheck=self._get_last_error, ) self.Asap3FlashGetJobName = self._map_symbol( func_name="Asap3FlashGetJobName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ulong, # > unsigned long index ctypes.c_char_p, # > char *Name ctypes.POINTER(ctypes.c_long), # < long *SizeOfName ], errcheck=self._get_last_error, ) self.Asap3FlashGetJobState = self._map_symbol( func_name="Asap3FlashGetJobState", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_double), # < double *ScriptResult ctypes.POINTER(wintypes.BOOL), # < BOOL *isRunning ctypes.POINTER(ctypes.c_long), # < long *Progress ctypes.c_char_p, # > char *Info ctypes.POINTER(ctypes.c_ulong), # < unsigned long *SizeofInfo ], errcheck=self._get_last_error, ) self.Asap3FlashGetSessionCount = self._map_symbol( func_name="Asap3FlashGetSessionCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_ulong), # < unsigned long *Count ], errcheck=self._get_last_error, ) self.Asap3FlashGetSessionName = self._map_symbol( func_name="Asap3FlashGetSessionName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ulong, # > unsigned long index ctypes.c_char_p, # > char *Name ctypes.POINTER(ctypes.c_long), # < long *SizeOfName ], errcheck=self._get_last_error, ) self.Asap3FlashSetODXContainer = self._map_symbol( func_name="Asap3FlashSetODXContainer", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *ODXContainerfile ], errcheck=self._get_last_error, ) self.Asap3FlashStartFlashJob = self._map_symbol( func_name="Asap3FlashStartFlashJob", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *SessionName ctypes.c_char_p, # > const char *JobName ctypes.c_char_p, # > const char *ConfigFileName ], errcheck=self._get_last_error, ) self.Asap3FlashStopJob = self._map_symbol( func_name="Asap3FlashStopJob", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ], errcheck=self._get_last_error, ) self.Asap3GetApplicationName = self._map_symbol( func_name="Asap3GetApplicationName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Name ctypes.POINTER(ctypes.c_ulong), # < unsigned long *Size ], errcheck=self._get_last_error, ) self.Asap3GetApplicationSettings = self._map_symbol( func_name="Asap3GetApplicationSettings", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char* Keyname ctypes.POINTER(cnp_class.TSettingsParam), # < TSettingsParam* ResponseData ], errcheck=self._get_last_error, ) self.Asap3GetApplicationVersion = self._map_symbol( func_name="Asap3GetApplicationVersion", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(cnp_class.Appversion), # < Appversion * version ], errcheck=self._get_last_error, ) self.Asap3GetAsap2 = self._map_symbol( func_name="Asap3GetAsap2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_char_p), # < char ** asap2Fname ], errcheck=self._get_last_error, ) self.Asap3GetCANapeMode = self._map_symbol( func_name="Asap3GetCANapeMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(cnp_class.TCANapeModes), # < tCANapeModes* modes ], errcheck=self._get_last_error, ) self.Asap3GetCNAFilename = self._map_symbol( func_name="Asap3GetCNAFilename", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_char), # > char *FileName ctypes.POINTER(ctypes.c_uint), # < unsigned int *Size ], errcheck=self._get_last_error, ) self.Asap3GetCanapeModuleParam = self._map_symbol( func_name="Asap3GetCanapeModuleParam", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *param ctypes.c_char_p, # > char *value ctypes.POINTER(ctypes.c_uint), # < unsigned int *sizeofValue ], errcheck=self._get_last_error, ) self.Asap3GetCanapeProjectParam = self._map_symbol( func_name="Asap3GetCanapeProjectParam", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Section ctypes.c_char_p, # > char *param ctypes.c_char_p, # > char *value ctypes.POINTER(ctypes.c_uint), # < unsigned int *sizeofValue ], errcheck=self._get_last_error, ) self.Asap3GetChnlDefaultRaster = self._map_symbol( func_name="Asap3GetChnlDefaultRaster", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *measurementObjectName ctypes.POINTER(ctypes.c_ushort), # < unsigned short *taskId ctypes.POINTER(ctypes.c_ushort), # < unsigned short *downSampling ], errcheck=self._get_last_error, ) self.Asap3GetCommunicationType = self._map_symbol( func_name="Asap3GetCommunicationType", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_char_p), # < char ** commType ], errcheck=self._get_last_error, ) self.Asap3GetCurrentValues = self._map_symbol( func_name="Asap3GetCurrentValues", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl _module ctypes.c_ushort, # > unsigned short taskId ctypes.POINTER(cnp_class.TTime), # < ::TTime * timeStamp ctypes.POINTER(ctypes.c_double), # < double * values ctypes.c_ushort, # > unsigned short maxValues ], errcheck=self._get_last_error, ) self.Asap3GetDBObjectComment = self._map_symbol( func_name="Asap3GetDBObjectComment", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl mod ctypes.c_char_p, # > char* DBObjname ctypes.c_char_p, # > char* Comment ctypes.POINTER(wintypes.UINT), # < UINT* size ], errcheck=self._get_last_error, ) self.Asap3GetDBObjectInfo = self._map_symbol( func_name="Asap3GetDBObjectInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *ObjectName ctypes.POINTER(cnp_class.DBObjectInfo), # < DBObjectInfo *Info ], errcheck=self._get_last_error, ) self.Asap3GetDBObjectUnit = self._map_symbol( func_name="Asap3GetDBObjectUnit", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *DatabaseObjectName ctypes.c_char_p, # > char *UnitName ctypes.POINTER(wintypes.UINT), # < UINT *Size ], errcheck=self._get_last_error, ) self.Asap3GetDatabaseInfo = self._map_symbol( func_name="Asap3GetDatabaseInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.DBFileInfo), # < DBFileInfo *Info ], errcheck=self._get_last_error, ) self.Asap3GetDatabaseObjects = self._map_symbol( func_name="Asap3GetDatabaseObjects", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_char), # > char *DataObjects ctypes.POINTER(wintypes.UINT), # < UINT *MaxSize cnp_class.enum_type, # > TAsap3DBOType DbType ], errcheck=self._get_last_error, ) self.Asap3GetDatabaseObjectsByType = self._map_symbol( func_name="Asap3GetDatabaseObjectsByType", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *DataObjects ctypes.POINTER(wintypes.UINT), # < UINT *MaxSize cnp_class.enum_type, # > TAsap3DBOType DbType ctypes.c_ulong, # > unsigned long TypeFilter ], errcheck=self._get_last_error, ) self.Asap3GetEcuDriverType = self._map_symbol( func_name="Asap3GetEcuDriverType", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.enum_type), # < tDriverType *DriverType ], errcheck=self._get_last_error, ) self.Asap3GetEcuTasks = self._map_symbol( func_name="Asap3GetEcuTasks", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.TTaskInfo), # < TTaskInfo * taskInfo ctypes.POINTER(ctypes.c_ushort), # < unsigned short * noTasks ctypes.c_ushort, # > unsigned short maxTaskInfo ], errcheck=self._get_last_error, ) self.Asap3GetEcuTasks2 = self._map_symbol( func_name="Asap3GetEcuTasks2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.TTaskInfo2), # < TTaskInfo2 * taskInfo2 ctypes.POINTER(ctypes.c_ushort), # < unsigned short *noTasks ctypes.c_ushort, # > unsigned short maxTaskInfo ], errcheck=self._get_last_error, ) self.Asap3GetFifoLevel = self._map_symbol( func_name="Asap3GetFifoLevel", restype=ctypes.c_long, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ushort, # > unsigned short taskId ], ) self.Asap3GetInteractiveMode = self._map_symbol( func_name="Asap3GetInteractiveMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_bool), # < bool *mode ], errcheck=self._get_last_error, ) self.Asap3GetInterfaceNames = self._map_symbol( func_name="Asap3GetInterfaceNames", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > TLogicalChannels protocoltype ctypes.POINTER(ctypes.c_int), # < int *Count ], errcheck=self._get_last_error, ) self.Asap3GetItemRecorderList = self._map_symbol( func_name="Asap3GetItemRecorderList", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char* MeasurementObject ctypes.POINTER(ctypes.c_int), # < int* count ctypes.POINTER(cnp_class.TRecorderID), # < TRecorderID* RecorderIDList ], errcheck=self._get_last_error, ) self.Asap3GetLastError = self._map_symbol( func_name="Asap3GetLastError", restype=ctypes.c_short, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], ) self.Asap3GetMdfFilename = self._map_symbol( func_name="Asap3GetMdfFilename", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_char_p), # < char ** mdfFilename ], errcheck=self._get_last_error, ) self.Asap3GetMeasurementListEntries = self._map_symbol( func_name="Asap3GetMeasurementListEntries", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.POINTER(cnp_class.MeasurementListEntries)), # < MeasurementListEntries **Items ], errcheck=self._get_last_error, ) self.Asap3GetMeasurementState = self._map_symbol( func_name="Asap3GetMeasurementState", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(cnp_class.enum_type), # < tMeasurementState *State ], errcheck=self._get_last_error, ) self.Asap3GetMemoryPage = self._map_symbol( func_name="Asap3GetMemoryPage", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.enum_type), # < e_RamMode *mode ], errcheck=self._get_last_error, ) self.Asap3GetModuleCount = self._map_symbol( func_name="Asap3GetModuleCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_ulong), # < unsigned long *count ], errcheck=self._get_last_error, ) self.Asap3GetModuleHandle = self._map_symbol( func_name="Asap3GetModuleHandle", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *moduleName ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * module ], errcheck=self._get_last_error, ) self.Asap3GetModuleName = self._map_symbol( func_name="Asap3GetModuleName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_char_p), # < char **moduleName ], errcheck=self._get_last_error, ) self.Asap3GetModuleSecJobName = self._map_symbol( func_name="Asap3GetModuleSecJobName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char* jobName ctypes.POINTER(wintypes.DWORD), # < DWORD* sizeofBuffer ], errcheck=self._get_last_error, ) self.Asap3GetNetworkDevices = self._map_symbol( func_name="Asap3GetNetworkDevices", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Name ctypes.POINTER(cnp_class.TModulHdl), # < TModulHdl * ModuleArray ctypes.POINTER(ctypes.c_uint), # < unsigned int *count ], errcheck=self._get_last_error, ) self.Asap3GetNetworkName = self._map_symbol( func_name="Asap3GetNetworkName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char *Name ctypes.POINTER(ctypes.c_uint), # < unsigned int * sizeofName ], errcheck=self._get_last_error, ) self.Asap3GetNextSample = self._map_symbol( func_name="Asap3GetNextSample", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ushort, # > unsigned short taskId ctypes.POINTER(cnp_class.TTime), # < ::TTime * timeStamp ctypes.POINTER(ctypes.POINTER(ctypes.c_double)), # < double ** values ], errcheck=self._get_last_error, ) self.Asap3GetNextSampleBlock = self._map_symbol( func_name="Asap3GetNextSampleBlock", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl _module ctypes.c_ushort, # > unsigned short taskId ctypes.c_long, # > long count_of_Samples ctypes.POINTER(ctypes.POINTER(cnp_class.TSampleBlockObject)), # < tSampleBlockObject ** values ], errcheck=self._get_last_error, ) self.Asap3GetParameterCount = self._map_symbol( func_name="Asap3GetParameterCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_ushort), # < unsigned short* count ], errcheck=self._get_last_error, ) self.Asap3GetParameterInfoByClass = self._map_symbol( func_name="Asap3GetParameterInfoByClass", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > eTParameterClass type ctypes.POINTER(cnp_class.enum_type), # < eTSettingsParameterType* settingstype ctypes.POINTER(ctypes.c_ushort), # < unsigned short* maxsize ctypes.POINTER(ctypes.c_char_p), # < char** name ], errcheck=self._get_last_error, ) self.Asap3GetParameterInfoByClassName = self._map_symbol( func_name="Asap3GetParameterInfoByClassName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char* classname ctypes.POINTER(cnp_class.enum_type), # < eTParameterClass* type ctypes.POINTER(cnp_class.enum_type), # < eTSettingsParameterType* settingstype ctypes.POINTER(ctypes.c_ushort), # < unsigned short* maxsize ], errcheck=self._get_last_error, ) self.Asap3GetParameterInfoByIndex = self._map_symbol( func_name="Asap3GetParameterInfoByIndex", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_uint, # > unsigned int index ctypes.POINTER(cnp_class.enum_type), # < eTParameterClass*type ctypes.POINTER(cnp_class.enum_type), # < eTSettingsParameterType* settingstype ctypes.POINTER(ctypes.c_ushort), # < unsigned short* maxsize ctypes.POINTER(ctypes.c_char_p), # < char** name ], errcheck=self._get_last_error, ) self.Asap3GetParameterTemplateName = self._map_symbol( func_name="Asap3GetParameterTemplateName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ctypes.POINTER(ctypes.c_char_p), # < char** Name ], errcheck=self._get_last_error, ) self.Asap3GetProjectDirectory = self._map_symbol( func_name="Asap3GetProjectDirectory", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # < char* directory ctypes.POINTER(ctypes.c_ulong), # < unsigned long *size ], errcheck=self._get_last_error, ) self.Asap3GetRecorderByIndex = self._map_symbol( func_name="Asap3GetRecorderByIndex", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_ulong, # > unsigned long index ctypes.POINTER(cnp_class.TRecorderID), # < TRecorderID *recorderID ], errcheck=self._get_last_error, ) self.Asap3GetRecorderByName = self._map_symbol( func_name="Asap3GetRecorderByName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char * recordername ctypes.POINTER(cnp_class.TRecorderID), # < TRecorderID *recorderID ], errcheck=self._get_last_error, ) self.Asap3GetRecorderCount = self._map_symbol( func_name="Asap3GetRecorderCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_ulong), # < unsigned long *count ], errcheck=self._get_last_error, ) self.Asap3GetRecorderDataReduction = self._map_symbol( func_name="Asap3GetRecorderDataReduction", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.POINTER(ctypes.c_int), # < int *Reduction ], errcheck=self._get_last_error, ) self.Asap3GetRecorderMdfFileName = self._map_symbol( func_name="Asap3GetRecorderMdfFileName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_char_p, # < char *FileName ctypes.POINTER(wintypes.DWORD), # < DWORD *size ], errcheck=self._get_last_error, ) self.Asap3GetRecorderName = self._map_symbol( func_name="Asap3GetRecorderName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_char_p, # < char * recorderName ctypes.POINTER(ctypes.c_long), # < long *Size ], errcheck=self._get_last_error, ) self.Asap3GetRecorderState = self._map_symbol( func_name="Asap3GetRecorderState", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.POINTER(cnp_class.enum_type), # < EnRecorderState *State ], errcheck=self._get_last_error, ) self.Asap3GetRecorderType = self._map_symbol( func_name="Asap3GetRecorderType", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.POINTER(cnp_class.enum_type), # < TRecorderType *RecorderType ], errcheck=self._get_last_error, ) self.Asap3GetScriptResultString = self._map_symbol( func_name="Asap3GetScriptResultString", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ctypes.c_char_p, # < char*resultString ctypes.POINTER(wintypes.DWORD), # < DWORD *sizeofBuffer ], errcheck=self._get_last_error, ) self.Asap3GetScriptResultValue = self._map_symbol( func_name="Asap3GetScriptResultValue", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ctypes.POINTER(ctypes.c_double), # < double *Value ], errcheck=self._get_last_error, ) self.Asap3GetScriptState = self._map_symbol( func_name="Asap3GetScriptState", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ctypes.POINTER(cnp_class.enum_type), # < TScriptStatus *scrstate ctypes.c_char_p, # > char *textBuffer ctypes.POINTER(wintypes.DWORD), # < DWORD *sizeofbuffer ], errcheck=self._get_last_error, ) self.Asap3GetSecProfileCount = self._map_symbol( func_name="Asap3GetSecProfileCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_uint), # < unsigned int* count ], errcheck=self._get_last_error, ) self.Asap3GetSecProfileIdentifier = self._map_symbol( func_name="Asap3GetSecProfileIdentifier", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char* identifiers ctypes.POINTER(wintypes.DWORD), # < DWORD* sizeofBuffer ], errcheck=self._get_last_error, ) self.Asap3GetSecProfileInfo = self._map_symbol( func_name="Asap3GetSecProfileInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_uint, # > unsigned int id ctypes.POINTER(cnp_class.SecProfileEntry), # < SecProfileEntry* entry ], errcheck=self._get_last_error, ) self.Asap3GetSelectedRecorder = self._map_symbol( func_name="Asap3GetSelectedRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(cnp_class.TRecorderID), # < TRecorderID *recorderID ], errcheck=self._get_last_error, ) self.Asap3GetTemplateParameterByIndex = self._map_symbol( func_name="Asap3GetTemplateParameterByIndex", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ctypes.c_uint, # > unsigned int index ctypes.POINTER(cnp_class.enum_type), # < eTParameterClass* type ctypes.POINTER(cnp_class.enum_type), # < eTSettingsParameterType* settingstype ctypes.POINTER(ctypes.c_ushort), # < unsigned short* maxsize ctypes.POINTER(ctypes.c_void_p), # < void** data ], errcheck=self._get_last_error, ) self.Asap3GetTemplateParameterCount = self._map_symbol( func_name="Asap3GetTemplateParameterCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ctypes.POINTER(ctypes.c_ulong), # < unsigned long* count ], errcheck=self._get_last_error, ) self.Asap3GetTemplateParameterInfo = self._map_symbol( func_name="Asap3GetTemplateParameterInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle cnp_class.enum_type, # > eTParameterClass type ctypes.POINTER(cnp_class.enum_type), # < eTSettingsParameterType* settingstype ctypes.POINTER(ctypes.c_ushort), # < unsigned short* maxsize ctypes.POINTER(ctypes.c_void_p), # < void** data ], errcheck=self._get_last_error, ) self.Asap3HasMCD3License = self._map_symbol( func_name="Asap3HasMCD3License", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_bool), # < bool *available ], errcheck=self._get_last_error, ) self.Asap3HasResumeMode = self._map_symbol( func_name="Asap3HasResumeMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_bool), # < bool *possible ], errcheck=self._get_last_error, ) self.Asap3Init = self._map_symbol( func_name="Asap3Init", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl * hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *workingDir ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_bool, # > bool debugMode ], errcheck=self._get_last_error, ) self.Asap3Init2 = self._map_symbol( func_name="Asap3Init2", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl * hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *workingDir ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_ulong, # > unsigned long sampleSize ctypes.c_bool, # > bool debugMode ], errcheck=self._get_last_error, ) self.Asap3Init3 = self._map_symbol( func_name="Asap3Init3", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl * hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *workingDir ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_ulong, # > unsigned long sampleSize ctypes.c_bool, # > bool debugMode ctypes.c_bool, # > bool clearDeviceList ], errcheck=self._get_last_error, ) self.Asap3Init4 = self._map_symbol( func_name="Asap3Init4", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl * hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *workingDir ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_ulong, # > unsigned long sampleSize ctypes.c_bool, # > bool debugMode ctypes.c_bool, # > bool clearDeviceList ctypes.c_bool, # > bool bHexmode ], errcheck=self._get_last_error, ) self.Asap3Init5 = self._map_symbol( func_name="Asap3Init5", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl * hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *workingDir ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_ulong, # > unsigned long sampleSize ctypes.c_bool, # > bool debugMode ctypes.c_bool, # > bool clearDeviceList ctypes.c_bool, # > bool bHexmode ctypes.c_bool, # > bool bModalMode ], errcheck=self._get_last_error, ) self.Asap3Init6 = self._map_symbol( func_name="Asap3Init6", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(cnp_class.TAsap3Hdl), # < TAsap3Hdl *hdl ctypes.c_ulong, # > unsigned long responseTimeout ctypes.c_char_p, # > const char *projectFile ctypes.c_ulong, # > unsigned long fifoSize ctypes.c_ulong, # > unsigned long sampleSize ctypes.c_bool, # > bool debugMode ctypes.c_bool, # > bool clearDeviceList ctypes.c_bool, # > bool bHexmode ctypes.c_bool, # > bool bModalMode ctypes.POINTER(cnp_class.TApplicationID), # < TApplicationID *strApplication ], errcheck=self._get_last_error, ) self.Asap3IsECUOnline = self._map_symbol( func_name="Asap3IsECUOnline", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(cnp_class.enum_type), # < TAsap3ECUState *State ], errcheck=self._get_last_error, ) self.Asap3IsModuleActive = self._map_symbol( func_name="Asap3IsModuleActive", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_bool), # < bool *activate ], errcheck=self._get_last_error, ) self.Asap3IsNANUsed = self._map_symbol( func_name="Asap3IsNANUsed", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_bool), # < bool *use ], errcheck=self._get_last_error, ) self.Asap3IsNetworkActivated = self._map_symbol( func_name="Asap3IsNetworkActivated", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Name ctypes.POINTER(ctypes.c_bool), # < bool *activated ], errcheck=self._get_last_error, ) self.Asap3IsRecorderBusLoggingEnableByModule = self._map_symbol( func_name="Asap3IsRecorderBusLoggingEnableByModule", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(wintypes.BOOL), # < BOOL *enable ], errcheck=self._get_last_error, ) self.Asap3IsRecorderBusLoggingEnableByNetWork = self._map_symbol( func_name="Asap3IsRecorderBusLoggingEnableByNetWork", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_char_p, # > char* NetworkName ctypes.POINTER(wintypes.BOOL), # < BOOL *enable ], errcheck=self._get_last_error, ) self.Asap3IsRecorderEnabled = self._map_symbol( func_name="Asap3IsRecorderEnabled", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.POINTER(ctypes.c_bool), # < bool *enabled ], errcheck=self._get_last_error, ) self.Asap3IsRestartMeasurementOnErrorEnabled = self._map_symbol( func_name="Asap3IsRestartMeasurementOnErrorEnabled", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_bool), # < bool *restart ], errcheck=self._get_last_error, ) self.Asap3IsResumeModeActive = self._map_symbol( func_name="Asap3IsResumeModeActive", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_bool), # < bool *enabled ], errcheck=self._get_last_error, ) self.Asap3IsTimeSyncEnabled = self._map_symbol( func_name="Asap3IsTimeSyncEnabled", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_bool), # < bool *enabled ], errcheck=self._get_last_error, ) self.Asap3IsUsCANapeVersion = self._map_symbol( func_name="Asap3IsUsCANapeVersion", restype=ctypes.c_bool, argtypes=[ ctypes.POINTER(wintypes.BOOL), # < BOOL *USVersion ], errcheck=self._get_last_error, ) self.Asap3IsValidParameterTemplate = self._map_symbol( func_name="Asap3IsValidParameterTemplate", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ], errcheck=self._get_last_error, ) self.Asap3LoadCNAFile = self._map_symbol( func_name="Asap3LoadCNAFile", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char* configFileName ], errcheck=self._get_last_error, ) self.Asap3MDFConvert = self._map_symbol( func_name="Asap3MDFConvert", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *converterID ctypes.c_char_p, # > const char *mdfFilename ctypes.c_char_p, # > const char *destFilename ctypes.c_bool, # > bool overwrite ], errcheck=self._get_last_error, ) self.Asap3MDFConverterCount = self._map_symbol( func_name="Asap3MDFConverterCount", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.POINTER(ctypes.c_int), # < int *count ], errcheck=self._get_last_error, ) self.Asap3MDFConverterInfo = self._map_symbol( func_name="Asap3MDFConverterInfo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_int, # > int index ctypes.POINTER(cnp_class.TConverterInfo), # < TConverterInfo* item ], errcheck=self._get_last_error, ) self.Asap3MatlabConversion = self._map_symbol( func_name="Asap3MatlabConversion", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *mdfFilename ctypes.c_char_p, # > const char *matlabFilename ], errcheck=self._get_last_error, ) self.Asap3MatlabConversionAsync = self._map_symbol( func_name="Asap3MatlabConversionAsync", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *mdfFilename ctypes.c_char_p, # > const char *matlabFilename ], errcheck=self._get_last_error, ) self.Asap3ModuleActivation = self._map_symbol( func_name="Asap3ModuleActivation", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_bool, # > bool activate ], errcheck=self._get_last_error, ) self.Asap3OpenDisplay = self._map_symbol( func_name="Asap3OpenDisplay", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *Title ctypes.c_int, # > int Editable ctypes.c_int, # > int Graphical ctypes.c_int, # > int CountParameterLabelsList ctypes.POINTER(ctypes.c_char_p), # < const char *ParameterLabelList[] ctypes.c_char_p, # > const char *DataDescFile ctypes.c_char_p, # > const char *DataVersFile ctypes.c_int, # > int CountAppHistList ctypes.POINTER(ctypes.c_char_p), # < const char *AppHistLabelList[] ctypes.POINTER(ctypes.c_char_p), # < const char *AppHistTextList[] ctypes.c_char_p, # > const char *AppHistDefault ctypes.POINTER(ctypes.c_int), # < int *CountModified ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), # < const char **ModifiedLabelList[] ctypes.POINTER(ctypes.c_int), # < int *CountErrors ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), # < const char **ErrorLabelList[] ctypes.POINTER(ctypes.c_int), # < int *CountModAppList ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), # < const char **ModAppHistLabelList[] ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), # < const char **ModAppHistTextList[] ], errcheck=self._get_last_error, ) self.Asap3OpenDisplayForFile = self._map_symbol( func_name="Asap3OpenDisplayForFile", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *Patternfile ], errcheck=self._get_last_error, ) self.Asap3PauseRecorder = self._map_symbol( func_name="Asap3PauseRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_bool, # > bool Pause ], errcheck=self._get_last_error, ) self.Asap3PopupDebugWindow = self._map_symbol( func_name="Asap3PopupDebugWindow", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3ReadByAddress = self._map_symbol( func_name="Asap3ReadByAddress", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ulong, # > unsigned long addr ctypes.c_ubyte, # > unsigned char addrExt ctypes.c_ulong, # > unsigned long size ctypes.POINTER(ctypes.c_ubyte), # < unsigned char * data ], errcheck=self._get_last_error, ) self.Asap3ReadCalibrationObject = self._map_symbol( func_name="Asap3ReadCalibrationObject", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName cnp_class.enum_type, # > TFormat format ctypes.POINTER(cnp_class.TCalibrationObjectValue), # < TCalibrationObjectValue * value ], errcheck=self._get_last_error, ) self.Asap3ReadCalibrationObject2 = self._map_symbol( func_name="Asap3ReadCalibrationObject2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName cnp_class.enum_type, # > TFormat format ctypes.c_bool, # > bool forceupload ctypes.POINTER(cnp_class.TCalibrationObjectValue), # < TCalibrationObjectValue *value ], errcheck=self._get_last_error, ) self.Asap3ReadCalibrationObjectEx = self._map_symbol( func_name="Asap3ReadCalibrationObjectEx", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName cnp_class.enum_type, # > TFormat format ctypes.POINTER(cnp_class.TCalibrationObjectValueEx), # < TCalibrationObjectValueEx * value ], errcheck=self._get_last_error, ) self.Asap3ReadObjectParameter = self._map_symbol( func_name="Asap3ReadObjectParameter", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *objectName cnp_class.enum_type, # > TFormat format ctypes.POINTER(cnp_class.enum_type), # < TAsap3DataType * type ctypes.POINTER(ctypes.c_ulong), # < unsigned long * address ctypes.POINTER(ctypes.c_double), # < double * min ctypes.POINTER(ctypes.c_double), # < double * max ctypes.POINTER(ctypes.c_double), # < double * increment ], errcheck=self._get_last_error, ) self.Asap3RegisterCallBack = self._map_symbol( func_name="Asap3RegisterCallBack", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > ASAP3_EVENT_CODE eventID cnp_class.EVENT_CALLBACK, # > void *fnc ctypes.c_ulong, # > unsigned long privateData ], errcheck=self._get_last_error, ) self.Asap3ReleaseInterfaceNames = self._map_symbol( func_name="Asap3ReleaseInterfaceNames", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > TLogicalChannels protocoltype ], errcheck=self._get_last_error, ) self.Asap3ReleaseModule = self._map_symbol( func_name="Asap3ReleaseModule", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ], errcheck=self._get_last_error, ) self.Asap3ReleaseParameterTemplate = self._map_symbol( func_name="Asap3ReleaseParameterTemplate", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle ], errcheck=self._get_last_error, ) self.Asap3ReleaseResultList = self._map_symbol( func_name="Asap3ReleaseResultList", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_int, # > const int CountResults ctypes.POINTER(ctypes.c_char_p), # < const char *ResultList[] ], errcheck=self._get_last_error, ) self.Asap3ReleaseScript = self._map_symbol( func_name="Asap3ReleaseScript", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ], errcheck=self._get_last_error, ) self.Asap3ReleaseTemplateParameterItem = self._map_symbol( func_name="Asap3ReleaseTemplateParameterItem", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle cnp_class.enum_type, # > eTParameterClass type ], errcheck=self._get_last_error, ) self.Asap3RemoveItemFromRecorder = self._map_symbol( func_name="Asap3RemoveItemFromRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char* MeasurementObject cnp_class.TRecorderID, # > TRecorderID RecorderID ], errcheck=self._get_last_error, ) self.Asap3RemoveRecorder = self._map_symbol( func_name="Asap3RemoveRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ], errcheck=self._get_last_error, ) self.Asap3ResetDataAcquisitionChnls = self._map_symbol( func_name="Asap3ResetDataAcquisitionChnls", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3ResetDataAcquisitionChnlsByModule = self._map_symbol( func_name="Asap3ResetDataAcquisitionChnlsByModule", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl hmod ], errcheck=self._get_last_error, ) self.Asap3RestartMeasurementOnError = self._map_symbol( func_name="Asap3RestartMeasurementOnError", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_bool, # > bool restart ], errcheck=self._get_last_error, ) self.Asap3RestoreWndSize = self._map_symbol( func_name="Asap3RestoreWndSize", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3RestoreWndSize2 = self._map_symbol( func_name="Asap3RestoreWndSize2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_long, # > long params ], errcheck=self._get_last_error, ) self.Asap3SaveDebugWindow = self._map_symbol( func_name="Asap3SaveDebugWindow", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *fileName ], errcheck=self._get_last_error, ) self.Asap3SelectLabelList = self._map_symbol( func_name="Asap3SelectLabelList", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Name ctypes.c_bool, # > bool includeMeaMode = false ctypes.c_int, # > int mode = 1 ], errcheck=self._get_last_error, ) self.Asap3SelectObjects = self._map_symbol( func_name="Asap3SelectObjects", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module cnp_class.enum_type, # > TObjectType type ctypes.c_char_p, # > const char *fname ], errcheck=self._get_last_error, ) self.Asap3SelectRecorder = self._map_symbol( func_name="Asap3SelectRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ], errcheck=self._get_last_error, ) self.Asap3SetApplicationName = self._map_symbol( func_name="Asap3SetApplicationName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *AppName ], errcheck=self._get_last_error, ) self.Asap3SetCanapeModuleParam = self._map_symbol( func_name="Asap3SetCanapeModuleParam", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > char* param ctypes.c_char_p, # > char *value ], errcheck=self._get_last_error, ) self.Asap3SetCanapeProjectParam = self._map_symbol( func_name="Asap3SetCanapeProjectParam", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *Section ctypes.c_char_p, # > char *param ctypes.c_char_p, # > char* value ], errcheck=self._get_last_error, ) self.Asap3SetInteractiveMode = self._map_symbol( func_name="Asap3SetInteractiveMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_bool, # > bool mode ], errcheck=self._get_last_error, ) self.Asap3SetMdfFilename = self._map_symbol( func_name="Asap3SetMdfFilename", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > const char *mdfFilename ], errcheck=self._get_last_error, ) self.Asap3SetRecorderDataReduction = self._map_symbol( func_name="Asap3SetRecorderDataReduction", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_int, # > int Reduction ], errcheck=self._get_last_error, ) self.Asap3SetRecorderMdfFileName = self._map_symbol( func_name="Asap3SetRecorderMdfFileName", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_char_p, # > char *FileName ], errcheck=self._get_last_error, ) self.Asap3SetResumeMode = self._map_symbol( func_name="Asap3SetResumeMode", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ], errcheck=self._get_last_error, ) self.Asap3SetTCPOptions = self._map_symbol( func_name="Asap3SetTCPOptions", restype=ctypes.c_bool, argtypes=[ ctypes.c_char_p, # > const char* ipAddress ctypes.c_ulong, # > unsigned long portNumber ], errcheck=self._get_last_error, ) self.Asap3SetTemplateParameterItem = self._map_symbol( func_name="Asap3SetTemplateParameterItem", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TParamTemplateHdl, # > TParamTemplateHdl paramHandle cnp_class.enum_type, # > eTParameterClass type ctypes.c_void_p, # > void* data ctypes.c_ushort, # > unsigned short sizeofdata ], errcheck=self._get_last_error, ) self.Asap3SetupDataAcquisitionChnl = self._map_symbol( func_name="Asap3SetupDataAcquisitionChnl", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *measurementObjectName cnp_class.enum_type, # > TFormat format ctypes.c_ushort, # > unsigned short taskId ctypes.c_ushort, # > unsigned short pollingRate ctypes.c_bool, # > bool save2File ], errcheck=self._get_last_error, ) self.Asap3SetupDataAcquisitionChnl2 = self._map_symbol( func_name="Asap3SetupDataAcquisitionChnl2", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *measurementObjectName cnp_class.enum_type, # > TFormat format ctypes.c_ushort, # > unsigned short taskId ctypes.c_ushort, # > unsigned short pollingRate ctypes.c_bool, # > bool save2File ctypes.c_bool, # > bool transfer_To_Client ], errcheck=self._get_last_error, ) self.Asap3SetupFifo = self._map_symbol( func_name="Asap3SetupFifo", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_ushort, # > unsigned short nFifoSize ctypes.POINTER(cnp_class.TFifoSize), # < tFifoSize fifoSize[] ], errcheck=self._get_last_error, ) self.Asap3StartDataAcquisition = self._map_symbol( func_name="Asap3StartDataAcquisition", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3StartRecorder = self._map_symbol( func_name="Asap3StartRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ], errcheck=self._get_last_error, ) self.Asap3StartResumedDataAcquisition = self._map_symbol( func_name="Asap3StartResumedDataAcquisition", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3StartScript = self._map_symbol( func_name="Asap3StartScript", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ctypes.c_char_p, # > char *Commandline = NULL cnp_class.TModulHdl, # > TModulHdl moduleHdl=ASAP3_INVALID_MODULE_HDL ], errcheck=self._get_last_error, ) self.Asap3StopDataAcquisition = self._map_symbol( func_name="Asap3StopDataAcquisition", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ], errcheck=self._get_last_error, ) self.Asap3StopRecorder = self._map_symbol( func_name="Asap3StopRecorder", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TRecorderID, # > TRecorderID recorderID ctypes.c_bool, # > bool save2Mdf ], errcheck=self._get_last_error, ) self.Asap3StopScript = self._map_symbol( func_name="Asap3StopScript", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TScriptHdl, # > TScriptHdl hScript ], errcheck=self._get_last_error, ) self.Asap3SwitchToMemoryPage = self._map_symbol( func_name="Asap3SwitchToMemoryPage", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module cnp_class.enum_type, # > e_RamMode mode ], errcheck=self._get_last_error, ) self.Asap3TestObject = self._map_symbol( func_name="Asap3TestObject", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char * objectName ctypes.POINTER(cnp_class.enum_type), # < TObjectType * type ], errcheck=self._get_last_error, ) self.Asap3TimeSync = self._map_symbol( func_name="Asap3TimeSync", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_bool, # > bool enabled ], errcheck=self._get_last_error, ) self.Asap3TransmitFile2ClientPc = self._map_symbol( func_name="Asap3TransmitFile2ClientPc", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_char_p, # > char *srcFname ctypes.c_char_p, # > char *dstFname ], errcheck=self._get_last_error, ) self.Asap3UnRegisterCallBack = self._map_symbol( func_name="Asap3UnRegisterCallBack", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.enum_type, # > ASAP3_EVENT_CODE eventID ], errcheck=self._get_last_error, ) self.Asap3UseNAN = self._map_symbol( func_name="Asap3UseNAN", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl ctypes.c_bool, # > bool use ], errcheck=self._get_last_error, ) self.Asap3WriteByAddress = self._map_symbol( func_name="Asap3WriteByAddress", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_ulong, # > unsigned long addr ctypes.c_ubyte, # > unsigned char addrExt ctypes.c_ulong, # > unsigned long size ctypes.POINTER(ctypes.c_ubyte), # < unsigned char * data ], errcheck=self._get_last_error, ) self.Asap3WriteCalibrationObject = self._map_symbol( func_name="Asap3WriteCalibrationObject", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName cnp_class.enum_type, # > TFormat format ctypes.POINTER(cnp_class.TCalibrationObjectValue), # < TCalibrationObjectValue * value ], errcheck=self._get_last_error, ) self.Asap3WriteCalibrationObjectEx = self._map_symbol( func_name="Asap3WriteCalibrationObjectEx", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.c_char_p, # > const char *calibrationObjectName cnp_class.enum_type, # > TFormat format ctypes.POINTER(cnp_class.TCalibrationObjectValueEx), # < TCalibrationObjectValueEx * value ], errcheck=self._get_last_error, ) self.Asap3_CCP_Request = self._map_symbol( func_name="Asap3_CCP_Request", restype=ctypes.c_bool, argtypes=[ cnp_class.TAsap3Hdl, # > TAsap3Hdl hdl cnp_class.TModulHdl, # > TModulHdl module ctypes.POINTER(ctypes.c_ubyte), # < const unsigned char *requestData ctypes.c_ulong, # > unsigned long requestSize ctypes.c_ulong, # > unsigned long responseTimeout ctypes.POINTER(ctypes.c_ubyte), # < unsigned char * responseData ctypes.c_ulong, # > unsigned long maxResponseSize ctypes.POINTER(ctypes.c_ulong), # < unsigned long * responseSize ], errcheck=self._get_last_error, ) # fmt: on @functools.cached_property def version(self) -> Version: _dll_version = cnp_class.version_t() self.Asap3GetVersion(ctypes.byref(_dll_version)) return Version( f"{_dll_version.dllMainVersion}" f".{_dll_version.dllSubVersion}" f".{_dll_version.dllRelease}" ) def _get_last_error(self, result, function, args): if result: return args handle = args[0].contents if hasattr(args[0], "contents") else args[0] error_code = self.Asap3GetLastError(handle) buffer = ctypes.c_char_p() ptr = ctypes.pointer(buffer) self.Asap3ErrorText( handle, error_code, ptr, ) if error_code > 0: error_msg = f"{cnp_constants.ErrorCodes(error_code).name}: {ptr.contents.value.decode('ascii')}" # type: ignore[union-attr] raise CANapeError(error_code, error_msg, function.__name__) return args def _map_symbol( # type: ignore[no-untyped-def] self, func_name: str, restype=None, argtypes=(), errcheck=None, ) -> Callable[..., Any]: """ Map and return a symbol (function) from a C library. A reference to the mapped symbol is also held in the instance :param str func_name: symbol_name :param ctypes.c_* restype: function result type (i.e. ctypes.c_ulong...), defaults to void :param tuple(ctypes.c_* ... ) argtypes: argument types, defaults to no args :param callable errcheck: optional error checking function, see ctypes docs for _FuncPtr """ if argtypes: prototype = ctypes.WINFUNCTYPE(restype, *argtypes) else: prototype = ctypes.WINFUNCTYPE(restype) try: symbol = prototype((func_name, self.windll)) except AttributeError: warning_msg = ( f"Function '{func_name}' not found in " f"{Path(self.windll._name).name} (v{self.version})" ) LOG.warning(warning_msg) # the function is not available, replace it with another function, that will raise a `NotImplementedError` symbol = functools.partial(self._not_implemented, func_name, self.version) # type: ignore[assignment] else: symbol.__name__ = func_name # type: ignore[attr-defined] if errcheck: symbol.errcheck = errcheck func = _synchronize(symbol) return func @staticmethod def _not_implemented( func_name: str, dll_version: Version, *_args: Any, **_kwargs: Any ) -> None: err_msg = f"The function '{func_name}' was not found in CANape DLL version {dll_version}." raise NotImplementedError(err_msg)