]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/control.cpp
Style fixes, including:
[r2c2.git] / source / libmarklin / control.cpp
index 6e82614c21ebf904a65fd3d4d29b359bfe77c03e..bd63f9f66f661c75d110820edd7ddd3610e48d2c 100644 (file)
@@ -21,6 +21,17 @@ Control::Control():
        debug(false)
 { }
 
+Control::~Control()
+{
+       for(map<unsigned, Sensor *>::iterator i=sensors.begin(); i!=sensors.end(); ++i)
+               delete i->second;
+       for(map<unsigned, Turnout *>::iterator i=turnouts.begin(); i!=turnouts.end(); ++i)
+               delete i->second;
+       for(map<unsigned, Locomotive *>::iterator i=locomotives.begin(); i!=locomotives.end(); ++i)
+               delete i->second;
+       close(serial_fd);
+}
+
 void Control::set_power(bool p)
 {
        power=p;
@@ -30,6 +41,11 @@ void Control::set_power(bool p)
                command(string(1, CMD_POWER_OFF));
 }
 
+void Control::set_debug(bool d)
+{
+       debug=d;
+}
+
 void Control::open(const string &dev)
 {
        serial_fd=::open(dev.c_str(), O_RDWR);
@@ -158,28 +174,28 @@ void Control::tick()
                poll_sensors=false;
        }
 
-       if(queue.size() && queue.front().get_sent())
+       if(!queue.empty() && queue.front().get_sent())
        {
                pollfd pfd={serial_fd, POLLIN, 0};
                if(poll(&pfd, 1, 0)>0)
                {
-                       string resp=read_reply((Cmd)(unsigned char)queue.front().get_command()[0]);
+                       string resp=read_reply(static_cast<Cmd>(static_cast<unsigned char>(queue.front().get_command()[0])));
                        if(debug)
                        {
                                printf("read:  ");
                                for(unsigned i=0; i<resp.size(); ++i)
-                                       printf("%02X ", (unsigned char)resp[i]);
+                                       printf("%02X ", static_cast<unsigned char>(resp[i]));
                                printf("(%d bytes)\n", resp.size());
                        }
 
-                       queue.front().signal_done.emit((Error)resp[0], resp.substr(1));
+                       queue.front().signal_done.emit(static_cast<Error>(resp[0]), resp.substr(1));
                        queue.erase(queue.begin());
                }
                else
                        return;
        }
 
-       if(queue.size())
+       if(!queue.empty())
        {
                string cmd=queue.front().get_command();
 
@@ -195,8 +211,8 @@ void Control::tick()
                {
                        printf("write: ");
                        for(unsigned i=0; i<cmd.size(); ++i)
-                               printf("%02X ",(unsigned char)cmd[i]);
-                       printf("(%d bytes)\n",cmd.size());
+                               printf("%02X ", static_cast<unsigned char>(cmd[i]));
+                       printf("(%d bytes)\n", cmd.size());
                }
 
                write(serial_fd, cmd.data(), cmd.size());
@@ -209,19 +225,6 @@ Time::Timer::Slot &Control::set_timer(const Time::TimeDelta &dt)
        return timer.add(dt);
 }
 
-Control::~Control()
-{
-       for(map<unsigned, Sensor *>::iterator i=sensors.begin(); i!=sensors.end(); ++i)
-               delete i->second;
-       for(map<unsigned, Turnout *>::iterator i=turnouts.begin(); i!=turnouts.end(); ++i)
-               delete i->second;
-       for(map<unsigned, Locomotive *>::iterator i=locomotives.begin(); i!=locomotives.end(); ++i)
-               delete i->second;
-       close(serial_fd);
-}
-
-/*** private ***/
-
 void Control::read_all(int fd, char *buf, int size)
 {
        int pos=0;
@@ -315,7 +318,7 @@ void Control::turnout_event_done(Error, const string &resp)
        unsigned count=resp[0];
        for(unsigned i=0; i<count; ++i)
        {
-               unsigned addr=(unsigned char)resp[i*2+1]+((resp[i*2+2]&7)<<8);
+               unsigned addr=static_cast<unsigned char>(resp[i*2+1])+((resp[i*2+2]&7)<<8);
                bool status=!(resp[i*2+2]&0x80);
                cout<<"Turnout "<<addr<<", status "<<status<<'\n';
                signal_turnout_event.emit(addr, status);
@@ -326,7 +329,7 @@ void Control::sensor_event_done(Error, const string &resp)
 {
        for(unsigned i=0; resp[i]; i+=3)
        {
-               unsigned module=(unsigned char)resp[i];
+               unsigned module=static_cast<unsigned char>(resp[i]);
 
                cout<<"S88 module "<<module<<", status ";
                for(unsigned j=0; j<16; ++j)