py_canoe 3.0.4__py3-none-any.whl → 26.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py_canoe/__init__.py +2 -1
- py_canoe/canoe.py +910 -0
- py_canoe/core/__init__.py +0 -0
- py_canoe/core/application.py +170 -0
- py_canoe/core/bus.py +301 -0
- py_canoe/core/capl.py +59 -0
- py_canoe/core/child_elements/__init__.py +0 -0
- py_canoe/core/child_elements/application_model.py +24 -0
- py_canoe/core/child_elements/application_model_file.py +21 -0
- py_canoe/core/child_elements/application_model_files.py +22 -0
- py_canoe/core/child_elements/application_model_setup.py +15 -0
- py_canoe/core/child_elements/application_models.py +22 -0
- py_canoe/core/child_elements/application_socket.py +11 -0
- py_canoe/core/child_elements/application_specific_module.py +24 -0
- py_canoe/core/child_elements/application_specific_modules.py +16 -0
- py_canoe/core/child_elements/audio_interface.py +28 -0
- py_canoe/core/child_elements/available_modules.py +22 -0
- py_canoe/core/child_elements/basic_module.py +19 -0
- py_canoe/core/child_elements/basic_modules.py +16 -0
- py_canoe/core/child_elements/c_libraries.py +28 -0
- py_canoe/core/child_elements/c_library.py +33 -0
- py_canoe/core/child_elements/can_controller.py +74 -0
- py_canoe/core/child_elements/capl_function.py +17 -0
- py_canoe/core/child_elements/ccp_setup.py +15 -0
- py_canoe/core/child_elements/channel.py +20 -0
- py_canoe/core/child_elements/channels.py +19 -0
- py_canoe/core/child_elements/communication_setup.py +23 -0
- py_canoe/core/child_elements/compile_result.py +22 -0
- py_canoe/core/child_elements/configured_channel.py +48 -0
- py_canoe/core/child_elements/configured_channels.py +21 -0
- py_canoe/core/child_elements/configured_module.py +82 -0
- py_canoe/core/child_elements/configured_modules.py +61 -0
- py_canoe/core/child_elements/connected_modules.py +14 -0
- py_canoe/core/child_elements/data_source.py +42 -0
- py_canoe/core/child_elements/data_source_file.py +21 -0
- py_canoe/core/child_elements/data_source_files.py +22 -0
- py_canoe/core/child_elements/data_source_issue.py +22 -0
- py_canoe/core/child_elements/data_source_issues.py +16 -0
- py_canoe/core/child_elements/data_source_setup.py +17 -0
- py_canoe/core/child_elements/data_sources.py +27 -0
- py_canoe/core/child_elements/database_setup.py +62 -0
- py_canoe/core/child_elements/device.py +34 -0
- py_canoe/core/child_elements/devices.py +13 -0
- py_canoe/core/child_elements/diagnostic.py +22 -0
- py_canoe/core/child_elements/diagnostic_request.py +59 -0
- py_canoe/core/child_elements/diagnostic_response.py +34 -0
- py_canoe/core/child_elements/diagnostic_responses.py +13 -0
- py_canoe/core/child_elements/diagnostics_setup.py +254 -0
- py_canoe/core/child_elements/distributed_mode.py +74 -0
- py_canoe/core/child_elements/encoding.py +27 -0
- py_canoe/core/child_elements/encodings.py +13 -0
- py_canoe/core/child_elements/environment_array.py +13 -0
- py_canoe/core/child_elements/environment_group.py +22 -0
- py_canoe/core/child_elements/environment_info.py +14 -0
- py_canoe/core/child_elements/environment_variable.py +55 -0
- py_canoe/core/child_elements/fdx_files.py +50 -0
- py_canoe/core/child_elements/file_group_data_source.py +17 -0
- py_canoe/core/child_elements/general_setup.py +66 -0
- py_canoe/core/child_elements/macros_setup.py +52 -0
- py_canoe/core/child_elements/mc_ecus.py +428 -0
- py_canoe/core/child_elements/measurement_setup.py +269 -0
- py_canoe/core/child_elements/modules.py +87 -0
- py_canoe/core/child_elements/most_disassembler.py +21 -0
- py_canoe/core/child_elements/most_network_interface.py +4 -0
- py_canoe/core/child_elements/namespace.py +21 -0
- py_canoe/core/child_elements/namespaces.py +19 -0
- py_canoe/core/child_elements/network.py +18 -0
- py_canoe/core/child_elements/network_adapters.py +13 -0
- py_canoe/core/child_elements/nodes.py +119 -0
- py_canoe/core/child_elements/open_configuration_result.py +0 -0
- py_canoe/core/child_elements/panel_setup.py +97 -0
- py_canoe/core/child_elements/participant.py +17 -0
- py_canoe/core/child_elements/participants.py +22 -0
- py_canoe/core/child_elements/ports.py +81 -0
- py_canoe/core/child_elements/replay_collection.py +56 -0
- py_canoe/core/child_elements/security_configuration.py +20 -0
- py_canoe/core/child_elements/security_setup.py +31 -0
- py_canoe/core/child_elements/signals.py +39 -0
- py_canoe/core/child_elements/simulation_setup.py +0 -0
- py_canoe/core/child_elements/single_file_data_source.py +13 -0
- py_canoe/core/child_elements/snippet_setup.py +68 -0
- py_canoe/core/child_elements/standalone_mode.py +0 -0
- py_canoe/core/child_elements/start_value_list.py +0 -0
- py_canoe/core/child_elements/symbol_mappings.py +0 -0
- py_canoe/core/child_elements/tcp_ip_stack_setting.py +0 -0
- py_canoe/core/child_elements/test_configurations.py +0 -0
- py_canoe/core/child_elements/test_environment.py +64 -0
- py_canoe/core/child_elements/test_environments.py +26 -0
- py_canoe/core/child_elements/test_module.py +213 -0
- py_canoe/core/child_elements/test_modules.py +23 -0
- py_canoe/core/child_elements/test_setup.py +16 -0
- py_canoe/core/child_elements/test_setup_folder_ext.py +36 -0
- py_canoe/core/child_elements/test_setup_folders.py +25 -0
- py_canoe/core/child_elements/user_files.py +0 -0
- py_canoe/core/child_elements/variable.py +144 -0
- py_canoe/core/child_elements/variable_events.py +14 -0
- py_canoe/core/child_elements/variables.py +29 -0
- py_canoe/core/child_elements/variables_file.py +15 -0
- py_canoe/core/child_elements/variables_files.py +19 -0
- py_canoe/core/child_elements/visual_sequence_setup.py +46 -0
- py_canoe/core/child_elements/vt_system.py +83 -0
- py_canoe/core/child_elements/vtt_sut_import_result.py +21 -0
- py_canoe/core/child_elements/write.py +71 -0
- py_canoe/core/child_elements/xcp_setup.py +12 -0
- py_canoe/core/configuration.py +509 -0
- py_canoe/core/environment.py +59 -0
- py_canoe/core/measurement.py +149 -0
- py_canoe/core/networks.py +103 -0
- py_canoe/core/performance.py +21 -0
- py_canoe/core/simulation.py +53 -0
- py_canoe/core/system.py +164 -0
- py_canoe/core/ui.py +53 -0
- py_canoe/core/version.py +54 -0
- py_canoe/helpers/__init__.py +0 -0
- py_canoe/helpers/common.py +78 -0
- {py_canoe-3.0.4.dist-info → py_canoe-26.0.0.dist-info}/METADATA +332 -322
- py_canoe-26.0.0.dist-info/RECORD +118 -0
- py_canoe-26.0.0.dist-info/WHEEL +4 -0
- py_canoe/py_canoe.py +0 -2586
- py_canoe/py_canoe_utils/logging_collection.py +0 -345
- py_canoe/py_canoe_utils/py_canoe_logger.py +0 -29
- py_canoe-3.0.4.dist-info/LICENSE +0 -21
- py_canoe-3.0.4.dist-info/RECORD +0 -8
- py_canoe-3.0.4.dist-info/WHEEL +0 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.data_source_file import DataSourceFile
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DataSourceFiles:
|
|
5
|
+
"""
|
|
6
|
+
Collection of DataSourceFile objects for a FileGroupDataSource.
|
|
7
|
+
"""
|
|
8
|
+
def __init__(self, com_object) -> None:
|
|
9
|
+
self.com_object = com_object
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def count(self) -> int:
|
|
13
|
+
return self.com_object.Count
|
|
14
|
+
|
|
15
|
+
def item(self, index: int) -> 'DataSourceFile':
|
|
16
|
+
return DataSourceFile(self.com_object.Item(index))
|
|
17
|
+
|
|
18
|
+
def add(self, source_file_path: str) -> 'DataSourceFile':
|
|
19
|
+
return DataSourceFile(self.com_object.Add(source_file_path))
|
|
20
|
+
|
|
21
|
+
def remove(self, index: int):
|
|
22
|
+
self.com_object.Remove(index)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import win32com.client
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DataSourceIssue:
|
|
5
|
+
"""
|
|
6
|
+
Represents a single issue from a DataSource import operation.
|
|
7
|
+
"""
|
|
8
|
+
def __init__(self, com_object) -> None:
|
|
9
|
+
self.com_object = win32com.client.Dispatch(com_object)
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def description(self) -> str:
|
|
13
|
+
return self.com_object.Description
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def emitter(self):
|
|
17
|
+
from py_canoe.core.child_elements.data_source import DataSource
|
|
18
|
+
return DataSource(self.com_object.Emitter)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def severity(self) -> int:
|
|
22
|
+
return self.com_object.Severity
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.data_source_issue import DataSourceIssue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DataSourceIssues:
|
|
5
|
+
"""
|
|
6
|
+
Collection of DataSourceIssue objects from the last import operation.
|
|
7
|
+
"""
|
|
8
|
+
def __init__(self, com_object) -> None:
|
|
9
|
+
self.com_object = com_object
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def count(self) -> int:
|
|
13
|
+
return self.com_object.Count
|
|
14
|
+
|
|
15
|
+
def item(self, index: int) -> 'DataSourceIssue':
|
|
16
|
+
return DataSourceIssue(self.com_object.Item(index))
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.data_source import DataSource
|
|
2
|
+
from py_canoe.core.child_elements.data_sources import DataSources
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DataSourceSetup:
|
|
6
|
+
"""
|
|
7
|
+
Provides the data source management API.
|
|
8
|
+
"""
|
|
9
|
+
def __init__(self, com_object) -> None:
|
|
10
|
+
self.com_object = com_object
|
|
11
|
+
|
|
12
|
+
@property
|
|
13
|
+
def data_sources(self) -> 'DataSources':
|
|
14
|
+
return DataSources(self.com_object.DataSources)
|
|
15
|
+
|
|
16
|
+
def get_data_source_by_id(self, data_source_id: int) -> 'DataSource':
|
|
17
|
+
return DataSource(self.com_object.GetDataSourceById(data_source_id))
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.data_source import DataSource
|
|
2
|
+
from py_canoe.core.child_elements.file_group_data_source import FileGroupDataSource
|
|
3
|
+
from py_canoe.core.child_elements.single_file_data_source import SingleFileDataSource
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DataSources:
|
|
7
|
+
"""
|
|
8
|
+
Collection of DataSource objects.
|
|
9
|
+
"""
|
|
10
|
+
def __init__(self, com_object) -> None:
|
|
11
|
+
self.com_object = com_object
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def count(self) -> int:
|
|
15
|
+
return self.com_object.Count
|
|
16
|
+
|
|
17
|
+
def item(self, index: int) -> 'DataSource':
|
|
18
|
+
return DataSource(self.com_object.Item(index))
|
|
19
|
+
|
|
20
|
+
def add_group_data_source(self, name: str) -> 'FileGroupDataSource':
|
|
21
|
+
return FileGroupDataSource(self.com_object.AddGroupDataSource(name))
|
|
22
|
+
|
|
23
|
+
def add_single_file_data_source(self, source_file_path: str) -> 'SingleFileDataSource':
|
|
24
|
+
return SingleFileDataSource(self.com_object.AddSingleFileDataSource(source_file_path))
|
|
25
|
+
|
|
26
|
+
def remove(self, index: int):
|
|
27
|
+
self.com_object.Remove(index)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import win32com.client
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DatabaseSetup:
|
|
5
|
+
def __init__(self, com_object) -> None:
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def databases(self) -> 'Databases':
|
|
10
|
+
return Databases(self.com_object.Databases)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Databases:
|
|
14
|
+
"""The Databases object represents the assigned databases of CANoe."""
|
|
15
|
+
def __init__(self, com_object):
|
|
16
|
+
self.com_object = com_object
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def count(self) -> int:
|
|
20
|
+
return self.com_object.Count
|
|
21
|
+
|
|
22
|
+
def item(self, index: int) -> 'Database':
|
|
23
|
+
return Database(self.com_object.Item(index))
|
|
24
|
+
|
|
25
|
+
def add(self, full_name: str) -> 'Database':
|
|
26
|
+
return Database(self.com_object.Add(full_name))
|
|
27
|
+
|
|
28
|
+
def add_network(self, database_name: str, network_name: str) -> 'Database':
|
|
29
|
+
return Database(self.com_object.AddNetwork(database_name, network_name))
|
|
30
|
+
|
|
31
|
+
def remove(self, index: int) -> None:
|
|
32
|
+
self.com_object.Remove(index)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Database:
|
|
36
|
+
"""The Database object represents the assigned database of the CANoe application."""
|
|
37
|
+
def __init__(self, com_object):
|
|
38
|
+
self.com_object = win32com.client.Dispatch(com_object)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def channel(self) -> int:
|
|
42
|
+
return self.com_object.Channel
|
|
43
|
+
|
|
44
|
+
@channel.setter
|
|
45
|
+
def channel(self, channel: int) -> None:
|
|
46
|
+
self.com_object.Channel = channel
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def full_name(self) -> str:
|
|
50
|
+
return self.com_object.FullName
|
|
51
|
+
|
|
52
|
+
@full_name.setter
|
|
53
|
+
def full_name(self, full_name: str) -> None:
|
|
54
|
+
self.com_object.FullName = full_name
|
|
55
|
+
|
|
56
|
+
@property
|
|
57
|
+
def name(self) -> str:
|
|
58
|
+
return self.com_object.Name
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def path(self) -> str:
|
|
62
|
+
return self.com_object.Path
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.audio_interface import AudioInterface
|
|
2
|
+
from py_canoe.core.child_elements.diagnostic import Diagnostic
|
|
3
|
+
from py_canoe.core.child_elements.most_disassembler import MostDisassembler
|
|
4
|
+
from py_canoe.core.child_elements.most_network_interface import MostNetworkInterface
|
|
5
|
+
from py_canoe.core.child_elements.application_socket import ApplicationSocket
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Device:
|
|
9
|
+
def __init__(self, com_object):
|
|
10
|
+
self.com_object = com_object
|
|
11
|
+
|
|
12
|
+
@property
|
|
13
|
+
def application_socket(self) -> ApplicationSocket:
|
|
14
|
+
return ApplicationSocket(self.com_object.ApplicationSocket)
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def audio_interface(self) -> AudioInterface:
|
|
18
|
+
return AudioInterface(self.com_object.AudioInterface)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def diagnostic(self) -> Diagnostic:
|
|
22
|
+
return Diagnostic(self.com_object.Diagnostic)
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def disassembler(self) -> MostDisassembler:
|
|
26
|
+
return MostDisassembler(self.com_object.Disassembler)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def name(self) -> str:
|
|
30
|
+
return self.com_object.Name
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def network_interface(self) -> MostNetworkInterface:
|
|
34
|
+
return MostNetworkInterface(self.com_object.NetworkInterface)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.device import Device
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Devices:
|
|
5
|
+
def __init__(self, com_object):
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def count(self) -> int:
|
|
10
|
+
return self.com_object.Count
|
|
11
|
+
|
|
12
|
+
def item(self, index: int) -> 'Device':
|
|
13
|
+
return Device(self.com_object.Item(index))
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.diagnostic_request import DiagnosticRequest
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Diagnostic:
|
|
5
|
+
def __init__(self, com_object):
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def tester_present_status(self) -> bool:
|
|
10
|
+
return self.com_object.TesterPresentStatus
|
|
11
|
+
|
|
12
|
+
def create_request(self, primitive_path) -> DiagnosticRequest:
|
|
13
|
+
return DiagnosticRequest(self.com_object.CreateRequest(primitive_path))
|
|
14
|
+
|
|
15
|
+
def create_request_from_stream(self, byte_stream: bytearray) -> DiagnosticRequest:
|
|
16
|
+
return DiagnosticRequest(self.com_object.CreateRequestFromStream(byte_stream))
|
|
17
|
+
|
|
18
|
+
def diag_start_tester_present(self):
|
|
19
|
+
self.com_object.DiagStartTesterPresent()
|
|
20
|
+
|
|
21
|
+
def diag_stop_tester_present(self):
|
|
22
|
+
self.com_object.DiagStopTesterPresent()
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from py_canoe.core.child_elements.diagnostic_responses import DiagnosticResponses
|
|
4
|
+
from py_canoe.core.child_elements.diagnostic_response import DiagnosticResponse
|
|
5
|
+
|
|
6
|
+
DIAGNOSTIC_RESPONSE_TIMEOUT_VALUE = 300 # 5 minutes
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DiagnosticRequestEvents:
|
|
11
|
+
def __init__(self) -> None:
|
|
12
|
+
self.TIMEOUT: bool = False
|
|
13
|
+
self.RECEIVED_RESPONSE: bool = False
|
|
14
|
+
self.RESPONSE: Union['DiagnosticResponse', None] = None
|
|
15
|
+
|
|
16
|
+
def OnCompletion(self):
|
|
17
|
+
pass
|
|
18
|
+
|
|
19
|
+
def OnConfirmation(self):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
def OnResponse(self, response):
|
|
23
|
+
self.RECEIVED_RESPONSE = True
|
|
24
|
+
self.RESPONSE = DiagnosticResponse(response)
|
|
25
|
+
|
|
26
|
+
def OnTimeout(self):
|
|
27
|
+
self.TIMEOUT = True
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class DiagnosticRequest:
|
|
31
|
+
def __init__(self, com_object):
|
|
32
|
+
self.com_object = com_object
|
|
33
|
+
# self.diagnostic_request_events: DiagnosticRequestEvents = win32com.client.WithEvents(self.com_object, DiagnosticRequestEvents)
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def pending(self) -> bool:
|
|
37
|
+
return self.com_object.Pending
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def responses(self) -> 'DiagnosticResponses':
|
|
41
|
+
return DiagnosticResponses(self.com_object.Responses)
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def suppress_positive_response(self) -> bool:
|
|
45
|
+
return self.com_object.SuppressPositiveResponse
|
|
46
|
+
|
|
47
|
+
@suppress_positive_response.setter
|
|
48
|
+
def suppress_positive_response(self, value: bool):
|
|
49
|
+
self.com_object.SuppressPositiveResponse = value
|
|
50
|
+
|
|
51
|
+
def send(self):
|
|
52
|
+
self.com_object.Send()
|
|
53
|
+
# DoEventsUntil(lambda: self.pending, DIAGNOSTIC_RESPONSE_TIMEOUT_VALUE, "Diagnostic Request Response")
|
|
54
|
+
|
|
55
|
+
def set_complex_parameter(self, qualifier, iteration, sub_parameter, value):
|
|
56
|
+
self.com_object.SetComplexParameter(qualifier, iteration, sub_parameter, value)
|
|
57
|
+
|
|
58
|
+
def set_parameter(self, qualifier, value):
|
|
59
|
+
self.com_object.SetParameter(qualifier, value)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DiagnosticResponse:
|
|
5
|
+
def __init__(self, com_object):
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def positive(self) -> bool:
|
|
10
|
+
return self.com_object.Positive
|
|
11
|
+
|
|
12
|
+
@property
|
|
13
|
+
def response_code(self) -> int:
|
|
14
|
+
return self.com_object.ResponseCode
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def sender(self) -> str:
|
|
18
|
+
return self.com_object.Sender
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def stream(self) -> bytearray:
|
|
22
|
+
return bytearray(self.com_object.Stream)
|
|
23
|
+
|
|
24
|
+
def get_complex_iteration_count(self, qualifier: str) -> int:
|
|
25
|
+
return self.com_object.GetComplexIterationCount(qualifier)
|
|
26
|
+
|
|
27
|
+
def get_complex_parameter(self, qualifier: str, iteration: int, sub_parameter: str, mode: int) -> Union[bytearray, int, str]:
|
|
28
|
+
return self.com_object.GetComplexParameter(qualifier, iteration, sub_parameter, mode)
|
|
29
|
+
|
|
30
|
+
def get_parameter(self, qualifier: str, mode: int) -> Union[bytearray, int, str]:
|
|
31
|
+
return self.com_object.GetParameter(qualifier, mode)
|
|
32
|
+
|
|
33
|
+
def is_complex_parameter(self, qualifier: str) -> bool:
|
|
34
|
+
return self.com_object.IsComplexParameter(qualifier)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from py_canoe.core.child_elements.diagnostic_response import DiagnosticResponse
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DiagnosticResponses:
|
|
5
|
+
def __init__(self, com_object):
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def count(self) -> int:
|
|
10
|
+
return self.com_object.Count
|
|
11
|
+
|
|
12
|
+
def item(self, index: int) -> 'DiagnosticResponse':
|
|
13
|
+
return DiagnosticResponse(self.com_object.item(index))
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import win32com.client
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DiagnosticsSetup:
|
|
5
|
+
def __init__(self, com_object):
|
|
6
|
+
self.com_object = com_object
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def diag_descriptions(self) -> 'DiagDescriptions':
|
|
10
|
+
return DiagDescriptions(self.com_object.DiagDescriptions)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DiagDescriptions:
|
|
14
|
+
def __init__(self, com_object):
|
|
15
|
+
self.com_object = com_object
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def count(self) -> int:
|
|
19
|
+
return self.com_object.Count
|
|
20
|
+
|
|
21
|
+
def item(self, index: int) -> 'DiagDescription':
|
|
22
|
+
return DiagDescription(self.com_object.Item(index))
|
|
23
|
+
|
|
24
|
+
def add(self, network: str, file_path: str, ecu_identifier: str=None) -> 'DiagDescription':
|
|
25
|
+
if ecu_identifier is None:
|
|
26
|
+
return DiagDescription(self.com_object.Add(network, file_path))
|
|
27
|
+
else:
|
|
28
|
+
return DiagDescription(self.com_object.AddEx(network, file_path, ecu_identifier))
|
|
29
|
+
|
|
30
|
+
def add_diag_access(self, network: str, file_path: str, ecu_identifier: str=None) -> 'DiagDescription':
|
|
31
|
+
if ecu_identifier is None:
|
|
32
|
+
return DiagDescription(self.com_object.AddDiagAccess(network, file_path))
|
|
33
|
+
else:
|
|
34
|
+
return DiagDescription(self.com_object.AddDiagAccessEx(network, file_path, ecu_identifier))
|
|
35
|
+
|
|
36
|
+
def remove(self, index: int):
|
|
37
|
+
self.com_object.Remove(index)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class DiagDescription:
|
|
41
|
+
def __init__(self, com_object):
|
|
42
|
+
self.com_object = win32com.client.Dispatch(com_object)
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def additional_descriptions(self) -> 'AdditionalDescriptions':
|
|
46
|
+
return AdditionalDescriptions(self.com_object.AdditionalDescriptions)
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def diag_variants(self) -> 'DiagVariants':
|
|
50
|
+
return DiagVariants(self.com_object.DiagVariants)
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def file_path(self) -> str:
|
|
54
|
+
return self.com_object.FilePath
|
|
55
|
+
|
|
56
|
+
@property
|
|
57
|
+
def information(self) -> str:
|
|
58
|
+
return self.com_object.Information
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def interface(self) -> str:
|
|
62
|
+
return self.com_object.Interface
|
|
63
|
+
|
|
64
|
+
@interface.setter
|
|
65
|
+
def interface(self, interface_qualifier: str):
|
|
66
|
+
self.com_object.Interface = interface_qualifier
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def interpretation_order(self) -> 'InterpretationOrder':
|
|
70
|
+
return InterpretationOrder(self.com_object.InterpretationOrder)
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def language(self) -> str:
|
|
74
|
+
return self.com_object.Language
|
|
75
|
+
|
|
76
|
+
@language.setter
|
|
77
|
+
def language(self, value: str):
|
|
78
|
+
self.com_object.Language = value
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def manual_communication_parameters(self) -> bool:
|
|
82
|
+
return self.com_object.ManualCommunicationParameters
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def mode(self) -> str:
|
|
86
|
+
return self.com_object.Mode
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def name(self) -> str:
|
|
90
|
+
return self.com_object.Name
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
def network(self) -> str:
|
|
94
|
+
return self.com_object.Network
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def node(self) -> str:
|
|
98
|
+
return self.com_object.Node
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
def port(self) -> str:
|
|
102
|
+
return self.com_object.Port
|
|
103
|
+
|
|
104
|
+
@port.setter
|
|
105
|
+
def port(self, value: str):
|
|
106
|
+
self.com_object.Port = value
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def qualifier(self) -> str:
|
|
110
|
+
return self.com_object.Qualifier
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def seed_n_key_dll(self) -> str:
|
|
114
|
+
return self.com_object.SeedNKeyDLL
|
|
115
|
+
|
|
116
|
+
@seed_n_key_dll.setter
|
|
117
|
+
def seed_n_key_dll(self, value: str):
|
|
118
|
+
self.com_object.SeedNKeyDLL = value
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def variant(self) -> str:
|
|
122
|
+
return self.com_object.Variant
|
|
123
|
+
|
|
124
|
+
@variant.setter
|
|
125
|
+
def variant(self, variant_qualifier: str):
|
|
126
|
+
self.com_object.Variant = variant_qualifier
|
|
127
|
+
|
|
128
|
+
def close_windows(self, windows: int = None):
|
|
129
|
+
if windows is None:
|
|
130
|
+
self.com_object.CloseWindows()
|
|
131
|
+
else:
|
|
132
|
+
self.com_object.CloseWindows(windows)
|
|
133
|
+
|
|
134
|
+
def open_windows(self, windows: int = None):
|
|
135
|
+
if windows is None:
|
|
136
|
+
self.com_object.OpenWindows()
|
|
137
|
+
else:
|
|
138
|
+
self.com_object.OpenWindows(windows)
|
|
139
|
+
|
|
140
|
+
def replace_description_file(self, file_path: str):
|
|
141
|
+
self.com_object.ReplaceDescriptionFile(file_path)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class AdditionalDescriptions:
|
|
145
|
+
def __init__(self, com_object):
|
|
146
|
+
self.com_object = com_object
|
|
147
|
+
|
|
148
|
+
@property
|
|
149
|
+
def count(self) -> int:
|
|
150
|
+
return self.com_object.Count
|
|
151
|
+
|
|
152
|
+
def item(self, index: int) -> 'AdditionalDescription':
|
|
153
|
+
return AdditionalDescription(self.com_object.Item(index))
|
|
154
|
+
|
|
155
|
+
def add(self, file_path: str, ecu_identifier: str=None) -> 'AdditionalDescription':
|
|
156
|
+
if ecu_identifier is None:
|
|
157
|
+
return AdditionalDescription(self.com_object.Add(file_path))
|
|
158
|
+
else:
|
|
159
|
+
return AdditionalDescription(self.com_object.AddEx(file_path, ecu_identifier))
|
|
160
|
+
|
|
161
|
+
def remove(self, index: int):
|
|
162
|
+
self.com_object.Remove(index)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class AdditionalDescription:
|
|
166
|
+
def __init__(self, com_object):
|
|
167
|
+
self.com_object = win32com.client.Dispatch(com_object)
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
def diag_variants(self) -> 'DiagVariants':
|
|
171
|
+
return DiagVariants(self.com_object.DiagVariants)
|
|
172
|
+
|
|
173
|
+
@property
|
|
174
|
+
def file_path(self) -> str:
|
|
175
|
+
return self.com_object.FilePath
|
|
176
|
+
|
|
177
|
+
@property
|
|
178
|
+
def master_description(self) -> 'DiagDescription':
|
|
179
|
+
return DiagDescription(self.com_object.MasterDescription)
|
|
180
|
+
|
|
181
|
+
@property
|
|
182
|
+
def language(self) -> str:
|
|
183
|
+
return self.com_object.Language
|
|
184
|
+
|
|
185
|
+
@language.setter
|
|
186
|
+
def language(self, value: str):
|
|
187
|
+
self.com_object.Language = value
|
|
188
|
+
|
|
189
|
+
@property
|
|
190
|
+
def name(self) -> str:
|
|
191
|
+
return self.com_object.Name
|
|
192
|
+
|
|
193
|
+
@property
|
|
194
|
+
def qualifier(self) -> str:
|
|
195
|
+
return self.com_object.Qualifier
|
|
196
|
+
|
|
197
|
+
@property
|
|
198
|
+
def variant(self) -> str:
|
|
199
|
+
return self.com_object.Variant
|
|
200
|
+
|
|
201
|
+
@variant.setter
|
|
202
|
+
def variant(self, variant_qualifier: str):
|
|
203
|
+
self.com_object.Variant = variant_qualifier
|
|
204
|
+
|
|
205
|
+
def close_windows(self, windows: int = None):
|
|
206
|
+
if windows is None:
|
|
207
|
+
self.com_object.CloseWindows()
|
|
208
|
+
else:
|
|
209
|
+
self.com_object.CloseWindows(windows)
|
|
210
|
+
|
|
211
|
+
def open_windows(self, windows: int = None):
|
|
212
|
+
if windows is None:
|
|
213
|
+
self.com_object.OpenWindows()
|
|
214
|
+
else:
|
|
215
|
+
self.com_object.OpenWindows(windows)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
class DiagVariants:
|
|
219
|
+
def __init__(self, com_object):
|
|
220
|
+
self.com_object = com_object
|
|
221
|
+
|
|
222
|
+
@property
|
|
223
|
+
def count(self) -> int:
|
|
224
|
+
return self.com_object.Count
|
|
225
|
+
|
|
226
|
+
def item(self, index: int) -> 'DiagVariant':
|
|
227
|
+
return DiagVariant(self.com_object.Item(index))
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
class DiagVariant:
|
|
231
|
+
def __init__(self, com_object):
|
|
232
|
+
self.com_object = com_object
|
|
233
|
+
|
|
234
|
+
@property
|
|
235
|
+
def name(self) -> str:
|
|
236
|
+
return self.com_object.Name
|
|
237
|
+
|
|
238
|
+
@property
|
|
239
|
+
def qualifier(self) -> str:
|
|
240
|
+
return self.com_object.Qualifier
|
|
241
|
+
|
|
242
|
+
class InterpretationOrder:
|
|
243
|
+
def __init__(self, com_object):
|
|
244
|
+
self.com_object = com_object
|
|
245
|
+
|
|
246
|
+
@property
|
|
247
|
+
def count(self) -> int:
|
|
248
|
+
return self.com_object.Count
|
|
249
|
+
|
|
250
|
+
def item(self, index: int) -> 'DiagDescription':
|
|
251
|
+
return DiagDescription(self.com_object.Item(index))
|
|
252
|
+
|
|
253
|
+
def move(self, from_index: int, to_index: int):
|
|
254
|
+
self.com_object.Move(from_index, to_index)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import win32com.client
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DistributedMode:
|
|
5
|
+
"""
|
|
6
|
+
Provides the distributed mode management API.
|
|
7
|
+
"""
|
|
8
|
+
def __init__(self, com_object) -> None:
|
|
9
|
+
self.com_object = com_object
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def auto_connect_on_program_start(self) -> bool:
|
|
13
|
+
return self.com_object.AutoConnectOnProgramStart
|
|
14
|
+
|
|
15
|
+
@auto_connect_on_program_start.setter
|
|
16
|
+
def auto_connect_on_program_start(self, value: bool):
|
|
17
|
+
self.com_object.AutoConnectOnProgramStart = value
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def auto_disconnect_on_measurement_stop(self) -> bool:
|
|
21
|
+
return self.com_object.AutoDisconnectOnMeasurementStop
|
|
22
|
+
|
|
23
|
+
@auto_disconnect_on_measurement_stop.setter
|
|
24
|
+
def auto_disconnect_on_measurement_stop(self, value: bool):
|
|
25
|
+
self.com_object.AutoDisconnectOnMeasurementStop = value
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def connected(self) -> bool:
|
|
29
|
+
return self.com_object.Connected
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def remote_time_auto_adjust(self) -> bool:
|
|
33
|
+
return self.com_object.RemoteTimeAutoAdjust
|
|
34
|
+
|
|
35
|
+
@remote_time_auto_adjust.setter
|
|
36
|
+
def remote_time_auto_adjust(self, value: bool):
|
|
37
|
+
self.com_object.RemoteTimeAutoAdjust = value
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def rt_server(self) -> str:
|
|
41
|
+
return self.com_object.RTServer
|
|
42
|
+
|
|
43
|
+
@rt_server.setter
|
|
44
|
+
def rt_server(self, value: str):
|
|
45
|
+
self.com_object.RTServer = value
|
|
46
|
+
|
|
47
|
+
def connect(self):
|
|
48
|
+
self.com_object.Connect()
|
|
49
|
+
|
|
50
|
+
def disconnect(self):
|
|
51
|
+
self.com_object.Disconnect()
|
|
52
|
+
|
|
53
|
+
def get_rt_server_occupancy_info(self, remote_address: str) -> 'RTServerOccupancyInfo':
|
|
54
|
+
return RTServerOccupancyInfo(self.com_object.GetRTServerOccupancyInfo(remote_address))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class RTServerOccupancyInfo:
|
|
58
|
+
"""
|
|
59
|
+
Represents the occupancy information of a remote test server.
|
|
60
|
+
"""
|
|
61
|
+
def __init__(self, com_object) -> None:
|
|
62
|
+
self.com_object = com_object
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def client(self) -> str:
|
|
66
|
+
return self.com_object.Client
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def used_in_distributed_mode(self) -> bool:
|
|
70
|
+
return self.com_object.UsedInDistributedMode
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def used_in_standalone_mode(self) -> bool:
|
|
74
|
+
return self.com_object.UsedInStandaloneMode
|