Beispiel #1
0
void
EIBNetIPTunnel::send_L_Data (LDataPtr l)
{
  assert(out.size() == 0);
  out = L_Data_ToCEMI (0x11, l);
  trigger.send();
}
Beispiel #2
0
void
EIBNetIPRouter::send_L_Data (LDataPtr l)
{
  EIBNetIPPacket p;
  p.data = L_Data_ToCEMI (0x29, l);
  p.service = ROUTING_INDICATION;
  sock->Send (p);
  send_Next();
}
Beispiel #3
0
void ConnState::send_L_Data (LDataPtr l)
{
  if (type == CT_STANDARD)
    {
      assert (!do_send_next);
      do_send_next = true;
      out.put (L_Data_ToCEMI (0x29, l));
      if (! retries)
	send_trigger.send();
    }
}
Beispiel #4
0
void
EIBnetDriver::send_L_Data (LDataPtr l)
{
  EIBnetServer &parent = *std::static_pointer_cast<EIBnetServer>(server);
  if (parent.route)
    {
      EIBNetIPPacket p;
      p.service = ROUTING_INDICATION;
      p.data = L_Data_ToCEMI (0x29, l);
      parent.Send (p);
    }
  send_Next();
}
Beispiel #5
0
void
EIBNetIPRouter::Send_L_Data (LPDU * l)
{
  TRACEPRINTF (t, 2, this, "Send %s", l->Decode ()());
  if (l->getType () != L_Data)
    {
      delete l;
      return;
    }
  L_Data_PDU *l1 = (L_Data_PDU *) l;
  EIBNetIPPacket p;
  p.data = L_Data_ToCEMI (0x29, *l1);
  p.service = ROUTING_INDICATION;
  sock->Send (p);
  if (mode == BUSMODE_VMONITOR)
    {
      L_Busmonitor_PDU *l2 = new L_Busmonitor_PDU (this);
      l2->pdu.set (l->ToPacket ());
      l3->recv_L_Data (l2);
    }
  delete l;
}
void
EIBNetIPTunnel::Send_L_Data (LPDU * l)
{
  TRACEPRINTF (t, 2, this, "Send %s", l->Decode ()());
  if (l->getType () != L_Data)
    {
      delete l;
      return;
    }
  L_Data_PDU *l1 = (L_Data_PDU *) l;
  inqueue.put (L_Data_ToCEMI (0x11, *l1));
  pth_sem_inc (&insignal, 1);
  if (vmode)
    {
      L_Busmonitor_PDU *l2 = new L_Busmonitor_PDU;
      l2->pdu.set (l->ToPacket ());
      outqueue.put (l2);
      pth_sem_inc (&outsignal, 1);
    }
  outqueue.put (l);
  pth_sem_inc (&outsignal, 1);
}