Understanding Expressnet and Writing Our Own Control Software
I Finally decided, in August 2024, that I would never acheive my aims on the model railway if I depended on Hornby's Railmaster software
The Railmaster software does not have anything wrong with it but I just could not "bend" it in any way to suit myself - also I could not send any info or instructions into Railmaster from my own software
So - I set upon rewriting the software in VB.Net so that I would have the facility to modify everything to suit requirements
XPressnet was a challenge but, in a couple of months, I had full control of Points, Trains and Functions within the software I had already written - It is specifically tailored to my layout but could become more open ended in the future
Here follows some of the VB.Net panels that support this software extension
The Initial Initialisation

The Point Control Panel

Locomotive Selection Panel

Individual Locomotive Control
There can be many of these panels visible at the same time

A Database control panel - All the data is held in a Microsoft Access Database

A Script Construction panel for automation purposes (I invented my own script system which includes logic using IF statements, GOTOs etc...)

Xpressnet Documentation
Xpressnet is the format used for instructing the Hornby Elite
Assorted PDF links...
Xpressnet Control Data
header The header is the first byte of the actual data transfer. Based on
the XpressNet protocol version 3.0 from Lenz. This is the start of
the data stream that is transmitted on the bus.
The data following the header corresponds to the schema of
the XpressNet protocol version 3.0 by Lenz.
XOR The XOR byte is the last byte of the transmission and is
calculated as the XOR of the header byte (Used as a parity check)