I don't need a motor driven scanner, I am just using a hand-held laser. The part I want to automate is the initiation of the scan. Essentially I want to run my C++ (or other, but it seems like the C++ interface for David is the easiest) and have it go through calibration, start the scan, wait some time while I move the laser, and then save the scan all automatically. It seems that the only command to initiate a scan is david.sls().Scan() which initiates a structured laser scan.
The link you posted with the Arduino code seems similar to what I want, but I am a bit confused by how it interfaces with the David server. My understanding was that the server only responds to a particular set of commands through the C++ interface.