CDJ can be controlled by your own software or even a remote control (using event maps) in a way indentical to the methods for controlling physical devices via SlinkX ActiveX Control. Where one might turn on a TV set via a command like:
tv:power
One can similarly control CDJ with commands like
cdj:playlist_play
Like the 2-way communcations of S-Link, CDJ can also respond both spontaeously and to your queries with information about its status, e.g.
cdjr:time[2:34]
In order to use these automation features, you should already have a firm grasp of the SlinkX basics so that you are able to send device commands and receive device events. Once you understand these concepts, controlling CDJ is no more difficult than any other device.