Skip to content

Commit 304563a

Browse files
authored
nirfsg- Fix ErrorMessage API (#2174)
1 parent f17c461 commit 304563a

File tree

7 files changed

+30
-18
lines changed

7 files changed

+30
-18
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,6 +1708,7 @@
17081708
- `numpy` is now an install dependency
17091709
- gRPC support, enabling remote session management via NI gRPC Device Server
17101710
- Changed
1711+
- Fixed `error_message` method to return the error string as output
17111712
- Removed
17121713

17131714
#### [nirfsg] 1.0.1 - 2026-01-09

docs/nirfsg/class.rst

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,7 +1163,7 @@ error_message
11631163

11641164
.. py:currentmodule:: nirfsg.Session
11651165

1166-
.. py:method:: error_message(error_code, error_message)
1166+
.. py:method:: error_message(error_code)
11671167

11681168
Converts an error code returned by an NI-RFSG method into a user-readable string.
11691169

@@ -1184,17 +1184,16 @@ error_message
11841184

11851185

11861186
:type error_code: int
1187-
:param error_message:
11881187

1188+
:rtype: str
1189+
:return:
11891190

1190-
Returns the user-readable message string that corresponds to the status code you specify.
11911191

1192-
You must pass a ViChar array with at least 256 bytes to this parameter.
1192+
Returns the user-readable message string that corresponds to the status code you specify.
11931193

1194-
1194+
11951195

11961196

1197-
:type error_message: str
11981197

11991198
get_all_named_waveform_names
12001199
----------------------------

generated/nirfsg/nirfsg/_grpc_stub_interpreter.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,11 +241,12 @@ def disable_start_trigger(self): # noqa: N802
241241
grpc_types.DisableStartTriggerRequest(vi=self._vi),
242242
)
243243

244-
def error_message(self, error_code, error_message): # noqa: N802
245-
self._invoke(
244+
def error_message(self, error_code): # noqa: N802
245+
response = self._invoke(
246246
self._client.ErrorMessage,
247-
grpc_types.ErrorMessageRequest(vi=self._vi, error_code=error_code, error_message=error_message),
247+
grpc_types.ErrorMessageRequest(vi=self._vi, error_code=error_code),
248248
)
249+
return response.error_message
249250

250251
def get_all_named_waveform_names(self): # noqa: N802
251252
response = self._invoke(

generated/nirfsg/nirfsg/_library_interpreter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,13 +298,13 @@ def disable_start_trigger(self): # noqa: N802
298298
errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False)
299299
return
300300

301-
def error_message(self, error_code, error_message): # noqa: N802
301+
def error_message(self, error_code): # noqa: N802
302302
vi_ctype = _visatype.ViSession(self._vi) # case S110
303303
error_code_ctype = _visatype.ViStatus(error_code) # case S150
304-
error_message_ctype = ctypes.create_string_buffer(error_message.encode(self._encoding)) # case C020
304+
error_message_ctype = (_visatype.ViChar * 256)() # case C070
305305
error_code = self._library.niRFSG_ErrorMessage(vi_ctype, error_code_ctype, error_message_ctype)
306306
errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=True)
307-
return
307+
return error_message_ctype.value.decode(self._encoding)
308308

309309
def get_all_named_waveform_names(self): # noqa: N802
310310
vi_ctype = _visatype.ViSession(self._vi) # case S110

generated/nirfsg/nirfsg/session.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4833,7 +4833,7 @@ def disable_script_trigger(self):
48334833
'''
48344834
self._interpreter.disable_script_trigger(self._repeated_capability)
48354835

4836-
def error_message(self, error_code, error_message):
4836+
def error_message(self, error_code):
48374837
r'''error_message
48384838

48394839
Converts an error code returned by an NI-RFSG method into a user-readable string.
@@ -4845,12 +4845,13 @@ def error_message(self, error_code, error_message):
48454845

48464846
**Default Value** : 0 (VI_SUCCESS)
48474847

4848-
error_message (str): Returns the user-readable message string that corresponds to the status code you specify.
48494848

4850-
You must pass a ViChar array with at least 256 bytes to this parameter.
4849+
Returns:
4850+
error_message (str): Returns the user-readable message string that corresponds to the status code you specify.
48514851

48524852
'''
4853-
self._interpreter.error_message(error_code, error_message)
4853+
error_message = self._interpreter.error_message(error_code)
4854+
return error_message
48544855

48554856
@ivi_synchronized
48564857
def _get_attribute_vi_boolean(self, attribute):

generated/nirfsg/nirfsg/unit_tests/_mock_helper.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def __init__(self):
7575
self._defaults['DisableStartTrigger']['return'] = 0
7676
self._defaults['ErrorMessage'] = {}
7777
self._defaults['ErrorMessage']['return'] = 0
78+
self._defaults['ErrorMessage']['errorMessage'] = None
7879
self._defaults['GetAllNamedWaveformNames'] = {}
7980
self._defaults['GetAllNamedWaveformNames']['return'] = 0
8081
self._defaults['GetAllNamedWaveformNames']['actualBufferSize'] = None
@@ -393,6 +394,15 @@ def niRFSG_DisableStartTrigger(self, vi): # noqa: N802
393394
def niRFSG_ErrorMessage(self, vi, error_code, error_message): # noqa: N802
394395
if self._defaults['ErrorMessage']['return'] != 0:
395396
return self._defaults['ErrorMessage']['return']
397+
# error_message
398+
if self._defaults['ErrorMessage']['errorMessage'] is None:
399+
raise MockFunctionCallError("niRFSG_ErrorMessage", param='errorMessage')
400+
test_value = self._defaults['ErrorMessage']['errorMessage']
401+
if type(test_value) is str:
402+
test_value = test_value.encode('ascii')
403+
assert len(error_message) >= len(test_value)
404+
for i in range(len(test_value)):
405+
error_message[i] = test_value[i]
396406
return self._defaults['ErrorMessage']['return']
397407

398408
def niRFSG_GetAllNamedWaveformNames(self, vi, waveform_names, buffer_size, actual_buffer_size): # noqa: N802

src/nirfsg/metadata/functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1423,9 +1423,9 @@
14231423
'use_in_python_api': True
14241424
},
14251425
{
1426-
'direction': 'in',
1426+
'direction': 'out',
14271427
'documentation': {
1428-
'description': 'Returns the user-readable message string that corresponds to the status code you specify.\n\nYou must pass a ViChar array with at least 256 bytes to this parameter.'
1428+
'description': 'Returns the user-readable message string that corresponds to the status code you specify.'
14291429
},
14301430
'name': 'errorMessage',
14311431
'size': {

0 commit comments

Comments
 (0)