DocID024383 Rev 1 43/56
UM1619 Firmware description
frame.broadcast = FALSE;
frame.group = sender.group; // Device (the one been queried)group
frame.address = sender.address; // Device (the one been queried)address
frame.data[0] = SERVICE_PARAM_GET; // Command echo
frame.data[1] = PROG_GRP_DEVICE_DATA; // Sub command echo
frame.data[2,3] = sender.group;
frame.data[4,5,6,7] = sender.address;
frame.data[8] = source.module_working_mode;
frame.data[9] = hop_level;
/* RESPONSE FRAME FOR USER DATA GET COMMAND */
APP_userdata_t frame;
frame.source = SOURCE_PLM / ...; // Data source PLM, ...
frame.type = APP_SERVICE_FRAME;
frame.len = 22;
frame.error = APP_ERROR_NONE;
frame.broadcast = FALSE;
frame.group = sender.group; // Device (the one been queried)group
frame.address = sender.address; // Device (the one been queried)address
frame.data[0] = SERVICE_PARAM_GET; // Command echo
frame.data[1] = PROG_GRP_USER_DATA; // Sub command echo
frame.data[2 -> USER_SETTINGS_SIZE + 1] = *sender.user_data;
6) Get module general purpose inputs/outputs configuration
uint8_t *buffer;
buffer[0] = 11;
buffer[1] = APP_SERVICE_FRAME;
buffer[2,3] = target_module.group;
buffer[4,5,6,7] = target_module.address;
buffer[8] = SERVICE_IO_CONFIG_GET;
buffer[9,10] = CRC16;
After a certain delay from the get command acknowledgment, the PLM module will send the following
frame:
APP_userdata_t frame;
frame.source = SOURCE_PLM / ...; // Data source PLM, ...
frame.type = APP_SERVICE_FRAME;
frame.len = 2;
frame.error = APP_ERROR_NONE;
frame.broadcast = FALSE;
frame.group = sender.group; // Device (the one been queried)group
frame.address = sender.address; // Device (the one been queried)address
frame.data[0] = SERVICE_IO_CONFIG_GET; // Command echo
frame.data[1] = *sender.configuration_value; // bit x = set/reset -> IOx = output/input
7) Set module general purpose inputs/outputs configuration
uint8_t *buffer;
buffer[0] = 12;
buffer[1] = APP_SERVICE_FRAME;
buffer[2,3] = target_module.group;
buffer[4,5,6,7] = target_module.address;
buffer[8] = SERVICE_IO_CONFIG_SET;
buffer[9] = target.configuration_value; // bit x = 1 -> IOx = output, bit x = 0 -> IOx = input
buffer[10,11] = CRC16;
8) Get module general purpose inputs value
uint8_t *buffer;
buffer[0] = 11;
buffer[1] = APP_SERVICE_FRAME;
buffer[2,3] = target_module.group;