- char cmd[3];
- cmd[0]=CMD_TURNOUT_STATUS;
- cmd[1]=addr&0xFF;
- cmd[2]=(addr>>8)&0xFF;
- control.command(string(cmd, 3)).signal_done.connect(sigc::mem_fun(this, &Turnout::status_reply));
+ unsigned char data[2];
+ data[0] = addr&0xFF;
+ data[1] = (addr>>8)&0xFF;
+ control.command(CMD_TURNOUT_STATUS, data, 2).signal_done.connect(sigc::bind(sigc::mem_fun(this, &Turnout::status_reply), false));
+ if(dual)
+ {
+ data[0] = (addr+1)&0xFF;
+ data[1] = ((addr+1)>>8)&0xFF;
+ control.command(CMD_TURNOUT_STATUS, data, 2).signal_done.connect(sigc::bind(sigc::mem_fun(this, &Turnout::status_reply), true));
+ }