Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Hardfault Issue With DLMS_SCRIPT_ACTION_TYPE_WRITE Command

hardfault Issue with DLMS_SCRIPT_ACTION_TYPE_WRITE command

By ideafix , 13 July, 2023
Forums
General discussion

Hello,

I am facing a weird issue with the execution of a script (from a script table) of type DLMS_SCRIPT_ACTION_TYPE_WRITE.

Here is a code snippet showing how the action is initialized:
/* define action(s) for script 1 */
diconnectControl_ACTIONS[0][0].type = DLMS_SCRIPT_ACTION_TYPE_WRITE;
diconnectControl_ACTIONS[0][0].target = (gxObject *)pdisc_ctrl;
diconnectControl_ACTIONS[0][0].index = 3; /* attribute index 3 = control state */
var_init(&diconnectControl_ACTIONS[0][0].parameter);
var_setEnum(&diconnectControl_ACTIONS[0][0].parameter, DLMS_CONTROL_STATE_READY_FOR_RECONNECTION);
/* link action array to script */
diconnectControl_SCRIPTS[0].id = 1;
ARR_ATTACH(diconnectControl_SCRIPTS[0].actions, diconnectControl_ACTIONS[0], 1);

As soon as the script is executed, the function cosem_setValue (called by invoke_ScriptTable) is run and calls cosem_setDisconnectControl (as expected).
cosem_setDisconnectControl, in turn, calls cosem_getEnum which eventually leads to a hard fault while running bb_getUInt8.

I changed the initialization of the parameter field of the script in order to overcome the issue.
For instance, I applied the following change:
GX_INT8(diconnectControl_ACTIONS[0][0].parameter) = DLMS_CONTROL_STATE_READY_FOR_RECONNECTION;
instead of
var_setEnum(&diconnectControl_ACTIONS[0][0].parameter, DLMS_CONTROL_STATE_READY_FOR_RECONNECTION);
but the issue still occurred.

Any help would be highly appreciated.

Thanks in advance for your support and best regards.

Profile picture for user Administrator

Administrator

2 years 8 months ago

Hi, DLMS_SCRIPT_ACTION_TYPE…

Hi,

DLMS_SCRIPT_ACTION_TYPE_WRITE is implemented for the latest version.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Tue, 06/09/2026 - 11:16
    gurux.dlms.java 4.0.95
  • Tue, 06/09/2026 - 10:03
    Gurux.DLMS.Python 1.0.199
  • Mon, 06/08/2026 - 13:39
    gurux.dlms.cpp 9.0.2606.0801
  • Mon, 06/01/2026 - 10:15
    gurux.dlms.cpp 9.0.2606.0101
  • Thu, 05/28/2026 - 16:06
    gurux.dlms.java 4.0.94

New forum topics

  • Error reading L&G Meter
  • Pass a TCP Client to GXNet
  • Australian EDMI Mk10D (Essential Energy area)
  • Strange mix of data notificiation vs get response
  • DLMS Connection
More
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin