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 10 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

  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701
  • Thu, 07/23/2026 - 16:19
    gurux.dlms.java 4.0.96
  • Thu, 07/09/2026 - 14:34
    Gurux.DLMS.Python 1.0.201
  • Fri, 06/26/2026 - 16:32
    Gurux.Service 3.0.2606.2601
  • Wed, 06/24/2026 - 08:36
    Gurux.DLMS.Python 1.0.200

New forum topics

  • Service not known error on gprs communication
  • Help Needed: Interfacing Saral 100 Energy Meter with Microcontroller via RS232
  • Connecting Meter to Agent via serial
  • Reading block profile with Compact array
  • DLMS server - serving multiple similar datasets gathered from multiple meters across distinct logical addresses
More
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin