This started as a short program to set some basic DCC CV's using Program on Main, but it has grown a few extra functions and the name has changed.
The program uses the DCC OpenLCB interface and works via a real or virtual comm port to the DCC Command station programmed into a MERG CBUS CANACC5. This can supply up to 1 amp but does not have any form of protection or ability to read back CV's.
First select the com port to the OpenLCB system in the drop down box and open the comm port by clicking the Open button. For a USB connection this needs to be connected to the PC and powered up before starting the program.
Second, enter the current DCC address of the loco and click the Allocate button, by default a DCC decoder has short address 03.

You can then control the loco (in 127 speed step mode) using the speed edit box or slider and Stop button. Various Fn's can be turned on and off using the check boxes.
The panel at the bottom shows OpenLCB messages being sent or received. If there is a local.xmldict file then it is used to give names to events.
The address can be changed by entering a new address in the New Address box, and clicking the Change button. After programming the decoder with the new address, the old address is released and the new address is then set as the current Loco Address and automatically allocated. Address change to a short address (<127) works by setting CV1 and then clearing bit 5 of CV29 (which may already be clear). Address change to a long address works by writing CV17 (which should have no effect in the decoder), then CV18 (which should cause the decoder to update both CV17 and CV18) and then setting bit 5 of CV29 (which may already be set). There is a 200msec delay between each CV write.
There are edit boxes to change other common CV's such as the acceleration and braking rates, as well as a couple of edit boxes to allow any CV to be changed. Several CV's may be changed for one click of the Write CV's button. Again there is a 200msec delay between each CV write. The CANACC5 provides no feature for reading back of CV values, but most decoders acknowledge a CV write by a short pulse to the motor.