Read module name

I’m trying to read out the module name from the modules.

is there another faster way then requesting every char separately from the module (command 0xFD)?

All channel names are also stored within the memory map which you can request.

To read the memory map you can dump the whole content of the memory map or request blocks.

For example VMBGPOD:

To dump the whole memory map;

image

For which the module will respond with packets in blocks of four bytes

image

After receiving (all) bytes you can find the channel names at these locations

You can debug this using VelbusLink; after reading a module, go into Advanced mode (CTRL+SHIFT+F10), then CTRL+M on the module while the module is selected. Doing this will open a ‘Memory viewer’.

and how do i know all data for the memory map is send by the module?
is there some sort of datacomplete message?

Unfortunately, there’s no data complete message. But when you request a memory dump, the packets are sent in order of memory map address. So upon receiving the last message of the module, it can be assumed that the module sent all the packets.

If your idea is to read the module name only, I would suggest to request memory blocks since that would generate less traffic on the bus and that will be faster than requesting the whole memory map. That can be done with packet COMMAND_READ_MEMORY_BLOCK (H’C9’). The module responds with a COMMAND_MEMORY_DATA_BLOCK (H’CC’) packet containing 4 memory bytes.

Please note that not all of our modules support this faster way.
Some of our older modules only support reading memory bytes through the packet COMMAND_READ_DATA_FROM_MEMORY (H’FD’).