X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Farducontrol.cpp;fp=source%2Flibr2c2%2Farducontrol.cpp;h=1d1ece9adb4eb4fb5e347c373298f8d1a64f869e;hb=fe8b45dc60ed7828f0b4af9daa9b4cd0649415ca;hp=2cdf0c6798440026782b7ba3b9d2ca245b74db9a;hpb=b79fbe6985cb9bcd8df1f5b0ec95b25314d8798d;p=r2c2.git diff --git a/source/libr2c2/arducontrol.cpp b/source/libr2c2/arducontrol.cpp index 2cdf0c6..1d1ece9 100644 --- a/source/libr2c2/arducontrol.cpp +++ b/source/libr2c2/arducontrol.cpp @@ -1214,14 +1214,11 @@ unsigned ArduControl::ControlThread::process_reply(const char *reply, unsigned r return type; } else if(type==POWER_STATE && rlength==2) + set_power(reply[1]); + else if(type==OVERCURRENT) { - control.power.set(reply[1]); - - Tag tag; - tag.type = Tag::GENERAL; - tag.command = POWER; - tag.serial = control.power.serial; - control.completed_commands.push(tag); + set_power(false); + IO::print("Overcurrent detected!\n"); } else { @@ -1232,6 +1229,17 @@ unsigned ArduControl::ControlThread::process_reply(const char *reply, unsigned r return 0; } +void ArduControl::ControlThread::set_power(bool p) +{ + control.power.set(p); + + Tag tag; + tag.type = Tag::GENERAL; + tag.command = POWER; + tag.serial = control.power.serial; + control.completed_commands.push(tag); +} + ArduControl::Loader::Loader(ArduControl &c): DataFile::ObjectLoader(c)