py-neuromodulation 0.0.3__py3-none-any.whl → 0.0.4__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.
Files changed (176) hide show
  1. py_neuromodulation/ConnectivityDecoding/Automated Anatomical Labeling 3 (Rolls 2020).nii +0 -0
  2. py_neuromodulation/ConnectivityDecoding/_get_grid_hull.m +34 -0
  3. py_neuromodulation/ConnectivityDecoding/_get_grid_whole_brain.py +106 -0
  4. py_neuromodulation/ConnectivityDecoding/_helper_write_connectome.py +119 -0
  5. py_neuromodulation/ConnectivityDecoding/mni_coords_cortical_surface.mat +0 -0
  6. py_neuromodulation/ConnectivityDecoding/mni_coords_whole_brain.mat +0 -0
  7. py_neuromodulation/ConnectivityDecoding/rmap_func_all.nii +0 -0
  8. py_neuromodulation/ConnectivityDecoding/rmap_struc.nii +0 -0
  9. py_neuromodulation/data/README +6 -0
  10. py_neuromodulation/data/dataset_description.json +8 -0
  11. py_neuromodulation/data/participants.json +32 -0
  12. py_neuromodulation/data/participants.tsv +2 -0
  13. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_coordsystem.json +5 -0
  14. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_space-mni_electrodes.tsv +11 -0
  15. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_channels.tsv +11 -0
  16. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.eeg +0 -0
  17. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.json +18 -0
  18. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vhdr +35 -0
  19. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/ieeg/sub-testsub_ses-EphysMedOff_task-gripforce_run-0_ieeg.vmrk +13 -0
  20. py_neuromodulation/data/sub-testsub/ses-EphysMedOff/sub-testsub_ses-EphysMedOff_scans.tsv +2 -0
  21. py_neuromodulation/grid_cortex.tsv +40 -0
  22. py_neuromodulation/grid_subcortex.tsv +1429 -0
  23. py_neuromodulation/nm_settings.json +338 -0
  24. py_neuromodulation/nm_stream_offline.py +7 -6
  25. py_neuromodulation/plots/STN_surf.mat +0 -0
  26. py_neuromodulation/plots/Vertices.mat +0 -0
  27. py_neuromodulation/plots/faces.mat +0 -0
  28. py_neuromodulation/plots/grid.mat +0 -0
  29. {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.4.dist-info}/METADATA +182 -182
  30. py_neuromodulation-0.0.4.dist-info/RECORD +72 -0
  31. {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.4.dist-info}/WHEEL +1 -2
  32. docs/build/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
  33. docs/build/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -233
  34. docs/build/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
  35. docs/build/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
  36. docs/build/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
  37. docs/build/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
  38. docs/build/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
  39. docs/build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -68
  40. docs/build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -239
  41. docs/build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
  42. docs/build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -97
  43. docs/build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
  44. docs/build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -192
  45. docs/build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
  46. docs/source/_build/html/_downloads/09df217f95985497f45d69e2d4bdc5b1/plot_2_example_add_feature.py +0 -76
  47. docs/source/_build/html/_downloads/0d0d0a76e8f648d5d3cbc47da6351932/plot_real_time_demo.py +0 -97
  48. docs/source/_build/html/_downloads/3b4900a2b2818ff30362215b76f7d5eb/plot_1_example_BIDS.py +0 -240
  49. docs/source/_build/html/_downloads/5d73cadc59a8805c47e3b84063afc157/plot_example_BIDS.py +0 -233
  50. docs/source/_build/html/_downloads/7660317fa5a6bfbd12fcca9961457fc4/plot_example_rmap_computing.py +0 -63
  51. docs/source/_build/html/_downloads/7e92dd2e6cc86b239d14cafad972ae4f/plot_3_example_sharpwave_analysis.py +0 -219
  52. docs/source/_build/html/_downloads/839e5b319379f7fd9e867deb00fd797f/plot_example_gridPointProjection.py +0 -210
  53. docs/source/_build/html/_downloads/ae8be19afe5e559f011fc9b138968ba0/plot_first_demo.py +0 -192
  54. docs/source/_build/html/_downloads/b8b06cacc17969d3725a0b6f1d7741c5/plot_example_sharpwave_analysis.py +0 -219
  55. docs/source/_build/html/_downloads/c2db0bf2b334d541b00662b991682256/plot_6_real_time_demo.py +0 -121
  56. docs/source/_build/html/_downloads/c31a86c0b68cb4167d968091ace8080d/plot_example_add_feature.py +0 -68
  57. docs/source/_build/html/_downloads/ce3914826f782cbd1ea8fd024eaf0ac3/plot_5_example_rmap_computing.py +0 -64
  58. docs/source/_build/html/_downloads/da36848a41e6a3235d91fb7cfb6d59b4/plot_0_first_demo.py +0 -189
  59. docs/source/_build/html/_downloads/eaa4305c75b19a1e2eea941f742a6331/plot_4_example_gridPointProjection.py +0 -210
  60. docs/source/auto_examples/plot_0_first_demo.py +0 -189
  61. docs/source/auto_examples/plot_1_example_BIDS.py +0 -240
  62. docs/source/auto_examples/plot_2_example_add_feature.py +0 -76
  63. docs/source/auto_examples/plot_3_example_sharpwave_analysis.py +0 -219
  64. docs/source/auto_examples/plot_4_example_gridPointProjection.py +0 -210
  65. docs/source/auto_examples/plot_5_example_rmap_computing.py +0 -64
  66. docs/source/auto_examples/plot_6_real_time_demo.py +0 -121
  67. docs/source/conf.py +0 -105
  68. examples/plot_0_first_demo.py +0 -189
  69. examples/plot_1_example_BIDS.py +0 -240
  70. examples/plot_2_example_add_feature.py +0 -76
  71. examples/plot_3_example_sharpwave_analysis.py +0 -219
  72. examples/plot_4_example_gridPointProjection.py +0 -210
  73. examples/plot_5_example_rmap_computing.py +0 -64
  74. examples/plot_6_real_time_demo.py +0 -121
  75. packages/realtime_decoding/build/lib/realtime_decoding/__init__.py +0 -4
  76. packages/realtime_decoding/build/lib/realtime_decoding/decoder.py +0 -104
  77. packages/realtime_decoding/build/lib/realtime_decoding/features.py +0 -163
  78. packages/realtime_decoding/build/lib/realtime_decoding/helpers.py +0 -15
  79. packages/realtime_decoding/build/lib/realtime_decoding/run_decoding.py +0 -345
  80. packages/realtime_decoding/build/lib/realtime_decoding/trainer.py +0 -54
  81. packages/tmsi/build/lib/TMSiFileFormats/__init__.py +0 -37
  82. packages/tmsi/build/lib/TMSiFileFormats/file_formats/__init__.py +0 -36
  83. packages/tmsi/build/lib/TMSiFileFormats/file_formats/lsl_stream_writer.py +0 -200
  84. packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_file_writer.py +0 -496
  85. packages/tmsi/build/lib/TMSiFileFormats/file_formats/poly5_to_edf_converter.py +0 -236
  86. packages/tmsi/build/lib/TMSiFileFormats/file_formats/xdf_file_writer.py +0 -977
  87. packages/tmsi/build/lib/TMSiFileFormats/file_readers/__init__.py +0 -35
  88. packages/tmsi/build/lib/TMSiFileFormats/file_readers/edf_reader.py +0 -116
  89. packages/tmsi/build/lib/TMSiFileFormats/file_readers/poly5reader.py +0 -294
  90. packages/tmsi/build/lib/TMSiFileFormats/file_readers/xdf_reader.py +0 -229
  91. packages/tmsi/build/lib/TMSiFileFormats/file_writer.py +0 -102
  92. packages/tmsi/build/lib/TMSiPlotters/__init__.py +0 -2
  93. packages/tmsi/build/lib/TMSiPlotters/gui/__init__.py +0 -39
  94. packages/tmsi/build/lib/TMSiPlotters/gui/_plotter_gui.py +0 -234
  95. packages/tmsi/build/lib/TMSiPlotters/gui/plotting_gui.py +0 -440
  96. packages/tmsi/build/lib/TMSiPlotters/plotters/__init__.py +0 -44
  97. packages/tmsi/build/lib/TMSiPlotters/plotters/hd_emg_plotter.py +0 -446
  98. packages/tmsi/build/lib/TMSiPlotters/plotters/impedance_plotter.py +0 -589
  99. packages/tmsi/build/lib/TMSiPlotters/plotters/signal_plotter.py +0 -1326
  100. packages/tmsi/build/lib/TMSiSDK/__init__.py +0 -54
  101. packages/tmsi/build/lib/TMSiSDK/device.py +0 -588
  102. packages/tmsi/build/lib/TMSiSDK/devices/__init__.py +0 -34
  103. packages/tmsi/build/lib/TMSiSDK/devices/saga/TMSi_Device_API.py +0 -1764
  104. packages/tmsi/build/lib/TMSiSDK/devices/saga/__init__.py +0 -34
  105. packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_device.py +0 -1366
  106. packages/tmsi/build/lib/TMSiSDK/devices/saga/saga_types.py +0 -520
  107. packages/tmsi/build/lib/TMSiSDK/devices/saga/xml_saga_config.py +0 -165
  108. packages/tmsi/build/lib/TMSiSDK/error.py +0 -95
  109. packages/tmsi/build/lib/TMSiSDK/sample_data.py +0 -63
  110. packages/tmsi/build/lib/TMSiSDK/sample_data_server.py +0 -99
  111. packages/tmsi/build/lib/TMSiSDK/settings.py +0 -45
  112. packages/tmsi/build/lib/TMSiSDK/tmsi_device.py +0 -111
  113. packages/tmsi/build/lib/__init__.py +0 -4
  114. packages/tmsi/build/lib/apex_sdk/__init__.py +0 -34
  115. packages/tmsi/build/lib/apex_sdk/device/__init__.py +0 -41
  116. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API.py +0 -1009
  117. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_enums.py +0 -239
  118. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_API_structures.py +0 -668
  119. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_device.py +0 -1611
  120. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_dongle.py +0 -38
  121. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_event_reader.py +0 -57
  122. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_channel.py +0 -44
  123. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_config.py +0 -150
  124. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_const.py +0 -36
  125. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_impedance_channel.py +0 -48
  126. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/apex_info.py +0 -108
  127. packages/tmsi/build/lib/apex_sdk/device/devices/apex/apex_structures/dongle_info.py +0 -39
  128. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/download_measurement.py +0 -77
  129. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/eeg_measurement.py +0 -150
  130. packages/tmsi/build/lib/apex_sdk/device/devices/apex/measurements/impedance_measurement.py +0 -129
  131. packages/tmsi/build/lib/apex_sdk/device/threads/conversion_thread.py +0 -59
  132. packages/tmsi/build/lib/apex_sdk/device/threads/sampling_thread.py +0 -57
  133. packages/tmsi/build/lib/apex_sdk/device/tmsi_channel.py +0 -83
  134. packages/tmsi/build/lib/apex_sdk/device/tmsi_device.py +0 -201
  135. packages/tmsi/build/lib/apex_sdk/device/tmsi_device_enums.py +0 -103
  136. packages/tmsi/build/lib/apex_sdk/device/tmsi_dongle.py +0 -43
  137. packages/tmsi/build/lib/apex_sdk/device/tmsi_event_reader.py +0 -50
  138. packages/tmsi/build/lib/apex_sdk/device/tmsi_measurement.py +0 -118
  139. packages/tmsi/build/lib/apex_sdk/sample_data_server/__init__.py +0 -33
  140. packages/tmsi/build/lib/apex_sdk/sample_data_server/event_data.py +0 -44
  141. packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data.py +0 -50
  142. packages/tmsi/build/lib/apex_sdk/sample_data_server/sample_data_server.py +0 -136
  143. packages/tmsi/build/lib/apex_sdk/tmsi_errors/error.py +0 -126
  144. packages/tmsi/build/lib/apex_sdk/tmsi_sdk.py +0 -113
  145. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/apex/apex_structure_generator.py +0 -134
  146. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/decorators.py +0 -60
  147. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/logger_filter.py +0 -42
  148. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/singleton.py +0 -42
  149. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/support_functions.py +0 -72
  150. packages/tmsi/build/lib/apex_sdk/tmsi_utilities/tmsi_logger.py +0 -98
  151. py_neuromodulation-0.0.3.dist-info/RECORD +0 -188
  152. py_neuromodulation-0.0.3.dist-info/top_level.txt +0 -5
  153. tests/__init__.py +0 -0
  154. tests/conftest.py +0 -117
  155. tests/test_all_examples.py +0 -10
  156. tests/test_all_features.py +0 -63
  157. tests/test_bispectra.py +0 -70
  158. tests/test_bursts.py +0 -105
  159. tests/test_feature_sampling_rates.py +0 -143
  160. tests/test_fooof.py +0 -16
  161. tests/test_initalization_offline_stream.py +0 -41
  162. tests/test_multiprocessing.py +0 -58
  163. tests/test_nan_values.py +0 -29
  164. tests/test_nm_filter.py +0 -95
  165. tests/test_nm_resample.py +0 -63
  166. tests/test_normalization_settings.py +0 -146
  167. tests/test_notch_filter.py +0 -31
  168. tests/test_osc_features.py +0 -424
  169. tests/test_preprocessing_filter.py +0 -151
  170. tests/test_rereference.py +0 -171
  171. tests/test_sampling.py +0 -57
  172. tests/test_settings_change_after_init.py +0 -76
  173. tests/test_sharpwave.py +0 -165
  174. tests/test_target_channel_add.py +0 -100
  175. tests/test_timing.py +0 -80
  176. {py_neuromodulation-0.0.3.dist-info → py_neuromodulation-0.0.4.dist-info/licenses}/LICENSE +0 -0
