]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.cpp
ArduControl debugging tweaks
[r2c2.git] / source / libr2c2 / arducontrol.cpp
index 2361d8540d561ccff6477836b36fc41ebba114dc..6d74f3719587e45a4a9ec2549cff1ab3b34e7a54 100644 (file)
@@ -18,9 +18,9 @@ ArduControl::ProtocolInfo ArduControl::protocol_info[2] =
        { 0x3FFF, 126, 15 }  // MFX
 };
 
-ArduControl::ArduControl(const string &dev):
-       serial(dev),
-       debug(1),
+ArduControl::ArduControl(const Options &opts):
+       serial(opts.get<string>(string(), "ttyUSB0")),
+       debug(opts.get<unsigned>("debug")),
        state_file("arducontrol.state"),
        power(false),
        active_accessory(0),
@@ -357,9 +357,7 @@ void ArduControl::tick()
 
                        Accessory &acc = i->second;
                        if(tag.command==Accessory::ACTIVATE)
-                       {
                                off_timeout = Time::now()+acc.active_time;
-                       }
                        else if(tag.command==Accessory::DEACTIVATE)
                        {
                                if(acc.state.commit(tag.serial))
@@ -721,11 +719,17 @@ void ArduControl::RefreshTask::advance()
 ArduControl::S88Task::S88Task(ArduControl &c):
        control(c),
        n_octets(0),
-       octets_remaining(0)
+       octets_remaining(0),
+       delay(0)
 { }
 
 bool ArduControl::S88Task::get_work(PendingCommand &cmd)
 {
+       if(delay)
+       {
+               --delay;
+               return false;
+       }
        if(octets_remaining || !n_octets)
                return false;
 
@@ -734,6 +738,8 @@ bool ArduControl::S88Task::get_work(PendingCommand &cmd)
        cmd.command[1] = octets_remaining;
        cmd.length = 2;
 
+       delay = 4;
+
        return true;
 }
 
@@ -961,6 +967,8 @@ void ArduControl::ControlThread::init_baud_rate()
 
        if(!rate)
        {
+               if(control.debug>=1)
+                       IO::print("ArduControl detection failed\n");
                done = true;
                return;
        }