Subversion Repositories HomeAutomation

Rev

Rev 1310 | Rev 1314 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1310 Rev 1311
Line 19... Line 19...
19
CanNet::CanNet(Broker::pointer broker, string address, unsigned int port) : Subscriber(broker, false)
19
CanNet::CanNet(Broker::pointer broker, string address, unsigned int port) : Subscriber(broker, false)
20
{
20
{
21
    LOG.setName("CanNetSubscriber");
21
    LOG.setName("CanNetSubscriber");
22
 
22
 
23
    this->myUdpServer = UdpServer::getInstance(port);
23
    this->myUdpServer = UdpServer::getInstance(port);
24
    (*this->myUdpServer).connect(boost::bind(&CanNet::onNewData, this, _1, _2));
24
    this->myUdpServer->connect(boost::bind(&CanNet::onNewData, this, _1, _2));
25
 
25
 
26
    this->myEndpoint = (*this->myUdpServer).getEndpoint(address);
26
    this->myEndpoint = this->myUdpServer->getEndpoint(address);
27
 
27
 
28
    this->sendPing();
28
    this->sendPing();
29
 
29
 
30
    this->start();
30
    this->start();
31
}
31
}
Line 115... Line 115...
115
void CanNet::sendPing()
115
void CanNet::sendPing()
116
{
116
{
117
    byte_list data(1, (unsigned char) PACKET_PING);
117
    byte_list data(1, (unsigned char) PACKET_PING);
118
 
118
 
119
    LOG.info("Sending ping packet...");
119
    LOG.info("Sending ping packet...");
120
    (*this->myUdpServer).sendTo(this->myEndpoint, data);
120
    this->myUdpServer->sendTo(this->myEndpoint, data);
121
}
121
}
122
 
122
 
123
void CanNet::onNewMessage(Message::pointer message)
123
void CanNet::onNewMessage(Message::pointer message)
124
{
124
{
125
    LOG.debug("update called");
125
    LOG.debug("update called");
Line 129... Line 129...
129
    byte_list data;
129
    byte_list data;
130
 
130
 
131
    // TODO Convert message-id to long
131
    // TODO Convert message-id to long
132
    unsigned long id;
132
    unsigned long id;
133
 
133
 
134
    (*this->myUdpServer).sendTo(this->myEndpoint, buildPacket(id, data));
134
    this->myUdpServer->sendTo(this->myEndpoint, buildPacket(id, data));
135
}
135
}
136
 
136
 
137
void CanNet::onNewData(const udp::endpoint & sender, const byte_list & bytes)
137
void CanNet::onNewData(const udp::endpoint & sender, const byte_list & bytes)
138
{
138
{
139
    //LOG.debug(udp::endpoint(sender).address().to_string() + "==" + this->myEndpoint.address().to_string());
139
    //LOG.debug(udp::endpoint(sender).address().to_string() + "==" + this->myEndpoint.address().to_string());