@@ -1,95 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file ${error.py}
26
- * @brief General SDK errors
27
- *
28
- */
29
-
30
-
31
- """
32
- from enum import Enum, unique
33
-
34
-
35
- @unique
36
- class TMSiErrorCode(Enum):
37
- general_error = 0
38
- missing_dll = 1
39
- already_in_use_dll = 2
40
- device_error = 100
41
- device_not_connected = 101
42
- no_devices_found = 102
43
- api_no_driver = 200
44
- api_incorrect_argument = 201
45
- api_invalid_command = 202
46
- file_writer_error = 300
47
-
48
-
49
- class TMSiError(Exception):
50
- def __init__(self, code):
51
- self.code = code
52
-
53
- def __str__(self):
54
- return repr(self.code)
55
-
56
-
57
- def DeviceErrorLookupTable(code):
58
- _lookup_table = {
59
- "0x1010001": "DR reported 'Checksum error in received block'",
60
- "0x2010001": "DS reported 'Checksum error in received block'",
61
- "0x1010002": "DR reported 'Unknown command'",
62
- "0x2010002": "DS reported 'Unknown command'",
63
- "0x1010003": "DR reported 'Response timeout'",
64
- "0x2010003": "DS reported 'Response timeout'",
65
- "0x1010004": "DR reported 'Device busy try again in x msec'",
66
- "0x2010004": "DS reported 'Device busy try again in x msec'",
67
- "0x1010005": "DR reported 'Command not supported over current interface'",
68
- "0x2010005": "DS reported 'Command not supported over current interface'",
69
- "0x1010006": "DR reported 'Command not possible, device is recording'",
70
- "0x1010007": "DR reported 'Device not available'",
71
- "0x2010007": "DS reported 'Device not available'",
72
- "0x2010008": "DS reported 'Interface not available'",
73
- "0x2010009": "DS reported 'Command not allowed in current mode'",
74
- "0x201000A": "DS reported 'Processing error'",
75
- "0x201000B": "DS reported 'Unknown internal error'",
76
- "0x1030001": "DR reported 'Command not supported by Channel'",
77
- "0x1030002": "DR reported 'Illegal start control for ambulant recording",
78
- "0x201000C": "DS reports that data request does not fit with one Device Api Packet",
79
- "0x201000D": "DS reports that DR is already opened",
80
- "0x3001000": "DLL Function is declared, but not yet implemented",
81
- "0x3001001": "DLL Function called with invalid parameters",
82
- "0x3001002": "Incorrect checksum of response message",
83
- "0x3001003": "DLL Function failed because of header failure",
84
- "0x3001004": "DLL Function failed because an underlying process failed",
85
- "0x3001005": "DLL Function called with a too small buffer",
86
- "0x3001006": "DLL Function called with a Handle that's not assigned to a device",
87
- "0x3002000": "DLL Function failed becasue could not open selected interface",
88
- "0x3002001": "DLL Function failed because could not close selected interface",
89
- "0x3002002": "DLL Function failed because could not send command-data",
90
- "0x3002003": "DLL Function failed because could not receive data",
91
- "0x3002004": "DLL Function failed because commination timed out",
92
- "0x3002005": "Lost connection to DS, USB / Ethernet disconnect",
93
- }
94
-
95
- print("\n " + _lookup_table[code] + "\n")
@@ -1,63 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file ${sample_data.py}
26
- * @brief Sample data class definitions.
27
- *
28
- */
29
-
30
-
31
- """
32
-
33
-
34
- class SampleSet:
35
- """<SampleSet> represents a set of samples taken by the device from all
36
- active channels at the same event. It has the next properties:
37
-
38
- num_samples: <int> The number of samples within the sample-set.
39
-
40
- samples: <float[]> Array of samples, in order of the active channels in
41
- the active channel list <Device.channels[]>
42
- """
43
-
44
- def __init__(self, num_samples, samples):
45
- self.num_samples = num_samples
46
- self.samples = samples
47
-
48
-
49
- class SampleData:
50
- """<SampleData> represents an array of received samples. It has the next properties:
51
-
52
- num_sample_sets: <int> The number of sample-sets within the
53
- samples-array
54
-
55
- num_samples_per_sample_set: <int> The number of samples within one sample-set.
56
-
57
- samples: <float[]> Array of samples, sequentially in sample-sets and sampling-event.
58
- """
59
-
60
- def __init__(self, num_sample_sets, num_samples_per_sample_set, samples):
61
- self.num_sample_sets = num_sample_sets
62
- self.num_samples_per_sample_set = num_samples_per_sample_set
63
- self.samples = samples
@@ -1,99 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file ${sample_data_server.py}
26
- * @brief Sample Data Server module
27
- *
28
- */
29
-
30
-
31
- """
32
-
33
- from TMSiSDK import settings
34
- from copy import copy
35
-
36
-
37
- class SampleDataConsumer:
38
- """Local class which identifies which consumer registered for what device"""
39
-
40
- def __init__(self, id, q):
41
- self.id = id
42
- self.q = q
43
-
44
-
45
- def registerConsumer(id, q):
46
- """Registers a consumer-queue to receive the sample-data of a specific
47
- device.
48
- This method is called by sample-data-consumers.
49
-
50
- Args:
51
- id: <int> : Unique id of a device <Device.id>.
52
- Indicates from which specific device, received sample-data
53
- must be put into the registered <queue>
54
-
55
- q: <queue> The queue into which received sample-data will be put.
56
- """
57
- settings._consumer_list.append(SampleDataConsumer(id, q))
58
-
59
-
60
- def unregisterConsumer(id, q):
61
- """Unregisters a consumer-queue associated with a file-writer or plotter
62
- object.
63
- This method is called by close-methods of the sample-data-consumers.
64
-
65
- Args:
66
- id: <int> : Unique id of a device <Device.id>.
67
- Indicates from which specific device, received sample-data
68
- must be put into the registered <queue>
69
-
70
- q: <queue> The queue object which has to be removed from the global
71
- consumer list.
72
- """
73
- num_consumers = len(settings._consumer_list)
74
- for i in range(num_consumers):
75
- if settings._consumer_list[i].id == id:
76
- if settings._consumer_list[i].q == q:
77
- idx_remove = copy(i)
78
- # try:
79
- # settings._consumer_list[idx_remove].q.close()
80
- # except AttributeError:
81
- # pass
82
- settings._consumer_list.pop(idx_remove)
83
-
84
-
85
- def putSampleData(id, data):
86
- """Puts a <SampleData>-object, coming from device <Device.id> into the queues
87
- of registered consumers.
88
- This method is called by sample-data-producers.
89
-
90
- Args:
91
- id: <int> : Unique id of the device (<Device>.id), which forwards
92
- received sample-data to the sample-data-server.
93
-
94
- data <SampleData> The sample-data.
95
- """
96
- num_consumers = len(settings._consumer_list)
97
- for i in range(num_consumers):
98
- if settings._consumer_list[i].id == id:
99
- settings._consumer_list[i].q.put(data)
@@ -1,45 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file ${settings.py}
26
- * @brief Module for SDK 'locally' used settings
27
- *
28
- */
29
-
30
-
31
- """
32
-
33
-
34
- def _initialize():
35
- """
36
- Instantiates and initializes 'local' static variables fro SDK-modules.
37
- This method must be called once befor start using the SDK.
38
-
39
- Returns
40
- -------
41
- None.
42
-
43
- """
44
- global _consumer_list # used in <sample_data_server.py> : list of registered
45
- _consumer_list = [] # consumer for receipt of sample-data
@@ -1,111 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file ${tmsi_device.py}
26
- * @brief Starting module to instantiate <Device>-objects of TMSi measurement
27
- * systems.
28
- *
29
- */
30
-
31
-
32
- """
33
-
34
- from enum import Enum
35
-
36
- from TMSiSDK.error import TMSiError, TMSiErrorCode
37
- from TMSiSDK.device import DeviceInterfaceType
38
- from TMSiSDK.devices.saga import saga_device
39
- from TMSiSDK.devices.saga.saga_device import SagaDevice
40
-
41
- from TMSiSDK import settings
42
-
43
-
44
- class DeviceType(Enum):
45
- none = 0
46
- saga = 1
47
-
48
-
49
- def initialize():
50
- """Initializes the TMSi-SDK environment.
51
- This must be done once before starting using the SDK.
52
- """
53
- settings._initialize()
54
-
55
-
56
- def create(dev_type, dr_interface, ds_interface=DeviceInterfaceType.none):
57
- """Creates a Device-object to interface with a TMSI measurement system.
58
-
59
- Args:
60
- dev_type : <DeviceType> The measurement-system type.
61
- Momentarily only the SAGA system is supported.
62
-
63
- dr_interface : <DeviceInterfaceType> The interface-type between the
64
- data-recorder and docking-station (if the system exists
65
- out of a DS and DR like the SAGA-system) or a PC.
66
- The default interface-type = DeviceInterfaceType.docked
67
-
68
- ds_interface : <DeviceInterfaceType> The interface-type between the
69
- docking station and PC.
70
- The default interface-type = DeviceInterfaceType.usb
71
-
72
- Returns:
73
- <Device> An object of the system-implementation of the <Device-class>-interface.
74
- With this object one can interface with the attached system.
75
- """
76
- dev = None
77
- if dev_type == DeviceType.saga:
78
- dev = SagaDevice(ds_interface, dr_interface)
79
- else:
80
- raise TMSiError(TMSiErrorCode.api_incorrect_argument)
81
-
82
- return dev
83
-
84
-
85
- def discover(dev_type, dr_interface, ds_interface=DeviceInterfaceType.none):
86
- """Creates a list with Device-objects to interface with found TMSI measurement systems.
87
-
88
- Args:
89
- dev_type : <DeviceType> The measurement-system type.
90
- Momentarily only the SAGA system is supported.
91
-
92
- dr_interface : <DeviceInterfaceType> The interface-type between the
93
- data-recorder and docking-station (if the system exists
94
- out of a DS and DR like the SAGA-system) or a PC.
95
- The default interface-type = DeviceInterfaceType.docked
96
-
97
- ds_interface : <DeviceInterfaceType> The interface-type between the
98
- docking station and PC.
99
- The default interface-type = DeviceInterfaceType.usb
100
-
101
- Returns:
102
- <Device[]> An array with objects of the system-implementation of the
103
- <Device-class>-interface. With these object one can interface with the
104
- attached systems.
105
- """
106
- discoveryList = []
107
-
108
- if dev_type == DeviceType.saga:
109
- discoveryList = saga_device.discover(ds_interface, dr_interface)
110
-
111
- return discoveryList
@@ -1,4 +0,0 @@
1
- """tmsi is a package derived from TMSi's python interface."""
2
- from . import TMSiFileFormats
3
- from . import TMSiPlotters
4
- from . import TMSiSDK
@@ -1,34 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file __init__.py
26
- * @brief
27
- * Initialization of the SDK.
28
- */
29
-
30
-
31
- """
32
-
33
- from .tmsi_utilities.tmsi_logger import TMSiLogger
34
- from .tmsi_utilities.decorators import LogPerformances
@@ -1,41 +0,0 @@
1
- """
2
- (c) 2022 Twente Medical Systems International B.V., Oldenzaal The Netherlands
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
-
16
- ####### # # ##### #
17
- # ## ## #
18
- # # # # # # #
19
- # # # # ##### #
20
- # # # # #
21
- # # # # #
22
- # # # ##### #
23
-
24
- /**
25
- * @file __init__.py
26
- * @brief
27
- * Initialization of the device.
28
- */
29
-
30
-
31
- """
32
-
33
- from .devices.apex import apex_API_enums as ApexEnums
34
- from .devices.apex import apex_API_structures as ApexStructures
35
- from .devices.apex.apex_structures.apex_channel import ApexChannel, ChannelType
36
- from .devices.apex.apex_structures.apex_impedance_channel import (
37
- ApexImpedanceChannel,
38
- )
39
- from ..tmsi_utilities.apex.apex_structure_generator import (
40
- ApexStructureGenerator,
41
- )